دانشجو ارشد هوش مصنوعی توسعه دهنده (پایتون - جنگو) حوزه تحقیقاتی تخصصی: سیستم پیشنهاد دهنده شغل: توسعه دهنده تیم امنیت ایرانسل شغل دوم: مدرس پایتون
یادگیری ماشین را از کجا شروع کنیم؟
یکی از دغدغه های موجود در حوزه علم داده (یادگیری ماشین) این است که چگونه این حوزه را شروع کنید و چطور در این زمینه بخواهید حرفه ای شوید. یکی از دلایل زیاد شدن افرادی که در این زمینه حرکت می کنند به این دلیل است که بازار بسیار جذاب و پر پولی را در کشورهای اروپایی و آمریکایی دارد ضمن اینکه شرکت های برتر ایران نیز به افرادی در این زمینه نیاز دارند. معمولا اکثر افرادی که این زمینه را مطالعه می کندد قصد مهاجرت و خروج از ایران را دارند. بر همین اساس به دلیل سوالات زیادی که در این زمینه پرسیده می شد، برآن شدم تا مطلبی در این راستا منتشر کنم تا همه بتوانند مسیر درستی را طی کنند.
مرحله اول) زبان برنامه نویسی پایتون
در ابتدایی ترین بخش پیش از اینکه بخواهید حوزه یادگیری ماشین را آغاز کنید، بهتر است که زبان برنامه نویسی پایتون را بدانید. نکته ای که در این زمینه حائز اهمیت است، تنها یادگیری قواعد نوشتاری زبان برنامه نویسی اهمیت ندارد بلکه شما باید چگونگی حل مسئله را بیاموزید و اینکار هم تنها با تمرین و تکرار پشتکار خودتان به دست می آید. به ندرت کسی بتواند این مهارت را به شما انتقال دهد. سعی کنید ضمن یادگیری قواعد پایتون، زمانی که متوجه شدید توانایی حل مسئله دارید در سایت hackerrank.com عضو شوید سپس مسائل آن را شروع به حل کردن کنید. تقریبا خودتان می توانید به مرور زمان متوجه شوید که مسائل را می توانید حل کنید.
مرحله دوم) یادگیری مفاهیم ابتدایی یادگیری ماشین
در این مرحله یادگیری موارد زیر بسیار حائز اهمیت است:
- درک یک مجموعه داده ای
- واریانس
- کوواریانس
- همبستگی (correlation)
- درک الگوریتم یادگیری ماشین (پیشبینی مقدار، کلاس بندی)
- ارزیابی (evaluation)
- انواع تقسیم بندی مجموعه داده ای (cross validation)
- درک مفهوم generalization و over-fit
- انتخاب ویژگی (feature selection)
- استخراج ویژگی یا کاهش ابعاد داده (feature extraction or dimensional reduction)
- یادگیری کامل الگوریتم های یادگیری ماشین (machine learning algorithms)
- یادگیری عمیق (deep learning)
- یادگیری تقویتی (reinforcement learning)
مرحله سوم) پیاده سازی آموخته
دقت کنید که این مرحله در موازی مرحله دوم باید رخ داهد. سعی کنید روی مجموعه داده ای های معروف کار کنید و انواع مواردی که آموختید را پیاده سازی کنید. به عنوان مثال مسئله رگرسیون را روی مجموعه داده ای Boston و پیش بینی قیمت موبایل تست کنید. سپس بر روی مجموعه داده ای کلاس بندی شده کار کنید که در مجموعه داده ای UCI که پیشتر لینکش رو گذاشتم می توانید مسائل کلاس بندی (classification) را پیدا کنید و آن ها را حل کنید. دقت کنید که اگر موفق نشدید هیچ ایرادی نداره این مسائل حل شده اند و شما می توانید کدهای دیگران را در اینترنت پیدا کنید.
در این میان خودتان را در چالش های hackerrank یا codility قوی تر کنید. هر زمان که احساس کردید یادگرفته اید و می توانید وارد بازار کار شوید شروع کنید به گشتن داخل سایت kaggle ابتدا خودتان را در چالش های از پیش تعیین شده محک بزنید و ببینید چقدر می توانید نسبت به سایرین بهتر عمل کنید. در نهایت می توانید اقدام به موقعیت های شغلی کنید.
توجه داشته باشید که زمانی به مصاحبه بروید که بتوانید از کارهایی که کردید، علمی دفاع کنید و از تک تک جزئیات الگوریتم ها و عملکردشان آگاه باشید. یکی از سوالات مرسوم مصاحبه های علم داده این است که بهترین مجموعه داده ای از نظر شما چه شکلی است.
نکته: در حین یادگیری دچار توهم یادگیری دقیق ریاضیات نشوید. بیشترین نکته ای که حائز اهمیت است، یادگیری عملکرد الگوریتم در جای درست است. شما قرار نیست الگوریتم اختراع کنید. الگوریتم رو دوستانی که رشته ریاضی مطالعه کردند و کسانی که ارشد هوش مصنوعی دارند وظیفه دارند تا اختراع کنند. شما بیاموزید هر الگوریتم چگونه با چه حالاتی کار می کند و مزایا و معایبش چیست. کجا از آن استفاده کنید درست است و کجا اشتباه است. بنابراین از ریاضیات پیچیده علم داده نترسید. در این صورت یادگیری برایتان ساده می شود. ابتدا ساده شروع کنید و زمانی که دیگر جذابیت عملی علم داده دلچسب نبود یا به چالش های زیادی برخورد کردید، بروید و شروع کنید به یادگیری تئوری گراف سپس هندسه تحلیلی و در نهایت وارد الگوریتم های یادگیری ماشین بشوید.
نکته: هرچقدر شما در آمار قوی تر باشید مهندس قوی تری خواهید بود. آمار نقش بسیار مهمی در پیش پردازش داده دارد. اگر علاقه مند هستید جزئیات ریاضیاتی را بدانید ابتدا توصیه می کنم با آمار و نقش آمار در مجموعه داده ای را مطالعه کنید.
در نهایت دو منبع بی نظیر جهت یادگیری ساده و مقدماتی:
این پست و این مسیر برای کسانی است که رشته هوش مصنوعی مطالعه نکردند و علاقه مند به یادگیری این زمینه هستند. پروسه تخصصی این حوزه کمی می تواند متفاوت تر باشد که این موضوع نیز به سطح آموخته های دانشجویان پیش از شروع دوره ارشد بر می گردد.
سوالات خود را در زیر همین پست بپرسید. همچنین خوشحال می شوم با دوستان خود به اشتراک بگذارید. مخاطبین بیشتر باعث انگیزه بیشتر ماست. قانون انرژی را در با کمک هم تقویت کنیم.
موفق، مؤید و پیروز باشید.
مطلبی دیگر از این انتشارات
پردازش دادههای بزرگ با کتابخانه Dask در پایتون
مطلبی دیگر از این انتشارات
تابع هدف در SVM : راهکار Penalty و دوری از Overfitting
مطلبی دیگر از این انتشارات
شبکه کپسول (مقدمه)