مقدمه

در این مستند خلاصه‌ای از مسیری که برای یادگیری حوزه‌ی یادگیری عمیق (deep learning) و یادگیری ماشین (machine learning) طی ۲-۳ ماه طی کردم را شرح  خواهم داد. منبع اصلی این کتاب بود (pdf کتاب از اینجا قابل بارگیری است)، لیکن به شخصه منابع دیگری را استفاده کردم که مباحث کتاب را هم تا حد خوبی پوشش میداد.

یادگیری ماشین

برای شروع یادگیری عمیق، خوب است پیش نیازهایی از یادگیری ماشین مطالعه شود. به شکل بالا توجه کنید که چگونه یادگیری عمیق به عنوان زیرمجموعه‌ای از یادگیری ماشین تلقی میشود.

یادگیری ماشین، کامل و جامع (دوره یادگیری ماشین دکتر سلیمانی)

من در ابتدا با دوره یادگیری ماشین خانم دکتر سلیمانی در مکتبخونه شروع کردم. همچنین در این لینک پیاده سازی این جلسات به صورت جزوه مکتوب قابل دسترسی است. در آخرِ هرکدام از این پست های ویرگول هم، لینک اسلایدهای آن جلسه‌ی کلاس موجود است.

در چند جلسه ابتدایی، کلیت یادگیری ماشین و همچنین روشهای تخمین که درادامه جلسات از آنها استفاده میشوند، معرفی میگردند. چند جلسه مبحث regression را مطرح میکنند و سپس وارد classification شده و به صورت مفصلتری به الگوریتم های مختلف آن می‌پردازند. بعد مقداری به مباحث تئوری‌تر میپردازند مثل اینکه training error و true error از چه بخش های تشکیل شده اند، چگونه میتوان سقفی برای آنها به دست آورد، چه ارتباطی با یکدیگر دارند و … آنگاه درباره موضوعات دیگری مثل یادگیری مبتنی بر نمونه و یادگیری جمعی صحبت میشود. چند جلسه هم انتخاب ویژگی و خوشه بندی که در حیطه یادگیری بدون نظارت قرار میگیرند تدریس شده و در جلسه آخر مبحث یادگیری تقویتی را شروع میکنند ولی متاسفانه ادامه جلسات ضبط نشده است.

تصویر زیر دید خوبی از تقسیم بندی و نمونه‌هایی از مسائل یادگیری ماشین میدهد. در این جلسات، بیشتر از همه به supervised learning و مخصوصا classification پرداخته میشود.

نمودار زیر دسته‌بندی کاملتری از مباحث یادگیری ماشین است و الگوریتم های رایج هر دسته نیز ذکر شده است. در این جلسات به اکثر این مباحث غیر از شاخه Neural Networks and Deep Learning پرداخته میشود.

بررسی

  1. برای فهم برخی از مباحث مخصوصا بخش هایی که وارد دید احتمالاتی برای الگوریتم ها میشد، نیاز به دانستن پیش نیازهایی از آمار و احتمال بود. لذا خوب است اگر میخواهید استفاده بیشتری از مباحث این دوره ببرید، نگاهی به مباحث آمار و احتمال بیاندازید. این دوره مکتبخونه هرچند طولانی است ولی توصیه میشود. البته میتوانید از جزوه‌ی خوب این کلاس که به صورت jupyter notebook در ابتدای صفحه مکتبخونه این دوره وجود دارد هم استفاده کنید و به صورت موردی به بخش هایی که نیاز دارید مراجعه کنید. علاوه بر این، دانستن مقدماتی از جبرخطی هم مستحب موکد است!
  2. برای فهم مباحث یادگیری عمیق، احتمالا داشتن دیدی کلی از یادگیری ماشین کفایت میکند. این دوره برای فهم یادگیری ماشین بسیار جامع و کامل است و به خوبی و به دقت الگوریتم های مختلف یادگیری ماشین بررسی میشوند ولی برای ورود به یادگیری عمیق، طولانی به نظر میرسد. فلذا شاید مناسب تر باشد برای سرعت بخشیدن به یادگیری، به دوره ها یا جزوات خلاصه تر درحوزه یادگیری ماشین مراجعه شود و آنگاه وارد خود یادگیری عمیق شد. همچنین این کلاس در قسمت هایی بسیار جنبه تئوری، ریاضیاتی  و اثباتی به خود میگرفت که برای کار عملی در حوزه یادگیری عمیق، ضروری نمیباشد.

یادگیری ماشین، مختصرتر

در ادامه به منابع فارسی‌ای که مطالعه کردم میپردازم که غیر از مورد اول، بقیه را پس از دیدن دوره‌ی مکتبخونه‌ی دکتر سلیمانی نگاهی انداختم، به عنوان جمع‌بندی و مروری بر الگوریتم هایی که ایشان تدریس کرده بودند.

دروازه ورود به یادگیری ماشین در کوئرا

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

خلاصه ای از کتاب صد صفحه ای یادگیری ماشین

این سری مطالب در ویرگول هم برای آشنایی اجمالی خوب بود. درواقع خلاصه‌ی مختصریست از یک کتاب مختصر درباره یادگیری ماشین! البته نگارنده فقط چهار فصل ابتدایی کتاب را خلاصه کرده است و پس از معرفی یادگیری ماشین و اصطلاحات و نمادگذاری‌های رایج، ۵ تا از الگوریتم های یادگیری ماشین را شرح میدهد و درانتها به مواردی مانند گرادیان دیسنت، خصوصیات الگوریتم های اشاره شده در نسبت با هم و … میپردازد.

