Loading...
  • 5.0/5.0
  • (1 نظرات)
  • تعداد قسمت 14
  • مدت زمان 02:58:49
  • انتشار 1403/03/06
  • آخرین ویرایش 1403/03/06

علی استادی

مدرس دانشسرا

دوره بهینه سازی هایپرپارامتر های مدل های ماشین لرنینگ و دیپ لرنینگ

  • 5.0/5.0
  • تعداد مهارتجو 17
  • آخرین ویرایش 1403/03/06
  • انتشار 1403/03/31

توضیحات دوره بهینه سازی هایپرپارامتر های مدل های ماشین لرنینگ و دیپ لرنینگ

بهینه سازی ساختار الگوریتم های ماشین لرنینگ و دیپ لرنینگ یا به اصطلاح تیون کردن هایپرپارامتر ها  (Hyperparameter Tuning) یکی مهم ترین و تاثیر گذار ترین مراحل انجام یک پروژه ی ماشین لرنینگ است. در یک پروژه ی ماشین لرنینگ همواره هدف ما این است تا دقت مدل رو به حداکثر برسانیم و پرفورمنس مدل رو افزایش دهیم. ساختار دهی الگوریتم‌ها یا به بیان دیگر تعیین مقادیر هایپر پارامتر‌های مدل تاثیر مستقیم بر روی دقت و پرفورمنس مدل دارد و تعیین مقادیر مناسب این هایپرپارامتر‌ها به نحوی که منجر به حداکثر دقت در مدل شود موضوع بسیار حیاتی و حائز اهمیتی است که تحت عنوان تیون کردن یا بهینه سازی هایپرپارامتر‌ها از آن یاد می‌شود.اگر بخواهیم تیون کردن هایپرپارامتر‌ها را به عنوان یک مسئله بهینه سازی در نظر بگیریم می‌توان گفت که تابع هدف دقت و یا خطای مدل می‌باشد که همواره سعی در بیشینه سازی دقت و یا کمینه سازی خطا داریم. همچنین فضای جستجو،...
بهینه سازی ساختار الگوریتم های ماشین لرنینگ و دیپ لرنینگ یا به اصطلاح تیون کردن هایپرپارامتر ها  (Hyperparameter Tuning) یکی مهم ترین و تاثیر گذار ترین مراحل انجام یک پروژه ی ماشین لرنینگ است. در یک پروژه ی ماشین لرنینگ همواره هدف ما این است تا دقت مدل رو به حداکثر برسانیم و پرفورمنس مدل رو افزایش دهیم. ساختار دهی الگوریتم‌ها یا به بیان دیگر تعیین مقادیر هایپر پارامتر‌های مدل تاثیر مستقیم بر روی دقت و پرفورمنس مدل دارد و تعیین مقادیر مناسب این هایپرپارامتر‌ها به نحوی که منجر به حداکثر دقت در مدل شود موضوع بسیار حیاتی و حائز اهمیتی است که تحت عنوان تیون کردن یا بهینه سازی هایپرپارامتر‌ها از آن یاد می‌شود.

اگر بخواهیم تیون کردن هایپرپارامتر‌ها را به عنوان یک مسئله بهینه سازی در نظر بگیریم می‌توان گفت که تابع هدف دقت و یا خطای مدل می‌باشد که همواره سعی در بیشینه سازی دقت و یا کمینه سازی خطا داریم. همچنین فضای جستجو، مقادیر ممکن برای هایپرپارامتر‌های مدل می‌باشد که توسط ما باید مشخص گردد. یک نکته مهم در بهینه سازی هایپرپارامتر‌ها این است که رسیدن به جواب بهینه کاملاً سراری ممکن نیست. زیرا بازه مقادیر ممکن برای خیلی از هایپرپارامتر‌ها نا‌متناهی است و رسیدن به نقطه بهینه کاملا سراسری در فضای جستجوی نامتناهی غیر ممکن است. پس ما در درجه اول باید فضای جستجو برای مقادیر هایپر پارامتر‌ها را محدود کنیم و در فضای محدود تعریف شده به دنبال جواب بهینه ی محلی باشیم.  شاید اولین و راحت ترین راه استفاده از آزمون و خطا برای تعیین مقادیر هایپر پارامتر‌ها باشد ولی از آن جایی که این کار باید به صورت دستی انجام شود و فرسایشی است منطقی نمی‌باشد. برای پیدا کردن مقادیر بهینه هایپرپارامتر‌ها از الگوریتم های جستجو استفاده می‌کنیم که در این دوره الگوریتم های random search  ، grid search ، bayesian search و همین طور الگوریتم های تکاملی evolutionary algorithms  مانند الگوریتم ژنتیک بررسی می‌شود.

