پارامترها و هایپرپارامترها در یادگیری ماشین و یادگیری عمیق
وقتی شروع به یادگیری هر چیز جدیدی میکنید، یکی از مواردی که با آن دست و پنجه نرم خواهید کرد، زبان حوزهای است که میخواهید در آن وارد شوید. درک واضح اصطلاحات (و در برخی موارد نمادها و کلمات اختصاری) مورد استفاده در یک حوزه، اولین و اساسیترین گام، برای درک خود موضوع است.
در یادگیری ماشین یا یادگیری عمیق، یک مدل با پارامترهای مدل، تعریف یا نمایش داده میشود. با این حال، فرآیند آموزش یک مدل شامل انتخاب هایپرپارامترهایی است که الگوریتم یادگیری از آنها در جهت پیداکردن پارامترهای بهینهی مدل استفاده میکند؛ به نحوی که پارامترهای انتخاب شده بتوانند به درستی ویژگیهای ورودی (متغیرهای مستقل) را به برچسبها یا خروجی (متغیر وابسته) مدنظر برسانند، به گونهای که بتوان گفت مدل، به نمودی از هوش دست پیدا کرده است.
پس پارامترها و هایپرپارامترها دقیقا چه هستند؟ و چه ارتباطی با یکدیگر دارند؟
هایپرپارامترها
هایپرپارامترها در واقع پارامترهایی هستند که مقادیر آنها فرآیند یادگیری را کنترل میکند که در راستای مشخص کردن مقادیر پارامترهای مدلی هستند که یک الگوریتم یادگیری به یادگیری آنها منتج میشود. پیشوند “hyper_” تاکید میکند که آنها پارامترهای “سطح بالا” هستند که فرآیند یادگیری و پارامترهای مدل ناشی از آن را کنترل میکنند.
به عنوان یک مهندس یادگیری ماشین که یک مدل را طراحی میکند، شما مقادیر هایپرپارامترها را که توسط الگوریتم یادگیری مورد استفاده قرار میگیرد، حتی قبل از شروع آموزش مدل تعیین میکنید. با توجه به این نکته، گفته میشود که هایپرپارامترها خارج از خود مدل هستند؛ چرا که مدل نمیتواند مقادیر آنها را در طول یادگیری/آموزش تغییر دهد.
هایپترپارامترها زمانی که مدل در حال یادگیری و آموزش است، توسط الگوریتم یادگیری مورد استفاده قرار میگیرند، اما بخشی از مدل نهایی نیستند. در پایان فرآیند یادگیری، ما پارامترهای مدل آموزشدیده را در دست داریم که در واقع همان چیزی است که به عنوان مدل از آن یاد می کنیم. هایپرپارامترهایی که در طول آموزش مورد استفاده قرار گرفتند بخشی از این مدل نهایی نیستند. به عنوان مثال، ما با در دست داشتن مدل نهایی، نمیتوانیم بدانیم که از چه مقادیری برای هایپرپارامترها در روند آموزش آن استفاده شده است، و فقط پارامترهای ذخیرهشده در مدل را میتوانیم ببینیم.
اساساً، هر چیزی در یادگیری ماشین و یادگیری عمیق که مقادیر یا پیکربندی آنها را قبل از شروع آموزش انتخاب کنید و تا پایان آموزش ثابت بماند، یک هایپرپارامتر است.
اینها چند مثال از انواع هایپرپارامترهای این حوزه هستند:
- سهم دادگان آموزش و آزمون
- نرخ یادگیری در الگوریتم بهینهسازی (مانند الگوریتم گرادیان کاهشی یا gradient descent)
- انتخاب الگوریتم بهینهسازی (مانند گرادیان کاهشی، گرادیان کاهشی تصادفی، یا بهینهساز Adam)
- انتخاب تابع فعالساز یا activation function در شبکههای عصبی (مانند تابع Sigmoid، ReLU یا Tanh)
- انتخاب تابع هزینه یا ضرری که توسط مدل استفاده خواهد شد
- تعداد لایههای مخفی در شبکههای عصبی
- تعداد نورونها در هر لایه از شبکههای عصبی
- مقدار drop-out در شبکههای عصبی (احتمال حذف تصادفی برخی از نورونها)
- تعداد مراحل آموزش روی دادههای آموزش (epoch) در شبکههای عصبی
- تعداد دستهها در الگوریتمهای دستهبندی (clustering)
- اندازهی کرنل یا فیلتر در شبکههای عصبی پیچشی (convolutional)
- اندازهی لایههای ادغام (pooling)
- اندازهی دستهها در حین آموزش (batch size)
پارامترها
در مقابل، پارامترها مقادیری داخلی برای مدل هستند؛ به این معنا که مقدار آنها با استفاده از دادهها در طول آموزش یاد گرفته و یا تخمین زده میشوند؛ الگوریتم یادگیری مورد استفاده سعی میکند نگاشت بین ویژگیهای ورودی و برچسبها یا خروجی مد نظر را بیاموزد.
آموزش مدل معمولاً با مقداردهی اولیه پارامترها به برخی مقادیر (مقادیر تصادفی یا صفر) شروع میشود. با پیشرفت آموزش، مقادیر اولیه با استفاده از یک الگوریتم بهینهسازی بهروز میشوند (مانند گرادیان کاهشی) و الگوریتم یادگیری به طور مداوم مقادیر پارامترها را با پیشرفت یادگیری بهروز میکند، اما مقادیر هایپرپارامتر تعیین شده توسط طراح مدل بدون تغییر باقی میمانند.
در پایان فرآیند یادگیری، پارامترهای مدل چیزی هستند که خود مدل را تشکیل میدهند.
مثالهای از پارامترها:
- ضریبها (یا وزنها) در رگرسیون خطی یا رگرسیون لجستیک
- وزنها و بایاسهای یک شبکهی عصبی
- مرکز دستهها در یک الگوریتم دستهبندی
نتیجهگیری
این مقاله نتیحهی دانشی است که از دورههای زیر به دست آمده است:
- دورهی تخصص یادگیری عمیق (The Deep Learning Specialization) در Coursera ارائهشده توسط Andrew NG
- دورهی یادگیری ماشین (Machine Learning) در Coursera ارائهشده توسط Andrew Ng
منبع:
https://towardsdatascience.com/parameters-and-hyperparameters-aa609601a9ac
دیدگاهتان را بنویسید