درسنامه فرادرس

این سری مطالب در فرادرس هم ترجمه‌ای از این مقاله است (هرچند خودشان ذکر نکرده بودند که ترجمه است!). ممکن است برای بار اول، به دلیل خلاصه بودن درست متوجه نشوید (مخصوصا ترجمه فارسی آن را). بدک نیست نگاهی بیاندازید.

ده الگوریتم یادگیری ماشین

این مطلب هم ترجمه‌ای است از یک مقاله که ده الگوریتم پرکاربرد یادگیری ماشین را ذکر کرده است (که منبعش را هم ذکر کرده اند😊). توضیح زیادی ندارد و برای همان مرور مناسب‌تر است تا یادگیری.

یادگیری عمیق – تئوری

دوره یادگیری عمیق دانشگاه MIT

این دوره یادگیری عمیق (ویدیوهای ضبط شده آن در این لینک یوتیوب موجود است( که به صورت فشرده و کاربردی چندسالی است در دانشگاه MIT برگزار میشود، از دوره های پرطرفدار یادگیری عمیق است و معمولا شامل ۸ جلسه ارائه مباحث اصلی یادگیری عمیق است به انضمام ۴ جلسه که توسط محققان شرکت های مختلف درزمینه دستاورد هایشان در حوزه یادگیری عمیق ارائه می‌شود که میتوانید در صورت علاقه آنها را مشاهده کنید. ۳ عدد Lab هم برگزار میشود که فقط کد آنها موجود است و درصورت علاقه میتوانید به آنها مراجعه کنید. البته بعضا در خود جلسات ارائه هم (مخصوصا چند جلسه‌ اول) به پیاده سازی مباحث در تنسورفلو[۱] هم اشاراتی میشود.

 به شخصه تنها ۸ ارائه مربوط به سال ۲۰۲۱ را دیدم و به نظرم جذاب و مختصر و مفید بود. ممکن است در هنگام دیدن ویدیوها، بعضی بخش‌ها را درست متوجه نشوید! (به دلیل اینکه سریع گفته شده یا اصطلاحات خاصی استفاده شده یا …). نگران نباشید. سعی کنید کمی عقب بزنید و دوباره گوش کنید، سرعت پخش را کم کنید، از زیرنویس استفاده کنید، از منبع کمکی که در ادامه معرفی میشود استفاده کنید یا سرچ کنید!

سایت هوسم

این دوره یادگیری عمیق هم رایگان است و در ۱۰ جلسه مباحث اصلی یادگیری عمیق را که در ۴ جلسه اول ویدیوهای MIT هم به آنها پرداخته می‌شود، توضیح میدهد. این دوره، مباحث را خیلی خوب، روان و قابل فهم توضیح داده و توصیه میشود قبل یا درحین دیدن ویدیوهای MIT این درس نامه ها را هم بخوانید چراکه در فهم ویدیوها کمک کننده است. البته همه مطالب چهار ویدیوی اول در اینجا عنوان نشده است ولی میتوان ادعا کرد مطالب اصلی همان ویدیوها با توضیح بیشتر، در این دوره وجود دارد. همچنین نکته مثبت دیگر، وجود دو مثال عملی در جلسات ۴ و ۵ این دوره است که دید خوبی برای پیاده سازی مطالب تدریس شده در تنسورفلو می‌دهد.

یادگیری عمیق – عملی

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

آموزشی که در سایت تنسورفلو وجود دارد منبع خوبی برای آشنایی با کار با این کتابخانه و حل مسائل مختلف است. به شخصه از قسمت ML basics with Keras جلو رفتم و بعضا به صورت موردی به قسمت های دیگر tutorial مثل load and preprocess data مراجعه کردم. از مزایای استفاده از این tutorial، یادگیری با مثال و حل مسائل با دیتاست های مختلف، آشنایی با کار با انواع داده ها مثل تصویر، متن و … و همچنین امکان بازکردن کدها و اجرای آنها در [۲]Google Colab است.

سایت kaggle.com

بعد از یادگیری مباحث و نحوه عملکرد TensorFlow، میتوان در سایت Kaggle تمرین بیشتری انجام داد. مثلا در بخش مسابقات این سایت، سوالات مختلف به همراه Dataset وجود دارند که حل آنها میتواند مفید باشد. به شخصه در این مسابقه شرکت کردم که برای تازه کارها یک مسئله classification با بار آموزشی خوب است.

سخن آخر

در انتها باید گفت اولا این متن، مسیری بود که شخصا طی کردم، حتما کاستی هایی دارد و با دانش ناچیز من در این حوزه نوشته شده است. دوما این تنها شروعی برای deep learning است ولی برای فهم deeeep تر موضوع، باید بیشتر و بیشتر تمرین کرد…

تا چه قبول افتد و چه در نظر آید


[۱] تنسورفلو یک کتاب خانه یادگیری ماشین و یادگیری عمیق است که توسط گوگل در سال ۲۰۱۵ منتشر شد.

[۲] یک سرویس ابری با امکان استفاده از سخت‌افزار با GPU رایگان است برای اجرای کدهای مختلف. مخصوصا برای کارهای ماشین لرنینگی که پردازش زیادی نیاز دارند استفاده میشود.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *