نرم های متفاوتِ لایه های میانی: Layer Norm vs Batch Norm


نرم های متفاوتِ لایه های میانی: Layer Norm vs Batch Norm

در تسک های مربوط به NLP می توان به دلایل متفاوتی اشاره کرد ولی در این پست به یک ایده کلی می پردازیم. احتمالا حتما دیده اید که در شبکه هایی که به transformerها ربط دارند، از layer normalization استفاده می شود. این یک قانون کلی نیست ولی مشکل batch norm این است که موازی کردن مدل هایش زمانبر است. اگر مدل و سایر محاسبات و دادگان روی سخت افزارهای متفاوت قرار داشته باشند، اصطلاحا توزیع شده باشند، به علت وابستگی به داده های بچ در batch norm، هماهنگی زمانبر است. معمولا برای کارهای مربوط به transformer، بدلیل محاسبات زیاد، تعداد سخت افزار، مثلا gpu، زیادی لازم است. وقتی وابستگی بین دستگاه ها وجود دارد، نیاز به sync کردن اجتناب ناپذیر است. استفاده از layer normalization این مزیت را دارد که به هر حال گونه ای از normalization را خواهیم داشت و از همه مهمتر این است که دیگر وابسته به batch نخواهیم بود تا آماره ها را بدست آوریم.



نوشته شده بوسیله: کامران پناهی
کامران پناهی

کارشناسی ارشد هوش مصنوعی

علاقه مند به یادگیری عمیق

مطالب مشابه