Batch Normalization در یادگیری عمیق - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

Batch Normalization در یادگیری عمیق

+1 امتیاز
سلام.

خوندم که لایه batch normalization باعث افزایش سرعت در آموزش یادگیری عمیق میشه دقیقا چیکار می کنه؟
سوال شده خرداد 1, 1396  بوسیله ی مریم اکرمی (امتیاز 482)   25 55 66

6 پاسخ

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

 

در هر batch، جدا نرمال سازی می کنه. به این ترتیب و باز حذف correlation بین نمونه ها سرعت بالاتر میره.
پاسخ داده شده مرداد 29, 1396 بوسیله ی hhdd (امتیاز 83)  
انتخاب شد خرداد 22, 1399 بوسیله ی مریم اکرمی
0 امتیاز

از vanishing gradients هم جلوگیری می کند.

پاسخ داده شده بهمن 30, 1397 بوسیله ی مصطفی ساتکی (امتیاز 21,998)   24 34 75
0 امتیاز

batch normalization,بچ نرمالیزیشن

به تصویر بالا نگاه کنید؛ نمودار های لاس ترین نمایش داده شده که یکی برای شبکه بدون batch normalization (سبز) هست و دیگری شبکه با batch normalization (آبی)...
 
batch normalization تکنیکی هست که باعث میشه شبکه عصبی سریع‌تر ترین بشه. این مساله به وضوح در نمودارهای لاس دیده میشه. 
 
در شبکه بدون batch normalization (سبز)، حدودا ایپاک 150 به لاس 0.3 رسیدیم. درحالی‌که در شبکه با batch normalization  (آبی)، خیلی زود (زیر 100 ایپاک) به لاس 0.3 رسیدیم. این اثر batch normalization  هست.

 

پاسخ داده شده شهریور 16, 1401 بوسیله ی ali pourazar (امتیاز 85)   1 3 5
0 امتیاز
  • batch normalization فرآیند آموزش شبکه را بهینه می کند و ساخت شبکه عصبی عمیق را آسان تر و سریع تر آموزش می دهد.
  • batch normalization مقادیر وارد شده به هر تابع فعال‌سازی را تنظیم می‌کند و توابع فعال‌سازی را قابل دوام‌تر می‌کند، زیرا غیرخطی‌هایی که به نظر خوب کار نمی‌کنند با استفاده از batch normalization قابل اجرا می‌شوند.
  • batch normalization، مقداردهی اولیه وزن‌ها را آسان‌تر می‌کند و همچنین امکان استفاده از نرخ‌های یادگیری بالاتر را فراهم می‌کند که در نهایت سرعت آموزش شبکه را افزایش می‌دهد.
پاسخ داده شده شهریور 25, 1401 بوسیله ی toopak (امتیاز 2,458)   16 47 66
0 امتیاز
نرمال‌سازی دسته‌ای تکنیکی است که در یادگیری عمیق برای نرمال‌سازی لایه ورودی با تنظیم و مقیاس‌بندی فعال‌سازی‌های لایه قبلی در هر دسته، به منظور کاهش تغییر متغیر داخلی و بهبود عملکرد کلی مدل استفاده می‌شود.
 
در یادگیری عمیق، داده های ورودی از طریق چندین لایه شبکه های عصبی منتقل می شوند که هر لایه دارای مجموعه ای از وزن ها و سوگیری های خاص خود است. با انتشار داده‌های ورودی در لایه‌ها، توزیع فعال‌سازی‌ها می‌تواند تغییر کند که منجر به پدیده‌ای به نام تغییر متغیر داخلی می‌شود. این می تواند روند آموزش را کند کرده و همگرایی مدل را دشوارتر کند.
 
نرمال سازی دسته ای این مشکل را با عادی سازی فعال سازی هر لایه در هر دسته برطرف می کند. این کار را ابتدا با محاسبه میانگین و انحراف استاندارد فعال‌سازی‌ها برای دسته فعلی انجام می‌دهد و سپس از این مقادیر برای تنظیم و مقیاس‌بندی فعال‌سازی‌ها استفاده می‌کند. این تضمین می‌کند که توزیع فعال‌سازی‌ها در طول آموزش نسبتاً پایدار باقی می‌ماند، که می‌تواند روند آموزش را سرعت بخشد و عملکرد کلی مدل را بهبود بخشد.
 
توجه به این نکته ضروری است که Normalization دسته ای معمولاً قبل از عملکرد فعال سازی اعمال می شود و معمولاً در لایه های پنهان استفاده می شود، اما می توان آن را در لایه ورودی نیز اعمال کرد.
 
به طور خلاصه، نرمال سازی دسته ای تکنیکی است که در یادگیری عمیق برای عادی سازی فعال سازی هر لایه در هر دسته، به منظور کاهش تغییر متغیر داخلی و بهبود عملکرد کلی مدل استفاده می شود.
پاسخ داده شده بهمن 4, 1401 بوسیله ی عباس مولایی (امتیاز 2,754)   1 5 13
0 امتیاز

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

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

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

 

با استفاده از batch normalization، می‌توان پایداری و سرعت آموزش شبکه‌های عصبی عمیق را بهبود بخشید. همچنین می‌تواند به کاهش overfitting و بهبود عملکرد تعمیم کمک کند

پاسخ داده شده مرداد 30, 1402 بوسیله ی haniye sarbazi (امتیاز 983)   2 6 15
ویرایش شده مرداد 30, 1402 بوسیله ی haniye sarbazi
...