اواخر اسفند ۱۴۰۲ (نیمه مارچ ۲۰۲۴) ورود به حوزه هوش مصنوعی انقدر استرس زا شده که دست و پای آدم گم میشه و اصلا نمیشه فهمید باید از کجا به دنیای این موجود بی سر و ته وارد شد. اگر تو هم درگیر همین داستانی، اول از همه بدون که طبیعیه و تقریبا همه کسایی که میخوان این تکنولوژی رو از ساید علمی اش یاد بگیرن درگیر همین ماجرا هستن - به خصوص اگه زمینه (بک گراند) کامپیوتر یا حداقل فنی مهندسی و پروگرمینگ نداشته باشن. توی این نوشته میخوام تلاش کنم یه برنامه ریزی عملیاتی برای یادگیری هوش مصنوعی به خصوص سر راست ترین دروازه بهش یعنی ماشین لرنینگ بنویسم.
بعد از خواندن این نوشته توقع میره بتونی:
۱. ریاضی
۲. آمار
۳. زبان برنامه نویسی
۴. تئوریهای ماشین لرنینگ و دیپ لرنینگ
۵. تولزها، پلتفرمها و نرمافزارهای مرتبط
۷. دانش کلی کسب و کار (بیزینس)
همین الان قبل از معرفی منابع بگم، که یادگیری ماشین لرنینگ باید پازلی انجام بشه. بهترین مدل مطالعاتی اینه که یه کم از همه تاپیک های بالا رو موازی پیش ببری، نه اینکه واستیم یکی تموم بشه بعد بریم سراغ بعدی! ویدیو یادگیری پازلی ماشین لرنینگ رو وقت کردی ببین حتما.
راستش اینه که نه خود ریاضی که بیشتر مدل فکری و نوع نگاه حل مسئله است که توی بیزینس و صنعت و توی علوم کامپیوتر قراره خیلی کار کنه. البته خبر خوب این که ریاضی مورد نیاز ماشین لرنینگ خیلی قرار نیست حجیم و سنگین باشه. هم ریاضی کمی لازمه هم مباحثی که لازمه خیلی آسونن. مباحث مورد نیاز رو من به طور کلی به جبر خطی (بردار و ماتریس) و دیفرانسیل (مشتق و گرادیان که همون مشتق برای توابع چندمتغیره حساب میشه) دسته بندی میکنم.
۱.۱. بردار (پلی لیست یوتیوب فارسی | پلی لیست یوتیوب انگلیسی | ویکی پدیا | مقاله انگلیسی | کتاب آنلاین)
۱.۲. ماتریس (پلی لیست یوتیوب فارسی | پلی لیست یوتیوب انگلیسی | ویکی پدیا | مقاله انگلیسی | کتاب آنلاین)
۱.۳. مشتق (ویدیوی یوتیوب فارسی | پلی لیست انگلیسی | ویکی پدیا | مقاله انگلیسی | کتاب آنلاین)
۱.۴. گرادیان (ویدیوی یوتیوب فارسی | پلی لیست انگلیسی | ویکی پدیا | مقاله انگلیسی | کتاب آنلاین)
قطعا دانش احتمال و آمار دانش مشترک دانشگاه و صنعت محسوب میشه. هر رشته ای توی مقطع دکتری بخونی با مفاهیم آمار و فرضیه سازی ها و نمونه گیری های خاص توش درگیر میشی. توی صنعت هم هر مدل ریسک و سرمایه گذاری نیاز به درک مفاهیم احتمال، هر مدل نتیجه گیری داده محور نیاز به درک آنالیزهای آماری است. آمار و احتمالی که توی ماشین لرنینگ نیاز داریم از ریاضی اش هم حجم بیشتری داره هم سطح بالاتری که خب باید به طور گام به گام براش برنامه ریزی داشت.
۲.۱. آنالیز ترکیبی و اصول شمارش (ویدیوی یوتیوب فارسی | پلی لیست انگلیسی | ویکی پدیا | مقاله انگلیسی | کتاب آنلاین)
۲.۲. احتمال و احتمال شرطی (ویدیوی یوتیوب فارسی | پلی لیست انگلیسی | ویکی پدیا | مقاله انگلیسی | کتاب آنلاین)
۲.۳. متغیرهای تصادفی گسسته و پیوسته (ویدیوی یوتیوب فارسی | پلی لیست انگلیسی | ویکی پدیا | مقاله انگلیسی | کتاب آنلاین)
۲.۴. قضیه حد مرکزی (ویدیوی یوتیوب فارسی | پلی لیست انگلیسی | ویکی پدیا | مقاله انگلیسی | کتاب آنلاین)
۲.۵. آمار توصیفی (ویدیوی یوتیوب فارسی | پلی لیست انگلیسی | ویکی پدیا | مقاله انگلیسی | کتاب آنلاین)
۲.۶. توزیع های نمونه گیری (ویدیوی یوتیوب فارسی | پلی لیست انگلیسی | ویکی پدیا | مقاله انگلیسی | کتاب آنلاین)
۲.۷. برآوردگرهای فاصلهای و نقطهای (ویدیوی یوتیوب فارسی | پلی لیست انگلیسی | ویکی پدیا | مقاله انگلیسی | کتاب آنلاین)
۲.۸. آزمون فرض آماری (ویدیوی یوتیوب فارسی | پلی لیست انگلیسی | ویکی پدیا | مقاله انگلیسی | کتاب آنلاین)
۲.۹. رگرسیون (ویدیوی یوتیوب فارسی | پلی لیست انگلیسی | ویکی پدیا | مقاله انگلیسی | کتاب آنلاین)
تقریبا اکثر زبان های برنامه نویسی کامپیوتر توی ماشین لرنینگ کاربرد خاص خودشون رو دارن. شاید بعد از ۱۰ سال کار توی حوزه کامپیوتر و هوش مصنوعی شما عملا ۲۰ زبان برنامه نویسی رو مسلط باشی (الگوهای برنامه نویسی کاملا منطبق بر هم هستن و یادگیری زبان جدید خیلی آسون تر از اولین زبان هست) ولی برای ورود به ماشین لرنینگ فقط و فقط پایتون لازم داری. زبان هایی مثل R یا ++C هم میتونن کاربردی باشند ولی اصلا تا ۳ سال اول باهاشون درگیر نخواهی بود. پس وقت خودت رو الکی تلف و مغز خودت رو الکی خسته نکن که شاید اصلا بیخیال مسیر بشی. همچنین بعد از مثلا ۶ ماه بد نیست یک زبان پایگاه داده (SQL) هم یاد بگیری.
۳.۱. پایتون (ویدیوی یوتیوب فارسی | پلی لیست انگلیسی | ویکی پدیا | مقاله انگلیسی | کتاب آنلاین)
۳.۲. پکیج sklearn (ویدیوی یوتیوب فارسی | پلی لیست انگلیسی | ویکی پدیا | مقاله انگلیسی | کتاب آنلاین)
۳.۳. پکیج Tensorflow و Keras (ویدیوی یوتیوب فارسی | پلی لیست انگلیسی | ویکی پدیا | مقاله انگلیسی | کتاب آنلاین)
۳.۴. پکیج پایتورچ Pytorch (ویدیوی یوتیوب فارسی | پلی لیست انگلیسی | ویکی پدیا | مقاله انگلیسی | کتاب آنلاین)
۳.۵. بعد از ۶ ماه پایگاه داده مثلا MySQL (ویدیوی یوتیوب فارسی | پلی لیست انگلیسی | ویکی پدیا | مقاله انگلیسی | کتاب آنلاین)
۳.۶. بعد از یکسال HTML و CSS (ویدیوی یوتیوب فارسی | پلی لیست انگلیسی | ویکی پدیا | مقاله انگلیسی | کتاب آنلاین)
۳.۷. بعد از ۲ سال R (ویدیوی یوتیوب فارسی | پلی لیست انگلیسی | ویکی پدیا | مقاله انگلیسی | کتاب آنلاین)
دیگه پیش نیاز خوندن فکر کنم بسه! یه خرده هم اصل ماجرا رو بخونیم. این رو بدون که مفاهیم دیپ لرنینگ که شامل مدلهای شبکه عصبی میشن یکی از انواع مدلهایی هستن که توی ماشین لرنینگ وجود دارن. در واقع مدلهای ماشین لرنینگ دو دسته سنتی و مدرن اند که شبکه های عصبی توی دسته دوم میگنجن. پیشنهاد من اینه که اول با مثلا ۵ تا روش سنتی ماشین لرنینگ شروع کن و بعد مفاهیم اساسی دیپ لرنینگ رو موازی با یادگیری بقیه روش ها به دستور کار اضافه کن.
۴.۱. مدل رگرسیون خطی (ویدیوی یوتیوب فارسی | پلی لیست انگلیسی | ویکی پدیا | مقاله انگلیسی | کتاب آنلاین)
۴.۲. مدل رگرسیون لجستیک (ویدیوی یوتیوب فارسی | پلی لیست انگلیسی | ویکی پدیا | مقاله انگلیسی | کتاب آنلاین)
۴.۳. آشنایی با مفاهیم تابع هزینه، گرادیان کاهشی، متریک های ارزیابی مدل و رگولاریزیشن (ویدیوی یوتیوب فارسی | پلی لیست انگلیسی | ویکی پدیا | مقاله انگلیسی | کتاب آنلاین)
۴.۴. مفاهیم اولیه شبکه های عصبی (ویدیوی یوتیوب فارسی | پلی لیست انگلیسی | ویکی پدیا | مقاله انگلیسی | کتاب آنلاین)
۴.۵. شبکه عصبی کانولوشنی (ویدیوی یوتیوب فارسی | پلی لیست انگلیسی | ویکی پدیا | مقاله انگلیسی | کتاب آنلاین)
۴.۶. انواع مدلهای سنتی شامل SVM | KNN | Decision Tree | Random Forest | Naive Bayes (ویدیوی یوتیوب فارسی | پلی لیست انگلیسی | ویکی پدیا | مقاله انگلیسی | کتاب آنلاین)
۴.۷. انواع شبکه های عصبی از قبل ترین شده مثل VGG | Inception | ResNet | DenseNet (ویدیوی یوتیوب فارسی | پلی لیست انگلیسی | ویکی پدیا | مقاله انگلیسی | کتاب آنلاین)
۴.۸. شبکه عصبی اتوانکدر و یونت Auto Encoders | U-Net (ویدیوی یوتیوب فارسی | پلی لیست انگلیسی | ویکی پدیا | مقاله انگلیسی | کتاب آنلاین)
۴.۹. انواع مدل های بازگشتی شامل RNNs | GRU | LSTM | VAE | Transformers (ویدیوی یوتیوب فارسی | پلی لیست انگلیسی | ویکی پدیا | مقاله انگلیسی | کتاب آنلاین)
۴.۱۰. پردازش متن و پکیجهای NLTK , Spacy (ویدیوی یوتیوب فارسی | پلی لیست انگلیسی | ویکی پدیا | مقاله انگلیسی | کتاب آنلاین)
۴.۱۱. پردازش تصویر (ویدیوی یوتیوب فارسی | پلی لیست انگلیسی | ویکی پدیا | مقاله انگلیسی | کتاب آنلاین)
۴.۱۲. پردازش صوت (ویدیوی یوتیوب فارسی | پلی لیست انگلیسی | ویکی پدیا | مقاله انگلیسی | کتاب آنلاین)
۴.۱۳. (ویدیوی یوتیوب فارسی | پلی لیست انگلیسی | ویکی پدیا | مقاله انگلیسی | کتاب آنلاین)
۴.۱۴. سایر شبکه های عصبی مثل RCNNs | YOLO | GANs (ویدیوی یوتیوب فارسی | پلی لیست انگلیسی | ویکی پدیا | مقاله انگلیسی | کتاب آنلاین)
انقدر سرعت توسعه هوش مصنوعی به خصوص ماشین لرنینگ توی این سالها زیاد بوده که هر پلتفرمی اینجا بنویسم چند هفته دیگه از دهن افتاده و احتمالا به چیز به روزتری روی کار اومده. ولی در کل یک سری تولز و پلتفرم رو سعی میکنم اینجا لیست کنم که به مرور هم نوشته رو قوی تر میکنم. این روزا استفاده از ابزارهای هوش مصنوعی خودش مهارتیه که هر کسی نداره و این میتونه یه برگ برنده باشه که شما یاد بگیرید چطوری سریع ابزارهای باحال رو توی زندگی تون وارد کنید.
۵.۱. پلتفرم کگل Kaggle
۵.۲. پلتفرم هاگینگ فیس Hugging Face
۵.۳. پلتفرم مدیوم Medium
۵.۴. تولز چت جی پی تی Chat GPT
۵.۵. تولز گوگل کولب Google Colab
۵.۶. محیط VSCode
۵.۷. محیط لینوکس اوبونتو Linux Ubuntu
۵.۸. نرم افزار و تکنولوژی کنترل ورژن گیت Git
قطعا هر چقدر هم تکنیکال خوب باشیم تا ندونیم چطور باید باهاش پول در بیاریم ارزشی نداره. از اولین کارهایی که باید بکنی اینه که هدف از ورود به این رشته رو مشخص کنی. میخوای دکتری بخونی یا میخوای بری تو صنعت یا میخوای کسب و کار (استارت آپ) خودت رو ران کنی؟ بعد یه رزومه و پروفایل درست و حسابی برای هدفت در بیار. خود این دانش لازم داره. چطور؟ چون رزومه رو داری برای رفع نیاز مخاطب (استادت توی دکتری و مدیرت توی کار) میسازی، پس حسابی باید بدونی اونا چی میخوان و بر اون اساس رزومه رو بسازی. همین بهترین بهونه میشه که ببینی به طور تخصصی برای ورود به صنعت یا دانشگاه چه دانش بیزینسی لازم داری و بشینی یاد بگیری. به نظر من مهارت های پایین رو اگر به لیست یادگیری اضافه کنی به هدفت نزدیکتر میشی:
۶.۱. دانشگاه:
۶.۱.۱. زبان انگلیسی و به خصوص تسلط روی ریدینگ
۶.۱.۲. مطالعه روی مقالههای مرتبط دانشگاهی با تخصصی که میخوای درسش رو بخونی
۶.۲. صنعت:
۶.۲.۱. زبان انگلیسی به خصوص اسپیکینگ و لیسنینگ
۶.۲.۲. مارکتینگ و فروش
۶.۲.۳. دیزاین و بصری سازی
۶.۲.۴. درک از دینامیک سیستمی
۶.۲.۵. ساختار سازمانی و منابع انسانی
۶.۲.۶. دانش عمومی مالی و مدیریت پول
۶.۲.۷. دانش عمومی حقوق تجارت و نظام مالیاتی
یادگیری ماشین لرنینگ مراحل متنوعی داره ولی یادت نره که رمز موفقیت و رشد کردن توی مسیر یادگیری این دانش و مهارت فقط ثبات قدم و یادگیری مستمر هست. این نوشته در حال به روز شدن هست.