یک رویکرد علمی برای بهبود عملکرد مدل

برای اهداف این سند:

هدف نهایی توسعه یادگیری ماشین، به حداکثر رساندن سودمندی مدل مستقر شده است.

شما معمولاً می توانید از همان مراحل و اصول اولیه در این بخش برای هر مشکل ML استفاده کنید.

این بخش مفروضات زیر را بیان می کند:

  • شما قبلاً یک خط لوله آموزشی کاملاً در حال اجرا به همراه پیکربندی دارید که نتیجه معقولی به دست می آورد.
  • شما منابع محاسباتی کافی برای انجام آزمایش های تنظیم معنادار و اجرای حداقل چندین کار آموزشی به صورت موازی دارید.

استراتژی تنظیم افزایشی

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

ما فرض می کنیم که هدف شما یافتن پیکربندی است که عملکرد مدل شما را به حداکثر برساند. گاهی اوقات، هدف شما به حداکثر رساندن بهبود مدل در یک مهلت ثابت است. در موارد دیگر، می‌توانید مدل را به طور نامحدود بهبود دهید. به عنوان مثال، بهبود مستمر مدل مورد استفاده در تولید.

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

مؤثرترین راه برای به حداکثر رساندن عملکرد این است که با یک پیکربندی ساده شروع کنید و به تدریج ویژگی‌ها را اضافه کنید و بهبودها را در حین ایجاد بینش در مورد مشکل انجام دهید.

توصیه می‌کنیم از الگوریتم‌های جستجوی خودکار در هر دور تنظیم استفاده کنید و با افزایش درک خود، فضاهای جستجو را به‌طور مداوم به‌روزرسانی کنید. همانطور که کاوش می کنید، طبیعتاً پیکربندی های بهتر و بهتری خواهید یافت و بنابراین "بهترین" مدل شما به طور مداوم بهبود می یابد.

اصطلاح "راه اندازی" به به روز رسانی به بهترین پیکربندی ما اشاره دارد (که ممکن است با راه اندازی واقعی یک مدل تولیدی مطابقت داشته باشد یا نباشد). برای هر «راه اندازی»، باید اطمینان حاصل کنید که تغییر بر اساس شواهد قوی است - نه فقط شانس تصادفی بر اساس یک پیکربندی خوش شانس - تا پیچیدگی غیر ضروری را به خط لوله آموزشی اضافه نکنید.

در سطح بالا، استراتژی تنظیم افزایشی ما شامل تکرار چهار مرحله زیر است:

  1. هدفی را برای دور بعدی آزمایش‌ها انتخاب کنید. اطمینان حاصل کنید که هدف به درستی مشخص شده است.
  2. دور بعدی آزمایش ها را طراحی کنید. مجموعه ای از آزمایش ها را طراحی و اجرا کنید که به سمت این هدف پیش می رود.
  3. از نتایج تجربی بیاموزید. آزمایش را با یک چک لیست ارزیابی کنید.
  4. تعیین کنید که آیا تغییر نامزد را بپذیرید یا خیر.

بقیه این بخش این استراتژی را شرح می دهد.

یک هدف برای دور بعدی آزمایش‌ها انتخاب کنید

اگر سعی کنید چندین ویژگی را اضافه کنید یا به چند سوال به طور همزمان پاسخ دهید، ممکن است نتوانید اثرات جداگانه روی نتایج را از هم جدا کنید. اهداف مثال عبارتند از:

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

پیشرفت بلندمدت را بر بهبود خطاهای اعتبارسنجی کوتاه مدت اولویت دهید

خلاصه: بیشتر اوقات، هدف اصلی شما این است که به مشکل تنظیم بینش برسید.

توصیه می کنیم بیشتر وقت خود را صرف کسب بینش در مورد مشکل کنید و زمان نسبتاً کمی را با حرص و طمع روی به حداکثر رساندن عملکرد در مجموعه اعتبار سنجی متمرکز کنید. به عبارت دیگر، بیشتر وقت خود را صرف «اکتشاف» کنید و تنها مقدار کمی را صرف «استثمار» کنید. درک مشکل برای به حداکثر رساندن عملکرد نهایی بسیار مهم است. اولویت دادن به بینش بر دستاوردهای کوتاه مدت به موارد زیر کمک می کند:

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

