یادگیری ماشین (Machine Learning) چیست؟ + پادکست
در این مطلب به صورت خیلی جامع به تعریف یادگیری ماشین و بیان کاربردهای متنوع اون میپردازیم! از کاربردهای یادگیری ماشین در گوگل و اینستاگرام گرفته تا وبسایتهای کوچیک و بورس و غیره!
یک نکته که باید همین اول بدونید! یادگیری ماشین به زبان انگلیسی میشه: Machine Learning که مخففش ML هست!
این آموزش پادکست دارد! [برای دانلود پادکست به پایین مطلب مراجعه کنید!]
تعریف
نکته اول: هر بندهخدایی که وارد این حوزه شده، واسه خودش یه تعریفی ارائه داده! و طبیعتاً تعریف واحد وجود نداره! [البته اون قسمت هر بندهخدایی رو شوخی کردم تا مطلب خستهکننده نباشه]! اما واقعیت اینه که تعریف واحدی وجود نداره! اما برای اینکه یکم دید بگیریم، یه چندتا تعریف رو جلوتر باهم بررسی میکنیم!
- الگوریتمهایی که میتونن از دادههای مشاهده شده [البته طبیعتاً نه هر دادهای!] یاد بگیرن و براساس اونها پیشبینی انجام بدن!
- حوزهای از علم که به تنظیم، اکتشاف و پیادهسازی شیوهها و الگوریتمهایی میپردازد! که بر اساس آنها ماشینها توانایی یادگیری پیدا میکنند!
- حوزهای از علم که به کامیپوترها توانایی یادگیری میدهد! (بدون اینکه صراحتاً برنامهنویسی شوند)! [اینکه که این صراحتاً یعنی چی، جلوتر میگم!]
از این تعریفها که بگذریم، ما در زندگی روزمرۀ خودمون هم با یادگیری ماشین زیاد سر و کار داریم!
برخی از کاربردهای یادگیری ماشین
کاربرد یادگیری ماشین در موتورهای جستجو، تشخیص ایمیل اسپم و غیر اسپم و کاربرد در فضای مجازی !
- وقتی شما در موتور جستجویی مثل Google به جستجو میپردازید، ماشین یاد گرفته تا به شما چه چیزهایی نشون بده! که خوب باشه و مناسب شما باشه!
- بر چه اساسی در gmail خودتون، پیامهایی رو میبینید که رفتن توووی بخش spamها ! [در صورتی که شما اونها رو توووی spam ها نذاشتید و خود گوگل اینطور تشخیص داده؟!] قطعاً گوگل علاف و بیکار نیست که یه سری کارمند بذاره که بیان همهی ایمیلهای من و شما (و هر نفر دیگهای) رو چک کنن و اونها رو به دو دسته spam و غیر spam تقسیم کنن!
- یا مثلاً توووی ایسنتاگرام، چی میشه که تا یه سری اتفاق ها میفته، page ها رو بلاک میکنه؟!
- یا چی میشه که شما توی search اینستاگرامتون یه چیز میبیند و من یه چیز دیگه؟!
پردازش تصویر، تبلیغات اینترنی و پیشبینی قیمت سهام و … !
- نمیدونم میدونید یا نه، ولی گوگل applicationای داری که شما از یک سگ عکس میگیرید و بهتون میگه اون سگه! و اگر از یک گربه عکس بگیرید بهتون میگه اون گربه است! و الیآخر…!
- یا دقت کردین وقتی توی بعضی سایتهای دانلود نرم افزار میرین؛ مثلاً اگر به مطلب مربوط به دانلود فتوشاپ رفته باشید، تبلیغهای مرتبط با فتوشاپ نشون میده! و اگر رفته باشید توی صفحهای مرتبط با Excel بهتون تبلیغ مرتبط با Excel نشون میده؟!
- یا به نظرتون چطوری میان سهام رو پیشبینی میکنن؟! [اگر دارید جواب میدید صرفاً براساس سریزمانی، مطمئناً سخت در اشتباهید! چون قطعاً اون بندهخدایی که پیشبینی میکنه سهام رو، حداقل n تا الگوریتم run میکنه! و هِی روی اونها نظارت میکنه که ببینه کدوم بهتر کار میکنه و هزار دنگ و فنگ دیگه!]
تشخیص کلاهبرداری، کاربرد در حوزه سلامت، سیستمهای توصیهکننده !
- یا چجوری مثلاً براساس ویژگیهای یک مشتری میان میگن اون مشتری احتمالاً کلاهبردار از آب درمیاد یا نه؟! [که اگر احتمال کلاهبردار بودن زیاد بود، بیان شرایط سختتری براش بذارن!]
- چجوری وقتی میریم توی یوتیوب، صفحه اصلی سایتش واسه من یه چیزه، واسه شما یه چیز دیگه!
- یا مثلاً در یک application حوزه سلامت، چجوری بفهمم این بندهخدایی که وقت ملاقات رزرو کرده، به احتمال زیاد اصلاً نمیاد! [پس اگر اینو با احتمال زیاد پیشبینی میکنم که نیاد، باید مثلاً یه بیمارِ پشتیبان هم واسش بذارم، که اگر این نیومد، دکتر علاف نشه!]
- یا چطوری میشه مطالب یک وبسایت رو براساس یکسری ویژگیها توی گروهها (یا خوشههای) مختلف انداخت؟!
- یک فروشگاه اینترنتی رو در نظر بگیرید! این فروشگاه اینترنتی، مشتریان خودش رو میاد براساس یکسری ویژگی به گروههای مختلف (یا اصطلاحاً خوشههای مختلف) تقسیم میکنه! خب طبیعتاً منِ مشتری هم توی یکی از همین خوشهها (یا به زبووون خودمووونیش گروهها) قرار میگیرم! توی این خوشه، یک سری افراد دیگه هم هستن! [که از منظرهایی شبیه هم بودن که توی یک خوشه قرار گرفتن!] حالا اگر افراد زیادی از اون خوشه، یک محصول رو خریداری کردن، به احتمال زیاد، به من هم که جزئی از اون خوشه هستم و اون محصول رو هنوز نخریدم، پیشنهاد خواهد داد!
پیشبینی قیمت منزل، تشخیص گونههای گل، تشخیص احتمال بیماری و احتمال ابتلا به سرطان و غیره [این لیست تمامی ندارد!]
- یا مثلاً اینکه ما بیایم براساس چندتا ویژگی یک خونه (مثل اینکه چند خوابه است، در چه محلهای است و چند متغیر دیگه!) قیمتش رو پیشبینی کنیم [مثلاً با رگرسیون]! این هم خودش یادگیری ماشین است! در اینجا هم ماشین [مثلاً کامپیوتر ما] یاد میگیره که چه رابطهای وجود داره؟ کدوم متغیرها اساسیتر و مهمترن و چیزهای این شکلی که براساس این چیزهایی که یاد گرفته، میاد قیمت خونه رو پیشبینی میکنه!
- نمیدونم میدونید یا نه، یه گلی وجود داره به اسم زنبق (iris)، این گلِ بندهخدا 3 گونه داره! (versicolor، virginica و setosa)! یه بندهخدایی به اسم فیشر اومده 150 تا گل زنبق رو بررسی کرده (از هر گونه 50 تا!) و اومده طول و عرض کاسبرگ و همچنین طول و عرض گلبرگ اینا رو حساب کرده و یک دیتاست شامل اینایی که گفتم درست کرده!
(این دیتاست رو میتونید از وبسایت ما دانلود کنید و ببینیدش)! [دانلود دیتاست iris]!
حالا عمری است که دارن روی این دیتاست انواع و اقسام روشها رو پیاده میکنن تا ماشین خودش به میزانی از فهم وشعور برسه که وقتی طول و عرض گلبرگ و کاسبرگ رو بهش میدن، گونهی گل زنبق رو با دقت خوبی پیشبینی کنه!
به اینها میگن یادگیری ماشین، که ماشینِ بندهخدا زووور میزنه یاد بگیره!
پس ماشین براساس یک سری الگوریتم یاد میگیره! حالا هرچی این الگوریتمها بهتر باشه، ماشینِ با فهم و شعورتری خواهیم داشت!
اون صراحتاً برنامه نویسی کردن که توی تعریف گفتیم چی بود؟!
فرض کنید وبسایتی بجای اینکه به صورت هوشمندانه تووی مطالب فتوشاپش بره تبلیغات فتوشاپ بذاره، اینو بیاد دستی انجام بده و خودش تبلیغها رو دونه دونه و دستی تنظیم کنه توی صفحات!
یا مثلاً فرض کنید بجای اینکه موقع خرید مثلاً کتاب آمار مونتگومری، به شما چند کتاب دیگه توی همون حوزه هم پیشنهاد بشه! به سیستم بگیم که هر کی آمار مونتگومری خرید، حل المسائل مونتگومری و آمار جان فروند رو هم بهش پیشنهاد بده!
این از کلیت یادگیری ماشین! منتاظر جلسات بعدی این مجموعه آموزشها باشید!
راستی یکی از ابزارهای اساسی یادگیری ماشین، پایتون است! حتماً سعی کنید پایتون رو از مطلب زیر یاد بگیرید و دنبال کنید!
آموزش کامل زبان برنامه نویسی پایتون به زبان فارسی و رایگان !
دانلود پادکست این آموزش!
دانلود [حجم: حدود 13 مگابایت]