شبکه TensorFlow (TFL)

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

مفاهیم

این بخش یک نسخه ساده شده از توضیحات در جداول جستجوی درون یابی شده مونوتونیک کالیبره شده ، 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 را بررسی کنید.

،

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

مفاهیم

این بخش یک نسخه ساده شده از توضیحات در جداول جستجوی درون یابی شده مونوتونیک کالیبره شده ، 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 را بررسی کنید.