در نهایت، شما مشکل را درک خواهید کرد. سپس، می‌توانید صرفاً روی خطای اعتبارسنجی تمرکز کنید، حتی اگر آزمایش‌ها در مورد ساختار مشکل تنظیم اطلاعات حداکثری نداشته باشند.

دور بعدی آزمایش ها را طراحی کنید

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

شناسایی فراپارامترهای علمی، مزاحم و ثابت

برای یک هدف معین، همه هایپرپارامترها در یکی از دسته های زیر قرار می گیرند:

  • فراپارامترهای علمی آنهایی هستند که تأثیر آنها بر عملکرد مدل همان چیزی است که شما می خواهید اندازه گیری کنید.
  • فراپارامترهای مزاحم آنهایی هستند که برای مقایسه مقادیر مختلف فراپارامترهای علمی نیاز به بهینه سازی دارند. فراپارامترهای مزاحم مشابه پارامترهای مزاحم در آمار هستند.
  • فراپارامترهای ثابت در دور فعلی آزمایش‌ها مقادیر ثابتی دارند. هنگامی که مقادیر مختلف هایپرپارامترهای علمی را با هم مقایسه می کنید، مقادیر فراپارامترهای ثابت نباید تغییر کنند. با تثبیت برخی فراپارامترها برای مجموعه‌ای از آزمایش‌ها، باید بپذیرید که نتایج حاصل از آزمایش‌ها ممکن است برای تنظیمات دیگر فراپارامترهای ثابت معتبر نباشد. به عبارت دیگر، فراپارامترهای ثابت برای هر نتیجه‌ای که از آزمایش‌ها می‌گیرید، هشدارهایی ایجاد می‌کنند.

به عنوان مثال، فرض کنید هدف شما به شرح زیر است:

تعیین کنید که آیا مدلی با لایه های پنهان بیشتر خطای اعتبارسنجی کمتری دارد یا خیر.

در این مورد:

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

یک هایپرپارامتر خاص می تواند یک هایپرپارامتر علمی، هایپرپارامتر مزاحم یا هایپرپارامتر ثابت باشد. تعیین هایپرپارامتر بسته به هدف آزمایشی تغییر می کند. به عنوان مثال، تابع فعال سازی می تواند یکی از موارد زیر باشد:

  • هایپرپارامتر علمی: آیا ReLU یا tanh انتخاب بهتری برای مشکل ما است؟
  • هایپرپارامتر مزاحم: آیا بهترین مدل پنج لایه بهتر از بهترین مدل شش لایه است که چندین عملکرد مختلف فعال سازی ممکن را مجاز می کنید؟
  • هایپرپارامتر ثابت: برای شبکه های ReLU، آیا اضافه کردن نرمال سازی دسته ای در یک موقعیت خاص کمکی می کند؟

هنگام طراحی دور جدیدی از آزمایشات:

  1. فراپارامترهای علمی برای هدف آزمایشی را شناسایی کنید. (در این مرحله می توانید تمام هایپرپارامترهای دیگر را به عنوان هایپرپارامترهای مزاحم در نظر بگیرید.)
  2. برخی از فراپارامترهای مزاحم را به هایپرپارامترهای ثابت تبدیل کنید.

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

ما توصیه می کنیم که یک هایپرپارامتر مزاحم را به یک هایپرپارامتر ثابت تبدیل کنید، زمانی که اخطارهای ارائه شده با رفع آن سنگین تر از هزینه گنجاندن آن به عنوان یک فراپارامتر مزاحم است. هر چه یک هایپرپارامتر مزاحم بیشتر با فراپارامترهای علمی تعامل داشته باشد، تثبیت مقدار آن آسیب بیشتری خواهد داشت. به عنوان مثال، بهترین مقدار استحکام پوسیدگی وزن معمولاً به اندازه مدل بستگی دارد، بنابراین مقایسه اندازه‌های مدل‌های مختلف با فرض یک مقدار خاص از پوسیدگی وزن، چندان روشنگر نخواهد بود.

برخی از پارامترهای بهینه ساز

به عنوان یک قاعده کلی، برخی از فراپارامترهای بهینه ساز (مثلاً نرخ یادگیری، تکانه، پارامترهای زمان بندی نرخ یادگیری، بتای Adam و غیره) فراپارامترهای مزاحم هستند زیرا تمایل دارند بیشترین تعامل را با تغییرات دیگر داشته باشند. این هایپرپارامترهای بهینه ساز به ندرت ابرپارامترهای علمی هستند زیرا هدفی مانند "بهترین نرخ یادگیری برای خط لوله فعلی چیست؟" بینش زیادی ارائه نمی دهد. به هر حال، بهترین تنظیم می تواند با تغییر خط لوله بعدی تغییر کند.

