در سمپوزیوم زنان در ML در 7 دسامبر شرکت کنید هم اکنون ثبت نام کنید

شبکه TensorFlow (TFL)

با مجموعه‌ها، منظم بمانید ذخیره و دسته‌بندی محتوا براساس اولویت‌های شما.

TensorFlow Lattice کتابخانه ای است که مدل های مبتنی بر شبکه انعطاف پذیر، کنترل شده و قابل تفسیر را پیاده سازی می کند. این کتابخانه شما را قادر می سازد تا دانش دامنه را از طریق محدودیت های شکل عقل سلیم یا سیاست محور به فرآیند یادگیری تزریق کنید. این کار با استفاده از مجموعه‌ای از لایه‌های Keras انجام می‌شود که می‌تواند محدودیت‌هایی مانند یکنواختی، تحدب و اعتماد زوجی را برآورده کند. این کتابخانه همچنین برآوردگرهای کنسرو شده را به راحتی تنظیم می کند.

مفاهیم

این بخش یک نسخه ساده شده از توضیحات در جداول جستجوی درون یابی شده Monotonic Calibrated، JMLR 2016 است.

مشبک ها

شبکه یک جدول جستجوی درون یابی است که می تواند روابط ورودی-خروجی دلخواه را در داده های شما تقریبی کند. این یک شبکه معمولی را روی فضای ورودی شما همپوشانی می کند و مقادیر خروجی را در رئوس شبکه می آموزد. برای نقطه آزمایش \(x\)، \(f(x)\) به صورت خطی از مقادیر شبکه اطراف \(x\)درون یابی می شود.

مثال ساده بالا تابعی با 2 ویژگی ورودی و 4 پارامتر است:\(\theta=[0, 0.2, 0.4, 1]\)که مقادیر تابع در گوشه های فضای ورودی هستند. بقیه تابع از این پارامترها درون یابی می شود.

تابع \(f(x)\) می تواند تعاملات غیرخطی بین ویژگی ها را ثبت کند. می‌توانید پارامترهای شبکه را به‌عنوان ارتفاع قطب‌هایی که در زمین روی یک شبکه منظم قرار گرفته‌اند در نظر بگیرید، و عملکرد حاصل مانند پارچه‌ای است که روی چهار قطب محکم کشیده شده است.

با ویژگی های \(D\) و 2 راس در امتداد هر بعد، یک شبکه معمولی دارای پارامترهای \(2^D\) خواهد بود. برای تناسب با یک تابع انعطاف‌پذیرتر، می‌توانید شبکه‌ای با دانه‌بندی ریزتر را روی فضای ویژگی با رئوس بیشتر در امتداد هر بعد مشخص کنید. توابع رگرسیون شبکه پیوسته و به صورت تکه ای بی نهایت متمایز هستند.

تنظیم

بیایید بگوییم شبکه نمونه قبلی نشان دهنده خوشحالی کاربر آموخته شده با یک کافی شاپ محلی پیشنهادی است که با استفاده از ویژگی ها محاسبه شده است:

  • قیمت قهوه، در محدوده 0 تا 20 دلار
  • فاصله تا کاربر، در محدوده 0 تا 30 کیلومتر

ما می خواهیم مدل ما شادی کاربر را با یک پیشنهاد کافی شاپ محلی بیاموزد. مدل‌های شبکه TensorFlow می‌توانند از توابع خطی تکه تکه (با tfl.layers.PWLCalibration ) برای کالیبره کردن و عادی‌سازی ویژگی‌های ورودی در محدوده پذیرفته‌شده توسط شبکه استفاده کنند: 0.0 تا 1.0 در شبکه مثال بالا. در زیر نمونه‌هایی از عملکردهای کالیبراسیون با 10 نقطه کلیدی را نشان می‌دهد:

اغلب ایده خوبی است که از چندک ویژگی ها به عنوان نقاط کلیدی ورودی استفاده کنید. برآوردگرهای کنسرو شده TensorFlow Lattice می توانند به طور خودکار نقاط کلیدی ورودی را روی چندک های ویژگی تنظیم کنند.

برای ویژگی‌های طبقه‌بندی، TensorFlow Lattice کالیبراسیون طبقه‌بندی (با tfl.layers.CategoricalCalibration ) با مرز خروجی مشابه برای تغذیه به شبکه ارائه می‌کند.

گروه ها

تعداد پارامترهای یک لایه شبکه به طور تصاعدی با تعداد ویژگی های ورودی افزایش می یابد، بنابراین به خوبی به ابعاد بسیار بالا مقیاس نمی شود. برای غلبه بر این محدودیت، TensorFlow Lattice مجموعه‌ای از شبکه‌ها را ارائه می‌کند که چندین شبکه کوچک را (به طور متوسط) ترکیب می‌کنند، که به مدل امکان می‌دهد به صورت خطی در تعداد ویژگی‌ها رشد کند.

این کتابخانه دو نوع از این مجموعه ها را ارائه می دهد:

  • شبکه های کوچک تصادفی (RTL): هر مدل فرعی از یک زیرمجموعه تصادفی از ویژگی ها (با جایگزینی) استفاده می کند.

  • کریستال‌ها : الگوریتم کریستال‌ها ابتدا یک مدل از پیش برازش را آموزش می‌دهد که فعل و انفعالات ویژگی‌های زوجی را تخمین می‌زند. سپس مجموعه نهایی را طوری ترتیب می‌دهد که ویژگی‌هایی با برهمکنش‌های غیرخطی بیشتر در شبکه‌های مشابه باشند.

چرا شبکه TensorFlow؟

در این پست وبلاگ TF می توانید معرفی مختصری از شبکه TensorFlow پیدا کنید.

