آموزش یادگیری ماشین «Machine Learning» شامل مفاهیم پایه و پیشرفته است که بهطور ویژه برای دانشجویان و همچنین افراد حرفهای با تجربه طراحی شده است. این آموزش به شما کمک میکند تا با اصول اولیه یادگیری ماشین بهخوبی آشنا شوید و مجموعهای گسترده از تکنیکها، از جمله یادگیری نظارتشده «Supervised Learning»، یادگیری بدون نظارت «Unsupervised Learning»، و یادگیری تقویتی «Reinforcement Learning» را بررسی کنید.
*** توجه: این مقاله هر روز در حال بروزرسانی است و مطالب و لینکهای جدید به این آموزش اضافه میشود.
یادگیری ماشین (ML) یکی از زیرشاخههای هوش مصنوعی «Artificial Intelligence یا AI» است که بر توسعه سیستمهایی تمرکز دارد که بر اساس دادههایی که دریافت میکنند، یاد میگیرند یا عملکرد خود را بهبود میبخشند.
هوش مصنوعی (AI) یک اصطلاح کلی است که به سیستمها یا ماشینهایی اشاره دارد که شباهتهایی با هوش انسانی دارند. یادگیری ماشین (ML) و هوش مصنوعی (AI) اغلب بهطور مشترک بحث میشوند و گاهی اوقات این اصطلاحات بهجای یکدیگر استفاده میشوند، اگرچه معنای یکسانی ندارند.
یک تفاوت مهم این است که هرچند تمام یادگیری ماشین بخشی از هوش مصنوعی است، اما تمام هوش مصنوعی شامل یادگیری ماشین نمیشود.
یادگیری ماشین چیست؟
یادگیری ماشین شاخهای از علم است که به کامپیوترها این توانایی را میدهد که بدون نیاز به برنامهنویسی به طور صریح، یاد بگیرند.
یادگیری ماشین یکی از هیجانانگیزترین فناوریهایی است که ممکن است با آن مواجه شده باشید. همانطور که از نام آن پیداست، این فناوری توانایی یادگیری را به کامپیوتر میدهد و آن را به انسانها شبیهتر میکند.
یادگیری ماشین امروزه بهطور فعال در حال استفاده است، شاید در جاهایی بسیار بیشتر از آنچه تصور کنید.
ویژگیهای یادگیری ماشین
- یادگیری ماشین یک فناوری مبتنی بر داده (Data-Driven Technology) است. سازمانها روزانه حجم زیادی از داده تولید میکنند که به آنها امکان میدهد روابط مهم را شناسایی کرده و تصمیمات بهتری بگیرند.
- ماشینها میتوانند از دادههای گذشته یاد بگیرند و بهطور خودکار عملکرد خود را بهبود دهند.
- یادگیری ماشین قادر است با دریافت یک مجموعه داده (Dataset)، الگوهای مختلف را در داده شناسایی کند.
- برای سازمانهای بزرگ، ایجاد برند (Branding) بسیار مهم است و هدفگذاری بر روی گروههای مشتریان مرتبط را سادهتر میکند.
- یادگیری ماشین شبیه دادهکاوی (Data Mining) است، زیرا هر دو با حجم زیادی از داده سر و کار دارند.
مقدمه
آموزش یادگیری ماشین با بررسی مفاهیم پایهای آغاز میشود، از جمله تاریخچه، اصطلاحات کلیدی، و انواع مسائلی که توسط یادگیری ماشین میتواند حل شود.
- شروع کار با یادگیری ماشین
- مقدمهای بر یادگیری ماشین
- مقدمهای بر دادهها در یادگیری ماشین
- یادگیری ماشین چیست؟
- کاربردهای یادگیری ماشین
- بهترین کتابخانههای پایتون برای یادگیری ماشین
- یادگیری ماشین و هوش مصنوعی
- تفاوت بین یادگیری ماشین و هوش مصنوعی
دادهها و پردازش آنها
دادهها پایه و اساس یادگیری ماشین هستند. کیفیت و کمیت دادهها، مستقیماً بر عملکرد مدلهای یادگیری ماشین تأثیر میگذارد. در این بخش، جنبههای مختلف دادهها و پردازش آنها که برای ساخت سیستمهای یادگیری ماشین قوی ضروری هستند را بررسی خواهیم کرد.
- مقدمهای بر دادهها در یادگیری ماشین
- درک پردازش دادهها
- دیتاست یا مجموعه داده
- ایجاد مجموعههای داده آزمایشی با استفاده از Sklearn در پایتون
- تولید مجموعههای داده آزمایشی برای یادگیری ماشین در پایتون
- پیشپردازش دادهها در پایتون
- پاکسازی دادهها
- مقیاسبندی ویژگیها
- کدگذاری برچسبهای مجموعه دادهها در پایتون
- روش کدگذاری وان هات (One Hot Encoding) در پایتون
یادگیری نظارتشده
یادگیری نظارتشده «Supervised Learning» رویکردی اساسی در یادگیری ماشین است که در آن مدلها بر روی مجموعه دادههای برچسبخورده آموزش میبینند. این تکنیک برای پیشبینی نتایج بر اساس ویژگیهای ورودی استفاده میشود و برای کاربردهای مختلف از جمله تشخیص هرزنامهها تا تشخیصهای پزشکی بسیار ارزشمند است. در این بخش، مفاهیم و روششناسیهای کلیدی مربوط به یادگیری نظارتشده، از جمله تکنیکهای طبقهبندی و رگرسیون را بررسی خواهیم کرد.
- یادگیری نظارت شده چیست؟
- طبقه بندی یا Classification
- رگرسیون در یادگیری ماشین Regression
- طبقهبندی در مقابل رگرسیون
- یادگیری ماشین | انواع یادگیری – یادگیری نظارتشده
- طبقهبندی چندکلاسه با استفاده از scikit-learn
- نزول گرادیان
- الگوریتم نزول گرادیان و انواع آن
- نزول گرادیان تصادفی (SGD)
- نزول گرادیان مینیبچ با پایتون
- تکنیکهای بهینهسازی برای نزول گرادیان
- مقدمهای بر بهینهساز مبتنی بر مومنتوم
- رگرسیون خطی
- مقدمهای بر رگرسیون خطی
- نزول گرادیان در رگرسیون خطی
- توضیح ریاضی برای عملکرد رگرسیون خطی
- معادله نرمال در رگرسیون خطی
- رگرسیون خطی (پیادهسازی پایتون)
- رگرسیون خطی ساده با استفاده از R
- رگرسیون خطی تکمتغیره در پایتون
- رگرسیون خطی چندگانه با استفاده از پایتون
- رگرسیون خطی چندگانه با استفاده از R
- رگرسیون خطی محلی وزندهی شده
- مدلهای رگرسیون خطی عمومی
- رگرسیون خطی با استفاده از sklearn در پایتون
- رگرسیون خطی با استفاده از TensorFlow
- یک رویکرد عملی به رگرسیون خطی ساده با استفاده از R
- رگرسیون خطی با استفاده از PyTorch
- پایاسپارک | رگرسیون خطی با استفاده از Apache MLlib
- چالش مسکن بوستون در Kaggle با استفاده از رگرسیون خطی
- پیادهسازی رگرسیون چندجملهای در پایتون
- رگرسیون Softmax با استفاده از TensorFlow
- رگرسیون لجستیک
- درک رگرسیون لجستیک
- چرا رگرسیون لجستیک در طبقهبندی؟
- رگرسیون لجستیک با پایتون
- تابع هزینه در رگرسیون لجستیک
- رگرسیون لجستیک با استفاده از TensorFlow
- طبقهبندیکنندههای Naive Bayes
- ماشینهای پشتیبان بردار
- ماشینهای پشتیبان بردار (SVM) در پایتون
- تنظیم ابرپارامترهای SVM با استفاده از GridSearchCV
- ماشینهای پشتیبان بردار (SVM) در R
- استفاده از SVM برای انجام طبقهبندی روی یک مجموعه داده غیرخطی
- درخت تصمیم
- درخت تصمیم
- رگرسیون درخت تصمیم با استفاده از sklearn
- مقدمهای بر درخت تصمیم با مثال
- پیادهسازی درخت تصمیم با پایتون
- درخت تصمیم در مهندسی نرمافزار
- جنگل تصادفی
- رگرسیون جنگل تصادفی در پایتون
- طبقهبند ترکیبی
- طبقهبند رأیگیری با استفاده از Sklearn
- طبقهبند کیسهگیری
یادگیری بدون نظارت
یادگیری غیرنظارتی یک حوزه کلیدی از یادگیری ماشین است که بر روی کشف الگوها و ساختارهای پنهان در دادهها بدون خروجیهای برچسبخورده تمرکز دارد. برخلاف یادگیری نظارتشده که مدلها از نمونههای برچسبخورده یاد میگیرند، یادگیری غیرنظارتی به ساختار ذاتی دادههای ورودی تکیه دارد. در این بخش، تکنیکها و کاربردهای مختلف یادگیری غیرنظارتی، بهویژه روشهای خوشهبندی را بررسی خواهیم کرد.
- انواع یادگیری – یادگیری غیرنظارتی
- یادگیری نظارتشده و غیرنظارتی
- خوشهبندی در یادگیری ماشین
- انواع مختلف الگوریتمهای خوشهبندی
- مقدمهای بر خوشهبندی K-means
- روش Elbow برای یافتن مقدار بهینه k در KMeans
- دام تصادفی در ابتدای خوشهبندی K-Means
- یادگیری ماشین | الگوریتم K-means++
- تحلیل دادههای آزمایشی با استفاده از خوشهبندی K-means در پایتون
- الگوریتم خوشهبندی مینیمجموعه K-means
- خوشهبندی Mean-Shift
- خوشهبندی DBSCAN – خوشهبندی مبتنی بر چگالی
- پیادهسازی الگوریتم DBSCAN با استفاده از Sklearn
- خوشهبندی فازی
- خوشهبندی طیفی
- خوشهبندی OPTICS
- پیادهسازی خوشهبندی OPTICS با استفاده از Sklearn
- خوشهبندی سلسلهمراتبی (خوشهبندی Agglomerative و Divisive)
- پیادهسازی خوشهبندی Agglomerative با استفاده از Sklearn
- مدل ترکیب گوسی
یادگیری تقویتی
یادگیری تقویتی (RL) یک حوزه پویا از یادگیری ماشین است که بر روی نحوه انجام اقدامات توسط عاملها در یک محیط به منظور حداکثر کردن پاداش تجمعی تمرکز دارد. برخلاف یادگیری نظارتشده که مدلها از یک مجموعه داده ثابت یاد میگیرند، یادگیری تقویتی شامل یادگیری از طریق آزمایش و خطاست که آن را برای مسائل پیچیده تصمیمگیری بهویژه مناسب میکند. در این بخش، مفاهیم پایه، الگوریتمها و کاربردهای یادگیری تقویتی را بررسی خواهیم کرد.
- یادگیری تقویتی
- الگوریتم یادگیری تقویتی: پیادهسازی پایتون با استفاده از Q-learning
- مقدمهای بر Thompson Sampling
- الگوریتم ژنتیک برای یادگیری تقویتی
- یادگیری تقویتی SARSA
- Q-learning در پایتون
کاهش ابعاد
کاهش ابعاد یک تکنیک حیاتی در یادگیری ماشین و تحلیل دادهها است که بر روی کاهش تعداد ویژگیها یا ابعاد در یک مجموعه داده تمرکز دارد، در حالی که اطلاعات ضروری را حفظ میکند. با پیچیدهتر شدن مجموعههای داده، ابعاد بالا میتواند منجر به مشکلاتی مانند بیشبرازش، زمان محاسباتی زیاد و دشواریهای تجسم شود. در این بخش، روشها و کاربردهای مختلف کاهش ابعاد را بررسی خواهیم کرد.
- مقدمهای بر کاهش ابعاد
- مقدمهای بر Kernel PCA
- تحلیل مولفههای اصلی (PCA)
- تحلیل مولفههای اصلی با پایتون
- تقریبهای رده پایین
- مروری بر تحلیل تبعیضی خطی (LDA)
- توضیح ریاضی تحلیل تبعیضی خطی (LDA)
- تحلیل تبعیضی عمومی (GDA)
- تحلیل مولفههای مستقل
- نگاشت ویژگیها
- درختهای اضافی برای انتخاب ویژگیها
- آزمون خیمربع برای انتخاب ویژگیها – توضیح ریاضی
- یادگیری ماشین | الگوریتم t-SNE (الگوریتم همسایگی استوکستیک توزیعشده)
- پایتون | نحوه و جایی که باید مقیاسبندی ویژگیها را اعمال کنیم؟
- پارامترهای انتخاب ویژگی
- کمبرازش و بیشبرازش در یادگیری ماشین
پردازش زبان طبیعی
پردازش زبان طبیعی (NLP) یک زیرشاخه حیاتی از هوش مصنوعی و یادگیری ماشین است که بر تعامل بین کامپیوترها و زبان انسان تمرکز دارد. این تکنیکها به ماشینها این امکان را میدهند که زبان انسان را بهطور معنادار و مفید درک، تفسیر و تولید کنند. در این بخش، مفاهیم بنیادی، تکنیکها و کاربردهای NLP را بررسی خواهیم کرد.
- مقدمهای بر پردازش زبان طبیعی
- پیشپردازش متن در پایتون | مجموعه – ۱
- پیشپردازش متن در پایتون | مجموعه ۲
- حذف کلمات توقف با استفاده از NLTK در پایتون
- توکنسازی متن با استفاده از NLTK در پایتون
- چگونگی کارکرد توکنسازی متن، جملات، کلمات
- مقدمهای بر Stemming
- Stemming کلمات با استفاده از NLTK
- Lemmatization با استفاده از NLTK
- Lemmatization با استفاده از TextBlob
- چگونه میتوان مترادفها/متضادها را از NLTK WordNet در پایتون دریافت کرد؟
شبکههای عصبی
شبکههای عصبی یک جزء اساسی از یادگیری عمیق و ابزاری قدرتمند برای حل مشکلات پیچیده در یادگیری ماشین هستند. این شبکهها که از مغز انسان الهام گرفتهاند، از لایههای بههمپیوستهای از گرهها (نورونها) تشکیل شدهاند که برای پردازش دادهها، یادگیری الگوها و پیشبینیها با هم کار میکنند. در این بخش، مفاهیم، معماریها و کاربردهای اساسی شبکههای عصبی را بررسی خواهیم کرد.
- مقدمهای بر شبکههای عصبی مصنوعی | مجموعه ۱
- مقدمهای بر شبکههای عصبی مصنوعی | مجموعه ۲
- مقدمهای بر ANN (شبکههای عصبی مصنوعی) | مجموعه ۳ (سیستمهای ترکیبی)
- مقدمهای بر ANN | مجموعه ۴ (معماریهای شبکه)
- توابع فعالسازی
- پیادهسازی فرآیند آموزش شبکه عصبی مصنوعی در پایتون
- یک شبکه عصبی با یک نورون در پایتون
- شبکههای عصبی کانولوشنی
- مقدمهای بر شبکه عصبی کانولوشنی
- مقدمهای بر لایههای تجمیع (Pooling)
- مقدمهای بر Padding
- انواع Padding در لایه کانولوشن
- اعمال شبکه عصبی کانولوشنی بر روی مجموعه داده mnist
- شبکههای عصبی بازگشتی
- مقدمهای بر شبکه عصبی بازگشتی
- توضیح شبکههای عصبی بازگشتی
- مدل seq2seq
- مقدمهای بر حافظه بلندمدت و کوتاهمدت (LSTM)
- توضیح شبکههای حافظه بلندمدت و کوتاهمدت (LSTM)
- شبکههای واحد بازگشتی گیتدار (GRU)
- تولید متن با استفاده از شبکههای واحد بازگشتی گیتدار
- شبکههای Generative Adversarial Networks (GAN)
- مقدمهای بر شبکههای GAN
- شبکههای Generative Adversarial Networks (GAN)
- موارد استفاده از شبکههای Generative Adversarial Networks
- ساخت یک شبکه Generative Adversarial Network با استفاده از Keras
- ریختپاشی مدلها در GAN
- مقدمهای بر یادگیری عمیق Q
- پیادهسازی یادگیری عمیق Q با استفاده از TensorFlow
یادگیری ماشین – استقرار
- استقرار یادگیری ماشین
- استقرار اپلیکیشن وب یادگیری ماشین خود را با Streamlit در Heroku
- استقرار مدل یادگیری ماشین با استفاده از کتابخانه Streamlit
- استقرار مدل یادگیری ماشین با استفاده از Flask
- پایتون – ایجاد رابطهای کاربری برای نمونهسازی مدلهای یادگیری ماشین با Gradio
- چگونه دادهها را قبل از استقرار مدل یادگیری ماشین آماده کنیم؟
- استقرار مدلهای یادگیری ماشین بهعنوان API با استفاده از FastAPI
- استقرار عنکبوت Scrapy در ScrapingHub
یادگیری ماشین – کاربردها
- پیشبینی بارش با استفاده از رگرسیون خطی
- شناسایی ارقام دستنویس با استفاده از رگرسیون لجستیک در PyTorch
- چالش تشخیص سرطان سینه در Kaggle با استفاده از رگرسیون لجستیک
- پایتون | پیادهسازی سیستم پیشنهاد دهنده فیلم
- ماشین پشتیبان بردار برای شناسایی ویژگیهای صورت در C++
- درختهای تصمیم – معما (پازل ۱۲ سکه جعلی)
- تشخیص تقلب با کارتهای اعتباری
- تحلیل NLP از نظرات رستورانها
- اعمال Naive Bayes چندجملهای در مسائل NLP
- فشردهسازی تصویر با استفاده از خوشهبندی K-means
- یادگیری عمیق | تولید توضیحات تصویر با استفاده از شخصیتهای Avengers EndGame
- چگونه گوگل از یادگیری ماشین استفاده میکند؟
- چگونه ناسا از یادگیری ماشین استفاده میکند؟
- ۵ روش شگفتانگیز که فیسبوک از یادگیری ماشین استفاده میکند
- تبلیغات هدفمند با استفاده از یادگیری ماشین
- چگونه شرکتهای معروف از یادگیری ماشین استفاده میکنند؟
سؤالات متداول دربارهی آموزش یادگیری ماشین
پرسش ۱: یادگیری ماشین چیست و چه تفاوتی با یادگیری عمیق دارد؟
پاسخ: یادگیری ماشین برنامههایی را توسعه میدهد که میتوانند به دادهها دسترسی پیدا کنند و از آنها یاد بگیرند. یادگیری عمیق زیرمجموعهای از یادگیری ماشین است. یادگیری عمیق از استخراج خودکار ویژگیها از دادههای خام پشتیبانی میکند.
پرسش ۲: الگوریتمهای مختلف یادگیری ماشین چیست؟
پاسخ: الگوریتمهای نظارتشده: اینها الگوریتمهایی هستند که از دادههای برچسبخورده یاد میگیرند، مانند تصاویری که با چهره سگ یا عدم چهره سگ برچسبگذاری شدهاند. الگوریتم بستگی به دادههای نظارتشده یا برچسبخورده دارد. مانند رگرسیون، شناسایی اشیاء، بخشبندی. الگوریتمهای غیرنظارتی: اینها الگوریتمهایی هستند که از دادههای بدون برچسب یاد میگیرند، مانند مجموعهای از تصاویر که به آنها داده میشود تا مجموعهای مشابه از تصاویر بسازند. مانند خوشهبندی، کاهش ابعاد و غیره. الگوریتمهای نیمهنظارتی: الگوریتمهایی که از هر دو داده نظارتشده و غیرنظارتی استفاده میکنند. بیشتر دادهها برای این الگوریتمها دادههای غیرنظارتی هستند. مانند تشخیص ناهنجاری. پرسش ۳: چرا از یادگیری ماشین استفاده میکنیم؟
پاسخ: یادگیری ماشین برای تصمیمگیری بر اساس دادهها استفاده میشود. با مدلسازی الگوریتمها بر اساس دادههای تاریخی، الگوریتمها الگوها و روابطی را پیدا میکنند که شناسایی آنها برای انسانها دشوار است. این الگوها اکنون برای ارجاعهای آینده بهمنظور پیشبینی راهحل مشکلات ناشناخته استفاده میشوند.
پرسش ۴: تفاوت بین هوش مصنوعی و یادگیری ماشین چیست؟
پاسخ: هوش مصنوعی یک مفهوم گسترده است، که شامل هر سیستمی میشود که رفتار هوشمندانهای از خود نشان دهد. یادگیری ماشین یکی از روشهای دستیابی به هوش مصنوعی است که به ماشینها اجازه میدهد با تجربه (دادهها) یاد بگیرند. به عبارت دیگر، یادگیری ماشین یک ابزار در جعبهابزار هوش مصنوعی است. برای مثال، یک سیستم AI ممکن است شامل یادگیری ماشین، پردازش زبان طبیعی، و منطق فازی باشد تا کارهای پیچیده را انجام دهد.