ممکن است برخی از فراپارامترهای بهینه ساز را گهگاه به دلیل محدودیت منابع یا شواهد قوی مبنی بر عدم تداخل آنها با پارامترهای علمی اصلاح کنید. با این حال، به طور کلی باید فرض کنید که برای مقایسه منصفانه بین تنظیمات مختلف هایپرپارامترهای علمی، باید ابرپارامترهای بهینه ساز را جداگانه تنظیم کنید، و بنابراین نباید ثابت شوند. علاوه بر این، هیچ دلیل پیشینی برای ترجیح یک مقدار فراپارامتر بهینه ساز بر دیگری وجود ندارد. به عنوان مثال، مقادیر فراپارامتر بهینه ساز معمولاً به هیچ وجه بر هزینه محاسباتی گذرها یا گرادیان ها تأثیر نمی گذارد.

انتخاب بهینه ساز

انتخاب بهینه ساز معمولاً یکی از موارد زیر است:

  • یک فراپارامتر علمی
  • یک هایپرپارامتر ثابت

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

تعیین کنید کدام بهینه ساز کمترین خطای اعتبارسنجی را در تعداد معینی از مراحل ایجاد می کند.

از طرف دیگر، ممکن است به دلایل مختلف، بهینه ساز را به یک هایپرپارامتر ثابت تبدیل کنید، از جمله:

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

فراپارامترهای منظم سازی

فراپارامترهای معرفی شده توسط یک تکنیک منظم سازی معمولاً فراپارامترهای مزاحم هستند. با این حال، انتخاب اینکه آیا اصلاً تکنیک منظم سازی را شامل شود یا نه، یک فراپارامتر علمی یا ثابت است.

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

فراپارامترهای معماری

فراپارامترهای معماری اغلب ابرپارامترهای علمی یا ثابت هستند زیرا تغییرات معماری می تواند بر هزینه های سرویس و آموزش، تأخیر و نیازهای حافظه تأثیر بگذارد. به عنوان مثال، تعداد لایه‌ها معمولاً یک فراپارامتر علمی یا ثابت است، زیرا تمایل دارد عواقب چشمگیری برای سرعت تمرین و استفاده از حافظه داشته باشد.

وابستگی به فراپارامترهای علمی

در برخی موارد، مجموعه هایپرپارامترهای مزاحم و ثابت به مقادیر فراپارامترهای علمی بستگی دارد. برای مثال، فرض کنید می‌خواهید تعیین کنید کدام بهینه‌ساز در تکانه نستروف و آدام کمترین خطای اعتبارسنجی را تولید می‌کند. در این مورد:

  • فراپارامتر علمی بهینه ساز است که مقادیر {"Nesterov_momentum", "Adam"} را می گیرد.
  • مقدار optimizer="Nesterov_momentum" فراپارامترهای {learning_rate, momentum} را معرفی می‌کند، که ممکن است مزاحم یا هایپرپارامترهای ثابت باشند.
  • مقدار optimizer="Adam" فراپارامترهای {learning_rate, beta1, beta2, epsilon} را معرفی می‌کند که ممکن است مزاحم یا اپرپارامترهای ثابت باشند.

فراپارامترهایی که فقط برای مقادیر خاصی از فراپارامترهای علمی وجود دارند، هایپرپارامترهای شرطی نامیده می شوند. دو ابرپارامتر شرطی را فقط به این دلیل که نام یکسانی دارند یکسان فرض نکنید! در مثال قبل، هایپرپارامتر شرطی به نام learning_rate یک فراپارامتر متفاوت برای optimizer="Nesterov_momentum" نسبت به optimizer="Adam" است. نقش آن در دو الگوریتم مشابه است (اگرچه یکسان نیست)، اما محدوده مقادیری که در هر یک از بهینه‌سازها به خوبی کار می‌کنند، معمولاً با چندین مرتبه بزرگی متفاوت است.

