موضوع مقاله: نرمال‌سازی (یادگیری ماشین) | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # نرمال‌سازی (یادگیری ماشین) | مقدمه: نرمال‌سازی داده (یا تغییر مقیاس ویژگی) شامل روش‌هایی است که داده‌های ورودی را به‌گونه‌ای بازمقیاس می‌کنند که ویژگی‌ها دارای بازه، میانگین، واریانس یا دیگر خواص آماری یکسان بشوند. | ## بخش 1: نرمال‌سازی (یادگیری ماشین) | برای مثال، یکی از روش‌های پرکاربرد تغییر مقیاس ویژگی، نرمال‌سازی کمینه-بیشینه است که در آن هر ویژگی طوری تغییر داده می‌شود که دارای بازه یکسان (معمولاً [۰، ۱] یا [-۱، ۱ باشد. برای نمونه فرض کنیم که یک ویژگی بر حسب کیلومتر و ویژگی دیگر بر حسب نانومتر اندازه‌گیری شده باشد. از سوی دیگر، نرمال‌سازی فعال‌سازی فقط مختص یادگیری عمیق است و شامل روش‌هایی می‌شود که فعال‌سازی نورون‌های پنهان درون شبکه عصبی مصنوعی را بازمقیاس می‌کنند. نرمال‌سازی معمولاً برای موارد زیر استفاده می‌شود: افزایش سرعت همگرایی آموزش، کاهش حساسیت به تغییرات و مقیاس ویژگی‌ها در داده‌های ورودی، کاهش بیش‌برازش، ایجاد تعمیم بهتر مدل به داده‌های دیده‌نشده. تکنیک‌های نرمال‌سازی اغلب از نظر نظری به عنوان روشی برای کاهش تغییر هم‌پراکندگی، هموارسازی چشم‌انداز بهینه‌سازی و افزایش منظم‌سازی توجیه می‌شوند، هرچند که عمدتاً موفقیت تجربی آن‌ها دلیل اصلی استفاده از آن‌هاست. نرمال‌سازی دسته‌ای مقالهٔ اصلی: نرمال‌سازی دسته‌ای نرمال‌سازی دسته‌ای به جای اعمال نرمال‌سازی بر روی تمامی ورودی‌ها، روی فعال‌سازی‌های یک لایه برای هر ریز-دسته عمل می‌کند. یک شبکه پیش‌خور ساده را در نظر بگیرید که با زنجیره کردن ماژول‌ها تعریف شده است:که در آن هر ماژول شبکه می‌تواند یک تبدیل خطی، یک تابع فعال‌سازی غیرخطی، یک هم‌نهشتی و غیره باشد. برای مثال، اگر درست پس از در میانه زنجره قرار داده شود، آنگاه شبکه به صورت زیر عمل می‌کند:ماژول بَچ‌نُرم روی تمامی ورودی‌های به طور یکجا عمل نمی‌کند، بلکه باید هر بار روی یک دسته از ورودی‌ها اعمال شود و به همه دسته‌ها به طور همزمان نگاه نمی‌کنیم. به بیان دقیق‌تر، فرض کنید یک دسته از ورودی‌های را به طور هم‌زمان به شبکه وارد می‌کنیم. در میانه شبکه نیز، بردارهایی به صورت زیر وجود خواهد داشت:ماژول بَچ‌نُرم، میانگین و واریانس هر دسته از بردارها را محاسبه می‌کند:که در آن تعداد ورودی‌ها (بردارها) در دسته فعلی، اندیس مؤلفه‌ها در هر بردار (ویژگی) و اندیس یا نشانگر هر بردار در داخل دسته (بَچ) است. به بیان دیگر، در فرمول بالا مؤلفه -ام (ویژگی -ام) هر بردار در دسته در نظر گرفته می‌شود و میانگین و واریانس این مقادیر محاسبه می‌گردد. سپس هر مؤلفه طوری نرمال‌سازی می‌شود که میانگین صفر و واریانس یک داشته باشد:در این‌جا یک ثابت مثبت کوچک مانند است که برای پایداری عددی به واریانس افزوده می‌شود تا از تقسیم بر صفر جلوگیری شود. در نهایت، یک تبدیل خطی اعمال می‌شود:در این رابطه، و پارامترهای درون ماژول بَچ‌نُرم هستند. این پارامترها قابل یادگیری‌اند و معمولاً با استفاده از گرادیان کاهشی آموزش داده می‌شوند. بَچ‌نُرم را می‌توان اینگونه تفسیر کرد: در مسیر آموزش، بَچ‌نُرم روشی است که بار عملکرد صرفاً خطی را به دوش می‌کشد، تا لایه‌ها فقط بر مدل‌سازی جنبه‌های غیرخطی داده تمرکز کنند. این موضوع می‌تواند مفید باشد، زیرا همواره به سادگی می‌توان یک لایه تبدیل خطی بعد از لایه‌های شبکه عصبی اضافه کرد. در مقاله اصلی ادعا شده است که عملکرد بَچ‌نُرم، کاهش لغزش کوواریانس (هم‌پراکندگی) درونی است، هرچند این ادعا هم طرفداران و هم منتقدانی دارد. موارد خاص مقاله اصلی توصیه می‌کند که بَچ‌نُرم فقط پس از یک تبدیل خطی استفاده شود و نه پس از یک فعال‌سازی غیرخطی. همچنین، جمله بایاس اهمیتی ندارد، زیرا با کم کردن میانگین در مراحل بعدی حذف می‌شود، بنابراین فرم کلی به صورت خواهد بود. یعنی اگر بَچ‌نُرم پیش از یک تبدیل خطی قرار گیرد، جمله بایاس آن تبدیل خطی صفر در نظر گرفته می‌شود. به این معنا که باید تمام خروجی‌های یک هسته یکسان را به عنوان نقاط داده متفاوتی درون یک دسته در نظر بگیرد. به این حالت گاهی نرمال‌سازی دسته‌ای مکانی، بَچ‌نُرم2D یا بَچ‌نُرم به‌ازای هر کانال گفته می‌شود. به‌طور مشخص، فرض کنید یک لایه کانولوشنی دوبعدی به صورت زیر تعریف شده باشد: که در آن: فعال‌سازی نورون در موقعیت در کانال -ام از لایه -ام است. برای حفظ ناوردایی انتقالی، بَچ‌نُرم تمام خروجی‌های حاصل از یک کرنل یکسان در یک دسته را به عنوان داده‌های بیشتری در همان دسته در نظر می‌گیرد. به عبارت دیگر، این نرمال‌سازی برای هر «کرنل» (یا به‌طور معادل، برای هر کانال ) تنها یک مرتبه اعمال می‌شود، نه برای هر «فعال‌سازی» به صورت جداگانه: که در آن اندازه دسته، ارتفاع نگاشت ویژگی و عرض نگاشت ویژگی است. یعنی با وجود آنکه تنها نقطه داده در یک دسته وجود دارد، تمام خروجی حاصل از کرنل در این دسته بطور یکسان در نظر گرفته می‌شوند. در ادامه، نرمال‌سازی و تبدیل خطی نیز به صورت «به‌ازای هر کرنل» انجام می‌شود: ملاحظات مشابهی برای نرمال‌سازی دسته‌ای در کانولوشن‌های با بعد نیز برقرار است. | ## بخش 2: نرمال‌سازی (یادگیری ماشین) | شبکه عصبی بازگشتی استاندارد، بدون نرمال‌سازی، رابطه زیر را ارضا می‌کند:که در آن به‌ترتیب وزن‌ها و بایاس‌ها هستند و تابع فعال‌سازی است. با اعمال نرمال‌سازی دسته‌ای، این رابطه به شکل زیر در می‌آید:دو روش ممکن برای تعریف «دسته» در نرمال‌سازی دسته‌ای برای آراِن‌اِن‌ها وجود دارد: «فریم‌به‌فریم» و «دنباله‌محور». در این صورت، نرمال‌سازی دسته‌ای فریم‌به‌فریم به معنای نرمال‌سازی روی است:و نرمال‌سازی دنباله‌محور به معنای نرمال‌سازی روی است:نرمال‌سازی دسته‌ای فریم‌به‌فریم برای وظایف علّی مانند پیش‌بینی نویسه بعدی مناسب است، جایی که فریم‌های آینده در دسترس نیستند و این موضوع نرمال‌سازی به ازای هر فریم را الزامی می‌کند. نرمال‌سازی دسته‌ای دنباله‌محور برای وظایفی مانند بازشناسی گفتار مناسب است، که در آن کل دنباله‌ها در دسترس هستند، اما طول‌های متغیر دارند. در یک دسته، دنباله‌های کوتاه‌تر با صفر پُر می‌شوند تا با طول بلندترین دنباله دسته یکسان شوند. در چنین تنظیماتی، روش فریم‌به‌فریم توصیه نمی‌شود، زیرا تعداد فریم‌های بدون پَدشدگی در امتداد محور زمان کاهش می‌یابد و این امر به برآوردهای آماری هرچه ضعیف‌تر منجر می‌شود. همچنین امکان اعمال نرمال‌سازی دسته‌ای بر حافظه‌های طولانی کوتاه مدت نیز وجود دارد. بهبودها تاکنون نرمال‌سازی دسته‌ای (بَچ‌نُرم) بسیار محبوب بوده است و تلاش‌های متعددی برای بهبود آن انجام شده است. برخی از این نمونه‌ها عبارت‌اند از: بچینگ شبح‌گونه: تقسیم تصادفی یک دسته به زیردسته‌ها و اعمال نرمال‌سازی دسته‌ای به صورت جداگانه روی هر زیردسته افت وزن روی و ؛ و ترکیب نرمال‌سازی دسته‌ای با نرمال‌سازی گروهی. یکی از مشکلات خاص نرمال‌سازی دسته‌ای این است که در طول آموزش، میانگین و واریانس برای هر دسته به صورت برخط محاسبه می‌شوند (معمولاً بصورت یک میانگین متحرک نمایی)، اما در مرحله استنتاج، میانگین و واریانس روی مقادیری که در طول آموزش محاسبه شده‌اند ثابت (فریز) می‌شوند. این نابرابری را می‌توان با شبیه‌سازی میانگین متحرک در زمان استنتاج کاهش داد:که در آن یک ابرپارامتر است که باید روی یک مجموعه اعتبارسنجی بهینه‌سازی شود. راهکارهای دیگر تلاش می‌کنند نرمال‌سازی دسته‌ای را به‌طور کامل حذف کنند، مانند رزنت بدون نرمال‌ساز. نرمال‌سازی لایه‌ای نرمال‌سازی لایه‌ای یک جایگزین پرکاربرد برای نرمال‌سازی دسته‌ای (بَچ‌نُرم) است. برخلاف بَچ‌نُرم که فعال‌سازی‌ها را در امتداد بُعد دسته برای یک ویژگی معین نرمال‌سازی می‌کند، لِیرنُرم، نرمال‌سازی را راستای تمام ویژگی‌ها درون یک نمونه داده (ورودی) منفرد انجام می‌دهد نه ما بین ورودی‌ها. برای یک ورودی داده و یک لایه معین، لِیرنُرم میانگین و واریانس را بر روی تمام نورون‌های آن لایه محاسبه می‌کند. این نرمال‌سازی به صورت زیر تعریف می‌شود:که در آن:و اندیس بر روی نورون‌های موجود در آن لایه تغییر می‌کند. مثال‌ها برای مثال، در شبکه‌های عصبی کانولوشنی ، نرمال‌سازی لایه‌ای بر روی تمام فعال‌سازی‌های یک لایه اعمال می‌شود. با توجه به نمادگذاری پیشین، خواهیم داشت:توجه کنید که اندیس دسته حذف شده است، در حالی که اندیس کانال اضافه شده است. در شبکه‌های عصبی بازگشتی و ترنسفورمرها، نرمال‌سازی لایه‌ای به صورت مجزا برای هر گام زمانی اعمال می‌شود. برای مثال، اگر بردار پنهان در یک شبکه عصبی بازگشتی در گام زمانی برابر با باشد، که در آن بُعد بردار پنهان است، آنگاه لِیرنُرم به صورت زیر اعمال می‌شود:که در آن: نرمال‌سازی لایه‌ای با میانگین مربعات ریشه‌ای نرمال‌سازی لایه‌ای با میانگین مربعات ریشه‌ای :در اصل، این روش نوعی لِیرنُرم است که در آن و برابر با صفر در نظر گرفته می‌شوند. این حالت یک مورد خاص از نرمال‌سازی Lp یا نرمال‌سازی توانی است:که در آن یک ثابت است. نرمال‌سازی لایه‌ای تطبیقی نرمال‌سازی لایه‌ای تطبیقی مقادیر و را در لِیرنُرم نه از روی فعال‌سازی‌های خود لایه، بلکه از داده‌های دیگر محاسبه می‌کند. این روش نخستین بار برای شبکه‌های عصبی کانولوشنی پیشنهاد شد، و به طور مؤثری در ترنسفورمرهای مبتنی بر مدل‌های انتشاری به کار رفته است. برای مثال، در یک DiT، اطلاعات شرطی (مانند یک بردار کدگذاری متن) توسط یک پرسپترون چندلایه به مقادیر و تبدیل می‌شود و سپس این مقادیر در ماژول لِیرنُرم یک ترنسفورمر اعمال می‌گردند. نرمال‌سازی وزنی نرمال‌سازی وزنی روشی است الهام‌گرفته از نرمال‌سازی دسته‌ای که به جای نرمال‌سازی فعال‌سازی‌ها، ماتریس‌های وزن را در یک شبکه عصبی نرمال‌سازی می‌کند. یکی نمونه از این موارد نرمال‌سازی طیفی است که ماتریس‌های وزن را بر نُرم طیفی آن‌ها تقسیم می‌کند. نرمال‌سازی طیفی در شبکه‌های مولد تخاصمی‌ مانند شبکه مولد تخاصمی واسرشتاین مورد استفاده قرار می‌گیرد. | ## بخش 3: نرمال‌سازی (یادگیری ماشین) | RETURN با بازانتساب پس از هر به‌روزرسانی متمایزکننده، می‌توان کران بالایی و در نتیجه کران بالایی برای را بدست آورد. این الگوریتم را می‌توان با استفاده از به‌خاطرسپاری بیش از پیش تسریع کرد: در گام ، مقدار ذخیره می‌شود. از آنجا که بسیار به نزدیک است، نیز به نزدیک خواهد بود و این امر امکان همگرایی سریع را فراهم می‌کند. نرمال‌سازی‌های ویژه شبکه‌های عصبی پیچشی برخی از روش‌های نرمال‌سازی فعال‌سازی وجود دارند که فقط برای شبکه‌های عصبی پیچشی به‌کار می‌روند. این روش در یک لایه کانولوشنی، بلافاصله پس از یک تابع فعال‌سازی غیرخطی اعمال می‌شد و به صورت زیر تعریف می‌گردید: که در آن فعال‌سازی نورون در مکان و کانال است. به‌عبارت دیگر، هر پیکسل در یک کانال تحت تأثیر (سرکوب) فعال‌سازی‌های همان پیکسل در کانال‌های مجاور خود قرار می‌گیرد. پارامترهای ابرپارامترهایی هستند که با استفاده از یک مجموعه اعتبارسنجی انتخاب می‌شوند. ابرپارامترهای و همچنین اندازه این پنجره کوچک، با استفاده از یک مجموعه اعتبارسنجی انتخاب می‌شوند. روش‌های مشابه با عنوان نرمال‌سازی تقسیمی شناخته می‌شدند، زیرا فعال‌سازی‌ها را بر مقداری وابسته به خودِ فعال‌سازی‌ها تقسیم می‌کردند. این روش‌ها در اصل از زیست‌شناسی الهام گرفته شده بودند، جایی که برای توضیح پاسخ‌های غیرخطی نورون‌های قشری مغز و پدیده پوشانندگی غیرخطی در ادراک بینایی به‌کار می‌رفتند. هر دو نوع نرمال‌سازی محلی، بعدها با نرمال‌سازی دسته‌ای جایگزین شدند، که شکلی جهانی‌تر از نرمال‌سازی محسوب می‌شود. نرمال‌سازی گروهی نرمال‌سازی گروهی روشی است که آن هم صرفاً برای شبکه‌های عصبی کانولوشنی (سی‌ان‌ان‌ها) به‌کار می‌رود. این روش را می‌توان به صورت نرمال‌سازی لایه‌ای (لِیرنُرم) برای سی‌ان‌ان‌ها در نظر گرفت که به‌ازای هر گروه از کانال‌ها یک مرتبه اعمال می‌شود. نرمال‌سازی نمونه‌ای نرمال‌سازی نمونه‌ای یا نرمال‌سازی کنتراست، روشی است که نخستین بار برای انتقال سبک با شبکه‌های عصبی توسعه داده شد و آن نیز فقط برای سی‌ان‌ان‌ها استفاده می‌شود. این روش را می‌توان به صورت نرمال‌سازی لایه‌ای برای سی‌ان‌ان‌ها در نظر گرفت که به‌ازای هر کانال یک‌بار اعمال می‌شود، یا به‌طور معادل، به عنوان نرمال‌سازی گروهی که در آن هر گروه تنها شامل یک کانال است: نرمال‌سازی نمونه‌ای تطبیقی نرمال‌سازی نمونه‌ای تطبیقی گونه‌ای از نرمال‌سازی نمونه‌ای است که به‌طور ویژه برای انتقال سبک عصبی با استفاده از سی‌ان‌ان‌ها طراحی شده است، و نه صرفاً برای سی‌ان‌ان‌ها به‌طور کلی. در روش انتقال سبک AdaIN، یک سی‌ان‌ان و دو تصویر ورودی در نظر گرفته می‌شود: یکی برای محتوا و دیگری برای سبک. هر دو تصویر از طریق همان سی‌ان‌ان پردازش می‌شوند و در یک لایه مشخص ، نرمال‌سازی نمونه‌ای تطبیقی اعمال می‌شود. در این حالت، AdaIN ابتدا میانگین و واریانس فعال‌سازی‌های تصویر سبک را محاسبه می‌کند و سپس از آن‌ها به عنوان پارامترهای برای نرمال‌سازی نمونه‌ای روی استفاده می‌کند. به‌طور صریح، رابطه زیر برقرار است: ترنسفورمرها برخی روش‌های نرمال‌سازی به‌طور ویژه برای استفاده در ترنسفورمرها طراحی شده‌اند. ترنسفورمر اولیه سال ۲۰۱۷ از پیکربندی «post-LN» برای نرمال‌سازی لایه‌ای (لِیرنُرم) استفاده می‌کرد. آموزش این پیکربندی دشوار بود و به بهینه‌سازی ابرپارامتر دقیق و نیز یک مرحله «گرم‌کردن» در نرخ یادگیری نیاز داشت؛ به این صورت که نرخ یادگیری از مقدار کوچکی آغاز می‌شد و به تدریج افزایش می‌یافت. قرارداد «pre-LN» که چندین بار در سال ۲۰۱۸ پیشنهاد شد،برای آموزش آسان‌تر تشخیص داده شد، به گرم‌کردن نیاز نداشت و به همگرایی سریع‌تری منجر می‌شد. فیکس‌نُرم و اسکِیل‌نُرم هر دو بردارهای فعال‌سازی را در یک ترنسفورمر نرمال‌سازی می‌کنند. روش فیکس‌نرم بردارهای خروجی ترنسفورمر را بر نُرم L2 آن‌ها تقسیم می‌کند و سپس در یک پارامتر یادگرفتنی ضرب می‌نماید. روش اسکیل‌نرم تمام لِیرنُرم‌های درون ترنسفورمر را با تقسیم بر نُرم L2 جایگزین می‌کند و سپس نتیجه را در یک پارامتر یادگرفتنی ضرب می‌کند (که بین تمام ماژول‌های اسکیل‌نرم یک ترنسفورمر مشترک است). نرمال‌سازی پرس‌وجو–کلید بردارهای پرس‌وجو و کلید را طوری نرمال‌سازی می‌کند که نُرم L2 واحد داشته باشند. در nGPT، بسیاری از بردارها به‌گونه‌ای نرمال‌سازی می‌شوند که نُرم L2 واحد داشته باشند: از جمله بردارهای حالت پنهان، بردارهای تعبیه ورودی و خروجی، ستون‌های ماتریس وزن، و بردارهای پرس‌وجو و کلید. | ## جمع‌بندی | متفرقه نرمال‌سازی گرادیان بردارهای گرادیان را در طول پس‌انتشار نرمال‌سازی می‌کند.