نقشه راه یادگیری «ماشین لرنینگ» برای دولوپرها

در این نوشته قصد دارم مسیری را که برای یادگرفتن ماشین لرنینگ (یادگیری ماشین) طی کردم با شما به اشتراک بذارم تا اگر دولوپری هستید که قصد یاد گرفتن ماشین لرنینگ را دارید، زودتر به نتیجه برسید. برای یاد گرفتن ماشین لرنینگ می‌تونید مقالات و کتاب‌های مربوطه را مطالعه کنید و یا از ویدیوها و درس‌های ویدویی آنلاین استفاده کنید. من ترجیح دادم که ابتدا این مسیر را با مطالعه کتاب‌ها طی کنم و بعد با خوندن وبلاگ‌ها (مثل distill) و دیدن کورس‌های آنلاین پیش برم. در این نوشته هم همان کتاب‌ها را به ترتیبی که باید مورد مطالعه قرار بگیرن، معرفی می‌کنم. اگر اهل مطالعه کتاب نیستید و یا ترجیح میدید از ویدیوهای آموزشی آنلاین استفاده کنید، می‌تونید برای مثال مجموعه ویدیوهای Andrew NG در Coursera را ببینید و پای درس پرفسور استرنگ بشینید و جبر خطی را یاد بگیرید (MIT 18.065).

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


نقطه صفر؛ ریاضی و آمار

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

درس اول؛ توپولوژی و حساب دیفرانسیل و انتگرال

  • فصل‌های اول و دوم کتاب Principles of Mathematical Analysis
  • کتاب Calculus Made Easy

درس دوم؛ آمار

  • کتاب Think Stats
  • کتاب Think Bayes

درس سوم؛ ماتریس و جمع‌بندی کلی

  • فصل‌های دوم و سوم کتاب Deep Learning

درس چهارم؛ محاسبات عددی

  • فصل چهارم کتاب Deep Learning

نقطه اول؛ یادگیری ماشین

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

درس پنجم؛ الگوریتم‌های تشخیص الگو و ماشین لرنینگ

  • کتاب Pattern Recognition and Machine Learning
  • فصل پنجم کتاب Deep Learning

حالا وقت آن رسیده که کمی دست به کد بشید، مدل بسازید و مدل‌های خودتون را با دیتاست‌های آماده آموزش بدید و ارزیابی کنید. برای ادامه حتما نیاز دارید که پایتون را یاد گرفته باشید. اگر تا حالا کد پایتون نزدید می‌تونید کتاب Learning Python را مطالعه کنید. دقت کنید که در ادامه باید با کتاب‌ درس ششم همراه بشید و قدم به قدم کد آموزشی داخل کتاب را بنویسید و اجرا کنید. پیشنهاد می‌کنم از پایتون ۳ و Jupyter Lab استفاده کنید.

درس ششم؛ استفاده از Scikit-learn

  • بخش اول (فصل‌های اول تا هشتم) کتاب Hands-On Machine Learning

نقطه دوم؛ یادگیری عمیق و یادگیری تقویتی

تا این نقطه از مسیر باید با مفاهیم و مدل‌های Classification و Regression آشنا شده باشید. در ادامه لازمه که شبکه‌های عصبی را با جزییات بیشتر مطالعه کنید و وارد حوزه ‌Deep Learning و Reinforcement Learning بشید. دقت کنید که منبع اول درس هفتم از نسخه اول Tensorflow برای آموزش استفاده می‌کنه که خیلی از کدهای آن در نسخه دوم (فعلی) Tensorflow قابل استفاده نیست. پس فقط متن فصل‌های ذکر شده را مطالعه کنید (کد را اجرا نکنید) و برای تمرین از منبع دوم درس هفتم استفاده کنید.

درس هفتم؛ شبکه‌های عصبی و Reinforcement Learning

  • از فصل نهم تا آخر کتاب Hands-On Machine Learning
  • درس‌های آموزشی سایت ‌Tensorflow به آدرس https://www.tensorflow.org/tutorials
  • از فصل ششم تا آخر کتاب Deep Learning

فهرست کتاب‌های معرفی شده

  • Think Stats: Exploratory Data Analysis in Python; Allen B. Downey; Version 2.0.38; Green Tea Press; 2014.
  • Think Bayes: Bayesian Statistics Made Simple; Allen B. Downey; Version 1.0.9; Green Tea Press; 2012.
  • Principles of Mathematical Analysis; Walter Rudin; 3rd Edition; McGraw-Hill Inc.; 1976.
  • Calculus Made Easy; Silvanus P. Thompson; St Martins Pr; 3rd Edition; 1980.
  • Deep Learning; Ian Goodfellow, Yoshua Bengio, Aaron Courville; The MIT Press; 2016.
  • Hands-On Machine Learning with Scikit-Learn and TensorFlow; Geron Aurelien; O’Reilly Media, Inc.; March 2017.
  • Pattern Recognition And Machine Learning; Christopher M. Bishop; Springer; 2006.
  • Learning Python; Mark Lutz; 5th Edition; O’Reilly Media, Inc.; June 2013.