مجموعه ای از مطالعات ایجاد کنید

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

  • فراپارامترهایی که در آزمایش‌ها متفاوت هستند.
  • مقادیری که این هایپرپارامترها می توانند بگیرند ( فضای جستجو ).
  • تعداد آزمایشات
  • یک الگوریتم جستجوی خودکار برای نمونه برداری از این تعداد آزمایش از فضای جستجو.

از طرف دیگر، می‌توانید با تعیین مجموعه‌ای از تنظیمات هایپرپارامتر به صورت دستی، یک مطالعه ایجاد کنید.

هدف از مطالعات این است که به طور همزمان:

  • خط لوله را با مقادیر مختلف هایپرپارامترهای علمی اجرا کنید.
  • "بهینه سازی حذف" (یا "بهینه سازی بیش از") فراپارامترهای مزاحم به طوری که مقایسه بین مقادیر مختلف ابرپارامترهای علمی تا حد امکان منصفانه باشد.

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

  • یک مطالعه که در آن optimizer="Nesterov_momentum" و فراپارامترهای مزاحم {learning_rate, momentum} هستند.
  • مطالعه دیگری که در آن optimizer="Adam" و فراپارامترهای مزاحم عبارتند از {learning_rate, beta1, beta2, epsilon} .

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

می‌توانید از هر الگوریتم بهینه‌سازی بدون گرادیان، از جمله روش‌هایی مانند بهینه‌سازی بیزی یا الگوریتم‌های تکاملی، برای بهینه‌سازی بیش از فراپارامترهای مزاحم استفاده کنید. با این حال، ما ترجیح می‌دهیم از جستجوی شبه تصادفی در مرحله کاوش تنظیم استفاده کنیم، زیرا دارای مزایای مختلفی است که در این تنظیمات دارد. پس از پایان یافتن اکتشاف، توصیه می‌کنیم از پیشرفته‌ترین نرم‌افزار بهینه‌سازی بیزی (در صورت موجود بودن) استفاده کنید.

یک مورد پیچیده‌تر را در نظر بگیرید که در آن می‌خواهید تعداد زیادی از مقادیر فراپارامترهای علمی را با هم مقایسه کنید، اما انجام این تعداد مطالعات مستقل غیرعملی است. در این صورت می توانید کارهای زیر را انجام دهید:

  • پارامترهای علمی را در همان فضای جستجو به عنوان فراپارامترهای مزاحم قرار دهید.
  • از یک الگوریتم جستجو برای نمونه برداری از مقادیر فراپارامترهای علمی و مزاحم در یک مطالعه استفاده کنید.

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

بین آزمایش های آموزنده و مقرون به صرفه تعادل برقرار کنید

هنگام طراحی یک مطالعه یا دنباله ای از مطالعات، بودجه محدودی را برای دستیابی به سه هدف زیر اختصاص دهید:

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

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

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

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

متأسفانه، بهبود در هر یک از این سه بعد مستلزم یکی از موارد زیر است:

  • افزایش تعداد آزمایشات و در نتیجه افزایش هزینه منابع.
  • یافتن راهی برای صرفه جویی در منابع در یکی از ابعاد دیگر.

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

از نتایج تجربی بیاموزید

توصیه: علاوه بر تلاش برای دستیابی به هدف علمی اصیل هر گروه از آزمایش ها، چک لیستی از سؤالات اضافی را نیز بررسی کنید. اگر مشکلاتی را کشف کردید، آزمایش‌ها را بازبینی کرده و دوباره اجرا کنید.

در نهایت، هر گروه از آزمایش ها هدف خاصی دارند. شما باید شواهدی را که آزمایش‌ها برای رسیدن به آن هدف ارائه می‌کنند، ارزیابی کنید. با این حال، اگر سؤالات درستی بپرسید، اغلب می‌توانید مسائلی را برای تصحیح قبل از اینکه مجموعه‌ای از آزمایش‌ها به سمت هدف اصلی خود پیشرفت کنند، پیدا کنید. اگر این سوالات را نپرسید، ممکن است نتیجه گیری نادرستی بگیرید.

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