فرایند بهینه سازی هایپر پارامتر‌ها فقط محدود به تعیین کردن فضای جستجو و الگوریتم جستجو نمی‌شود بلکه برای پیاده سازی درست و اصولی باید قوائدی را از ابتدای فاز پیش پردازش دیتا در نظر گرفت تا مدل بهینه ی به دست آمده کمترین بایاس و خطا را در مواجه با دیتای دنیای حقیقی داشته باشد که در این دوره به این مفاهیم می پردازیم.

نکته ی مهم دیگری که باید در نظر داشت این است که برای انجام دادن یک پروژه ی ماشین لرنینگ ، باید الگویتم های مختلف امتحان شود و نیاز است که ساختار هر کدام بهینه شود و بهتر است از چند روش بهینه سازی استفاده شود که این بدان معناست که اگر به صورت سنتی و بدون در نظر گرفتن functional programming    بخواهیم پروژه را پیاده سازی کنیم مجبور هستیم تعدادی زیادی خط کد بزنیم و کد های تکراری در پروژه زیاد می شود . در این دوره الگوریتم ها به صورت فانکشنال پیاده سازی می شوند تا این که مقیاس پذیری کد بیشتر شود و استفاده و فهم آن راحت تر باشد .

این دوره یه صورت پروژه محور و کاربردی ارائه میشه و مفاهیم و الگوریتم های جستجو به صورت مفهومی توضیح داده می شوند و فرمول های ریاضی و تئوری الگوریتم های جستجو توضیح داده نشده است . اما در قسمت های مختلف کد ، لینک های مناسبی برای مطالعه ی بیشتر قرار داده شده است .

پیش نیاز دوره


درکد های پیاده سازی این دوره ، الگوریتم های مختلف ماشین لرنینگ و دیپ لرنینگ استفاده شده به همین جهت توصیه می شود قبل از شروع دوره به مفاهیم زیر اشراف داشته باشید :

سرفصل های دوره بهینه سازی هایپرپارامتر های مدل های ماشین لرنینگ و دیپ لرنینگ


یکی از ترند های مقالات چند ساله ی اخیر در حوزه ی دیپ لرنیگ و ماشین لرنینگ ، استفاده ی از شبکه های عصبی ترکیبی یا به اصطلاح Hybrid  و تیون کردن ساختار آن با استفاده از الگوریتم های تکاملی مانند ژنتیک ، گرگ خاکستری ، کلونی زنبور عسل و ... می باشد .  در اپیزود های آخر این دوره مفصل در باره ی این موضوع توضیح داده شده است و دو شبکه ی CNN LSTM  و CNN GRU   توسط الگوریتم های ژنتیک و ازدحام ذرات بهینه شده و با هم مقایسه شده است که می تواند برای دانشجو هایی که قصد نگارش مقاله های مشابه را دارند بسیار کمک کننده باشد .

