معرفی منابع آموزش یادگیری عمیق (Deep Learning) – راهنمای جامع


«یادگیری ماشین» (Machine Learning) از جمله زمینههای پژوهشی روز است که کسبوکارهای زیادی در صدد بهرهمندی از مزایای آن هستند. جذابیت موضوع از یکسو و فرصتهای شغلی قابل توجه از سوی دیگر موجب شده تا افراد زیادی علاقمند به فراگیری این مبحث و به ویژه «یادگیری عمیق» (Deep Learning) باشند.
اما بسیاری از علاقمندان در آغاز راه فراگیری یادگیری عمیق سردرگم هستند و نمیدانند سفر خود در این دنیای جذاب را از کجا آغاز کنند. این افراد باید دو نکته را در شروع کار خود مد نظر قرار دهند. اولین مورد «سطح دانش کنونی خودشان» و دومین مساله «عملی بودن رویکردشان» است.
یادگیری عمیق چیست؟
در ابتدای امر بهتر است یک تصویر کلی از چیستی مساله ایجاد شود زیرا یک سردرگمی عمومی پیرامون یادگیری عمیق، یادگیری ماشین و «هوش مصنوعی» (Artificial Intelligence | AI) برای بسیاری از افراد وجود دارد. در همین راستا مطالعه مطلب «علم داده، تحلیل داده، دادهکاوی و یادگیری ماشین ــ تفاوتها و شباهتها» نیز پیشنهاد میشود.
بهطور کلی، در هوش مصنوعی به مبحث ساخت برنامههای کامپیوتری حل مسالهای پرداخته میشود که برای حل یک مساله خاص به صراحت برنامهنویسی نشدهاند. به بیان ساده، در خط به خط کدها انجام کاری که از برنامه انتظار میرود، به آن دیکته نشده است. یک مثال خوب از هوش مصنوعی (و نه یادگیری ماشین)، «دیپ بلو» (Deep Blue) است. این کامپیوتر توانست در سال ۱۹۹۷، قهرمان شطرنج جهان «گری کاسپاروف» (Garry Kimovich Kasparov) را با جستوجوی عمیق جهت یافتن یک راهکار تقریبا بهینه، شکست دهد.
در یادگیری ماشین، مدلهای احتمالاتی برای یافتن این راهکارهای تقریبی مورد استفاده قرار میگیرند و یک زمینه خاص از یادگیری ماشین یادگیری عمیق است که در آن از شبکههای عصبی به عنوان مدلهای آماری به منظور یادگیری استفاده میشود. شبکههای عصبی عمیق قدرتمند هستند زیرا میتوانند هر تابعی را تخمین بزنند، و از این منظر با سادهترین شکل «رگرسیون خطی» (linear regression) که تنها میتواند روابط خطی را تشریح کند قابل مقایسه هستند.
چرا باید از یادگیری عمیق استفاده کرد؟
یکی از انتقادهایی که از یادگیری عمیق میشود آن است که این زمینه نقطه قوت خاصی ندارد و کاری را انجام میدهد که انسان توانایی انجام آن را دارد.
اما، مثالهای جالب توجه بسیاری از هوش مصنوعی موجود است که نشان میدهد ماشینها میتوانند بیاموزند که در سطح ابرانسان بازیهایی مانند «گو» (Go) را انجام داده و یا بیماریها را بهتر از پزشکان آموزش دیده تشخیص دهند. در عین حال، خودکارسازی میتواند بسیاری از کارها را در جوامع کنونی ارزانتر و موثرتر کند.
ریاضیات پیشنیاز
برای یادگیری عمیق (و در کل یادگیری ماشین)، داشتن یک پیش زمینه از جبر خطی و احتمالات قطعا مفید خواهد بود، اما استفاده از برخی متون آموزشی در این زمینهها ممکن است برای عدهای از افراد ضدانگیزشی عمل کند. در این راستا، مشاهده دوره جبر خطی از «گیلبرت استرنج» (Gilbert Strang) به عنوان مکملی برای دورههای یادگیری ماشین توصیه میشود.
همچنین، استفاده از کتاب «تشخیص الگو و یادگیری ماشین (علم اطلاعات و آمار)» (Pattern Recognition and Machine Learning -- Information Science and Statistics) اثر «کریستوفر ام بیشاپ» (Christopher M. Bishop) که به مباحث یادگیری ماشین نیز میپردازد مفید خواهد بود. بسیاری از متخصصان حوزه یادگیری ماشین، توصیه میکنند که افراد برای ورود به این حوزه و مبدل شدن به یک کارشناس یادگیری ماشین با مباحث بهینهسازی آشنایی داشته باشند، اما انجام مطالعات در این زمینه در بدو کار ضرورتی ندارد.
در صورتی که علاقمند به استفاده از آموزشهای زبان فارسی برای یادگیری مباحث ریاضیات و احتمالاتی مورد نیاز یادگیری ماشین هستید، استفاده از دورههای زیر به شما پیشنهاد میشود.
- آموزش تئوری احتمالات
- آموزش آنالیز واریانس با SPSS
- آموزش همبستگی و رگرسیون خطی در SPSS
- آموزش آزمونهای فرض مربوط به میانگین جامعه نرمال در SPSS
- آموزش آزمون آماری و پی مقدار (p-value)
- آموزش مصورسازی داده (Data Visualization) در نرم افزار R با بسته ggplot2
- مجموعه آموزشهای ریاضیات
دورههای هوش مصنوعی
در ادامه دورههای آموزشی هوش مصنوعی، یادگیری ماشین و یادگیری عمیق به زبان انگلیسی و فارسی معرفی شدهاند. برخی از دورههای بیان شده که به زبان انگلیسی هستند صرفا با رویکرد آموزش مباحث تئوری تولید شدهاند و برخی دیگر رویکرد کاربردیتری دارند.
دورههای به زبان انگلیسی
دوره آموزشی شبکههای عصبی برای یادگیری ماشین از جفری هینتون (Geoffrey Hinton): در این دوره، چشمانداز تئوری مباحث هوش مصنوعی و یادگیری ماشین مورد بررسی قرار گرفته و به همه پیشنیازهای ریاضیاتی بیان شده در بالا نیاز دارد.
دوره یادگیری ماشین از «اندرو وو» (Andrew Ng): در این دوره به میزان اندکی به مباحث ریاضیاتی پرداخته شده و در واقع مبانی ریاضیاتی لازم برای یادگیری ماشین در خلال مطالب شرح داده شده است.
دوره تخصصی یادگیری عمیق از اندرو وو: در این دوره به طور کامل به بحث یادگیری عمیق پرداخته شده است. هر چند برخی مباحث ریاضی مورد نیاز در این دوره شرح داده شدهاند ولی دوره مذکور بیشتر کاربردی محسوب میشود.
چگونه در یک رقابت دادهکاوی پیروز شوید؟: استفاده از این دوره به افرادی که نیاز به یک آموزش بسیار کاربردی یادگیری ماشین دارند، توصیه میشود. در این دوره، متخصصان یادگیری ماشین که پیش از این در رقابتهای این حوزه پیروز شدهاند تجربیات خود را با مخاطبان در میان میگذارند. با این آموزشها میتوان الگوریتمهای مبتنی بر درخت تصمیم را آموخت که در سایر دورههای معرفی شده در بالا کمتر به آنها اشاره شده است.
دورههای به زبان فارسی
دوره آموزش یادگیری ماشین از دکتر امیرحسین کیهانیپور: در این دوره ابتدا مفاهیم پایهای یادگیری ماشین شرح داده میشود. سپس، روشهای کلاسیک یادگیری ماشین مورد بررسی قرار گرفته و در ادامه به مبحث یادگیری تقویتی پرداخته میشود. در آموزش مذکور، مفاهیم اولیه یادگیری تقویتی و انواع روشهای آن به طور کامل مورد بررسی قرار میگیرد.
آموزش یادگیری عمیق (Deep learning) از مهندس سعید محققی: در این دوره ابتدا مفاهیم مقدماتی یادگیری عمیق شرح داده میشود. سپس، روشها و مدلهای یادگیری عمیق مورد بررسی قرار میگیرند. «شبکههای عصبی پیچشی» (Convolutional neural network)، «شبکههای عصبی بازگشتی» (Recurrent neural network) و «شبکههای عصبی عمیق مولد» (Generative adversarial network) از جمله موارد مطرح شده در این آموزش هستند.
آموزش انتخاب ویژگی یا Feature Selection از دکتر اسماعیل آتشپز گرگری: در این دوره مفاهیم کاهش ابعاد (استخراج و انتخاب ویژگی) و روشهای انجام این کار به صورت علمی و کاربردی شرح داده میشود.
مجموعه آموزشهای شبکههای عصبی مصنوعی: در این بخش میتوان آموزشهای گوناگون در حوزه یادگیری ماشین و هوش مصنوعی را مشاهده و از میان آنها دوره آموزشی مورد نظر را انتخاب کرد. مجموعه آموزشهای کاربردی شبکههای عصبی مصنوعی (از دکتر اسماعیل آتشپز)، آموزش هوش مصنوعی توزیع شده (از دکتر امیرحسین کیهانیپور) و مجموعه آموزشهای شبکههای عصبی مصنوعی در متلب (از دکتر مصطفی کلامی هریس) از جمله موارد موجود در این مجموعه هستند.
مجموعه آموزشهای هوش محاسباتی: در این بخش میتوان آموزشهای گوناگون در حوزه هوش مصنوعی را مشاهده کرد. آموزش هوش مصنوعی (از مهندس محمد صبری)، آموزش هوش مصنوعی - تکمیلی (از مهندس منوچهر بابایی) و مجموعه آموزشهای تئوری و عملی الگوریتم ژنتیک (از دکتر سید مصطفی کلامی هریس) از دورههای آموزشی موجود در این مجموعه هستند.
گنجینه آموزشهای محاسبات هوشمند: این دوره پیشنهاد ویژه برای افرادی است که تمایل دارند در حوزه هوش مصنوعی و یادگیری ماشین در جایگاه خوبی قرار بگیرند. در این گنجینه آموزشهای ویدئویی، مفاهیم مقدماتی تا پیشرفته مباحث مذکور به صورت علمی و کاربردی توسط کارشناسان شرح داده میشود. این دوره، یک مجموعه آموزشی جامع و کامل در زمینه محاسبات هوشمند محسوب میشود.
پروژههای قابل انجام
پیادهسازی و اجرای الگوریتمهای یادگیری ماشین و تامین سختافزار مورد نیاز برای آنها کار دشواری نیست، این در حالیست که چنین پروژههایی میتوانند به نتایج قابل توجهی منجر شوند. «Kaggle» بزرگترین جامعه دانشمندان داده و یادگیری ماشین در جهان است که مسابقات گوناگونی را پیرامون این موضوعات برگزار میکند.
شرکت در این رقابتها به علاقمندان یادگیری ماشین و دادهکاوی توصیه میشود.
همچنین، به علاقمندان پیشنهاد میشود پس از نصب نرمافزارهای لازم (مانند یک زبان برنامهنویسی همچون پایتون) و افزودن یک کتابخانه یادگیری عمیق به آن، پروژههای عملی انجام دهند. برای این کار مثلا میتوان یک کد شبکه عصبی آماده را از «گیتهاب» (GitHub) دانلود و سپس آن را به شیوه مورد نظر و متناسب با مساله ویرایش کرد. در صورتی که علاقمندان هیچ ایدهای برای انجام پروژه نداشته باشند، کافیست یک مقاله را از پایه مجددا پیادهسازی کنند و یا جستوجوهایی برای دریافت ایده در گیتهاب انجام دهند.
مطالعات تکمیلی
در ادامه منابع دیگری که میتوان از آنها برای مطالعات تکمیلی در زمینه یادگیری ماشین استفاده کرد بیان شدهاند.
- مخازن گیتهاب مجموعه بسیار خوبی از مقالات را در اختیار قرار میدهند که اغلب پیرامون معتبرترین مقالات حوزه یادگیری ماشین هستند. مطالعه مقالات قدیمیتر موجود در این مخازن که اغلب با تگ awsome مشخص شدهاند و مراجعه به کتابهای حوزه یادگیری ماشین در صورت عدم درک مفاهیم موجود در این مقالات توصیه میشود. نمونهای از آنچه بیان شد در این لینک در دسترس است.
- در کتاب تشخیص الگو اثر بیشاپ که بالاتر به آن اشاره شد نیز اغلب مباحث یادگیری ماشین تا پیش از سال ۲۰۱۰ میلادی با سطح خوبی از ریاضیات مورد بررسی قرار گرفتهاند.
- مطالعه مطالب وبسایت kdnuggets و یادگیری ماشین در reddit نیز به افزایش انگیزه و به روز بودن دانش علاقمندان این حوزه کمک شایان توجهی میکند.
- برای مطالعه عمیقتر در زمینه یادگیری ماشین، باید به کتب تخصصی و اصلی آن مراجعه کرد. از این جمله میتوان به کتاب یادگیری تقویتی اثر «ساتن» (Richard S. Sutton) و استاد راهنمای دوره دکترای او «اندرو برتو» (Andrew G. Barto) که یک پیشنویس از آن در اینجا موجود است اشاره کرد. این کتاب یک منبع فوقالعاده برای مطالعه عمیق در حوزه یادگیری تقویتی محسوب میشود.
- بخش هوش مصنوعی و دادهکاوی وبلاگ فرادرس نیز به طور مداوم با مقالات تخصصی این حوزهها به روز میشود. مطالعه این مطالب نیز به علاقمندان علم داده و یادگیری ماشین پیشنهاد میشود.
نکته پایانی
به کلیه فراگیران این حوزه توصیه میشود که اگر ضمن فراگیری یادگیری ماشین پرسشی برای آنها مطرح شد، پیش از آنکه از شخصی درخواست کمک کنند ابتدا سخت برای حل مساله موجود تلاش کرده و در صورت به نتیجه نرسیدن، انجمنهای پرسشوپاسخ اینترنتی در زمینههای مرتبط را مورد بررسی قرار دهند. جستوجو کردن در گوگل نیز راهکار اساسی پیش از هر اقدام دیگری محسوب میشود. افراد میتوانند در صورتی که پس از انجام مراحل فوق پاسخ مورد نظر خود را دریافت نکردند آن را در MachineLearningLearn subreddit، Statistics StackOverflow و Statistics StackOverflow با دیگران در میان بگذارند.
اگر نوشته بالا برای شما مفید بود، آموزشهای زیر نیز به شما پیشنهاد میشوند:
- مجموعه آموزشهای هوش محاسباتی
- مجموعه آموزشهای آمار، احتمالات و دادهکاوی
- مجموعه آموزشهای یادگیری ماشین و بازشناسی الگو
- مجموعه آموزشهای الگوریتم ژنتیک و محاسبات تکاملی
- مجموعه آموزشهای شبکههای عصبی مصنوعی
^^