قبل از تجزیه و تحلیل مجموعه ای از آزمایشات برای پیشرفت به سمت هدف اصلی آنها، سؤالات اضافی زیر را از خود بپرسید:

  • آیا فضای جستجو به اندازه کافی بزرگ است؟ اگر نقطه بهینه از یک مطالعه نزدیک به مرز فضای جستجو در یک یا چند بعد باشد، جستجو احتمالاً به اندازه کافی گسترده نیست. در این مورد، مطالعه دیگری را با فضای جستجوی گسترده اجرا کنید.
  • آیا نقاط کافی را از فضای جستجو نمونه برداری کرده اید؟ اگر نه، امتیاز بیشتری بگیرید یا در اهداف تنظیم کمتر جاه طلب باشید.
  • چه کسری از کارآزمایی‌ها در هر مطالعه غیرممکن است؟ یعنی، کدام آزمایش‌ها از هم جدا می‌شوند، ارزش‌های ضرر واقعاً بدی دریافت می‌کنند یا اصلاً اجرا نمی‌شوند زیرا برخی از محدودیت‌های ضمنی را نقض می‌کنند؟ هنگامی که بخش بسیار زیادی از نقاط در یک مطالعه غیرممکن است، فضای جستجو را تنظیم کنید تا از نمونه برداری از چنین نقاطی اجتناب کنید، که گاهی اوقات نیاز به پارامترسازی مجدد فضای جستجو دارد. در برخی موارد، تعداد زیادی از نقاط غیر قابل اجرا می تواند نشان دهنده یک اشکال در کد آموزشی باشد.
  • آیا مدل مسائل بهینه سازی را نشان می دهد؟
  • از منحنی های آموزشی بهترین آزمایش ها چه می توانید بیاموزید؟ برای مثال، آیا بهترین آزمایش‌ها دارای منحنی‌های تمرینی منطبق با اضافه‌برازش مشکل‌ساز هستند؟

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

هنگامی که به سؤالات قبلی پاسخ دادید، می‌توانید شواهدی را که آزمایش‌ها برای رسیدن به هدف اصلی شما ارائه می‌دهند، ارزیابی کنید. برای مثال، ارزیابی مفید بودن یک تغییر یا خیر .

یک فضای جستجو مشکوک است اگر بهترین نقطه نمونه برداری شده از آن نزدیک به مرز آن باشد. اگر دامنه جستجو را در آن جهت گسترش دهید، ممکن است نقطه بهتری پیدا کنید.

برای بررسی مرزهای فضای جستجو، توصیه می‌کنیم آزمایش‌های تکمیل‌شده را بر روی آنچه ما نمودارهای محوری فراپارامتر پایه می‌نامیم، ترسیم کنیم. در اینها، مقدار هدف اعتبارسنجی را در مقابل یکی از فراپارامترها (به عنوان مثال، نرخ یادگیری) رسم می کنیم. هر نقطه در طرح مربوط به یک آزمایش واحد است.

مقدار هدف اعتبارسنجی برای هر کارآزمایی معمولاً باید بهترین مقداری باشد که در طول دوره آموزشی به دست آمده است.

نمودار میزان خطا در مجموعه اعتبارسنجی (محور y) در مقابل نرخ یادگیری اوج (محور x) که مرزهای فضای جستجوی بد را نشان می‌دهد. در این نمودار، بهترین آزمایش‌ها (کمترین میزان خطا) نزدیک به لبه فضای جستجو هستند، جایی که اوج نرخ یادگیری بالاترین است.نمودار میزان خطا در مجموعه اعتبارسنجی (محور y) در مقابل نرخ یادگیری اوج (محور x) که مرزهای فضای جستجوی خوبی را نشان می‌دهد. در این نمودار، بهترین آزمایش‌ها (کمترین میزان خطا) نزدیک به وسط فضای جستجو هستند، جایی که نرخ یادگیری اوج 0.001 است، نه زمانی که نرخ یادگیری اوج 0.00001 یا 0.1 است.

شکل 1: نمونه هایی از مرزهای فضای جستجوی بد و مرزهای فضای جستجو قابل قبول.

نمودارهای شکل 1 میزان خطا (کمتر بهتر) را در برابر میزان یادگیری اولیه نشان می دهد. اگر بهترین نقاط به سمت لبه فضای جستجو (در برخی ابعاد) جمع شوند، ممکن است لازم باشد مرزهای فضای جستجو را تا زمانی گسترش دهید که بهترین نقطه مشاهده شده دیگر به مرز نزدیک نباشد.

