مشتقات نقش اساسی در بهینه سازی و یادگیری ماشین دارند. با تقریب محلی یک ضرر آموزشی، مشتقات یک بهینه ساز را به سمت مقادیر کمتر از دست دادن هدایت می کنند. چارچوبهای تمایز خودکار مانند TensorFlow، PyTorch و JAX بخش مهمی از یادگیری ماشین مدرن هستند که استفاده از بهینهسازهای مبتنی بر گرادیان را برای آموزش مدلهای بسیار پیچیده امکانپذیر میسازد.
اما آیا مشتقات تنها چیزی است که ما نیاز داریم؟ به خودی خود، مشتقات فقط به ما می گویند که یک تابع در مقیاس بینهایت کوچک چگونه رفتار می کند. برای استفاده مؤثر از مشتقات، اغلب باید بیشتر از آن بدانیم. به عنوان مثال، برای انتخاب نرخ یادگیری برای نزول گرادیان، باید چیزی در مورد نحوه عملکرد تابع ضرر در یک اما کوچک بدانیم. محدود، فانی پنجره یک آنالوگ در مقیاس محدود از تمایز خودکار، در صورت وجود، میتواند به ما کمک کند چنین انتخابهایی را مؤثرتر انجام دهیم و در نتیجه آموزش را تسریع کنیم.
در مقاله جدیدمان «محدود کردن خودکار سریهای باقیمانده تیلور: محدودیتهای سختتر و برنامههای جدید»، الگوریتمی به نام AutoBound ارائه میکنیم که کرانهای بالا و پایین چند جملهای را در یک تابع معین محاسبه میکند، که در بازه زمانی مشخص شده توسط کاربر معتبر هستند. سپس شروع به بررسی برنامه های AutoBound می کنیم. قابل ذکر است، ما یک متا بهینهساز به نام SafeRate ارائه میکنیم که از کرانهای بالایی محاسبهشده توسط AutoBound برای استخراج نرخهای یادگیری استفاده میکند که تضمین میکنند به طور یکنواخت یک تابع از دست دادن معین را کاهش میدهند، بدون نیاز به تنظیم فراپارامتر زمانبر. ما همچنین AutoBound را به عنوان یک کتابخانه منبع باز در دسترس قرار می دهیم.
الگوریتم AutoBound
یک تابع داده شده است f
و یک نقطه مرجع x0
، AutoBound کران های بالا و پایین چند جمله ای را محاسبه می کند f
که روی یک بازه مشخص شده توسط کاربر به نام a نگه می دارند منطقه اعتماد. مانند چند جملهایهای تیلور، چندجملهایهای مرزی برابر هستند f
در x0
. با کوچک شدن ناحیه اعتماد، مرزها تنگ تر می شوند و با نزدیک شدن عرض ناحیه اعتماد به صفر، به چند جمله ای تیلور مربوطه نزدیک می شوند.
مرزهای بالا و پایین درجه دوم به طور خودکار بر روی یک تابع یک بعدی f، با مرکز x0=0.5. کران های بالا و پایین روی یک منطقه اعتماد مشخص شده توسط کاربر معتبر هستند و با کوچک شدن منطقه اعتماد، تنگ تر می شوند. |
مانند تمایز خودکار، AutoBound را می توان برای هر تابعی که می توان با استفاده از عملیات ریاضی استاندارد پیاده سازی کرد، اعمال کرد. در واقع AutoBound تعمیم تمایز خودکار حالت تیلور است و در حالت خاصی که پهنای ناحیه اعتماد صفر باشد معادل آن است.
برای استخراج الگوریتم AutoBound، دو چالش اصلی وجود داشت که باید به آنها رسیدگی میکردیم:
- با توجه به یک نقطه مرجع دلخواه و منطقه اعتماد دلخواه، باید کران های بالا و پایین چند جمله ای را برای توابع ابتدایی مختلف استخراج می کردیم.
- ما مجبور شدیم یک آنالوگ از قانون زنجیره ای برای ترکیب این محدوده ها ارائه کنیم.
مرزهای توابع ابتدایی
برای انواع توابع پرکاربرد، ما استخراج می کنیم بهینه کران های بالا و پایین چند جمله ای به شکل بسته. در این زمینه، “بهینه” به این معنی است که کرانه ها تا حد ممکن تنگ هستند، در بین همه چند جمله ای ها که تنها ضریب حداکثر درجه با سری تیلور متفاوت است. نظریه ما در مورد توابع ابتدایی، مانند exp
و log
و توابع فعال سازی شبکه عصبی رایج، مانند ReLU
و Swish
. این بر اساس و تعمیم کارهای قبلی است که فقط برای محدوده های درجه دوم، و فقط برای یک منطقه اعتماد نامحدود اعمال می شد.
کرانهای درجه دوم بالا و پایین بهینه در تابع نمایی، با مرکز x0= 0.5 و در بازه زمانی معتبر است [0, 2]. |
یک قانون زنجیره ای جدید
برای محاسبه کرانهای بالا و پایین برای توابع دلخواه، تعمیم قاعده زنجیره ای را استخراج کردیم که بر روی کران های چند جمله ای عمل می کند. برای نشان دادن این ایده، فرض کنید تابعی داریم که می توان آن را به صورت نوشتاری کرد
و فرض کنید ما از قبل کران های بالا و پایین چند جمله ای داریم g
و h
. چگونه مرزها را محاسبه کنیم f
?
معلوم می شود که کلید کران های بالا و پایین را برای یک تابع معین به صورت a نشان می دهد تنها چند جمله ای که ضریب بالاترین درجه آن یک بازه است تا یک اسکالر. سپس می توانیم باند برای را وصل کنیم h
به محدود برای g
، و نتیجه را با استفاده از حساب بازه ای به چند جمله ای به همان شکل تبدیل کنید. تحت فرضیات مناسب در مورد منطقه اعتماد که بیش از آن محدود شده است g
ثابت است، می توان نشان داد که این رویه کران مورد نظر را به دست می دهد f
.
قانون زنجیره چند جملهای بازهای برای توابع h(x) = sqrt(x) و g(y) = exp(y)، با x اعمال میشود.0= 0.25 و منطقه اعتماد [0, 0.5]. |
قانون زنجیره ای ما برای توابع یک بعدی و همچنین برای توابع چند متغیره مانند ضرب ماتریس و کانولوشن اعمال می شود.
انتشار حدود
با استفاده از قانون زنجیره جدید ما، AutoBound کران های چند جمله ای بازه ای را از طریق یک نمودار محاسباتی از ورودی ها به خروجی ها، مشابه تمایز خودکار حالت رو به جلو، منتشر می کند.
انتشار رو به جلو کران های چند جمله ای بازه ای برای تابع f(x) = exp(sqrt(x)). ابتدا کران های (بی اهمیت) را روی x محاسبه می کنیم، سپس از قانون زنجیره ای برای محاسبه کران های sqrt(x) و exp(sqrt(x)) استفاده می کنیم. |
برای محاسبه مرزهای یک تابع f(x)
، AutoBound به حافظه متناسب با ابعاد نیاز دارد x
. به همین دلیل، برنامه های کاربردی کاربردی AutoBound را برای توابع با تعداد ورودی کم اعمال می کنند. با این حال، همانطور که خواهیم دید، این ما را از استفاده از AutoBound برای بهینه سازی شبکه عصبی باز نمی دارد.
استخراج خودکار بهینه سازها و برنامه های کاربردی دیگر
چه کاری می توانیم با AutoBound انجام دهیم که به تنهایی با تمایز خودکار نمی توانیم انجام دهیم؟
در میان چیزهای دیگر، AutoBound میتواند برای استخراج خودکار بهینهسازهای بدون فراپارامتر خاص و خاص که از هر نقطه شروعی همگرا میشوند، استفاده شود. این بهینهسازها به طور مکرر با استفاده از AutoBound برای محاسبه یک حد بالایی در تلفات که در نقطه فعلی تنگ است، و سپس به حداقل رساندن حد بالایی برای به دست آوردن نقطه بعدی، ضرر را کاهش میدهند.
به حداقل رساندن تلفات رگرسیون لجستیک یک بعدی با استفاده از کران های فوقانی درجه دوم که به طور خودکار توسط AutoBound مشتق شده اند. |
بهینه سازهایی که از کران های بالایی در این روش استفاده می کنند، بهینه سازهای عمده سازی-کمینه سازی (MM) نامیده می شوند. AutoBound با اعمال رگرسیون لجستیک یک بعدی، یک بهینهساز MM را که برای اولین بار در سال 2009 منتشر شد، دوباره استخراج میکند. برای مسائل پیچیدهتر، AutoBound بهینهسازهای جدید MM را استخراج میکند که استخراج آنها با دست دشوار است.
میتوانیم از ایدهای مشابه برای گرفتن یک بهینهساز موجود مانند Adam و تبدیل آن به یک بهینهساز بدون هایپرپارامتر استفاده کنیم که تضمین شده است به طور یکنواخت تلفات را کاهش دهد (در تنظیمات دستهای کامل). بهینه ساز حاصل از همان جهت به روز رسانی بهینه ساز اصلی استفاده می کند، اما نرخ یادگیری را با به حداقل رساندن یک کران درجه دوم یک بعدی که توسط AutoBound مشتق شده است، تغییر می دهد. ما متا بهینه ساز حاصل را SafeRate می نامیم.
عملکرد SafeRate زمانی که برای آموزش شبکه عصبی تک لایه پنهان بر روی زیرمجموعه ای از مجموعه داده MNIST، در تنظیمات دسته ای کامل استفاده می شود. |
با استفاده از SafeRate، ما میتوانیم انواع قویتری از بهینهسازهای موجود ایجاد کنیم، به قیمت یک پاس رو به جلو اضافی که زمان دیوار را برای هر مرحله با یک فاکتور کوچک افزایش میدهد (حدود ۲ برابر در مثال بالا).
علاوه بر کاربردهایی که اخیراً مورد بحث قرار گرفت، AutoBound میتواند برای ادغام عددی تأیید شده و برای اثبات خودکار نسخههای واضحتر از نابرابری جنسن، یک نابرابری ریاضی اساسی که اغلب در آمار و زمینههای دیگر استفاده میشود، استفاده شود.
بهبود بیش از مرزهای کلاسیک
محدود کردن عبارت باقیمانده تیلور به طور خودکار ایده جدیدی نیست. یک تکنیک کلاسیک مدرک ایجاد می کند k
کران چند جمله ای یک تابع f
که در یک منطقه اعتماد معتبر هستند [a, b]
ابتدا با محاسبه یک عبارت برای k
مشتق از f
(با استفاده از تمایز خودکار)، سپس این عبارت را دوباره ارزیابی کنید [a,b]
با استفاده از حساب بازه ای
اگرچه این رویکرد ظریف است، اما دارای محدودیتهای ذاتی است که میتواند منجر به محدودیتهای بسیار شل شود، همانطور که با خطوط آبی نقطهدار در شکل زیر نشان داده شده است.
کران درجه دوم بالا و پایین در از دست دادن یک پرسپترون چند لایه با دو لایه پنهان، به عنوان تابعی از نرخ یادگیری اولیه. مرزهای مشتق شده توسط AutoBound بسیار محکم تر از آنهایی هستند که با استفاده از ارزیابی حسابی بازه ای مشتق دوم به دست می آیند. |
مشتاقانه منتظر است
چند جمله ای های تیلور بیش از سیصد سال است که مورد استفاده قرار می گیرند و در بهینه سازی عددی و محاسبات علمی همه جا وجود دارند. با این وجود، چند جمله ای های تیلور دارای محدودیت های قابل توجهی هستند که می تواند قابلیت های الگوریتم های ساخته شده روی آنها را محدود کند. کار ما بخشی از ادبیات رو به رشدی است که این محدودیتها را تشخیص میدهد و به دنبال ایجاد پایهای جدید است که بر اساس آن الگوریتمهای قویتری میتوانند ساخته شوند.
آزمایشهای ما تاکنون فقط سطح آنچه را که با استفاده از AutoBound ممکن است خراش داده است، و ما معتقدیم که کاربردهای زیادی دارد که ما کشف نکردهایم. برای تشویق جامعه پژوهشی به کشف چنین احتمالاتی، AutoBound را به عنوان یک کتابخانه منبع باز ساخته شده بر روی JAX در دسترس قرار داده ایم. برای شروع، از مخزن GitHub ما دیدن کنید.
سپاسگزاریها
این پست بر اساس کار مشترک با جاش دیلون است. از الکس عالمی و سرگئی آیوف برای بازخورد ارزشمند در مورد پیش نویس قبلی پست تشکر می کنیم.