نرمال‌سازی دسته‌ای کیست؟ توضیح بده.
نرمال سازی دسته ای یا batch normalization یک تکنیک است که روی ورودی هر لایه شبکه عصبی مصنوعی اعمال می شود که از طریق تغییر مرکز توزیع دیتاها یا تغییر دادن مقیاس آنها موجب سریعتر و پایدارتر شدن شبکه عصبی می شود.این تکنیک در سال 2015 توسط سرگئی یوفه وکریستین سگدی معرفی شد.تاثیر کارایی این روش هنوز به‌طور دقیق مشخص نیست ولی باور دارند که موجب کاهش اثر شیفت توزیع داخلی یا "internal covariate shift" می شود. به این صورت که وقتی خروجی یک لایه شبکه میخواهد وارد ورودی شبکه دیگر بشود،به وسیله ی تابع فعال ساز ممکن است شکل توزیع به هم بخورد و هر بار این شکل توزیع در بهینه سازی پارامترهای لایه بعد نیز مؤثر باشد، ولی وقتی از نرمال سازی دسته ای استفاده می شود،اثر توزیع گرفته می شود. با این وجود نرمال سازی دسته ای موجب انفجار گرادیانت می شود که توسط اقداماتی از جمله اتصال پرشی در شبکه های باقی مانده یا residual network حل می شود. امروزه روش هایی از جمله گرادیانت کلیپینگ و تنظیم کننده هوشمند ابرپارامترها درکنار ویا بجای نرمال سازی دسته ای استفاده می شوند و ضعف های این روش را پوشش می دهند.اثر شیفت توزیع داخلی یا "internal covariate shift".به تغییر توزیع ورودی در سیستم های یادگیری اثر شیفت توزیع می گوییم. حال اگر این اتفاق در سطح نورون ها در شبکه عصبی اتفاق بیفتد،آن را اثر شیفت توزیع داخلی می نامیم.این موضوع در تمامی شبکه های عصبی به‌صورت کم و بیش وجود دارد ولی وقتی شبکه نورن ها طویل می شود، آنگاه نمود بیشتری پیدا می کند، درست مانند داستان یک کلاغ و چهل کلاغ. یکی از مثال های کلاسیک در این زمینه عبارت است از زمانی که در شبکه عصبی، داده های آموزش ما همگی به‌صورت سیاه و سفید باشد ولی در زمان تست داده هایی به‌صورت رنگی و ... بدهیم. این مسئله باعث می شود مدل ما کارایی خود را به دلیل مشکل اثر شیفت توزیع داخلی از دست بدهد. بنابراین، روش نرمال سازی دسته ای برای کاهش این جابجایی های ناخواسته برای سرعت بخشیدن به آموزش و تولید مدل های قابل اعتمادتر پیشنهاد شده است.اعتقاد بر این است که علاوه بر کاهش تغییر متغیر داخلی، نرمال سازی دسته ای مزایای دیگری نیز به همراه دارد. با این عملیات اضافی، شبکه می‌تواند از نرخ یادگیری بالاتر بدون ناپدید شدن یا انفجار شیب استفاده کند. علاوه بر این، به نظر می‌رسد نرمال‌سازی دسته‌ای یک اثر منظم‌کننده دارد، به‌طوری که شبکه ویژگی‌های تعمیم آن را بهبود می‌بخشد، و بنابراین استفاده از حذف برای کاهش بیش‌برازش غیرضروری است. همچنین مشاهده شده است که با نرمال سازی دسته ای ، شبکه نسبت به طرح های مختلف اولیه سازی و نرخ های یادگیری انعطاف پذیرتر می شود.روش کار.انتقال.در یک شبکه عصبی، نرمال سازی دسته ای از طریق یک مرحله نرمال سازی حاصل می شود که میانگین ها و واریانس های ورودی های هر لایه را ثابت(میانگین صفر و واریانس یک مرسوم است.) می کند. در حالت ایده‌آل، نرمال‌سازی در کل مجموعه داده های آموزش انجام می‌شود، اما گاهی اوقات که ما از روش های بهینه سازی مثلا بهینه سازی تصادفی استفاده می کنیم،این عمل ممکن نیست. بنابراین، نرمال سازی به دسته های کوچک یا به اصطلاح mini-batch در فرایند آموزش محدود می شود.در معادلات زیر میانگین و واریانس هر دسته کوچک به دست آمده است.B نشان دهنده ی هر دسته کوچک و m نشان دهنده ی سایز آن است:formula_1 و formula_2.برای یک لایه شبکه با بعد d ، ما در ورودی formula_3 ،هر بعد را جداگانه نرمال سازی می کنیم:formula_4formula_5 یک عدد بسیار کوچک است که به منظور صفر نشدن مخرج در نظر گرفته می شود. همچنین زمانی که بخواهیم از دیتای نرمال شده به دیتای اصلی برگردیم،باید از تبدیل formula_6 استفاده کنیم. که formula_7 و formula_8 به صورت متوالی در طی آموزش،بهینه می شوند.پس انتشار.پس انتشار به پدیده ای گفته می شود که در شبکه های عصبی از طریق محاسبه مقدار تابع هزینه و قاعده زنجیره ای سعی در بهینه سازی ضرایب نورون ها دارد. حال در این قسمت ما قصد داریم پیاده سازی نرمال سازی دسته ای را در آن نشان دهیم.formula_9 وابسته به انتخاب تابع فعال ساز ما است:formula_10 و formula_11 و formula_12formula_13 و formula_14و در نهایت formula_15همچنین ببینید.توزیع نرمالتوزیع نرمال چند متغیره