تفسیر پذیری

از آنجایی که پارامترهای هر لایه خروجی آن لایه هستند، تحلیل، درک و اشکال زدایی هر قسمت از مدل آسان است.

مدل های دقیق و انعطاف پذیر

با استفاده از شبکه های ریز دانه، می توانید توابع پیچیده دلخواه را با یک لایه شبکه دریافت کنید. استفاده از چندین لایه کالیبراتور و شبکه اغلب در عمل به خوبی کار می‌کند و می‌تواند با مدل‌های DNN با اندازه‌های مشابه مطابقت داشته باشد یا بهتر عمل کند.

محدودیت های شکل عقل سلیم

داده های آموزشی دنیای واقعی ممکن است به اندازه کافی داده های زمان اجرا را نشان ندهند. راه‌حل‌های انعطاف‌پذیر ML مانند DNN یا جنگل‌ها اغلب به‌طور غیرمنتظره و حتی در قسمت‌هایی از فضای ورودی که تحت پوشش داده‌های آموزشی نیستند، عمل می‌کنند. این رفتار به ویژه زمانی مشکل ساز است که محدودیت های خط مشی یا انصاف ممکن است نقض شود.

حتی اگر اشکال رایج منظم‌سازی می‌تواند منجر به برون‌یابی معقول‌تر شود، تنظیم‌کننده‌های استاندارد نمی‌توانند رفتار مدل معقول را در کل فضای ورودی، به‌ویژه با ورودی‌های با ابعاد بالا تضمین کنند. تغییر به مدل‌های ساده‌تر با رفتار کنترل‌شده‌تر و قابل پیش‌بینی‌تر می‌تواند هزینه سنگینی برای دقت مدل داشته باشد.

TF Lattice ادامه استفاده از مدل‌های انعطاف‌پذیر را ممکن می‌سازد، اما چندین گزینه برای تزریق دانش دامنه به فرآیند یادگیری از طریق محدودیت‌های شکل عقل سلیم یا خط‌مشی‌محور معنی‌دار ارائه می‌دهد:

  • یکنواختی : می توانید تعیین کنید که خروجی فقط با توجه به یک ورودی افزایش/کاهش داشته باشد. در مثال ما، ممکن است بخواهید مشخص کنید که افزایش فاصله تا یک کافی شاپ فقط ترجیحات پیش بینی شده کاربر را کاهش دهد.

  • تحدب/تعرفه : می‌توانید مشخص کنید که شکل تابع می‌تواند محدب یا مقعر باشد. آمیخته با یکنواختی، این می تواند تابع را وادار کند تا بازدهی کاهشی را با توجه به یک ویژگی مشخص نشان دهد.

  • Unimodality : می توانید مشخص کنید که تابع باید یک قله یا دره منحصر به فرد داشته باشد. این به شما امکان می دهد توابعی را نشان دهید که دارای یک نقطه شیرین نسبت به یک ویژگی هستند.

  • اعتماد زوجی: این محدودیت روی یک جفت ویژگی کار می کند و نشان می دهد که یک ویژگی ورودی به صورت معنایی اعتماد به ویژگی دیگر را منعکس می کند. به عنوان مثال، تعداد نظرات بیشتر باعث می شود که شما نسبت به میانگین رتبه بندی ستاره یک رستوران اطمینان بیشتری داشته باشید. وقتی تعداد بازبینی‌ها بیشتر باشد، مدل نسبت به رتبه‌بندی ستاره حساس‌تر خواهد بود (یعنی شیب بیشتری نسبت به رتبه‌بندی خواهد داشت).

انعطاف پذیری کنترل شده با تنظیم کننده ها

علاوه بر محدودیت‌های شکل، شبکه TensorFlow تعدادی تنظیم‌کننده برای کنترل انعطاف‌پذیری و صاف بودن عملکرد برای هر لایه فراهم می‌کند.

  • تنظیم کننده لاپلاسی : خروجی رئوس شبکه/کالیبراسیون/نقاط کلیدی به سمت مقادیر همسایگان مربوطه تنظیم می شوند. این منجر به عملکرد صاف تر می شود.

  • تنظیم کننده Hessian : این اولین مشتق از لایه کالیبراسیون PWL را جریمه می کند تا تابع خطی تر شود.

  • تنظیم کننده چین و چروک : این مشتق دوم لایه کالیبراسیون PWL را جریمه می کند تا از تغییرات ناگهانی در انحنا جلوگیری شود. این عملکرد را روان تر می کند.

  • تنظیم کننده پیچشی : خروجی های شبکه برای جلوگیری از پیچش در بین ویژگی ها منظم می شود. به عبارت دیگر، مدل به سمت استقلال بین مشارکت ویژگی ها منظم می شود.

با سایر لایه های Keras مخلوط و مطابقت دهید

می‌توانید از لایه‌های شبکه TF در ترکیب با لایه‌های دیگر Keras برای ساخت مدل‌های محدود یا منظم استفاده کنید. برای مثال، لایه‌های کالیبراسیون شبکه یا PWL را می‌توان در آخرین لایه شبکه‌های عمیق‌تر که شامل جاسازی‌ها یا دیگر لایه‌های Keras می‌شود، استفاده کرد.

اوراق

آموزش و اسناد API

برای معماری های مدل رایج، می توانید از مدل های پیش ساخته Keras یا برآوردگرهای کنسرو شده استفاده کنید. همچنین می توانید مدل های سفارشی را با استفاده از لایه های TF Lattice Keras ایجاد کنید یا با لایه های دیگر Keras ترکیب و مطابقت دهید. برای جزئیات، اسناد کامل API را بررسی کنید.