Google I / O 18 تا 20 مه بازگشت دارد! فضا را ذخیره کنید و برنامه خود را بسازید اکنون ثبت نام کنید

شبکه 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 (با tfl.layers.PWLCalibration کالیبراسیون) برای کالیبراسیون و عادی سازی ویژگیهای ورودی در محدوده مورد قبول شبکه استفاده کنند: 0.0 تا 1.0 در مثال شبکه بالا. موارد زیر نمونه هایی از این توابع کالیبراسیون را با 10 نقطه اصلی نشان می دهد:

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

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

گروه ها

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

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

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

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

چرا شبکه TensorFlow؟

می توانید معرفی مختصری در مورد TensorFlow Lattice را در این پست TF Blog پیدا کنید .

قابل تفسیر

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Laplacian Regularizer : خروجی های رأس شبکه / کالیبراسیون / نقاط کلیدی به سمت مقادیر همسایگان مربوطه خود تنظیم می شوند. این منجر به عملکرد مسطح می شود.

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

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

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

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

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

اوراق

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

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