مقداردهی اولیه و نرمال‌سازی

واریانس مقداردهی Xavier و He را حساب کنی و تفاوت BatchNorm و LayerNorm را در آموزش و استنتاج توضیح بدهی.

14 دقیقه مطالعه · 5 سؤال تمرینی · یادگیری ماشین میانی و پیشرفته

چرا مقداردهی اولیه مهم است؟

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

ولی مقیاس تصادفی هم مهم است. برای z=∑i=1ninwixiz = \sum_{i=1}^{n_{\text{in}}} w_i x_i با وزن‌ها و ورودی‌های مستقل و میانگین صفر:

Var⁡(z)=nin Var⁡(w) Var⁡(x)\operatorname{Var}(z) = n_{\text{in}}\,\operatorname{Var}(w)\,\operatorname{Var}(x)

اگر ninVar⁡(w)n_{\text{in}}\operatorname{Var}(w) از ۱ دور باشد، واریانس سیگنال لایه‌به‌لایه به‌صورت نمایی کوچک یا بزرگ می‌شود.

مقداردهی Xavier و He

هدف: واریانس فعال‌سازی‌ها در گذر رو به جلو و واریانس گرادیان‌ها در گذر رو به عقب تقریباً ثابت بماند.

Xavier/Glorot (برای فعال‌سازی‌های متقارن مثل tanh): میانگینی بین شرط گذر رو به جلو (ninn_{\text{in}}) و رو به عقب (noutn_{\text{out}}):

Var⁡(w)=2nin+nout\operatorname{Var}(w) = \frac{2}{n_{\text{in}} + n_{\text{out}}}

He/Kaiming (برای ReLU): ReLU تقریباً نیمی از واحدها را صفر می‌کند و واریانس را نصف می‌کند؛ ضریب ۲ این را جبران می‌کند:

Var⁡(w)=2nin\operatorname{Var}(w) = \frac{2}{n_{\text{in}}}

هر دو را می‌شود با توزیع نرمال یا یکنواخت با همین واریانس پیاده کرد.

BatchNorm و LayerNorm

نرمال‌سازی، فعال‌سازی‌ها را به میانگین صفر و واریانس یک می‌برد و بعد با پارامترهای یادگرفتنی γ,β\gamma, \beta مقیاس و جابه‌جا می‌کند:

x^=x−μσ2+ϵ,y=γ x^+β\hat x = \frac{x - \mu}{\sqrt{\sigma^2 + \epsilon}}, \qquad y = \gamma\,\hat x + \beta

تفاوت در این است که μ\mu و σ2\sigma^2 روی چه محوری حساب می‌شوند:

  • BatchNorm: برای هر ویژگی، روی نمونه‌های دسته (Batch). در استنتاج از میانگین متحرک آماره‌های آموزش استفاده می‌شود، پس رفتار آموزش و استنتاج فرق دارد و با دسته‌های خیلی کوچک ضعیف است.
  • LayerNorm: برای هر نمونه، روی ویژگی‌های همان نمونه. به اندازه‌ی دسته وابسته نیست و در آموزش و استنتاج یکسان عمل می‌کند. برای همین در ترنسفورمرها و RNNها رایج است.

تمرین‌های این درس را حل کن (رایگان)