یکی از مواردی که لازم است در فرآیند آموزش شبکه های عصبی لحاظ شود، فرآیند کالیبره کردن یا تیون کردن هایپرپارامترهاست. یعنی چگونه هایپرپارامترها را تغییر دهیم تا به کیفیت مناسب از لحاظ زمان، بازدهی، عملکرد و ... برسیم. استراتژیهای متفاوتی برای کالیبره کردنِ هایپرپارامترها وجود دارد؛ با این حال، هدف ما از این پست، اشاره به مساله دیگری است. در زمان تیون کردن، سعی کنید هایپرپارامترهایی را انتخاب کنید که روی هم تاثیر نگذارند. سعی می کنیم با ذکر مثال این موضوع را باز کنیم.
در شکلی که در ادامه قرار داده ایم، محور افقی یک هایپرپارامتر و محور عمودی، هایپرپارامتری دیگر است. رنگهای مختلف هم نشان دهنده هزینه هستند. در شکل سمت راست، اگر فرض کنیم مقدار محور افقی 1/4 باشد، اگر در طول محور عمودی حرکت کنیم (یعنی مقدار این هایپرپارامتر را تغییر دهیم)، می توان به جاهای مناسبی از cost function رسید. یعنی یک هایپرپارامتر ثابت شده و دیگری تغییر می کند و مشکلی پیش نمی آید.
در شکل پایین اتفاق دیگری می افتد. همانطور که می بینید، correlation وجود دارد بین هایپرپارامترها و به هم وابستگی دارند. یعنی اگر یکی تغییر کند، روی دیگری تاثیر گذار است. به عبارتی، این دو نیاز دارند که همزمان تیون شوند. این کار بسیار سخت و هزینه بر است. علت این موضوع، تعداد حالات مختلف این دو هایپرپارامتر است که با هم می توانند داشته باشند. اگر به صورت جبری بررسی کنیم، در شکل بالا، هر هاپیر پارامتر اگر A حالت داشته باشد، تعداد کل حالات 2A می شوند در حالی که در پایین، A2 حالت متفاوت خواهیم داشت که لازم است بررسی شوند.
حال فرض کنید که تعداد هایپرپارامترهای وابسته بیشتر باشند. در این حالت بدیهی است که وضعیت بدتر می شود. اگر بتوانیم هایپرپارامترهایی که قابلیت decouple شدن داشته باشند را استفاده کنیم، مانند شکل اول، می توان فرآیند کالیبره کردن را با سرعت بیشتری پیشبرد.
پینوشت: اشکالی که قرار داده ایم، برگرفته شده از مقاله DECOUPLED WEIGHT DECAY REGULARIZATION هستند. در مقاله ذکر شده، بررسی شده که چگونه می توان هایپرپارامترهای روشهایی مثل Adam و SGD را به گونه ای decouple نموده و عملکرد را بهتر کرد.