شبکه TensorFlow (TFL)

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

مفاهیم

این بخش، نسخه‌ی ساده‌شده‌ای از توضیحات موجود در «جداول جستجوی درون‌یابی شده‌ی کالیبره‌شده‌ی یکنواخت» ، JMLR 2016 است.

مشبک‌ها

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

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

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

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

کالیبراسیون

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

  • قیمت قهوه، در محدوده ۰ تا ۲۰ دلار
  • فاصله تا کاربر، در محدوده ۰ تا ۳۰ کیلومتر

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

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

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

گروه‌ها

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

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

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

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

چرا شبکه تنسورفلو؟

می‌توانید مقدمه‌ای کوتاه در مورد TensorFlow Lattice را در این پست وبلاگ TF بیابید.

تفسیرپذیری

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

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

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

محدودیت‌های شکل متعارف

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

مقالات

آموزش‌ها و مستندات API

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