کد های این دوره در محیط google colab  پیاده سازی شده اند و نیاز به هیچ پیش نیاز سخت افزاری و نرم افزاری برای ران گرفتن کد ها نمی باشد . همچنین فایل کد ها و دیتا های استفاده شده به دوره ضمیمه شده و بعد از خرید قابل دانلود و استفاده می باشد.

  1. این اپیزود شامل معرفی استاد و توضیح در مورد محتوای دوره می شود .

  2. در این اپیزود در مورد مفهوم بهینه سازی ، بررسی تیون کردن هایپر پارامتر ها به عنوان یک مسئله ی بهینه سازی صحبت میشود . و همچنین مفهوم پارامتر و هایپر پارامتر های مدل و تفاوت آن مورد بررسی قرار می گیرد.

  3. در این اپیزود دیتاست تایتانیک رو در google colab ، وارد می کنم و آن را تحلیل می کنیم . همچنین در مورد دستور nunique  و حذف ستون های اضافه صحبت می کنیم و علاوه بر آن یک استراتژی برای برخورد با داده های از دست رفته را بررسی می کنیم .

  4. در این قسمت می پردازیم به نحوه ی تقسیم کردن دیتا به ترین و تست و همین طور با اعتبار سنجی متقابل یا به اصطلاح cross validation  و نقش آن در بهینه سازی  هایپرپارامترها  آشنا میشیم .

  5. در این قسمت می پردازیم به پیش پردازش دیتا و نکاتی که باید در این فاز رعایت کنیم تا بهینه سازی هایپر پارامتر ها به صورت صحیح انجام شود . با مفهوم column transformer  و pipline  آشنا میشیم و بررسی می کنیم چگونه فاز پیش پردازش را داخل pipline  بگنجانیم .

  6. در این قسمت با مفهوم informed and uninformed search algorithms آشنا میشیم و مکانیزم الگوریتم های grid search و random search   رو بررسی می کنیم .

  7. در این قسمت با نحوه ی پیاده سازی در پایتون رو بررسی می کنیم که شامل تعریف فضای جستجو ، مشخص کردن الگوریتم جستجو ، ایجاد pipline و ترکیب pipline  و الگوریتم های جستجو می باشد . همچنین بررسی می کنیم که چکونه کد زدن  فانکشنال باعث جلوگیری از تکرار کد ها میشه و یک فانکشن کلی برای پیدا کردن الگوریتم بهینه با grid  search  و random search، تست کردن مدل بهینه ی یافت شده ، بررسی معیار های ارزیابی مختلف و رسم نمودار های ارزیابی مدل  تعریف می کنیم .

  8. در این قسمت بعد از مشخص کردن فضای جستجوی هایپرپارامتر ها برای هر مدل  از فانکشن تعریف شده برای بهینه سازی مدل های ماشین لرنینگ با الگوریتم grid search    و random search استفاده می کنیم .

  9. در این قسمت مکانیزم و فلوچارت bayesian optimization  رو بررسی می کنیم ، یک فانکشن برای پیاده بهینه سازی مدل ها با   bayesian search تعریف می کنیم و با استفاده از آن مدل های ماشین لرنینگ را بهینه می کنیم .

  10. در این اپیزود به نحوه ی ساختن یک شبکه ی عصبی MLP  و مشخص کردن هایپر پارامتر های مد نظر جهت تیون شدن و بهینه سازی آن شبکه با استفاده از bayesian search می پردازیم .

  11. معرفی دیتاست Diamonds و تحیلیل آن . انجام پیش پردازش های لازم برای فیت کردن شبکه های CNN LSTM  و CNN GRU  .

  12. پیاده سازی شبکه های  CNN LSTM  و CNN GRU

  13. بررسی الگوریتم های تکاملی و مکانیزم کلی آن ها . ایجاد یک فانکشن برای بهینه سازی و ارزیابی شبکه های عصبی با استفاده از الگوریتم های تکاملی مختلف .

  14. بررسی فلوچارت الگوریتم ژنتیک و پارامتر های آن . پیاده سازی الگوریتم های ژنتیک و ازدحام ذرات به منظور بهینه سازی هایپر پارامتر های شبکه عصبی . استفاده از فانکشن تعریف شده برای بهینه سازی شبکه های عصبی ترکیبی با استفاده از الگوریتم های تکاملی مختلف . مقایسه ی  نتایج و نتیحه گیری .

قسمت های دوره بهینه سازی هایپرپارامتر های مدل های ماشین لرنینگ و دیپ لرنینگ

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

---


فایل پاور پوینت

---

سوالت را بپرس ...