اغلب، یک مطالعه شامل کارآزمایی‌های «غیرقابل اجرا» می‌شود که از هم جدا می‌شوند یا نتایج بسیار بدی به دست می‌آورند (که با X قرمز در شکل 1 مشخص شده‌اند). اگر همه آزمایش‌ها برای نرخ‌های یادگیری بیشتر از مقدار آستانه غیرممکن باشند، و اگر آزمایش‌هایی که بهترین عملکرد را دارند، نرخ یادگیری در لبه آن منطقه داشته باشند، مدل ممکن است از مشکلات پایداری رنج ببرد که از دسترسی به نرخ‌های یادگیری بالاتر جلوگیری می‌کند .

نمونه برداری از نقاط کافی در فضای جستجو

به طور کلی، تشخیص اینکه آیا فضای جستجو به اندازه کافی متراکم شده است، می تواند بسیار دشوار باشد . 🤖 اجرای آزمایش‌های بیشتر بهتر از اجرای آزمایش‌های کمتر است، اما آزمایش‌های بیشتر هزینه اضافی آشکاری را به همراه دارد.

از آنجایی که تشخیص اینکه چه زمانی به اندازه کافی نمونه برداری کرده اید بسیار سخت است، توصیه می کنیم:

  • نمونه برداری از آنچه می توانید بپردازید.
  • کالیبره کردن اعتماد به نفس شهودی شما از نگاه مکرر به نمودارهای محورهای مختلف فراپارامتر و تلاش برای دریافت حس تعداد نقاط در منطقه "خوب" فضای جستجو.

منحنی های تمرین را بررسی کنید

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

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

هنگام بررسی منحنی های زیان، روی سؤالات زیر تمرکز کنید:

  • آیا هیچ یک از کارآزمایی ها بیش از حد مشکل ساز را نشان می دهند؟ زمانی که خطای اعتبارسنجی در طول تمرین شروع به افزایش می کند، بیش از حد برازش مشکل ساز رخ می دهد. در تنظیمات آزمایشی که با انتخاب «بهترین» آزمایشی برای هر تنظیم فراپارامترهای علمی، فراپارامترهای مزاحم را بهینه می‌کنید، حداقل در هر یک از بهترین آزمایش‌ها مطابق با تنظیمات فراپارامترهای علمی که مقایسه می‌کنید، بیش از حد مشکل‌ساز را بررسی کنید. اگر هر یک از بهترین کارآزمایی ها بیش از حد مشکل ساز را نشان داد، یکی یا هر دو مورد زیر را انجام دهید:

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

    کاهش بیش از حد برازش اغلب با استفاده از تکنیک‌های منظم‌سازی معمولی ساده است که حداقل پیچیدگی کد یا محاسبات اضافی را اضافه می‌کنند (به عنوان مثال، منظم‌سازی حذف، هموارسازی برچسب، کاهش وزن). بنابراین، اضافه کردن یک یا چند مورد از این موارد به دور بعدی آزمایش‌ها معمولاً بی‌اهمیت است. برای مثال، اگر فراپارامتر علمی «تعداد لایه‌های پنهان» است و بهترین آزمایشی که از بیشترین تعداد لایه‌های پنهان استفاده می‌کند، بیش از حد مشکل‌ساز را نشان می‌دهد، توصیه می‌کنیم به جای انتخاب فوری تعداد کمتر لایه‌های پنهان، دوباره با منظم‌سازی اضافی امتحان کنید.

    حتی اگر هیچ یک از «بهترین» کارآزمایی‌ها، بیش از حد مشکل‌ساز را نشان ندهند، اگر در هر یک از آزمایش‌ها رخ دهد، ممکن است مشکلی وجود داشته باشد. انتخاب بهترین آزمایشی، پیکربندی‌هایی را که بیش از حد مشکل‌ساز نشان می‌دهند سرکوب می‌کند و به نفع آنهایی است که این کار را نمی‌کنند. به عبارت دیگر، انتخاب بهترین آزمایشی به نفع پیکربندی‌هایی با منظم‌سازی بیشتر است. با این حال، هر چیزی که تمرین را بدتر می کند، می تواند به عنوان یک تنظیم کننده عمل کند، حتی اگر اینطور در نظر گرفته نشده باشد. به عنوان مثال، انتخاب یک نرخ یادگیری کمتر می‌تواند آموزش را با توقف فرآیند بهینه‌سازی منظم کند، اما ما معمولاً نمی‌خواهیم نرخ یادگیری را به این شکل انتخاب کنیم. توجه داشته باشید که "بهترین" آزمایش برای هر تنظیم از فراپارامترهای علمی ممکن است به گونه ای انتخاب شود که به نفع مقادیر "بد" برخی از فراپارامترهای علمی یا مزاحم باشد.

  • آیا واریانس مرحله به مرحله بالا در آموزش یا خطای اعتبارسنجی در اواخر آموزش وجود دارد؟ اگر چنین است، این می تواند با هر دو مورد زیر تداخل داشته باشد:

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

    محتمل ترین دلایل واریانس گام به گام عبارتند از:

    • واریانس دسته ای به دلیل نمونه گیری تصادفی از مجموعه آموزشی برای هر دسته.
    • مجموعه های اعتبار سنجی کوچک
    • استفاده از نرخ یادگیری که در اواخر آموزش خیلی زیاد است.

    درمان های احتمالی عبارتند از:

    • افزایش اندازه دسته.
    • به دست آوردن داده های اعتبار سنجی بیشتر
    • استفاده از کاهش نرخ یادگیری
    • با استفاده از میانگین گیری Polyak.
  • آیا آزمایشات در پایان آموزش همچنان در حال بهبود هستند؟ اگر چنین است، شما در رژیم "محاسبه محدود" هستید و ممکن است از افزایش تعداد مراحل آموزشی یا تغییر برنامه نرخ یادگیری بهره مند شوید.

  • آیا عملکرد در مجموعه‌های آموزشی و اعتبارسنجی مدت‌ها قبل از مرحله آموزشی نهایی اشباع شده است؟ اگر چنین است، این نشان می دهد که شما در رژیم "محاسباتی محدود" هستید و ممکن است بتوانید تعداد مراحل آموزشی را کاهش دهید.

