مقداردهی اولیه و نرمالسازی
واریانس مقداردهی Xavier و He را حساب کنی و تفاوت BatchNorm و LayerNorm را در آموزش و استنتاج توضیح بدهی.
14 دقیقه مطالعه · 5 سؤال تمرینی · یادگیری ماشین میانی و پیشرفته
چرا مقداردهی اولیه مهم است؟
اگر همهی وزنهای یک لایه را یکسان (مثلاً صفر) مقداردهی کنیم، همهی نورونهای آن لایه خروجی یکسان و گرادیان یکسان میگیرند و تا آخر آموزش قرینه میمانند. یعنی عملاً یک نورون داریم. برای شکستن تقارن (Symmetry Breaking) وزنها باید تصادفی باشند.
ولی مقیاس تصادفی هم مهم است. برای با وزنها و ورودیهای مستقل و میانگین صفر:
اگر از ۱ دور باشد، واریانس سیگنال لایهبهلایه بهصورت نمایی کوچک یا بزرگ میشود.
مقداردهی Xavier و He
هدف: واریانس فعالسازیها در گذر رو به جلو و واریانس گرادیانها در گذر رو به عقب تقریباً ثابت بماند.
Xavier/Glorot (برای فعالسازیهای متقارن مثل tanh): میانگینی بین شرط گذر رو به جلو () و رو به عقب ():
He/Kaiming (برای ReLU): ReLU تقریباً نیمی از واحدها را صفر میکند و واریانس را نصف میکند؛ ضریب ۲ این را جبران میکند:
هر دو را میشود با توزیع نرمال یا یکنواخت با همین واریانس پیاده کرد.
BatchNorm و LayerNorm
نرمالسازی، فعالسازیها را به میانگین صفر و واریانس یک میبرد و بعد با پارامترهای یادگرفتنی مقیاس و جابهجا میکند:
تفاوت در این است که و روی چه محوری حساب میشوند:
- BatchNorm: برای هر ویژگی، روی نمونههای دسته (Batch). در استنتاج از میانگین متحرک آمارههای آموزش استفاده میشود، پس رفتار آموزش و استنتاج فرق دارد و با دستههای خیلی کوچک ضعیف است.
- LayerNorm: برای هر نمونه، روی ویژگیهای همان نمونه. به اندازهی دسته وابسته نیست و در آموزش و استنتاج یکسان عمل میکند. برای همین در ترنسفورمرها و RNNها رایج است.