- 5.0/5.0
- (1 نظرات)
- تعداد قسمت 14
- مدت زمان 02:58:49
- انتشار 1403/03/06
- آخرین ویرایش 1403/03/06
علی استادی
مدرس دانشسرا
برچسب های محبوب
دوره بهینه سازی هایپرپارامتر های مدل های ماشین لرنینگ و دیپ لرنینگ
- 5.0/5.0
- تعداد مهارتجو 22
- آخرین ویرایش 1403/03/06
- انتشار 1403/09/14
توضیحات دوره بهینه سازی هایپرپارامتر های مدل های ماشین لرنینگ و دیپ لرنینگ
اگر بخواهیم تیون کردن هایپرپارامترها را به عنوان یک مسئله بهینه سازی در نظر بگیریم میتوان گفت که تابع هدف دقت و یا خطای مدل میباشد که همواره سعی در بیشینه سازی دقت و یا کمینه سازی خطا داریم. همچنین فضای جستجو، مقادیر ممکن برای هایپرپارامترهای مدل میباشد که توسط ما باید مشخص گردد. یک نکته مهم در بهینه سازی هایپرپارامترها این است که رسیدن به جواب بهینه کاملاً سراری ممکن نیست. زیرا بازه مقادیر ممکن برای خیلی از هایپرپارامترها نامتناهی است و رسیدن به نقطه بهینه کاملا سراسری در فضای جستجوی نامتناهی غیر ممکن است. پس ما در درجه اول باید فضای جستجو برای مقادیر هایپر پارامترها را محدود کنیم و در فضای محدود تعریف شده به دنبال جواب بهینه ی محلی باشیم. شاید اولین و راحت ترین راه استفاده از آزمون و خطا برای تعیین مقادیر هایپر پارامترها باشد ولی از آن جایی که این کار باید به صورت دستی انجام شود و فرسایشی است منطقی نمیباشد. برای پیدا کردن مقادیر بهینه هایپرپارامترها از الگوریتم های جستجو استفاده میکنیم که در این دوره الگوریتم های random search ، grid search ، bayesian search و همین طور الگوریتم های تکاملی evolutionary algorithms مانند الگوریتم ژنتیک بررسی میشود.
فرایند بهینه سازی هایپر پارامترها فقط محدود به تعیین کردن فضای جستجو و الگوریتم جستجو نمیشود بلکه برای پیاده سازی درست و اصولی باید قوائدی را از ابتدای فاز پیش پردازش دیتا در نظر گرفت تا مدل بهینه ی به دست آمده کمترین بایاس و خطا را در مواجه با دیتای دنیای حقیقی داشته باشد که در این دوره به این مفاهیم می پردازیم.
نکته ی مهم دیگری که باید در نظر داشت این است که برای انجام دادن یک پروژه ی ماشین لرنینگ ، باید الگویتم های مختلف امتحان شود و نیاز است که ساختار هر کدام بهینه شود و بهتر است از چند روش بهینه سازی استفاده شود که این بدان معناست که اگر به صورت سنتی و بدون در نظر گرفتن functional programming بخواهیم پروژه را پیاده سازی کنیم مجبور هستیم تعدادی زیادی خط کد بزنیم و کد های تکراری در پروژه زیاد می شود . در این دوره الگوریتم ها به صورت فانکشنال پیاده سازی می شوند تا این که مقیاس پذیری کد بیشتر شود و استفاده و فهم آن راحت تر باشد .
این دوره یه صورت پروژه محور و کاربردی ارائه میشه و مفاهیم و الگوریتم های جستجو به صورت مفهومی توضیح داده می شوند و فرمول های ریاضی و تئوری الگوریتم های جستجو توضیح داده نشده است . اما در قسمت های مختلف کد ، لینک های مناسبی برای مطالعه ی بیشتر قرار داده شده است .
پیش نیاز دوره
درکد های پیاده سازی این دوره ، الگوریتم های مختلف ماشین لرنینگ و دیپ لرنینگ استفاده شده به همین جهت توصیه می شود قبل از شروع دوره به مفاهیم زیر اشراف داشته باشید :
- پایتون مقدماتی : آموزش یادگیری پایتون
- آموزش جامع کتابخانه ی پانداس
- مصور سازی داده ها در پایتون
- آشنایی و پیاده سازی الگوریتم های ماشین لرنینگ
- آشنایی و پیاده سازی الگوریتم های دیپ لرنینگ
سرفصل های دوره بهینه سازی هایپرپارامتر های مدل های ماشین لرنینگ و دیپ لرنینگ
یکی از ترند های مقالات چند ساله ی اخیر در حوزه ی دیپ لرنیگ و ماشین لرنینگ ، استفاده ی از شبکه های عصبی ترکیبی یا به اصطلاح Hybrid و تیون کردن ساختار آن با استفاده از الگوریتم های تکاملی مانند ژنتیک ، گرگ خاکستری ، کلونی زنبور عسل و ... می باشد . در اپیزود های آخر این دوره مفصل در باره ی این موضوع توضیح داده شده است و دو شبکه ی CNN LSTM و CNN GRU توسط الگوریتم های ژنتیک و ازدحام ذرات بهینه شده و با هم مقایسه شده است که می تواند برای دانشجو هایی که قصد نگارش مقاله های مشابه را دارند بسیار کمک کننده باشد .
کد های این دوره در محیط google colab پیاده سازی شده اند و نیاز به هیچ پیش نیاز سخت افزاری و نرم افزاری برای ران گرفتن کد ها نمی باشد . همچنین فایل کد ها و دیتا های استفاده شده به دوره ضمیمه شده و بعد از خرید قابل دانلود و استفاده می باشد.
- این اپیزود شامل معرفی استاد و توضیح در مورد محتوای دوره می شود .
- در این اپیزود در مورد مفهوم بهینه سازی ، بررسی تیون کردن هایپر پارامتر ها به عنوان یک مسئله ی بهینه سازی صحبت میشود . و همچنین مفهوم پارامتر و هایپر پارامتر های مدل و تفاوت آن مورد بررسی قرار می گیرد.
- در این اپیزود دیتاست تایتانیک رو در google colab ، وارد می کنم و آن را تحلیل می کنیم . همچنین در مورد دستور nunique و حذف ستون های اضافه صحبت می کنیم و علاوه بر آن یک استراتژی برای برخورد با داده های از دست رفته را بررسی می کنیم .
- در این قسمت می پردازیم به نحوه ی تقسیم کردن دیتا به ترین و تست و همین طور با اعتبار سنجی متقابل یا به اصطلاح cross validation و نقش آن در بهینه سازی هایپرپارامترها آشنا میشیم .
- در این قسمت می پردازیم به پیش پردازش دیتا و نکاتی که باید در این فاز رعایت کنیم تا بهینه سازی هایپر پارامتر ها به صورت صحیح انجام شود . با مفهوم column transformer و pipline آشنا میشیم و بررسی می کنیم چگونه فاز پیش پردازش را داخل pipline بگنجانیم .
- در این قسمت با مفهوم informed and uninformed search algorithms آشنا میشیم و مکانیزم الگوریتم های grid search و random search رو بررسی می کنیم .
- در این قسمت با نحوه ی پیاده سازی در پایتون رو بررسی می کنیم که شامل تعریف فضای جستجو ، مشخص کردن الگوریتم جستجو ، ایجاد pipline و ترکیب pipline و الگوریتم های جستجو می باشد . همچنین بررسی می کنیم که چکونه کد زدن فانکشنال باعث جلوگیری از تکرار کد ها میشه و یک فانکشن کلی برای پیدا کردن الگوریتم بهینه با grid search و random search، تست کردن مدل بهینه ی یافت شده ، بررسی معیار های ارزیابی مختلف و رسم نمودار های ارزیابی مدل تعریف می کنیم .
- در این قسمت بعد از مشخص کردن فضای جستجوی هایپرپارامتر ها برای هر مدل از فانکشن تعریف شده برای بهینه سازی مدل های ماشین لرنینگ با الگوریتم grid search و random search استفاده می کنیم .
- در این قسمت مکانیزم و فلوچارت bayesian optimization رو بررسی می کنیم ، یک فانکشن برای پیاده بهینه سازی مدل ها با bayesian search تعریف می کنیم و با استفاده از آن مدل های ماشین لرنینگ را بهینه می کنیم .
- در این اپیزود به نحوه ی ساختن یک شبکه ی عصبی MLP و مشخص کردن هایپر پارامتر های مد نظر جهت تیون شدن و بهینه سازی آن شبکه با استفاده از bayesian search می پردازیم .
- معرفی دیتاست Diamonds و تحیلیل آن . انجام پیش پردازش های لازم برای فیت کردن شبکه های CNN LSTM و CNN GRU .
- پیاده سازی شبکه های CNN LSTM و CNN GRU
- بررسی الگوریتم های تکاملی و مکانیزم کلی آن ها . ایجاد یک فانکشن برای بهینه سازی و ارزیابی شبکه های عصبی با استفاده از الگوریتم های تکاملی مختلف .
- بررسی فلوچارت الگوریتم ژنتیک و پارامتر های آن . پیاده سازی الگوریتم های ژنتیک و ازدحام ذرات به منظور بهینه سازی هایپر پارامتر های شبکه عصبی . استفاده از فانکشن تعریف شده برای بهینه سازی شبکه های عصبی ترکیبی با استفاده از الگوریتم های تکاملی مختلف . مقایسه ی نتایج و نتیحه گیری .
قسمت های دوره بهینه سازی هایپرپارامتر های مدل های ماشین لرنینگ و دیپ لرنینگ
1 - مقدمه - قسمت اول
00:06:06
2 - مفهوم بهینه سازی هایپر پارامتر ها - قسمت 2
00:08:34
3 - تحلیل و ورود دیتاست تایتانیک - قسمت 3
00:12:34
4 - تقسیم کردن دیتا به ترین و تست - قسمت 4
00:09:52
5 - پیش پردازش دیتا - قسمت 5
00:11:33
6 - مفهوم informed and uninformed search algorithms - قسمت 6
00:12:07
7 - نحوه پیاده سازی در پایتون - قسمت 7
00:24:04
8 - مشخص کردن فضای جستجوی هایپرپارامتر ها
00:10:34
9 - مکانیزم و فلوچارت bayesian optimization
00:19:24
10 - نحوه ی ساختن یک شبکه ی عصبی MLP
00:16:43
11 - دیتاست Diamonds و تحیلیل آن
00:09:17
12 - پیاده سازی شبکه های CNN LSTM و CNN GRU
00:06:12
13 - الگوریتم های تکاملی و مکانیزم کلی آن ها
00:15:33
14 - بررسی فلوچارت الگوریتم ژنتیک و پارامتر های آن
00:16:16
فایل پیوست دوره بهینه سازی هایپرپارامتر های مدل های ماشین لرنینگ و دیپ لرنینگ
HPT1
---
HPT2
---
فایل پاور پوینت
---