فراتر از این لیست، بسیاری از رفتارهای اضافی را می توان از بررسی منحنی های زیان آشکار کرد. به عنوان مثال، افزایش تلفات تمرینی در طول تمرین معمولاً نشان دهنده وجود اشکال در خط لوله تمرین است.

تشخیص مفید بودن یک تغییر با نمودارهای جداسازی

نمودار جداسازی که بهترین ارزش کاهش وزن را برای ResNet-50 آموزش دیده در ImageNet بررسی می کند. در این مورد، کمترین میزان خطای اعتبارسنجی زمانی است که کاهش وزن ~0.00005 باشد.

شکل 2: نمودار جداسازی که بهترین ارزش کاهش وزن را برای ResNet-50 آموزش دیده در ImageNet بررسی می کند.

اغلب، هدف مجموعه ای از آزمایش ها، مقایسه مقادیر مختلف یک فراپارامتر علمی است. به عنوان مثال، فرض کنید می خواهید مقدار کاهش وزن را تعیین کنید که منجر به بهترین خطای اعتبارسنجی می شود. نمودار جداسازی یک مورد خاص از نمودار محوری هایپرپارامتر پایه است. هر نقطه در یک نمودار جداسازی با عملکرد بهترین آزمایش در برخی (یا همه) فراپارامترهای مزاحم مطابقت دارد. به عبارت دیگر، پس از "بهینه سازی" فراپارامترهای مزاحم، عملکرد مدل را رسم کنید.

نمودار جداسازی انجام یک مقایسه سیب به سیب بین مقادیر مختلف ابرپارامتر علمی را ساده می کند. به عنوان مثال، نمودار جداسازی در شکل 2 ارزش کاهش وزن را نشان می دهد که بهترین عملکرد اعتبار سنجی را برای یک پیکربندی خاص از ResNet-50 آموزش دیده در ImageNet ایجاد می کند.

اگر هدف تعیین اینکه آیا اصلاً شامل کاهش وزن می‌شود یا خیر، بهترین نقطه از این نمودار را با خط پایه عدم کاهش وزن مقایسه کنید. برای مقایسه منصفانه، خط مبنا نیز باید میزان یادگیری خود را به همان اندازه به خوبی تنظیم کند.

هنگامی که داده‌های تولید شده توسط جستجوی (شبه) تصادفی دارید و یک ابرپارامتر پیوسته برای نمودار جداسازی در نظر می‌گیرید، می‌توانید نمودار جداسازی را با سطل کردن مقادیر محور x نمودار محورهایپرپارامتر اصلی و انجام بهترین آزمایش در هر برش عمودی تقریب بزنید. توسط سطل ها تعریف شده است.

نقشه های عمومی مفید را خودکار کنید

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

علاوه بر این، توصیه می‌کنیم منحنی‌های ضرر را برای همه آزمایش‌ها به‌طور خودکار تولید کنید. علاوه بر این، توصیه می‌کنیم یافتن بهترین کارآزمایی‌های هر مطالعه و بررسی منحنی‌های ضرر آن‌ها را تا حد امکان آسان کنید.

شما می توانید بسیاری از طرح ها و تجسم های بالقوه مفید دیگر را اضافه کنید. به تعبیر جفری هینتون :

هر بار که چیز جدیدی را طرح ریزی می کنید، چیز جدیدی یاد می گیرید.

تعیین کنید که آیا تغییر نامزد را بپذیرید یا خیر

Summary: When deciding whether to make a change to our model or training procedure or adopt a new hyperparameter configuration, note the different sources of variation in your results.

When trying to improve a model, a particular candidate change might initially achieve a better validation error compared to an incumbent configuration. However, repeating the experiment might demonstrate no consistent advantage. Informally, the most important sources of inconsistent results can be grouped into the following broad categories:

  • Training procedure variance, retrain variance, or trial variance : the variation between training runs that use the same hyperparameters but different random seeds. For example, different random initializations, training data shuffles, dropout masks, patterns of data augmentation operations, and orderings of parallel arithmetic operations are all potential sources of trial variance.
  • Hyperparameter search variance, or study variance : the variation in results caused by our procedure to select the hyperparameters. For example, you might run the same experiment with a particular search space but with two different seeds for quasi-random search and end up selecting different hyperparameter values.
  • Data collection and sampling variance : the variance from any sort of random split into training, validation, and test data or variance due to the training data generation process more generally.

True, you can compare validation error rates estimated on a finite validation set using fastidious statistical tests. However, often the trial variance alone can produce statistically significant differences between two different trained models that use the same hyperparameter settings.

We are most concerned about study variance when trying to make conclusions that go beyond the level of an individual point in hyperparameters space. The study variance depends on the number of trials and the search space. We have seen cases where the study variance is larger than the trial variance and cases where it is much smaller. Therefore, before adopting a candidate change, consider running the best trial N times to characterize the run-to-run trial variance. Usually, you can get away with only recharacterizing the trial variance after major changes to the pipeline, but you might need fresher estimates in some cases. In other applications, characterizing the trial variance is too costly to be worth it.

Although you only want to adopt changes (including new hyperparameter configurations) that produce real improvements, demanding complete certainty that a given change helps isn't the right answer either. Therefore, if a new hyperparameter point (or other change) gets a better result than the baseline (taking into account the retrain variance of both the new point and the baseline as best as you can), then you probably should adopt it as the new baseline for future comparisons. However, we recommend only adopting changes that produce improvements that outweigh any complexity they add.

After exploration concludes

Summary: Bayesian optimization tools are a compelling option once you're done searching for good search spaces and have decided what hyperparameters are worth tuning.

Eventually, your priorities will shift from learning more about the tuning problem to producing a single best configuration to launch or otherwise use. At that point, there should be a refined search space that comfortably contains the local region around the best observed trial and has been adequately sampled. Your exploration work should have revealed the most essential hyperparameters to tune and their sensible ranges that you can use to construct a search space for a final automated tuning study using as large a tuning budget as possible.

Since you no longer care about maximizing insight into the tuning problem, many of the advantages of quasi-random search no longer apply. Therefore, you should use Bayesian optimization tools to automatically find the best hyperparameter configuration. Open-Source Vizier implements a variety of sophisticated algorithms for tuning ML models, including Bayesian Optimization algorithms.

Suppose the search space contains a non-trivial volume of divergent points , meaning points that get NaN training loss or even training loss many standard deviations worse than the mean. In this case, we recommend using black-box optimization tools that properly handle trials that diverge. (See Bayesian Optimization with Unknown Constraints for an excellent way to deal with this issue.) Open-Source Vizier has supports for marking divergent points by marking trials as infeasible, although it may not use our preferred approach from Gelbart et al. , depending on how it is configured.

After exploration concludes, consider checking the performance on the test set. In principle, you could even fold the validation set into the training set and retrain the best configuration found with Bayesian optimization. However, this is only appropriate if there won't be future launches with this specific workload (for example, a one-time Kaggle competition).