دانشیار ای تی آموزش یادگیری ماشین و الگوریتم های آن به صورت تصویری - دانشیار آی تی

آموزش یادگیری ماشین را از کجا شروع کنیم؟

برای شروع یادگیری ماشین باید از پیش­‌‌نیازها و مفاهیم آن اطلاع داشته باشید و حتما به یک زبان برنامه­‌نویسی مناسب مسلط باشید. به همین دلیل نقشه راه یادگیری ماشین را برای شما ترسیم کرده‌­ایم تا طبق آن به یک مهندس ماهر در این حوزه تبدیل بشوید. البته در نظر داشته باشید که شما می­‌توانید هر مرحله از این نقشه را مطابق با نیاز و موقعیت خودتان تغییر بدهید.

 

  1. پیش نیاز یادگیری ماشین

معمولا بهتر است قبل از ورود به حوزه یادگیری ماشین، در موارد زیر مسلط باشید:

  • جبر خطی
  • ریاضی و حسابان
  • آمار و احتمالات

و یک زبان برنامه­‌نویسی را آموزش دیده باشید، که در ادامۀ همین مطلب، بهترین زبان برنامه‌­نویسی برای یادگیری ماشین را به شما معرفی خواهیم کرد.

همچنین توجه داشته باشید که اهمیت تسلط شما بر هر کدام از موارد فوق، ارتباط مستقیمی با نوع فعالیتتان در حوزۀ یادگیری ماشین دارد. به عنوان مثال اگر در تیم تحقیق و توسعه “R&D” یک شرکت هستید، باید کاملا بر این مباحث تسلط داشته باشید. چون کتابخانه­‌‌ها و فریم‌­ورک­‌های موجود به شما کمک چندانی نخواهند کرد.

  1. آموختن مفاهیم مختلف یادگیری ماشین

شما در آموزش یادگیری ماشین باید با انواع مدل­‌های آن یعنی، یادگیری با نظارت (Supervised ML)، یادگیری بی نظارت (Unsupervised ML) و یادگیری تقویتی (Reinforcement ML) آشنا شوید. نحوه عملکرد یادگیری ماشین را بیاموزید. مهم‌ترین الگوریتم­‌ها و موارد کاربرد هر کدام را بدانید و با نمونه­‌های استفاده شده از ماشین لرنینگ ML در دنیای واقعی آگاه شوید.

تمامی موارد ذکر شده به تفصیل در این مقاله به شما آموزش داده خواهد شد.

  1. محک زدن خودتان با استفاده از تمرین­ ها و داده ‌های موجود

بعد از اینکه اصول یادگیری ماشین را فهمیدید حتما باید با تمرین‌­های عملی خودتان را محک بزنید.

تمرین باعث می­‌شود دانش نظری خود را در نمونه­‌ای عملی، به کار بگیرید و مهارت خود را در ML بیشتر کنید. یکی از بهترین تمرین­‌هایی که می‌­توانید در آموزش یادگیری ماشین با آن کار کنید، پروژه مسافران کشتی تایتانیک است که شما را در اکتشاف داده­‌ها، مهندسی ویژگی‌­ها و تنظیم مدل به چالش می‌­کشد. برای این کار می‌­توانید از داده‌­های موجود در وب­‌سایت کگل “Kaggle” استفاده کنید.

حالا که با نقشۀ راه آموزش یادگیری ماشین (Machine Learning) آشنا شدید، با هم قدم به قدم این مسیر را طی می­‌کنیم.

پیشنهاد دانشیار آی تی به شما

پردازش زبان طبیعی (NLP)

خواندن مطلب

یادگیری ماشین چیست؟

یادگیری ماشین (Machine Learning) دانشی است که کامپیوترها را به یادگرفتن و رفتار کردن مثل انسان وا می­‌دارد. این سیستم‌‌‌ها، رفته رفته که با داده‌‌ها، شبکه‌‌ها و افراد تعامل دارند، به طور خودکار با‌هوش‌‌تر می‌‌شوند تا در نهایت بتوانند موضوعی کاربردی در جهان را برای ما تعیین یا پیش­‌بینی کنند.

کاربرد ماشین لرنینگ در وب سایت های معروف ایران و جهان

یکی از کاربردهای ماشین لرنینگ در جهان، ارائه پیشنهادات است. مثلا وقتی اکانتی در پینترتست باز می‌­کنید و چند تصویر را پین می­‌کنید، از دفعات بعد تصاویری با همان مضمون را به شما نشان می‌­دهد.

یادگیری ماشین در ایران

مثال یادگیری ماشین در ایران سایت دیجیکالا است. وقتی در دیجی کالا یک موضوع مشخص را سرچ می‌­کنید، از دفعات بعد که وارد سایت می‌­شوید، اجناس مرتبط با آن سرچ را بیشتر به شما نشان می­‌دهد. سیستم این کار را بر اساس دیتای ذخیره شده از طرف شما انجام می‌­دهد و در واقع از رفتار شما یاد می‌­گیرد تا طبق ترجیحات و نیاز شما رفتار کند. این همان معجزه یادگیری ماشین است.

ماشین لرنینگ مشکل اصلی برنامه نویسی سنتی را چطور حل کرد؟

در برنامه‌­نویسی سنتی، تمام قوانین (Rules) باید با مشورت یک متخصص در حوزه و صنعتِ مورد نظر، کدنویسی شود و هر قانون بر اساس یک فونداسیونِ منطقی، یک خروجی را تحویل می‌­دهد. اما وقتی سیستم بزرگتر می­‌شود، پیچیده­‌تر هم می‌­شود و طبعا به کدنویسی بیشتری نیاز است. این امر باعث می­‌شود سیستم خیلی زود به حدی برسد که دیگر خارج از کنترل و نگهداری باشد.

یادگیری ماشین این مساله را با یادگیری خودکار کاملا حل کرده­ است. سیستمی را در نظر بگیرید که بدون کدنویسی توسط برنامه­‌نویس، خودش از مثال‌­ها یاد می­‌گیرد و می­‌تواند به تنهایی از داده‌­ها، نتایجِ دقیق استخراج کند. یادگیری خودکار، مزیت اصلی ماشین لرنینگ در مقابل برنامه‌­نویسی سنتی است.

ارتباط اطلاعات ورودی و خروجی
ارتباط اطلاعات ورودی و خروجی

ماشین یاد می‌­گیرد که چطور اطلاعات ورودی و خروجی، با هم مرتبط هستند و از روی همان، خودش یک قانون می­‌نویسد. برنامه‌­نویسان دیگر نیاز نیست هر بار وقتی دیتای جدید دارند، قوانین جدید بنویسند. چون الگوریتم­‌ها در پاسخ به اطلاعات و تجربه­‌های جدید، هربار آپدیت و به روزرسانی می­‌شوند و به این ترتیب در طول زمان عملکردشان بهبود پیدا می­‌کند.

ادغام اطلاعات با ابزار محاسباتی در یادگیری ماشین
ادغام اطلاعات با ابزار محاسباتی در یادگیری ماشین

در واقع یادگیری ماشین، اطلاعات را با ابزار محاسباتی (Statistical Tools) ادغام می‌­کند تا یک خروجی و نتیجه را پیش‌­بینی کند. جالب اینکه ماشین از همین خروجی دوباره استفاده می‌‌­کند تا به یک درک بهتر در رفتار و اقدام­‌های بعدی برسد.

 

اگر شما قصد شروع یادگیری برنامه‌نویسی را دارید، پیش‌نیاز آن بدون شک الگوریتم و فلوچارت خواهد بود.

آموزش الگوریتم نویسی و فلوچارت با مثال

الگوریتم چیست؟ الگوریتم به مراحلی از یک دستور‌العمل گفته می­‌شود که باید اجرا شود تا یک مساله حل شود. فلوچارت زیر نمونۀ ساده‌­ای از یک الگوریتم است.

نمونه ی ساده ای از یک الگوریتم
نمونه ی ساده ای از یک الگوریتم

مثال یادگیری ماشین برای درک بهتر عملکرد آن چیست؟

بهترین مثال برای درک چگونگی یادگیری ماشین، یادگیری انسان است. انسان در یادگیری از تجربه­‌هایش می‌­آموزد. هر چقدر ما بیشتر بدانیم، راحت‌­تر پیش‌­بینی کرده و تصمیم می‌گیریم و احتمال موفقیت ما در موقعیت­‌های کاملا جدید و ناشناخته، کمتر از موقعیت‌های آشنا است.

ماشین­ هم به همین ترتیب آموزش می­‌بیند و رفتار می‌­کند. اول سیستم باید با حجم زیادی از دیتا و اطلاعات مناسب تغذیه شود. ما به ماشین نمونه­‌های مشابه را می­‌دهیم و ماشین برای اینکه یک پیش­‌بینی دقیق و صحیح داشته باشد، به نمونه­‌های قبلی مراجعه کرده و خروجی مناسب را تشخیص می­‌دهد.

همچنین دقیقا مثل انسان، اگر با چیزی مواجه شود که قبلا مشابه­‌ش را ندیده است، به سختی می‌­تواند جواب را پیش‌­بینی کرده و خروجی مناسبی به ما بدهد. به همین دلیل دیتا نقش کلیدی در این روند ایفا می­‌کند.

تا اینجای مسیر از آموزش یادگیری ماشین، متوجه شدیم که ماشین لرنینگ چیست، چه مزیتی نسبت به برنامه‌­نویسی سنتی دارد و یادگیری آن چقدر شبیه به انسان است. در ادامه به جزئیات عملکرد و انواع الگوریتم­‌های یادگیری ماشین و همچنین موارد کاربرد هر کدام، در دنیای واقعی خواهیم پرداخت.

دوره‌های مرتبط در دانشیار آی تی

یادگیری ماشین Machine Learning چگونه کار می­کند؟

یادگیری ماشین از دو بخش اصلی تشکیل می­‌شود: ۱- یادگیری (Learning)  و ۲- استنتاج (Inference) که به ترتیب و البته در یک چرخه اتفاق می‌­افتد.

یادگیری از داده ها؛ بخش اول در ماشین لرنینگ

در وهله اول، ماشین توسط کشفِ الگو از داده‌‌­ها (Data)، یاد می­‌گیرد. به همین دلیل یکی از مهم‌ترین بخش‌­ها، انتخابِ با دقتِ آن دسته از داده­‌هایی است که باید در اختیار ماشین گذاشته شود.

برای این منظور، بردار ویژگی (Feature Vector) یا همان زیرمجموعه­‌ای از داده‌­ها که برای حل یک مساله­‌ی مشخص، جدا شده است، در اختیار ماشین قرار می­‌گیرد.­ ماشین بر اساس الگوریتم‌­ها، آن­‌ها را بررسی کرده و الگوهایی را استخراج می­‌کند؛ سپس هر چه از داده­‌ها کشف کرده­، به یک مدل تبدیل می‌­کند.

به عنوان مثال؛ ما دیتای اولیه از افراد شاغل، میزان حقوق آن‌­ها و تعداد دفعات رفتنشان به رستوران را تحت عنوان (Feature Vector) از دیتای آموزشی خود (Training Data) جدا کرده و به سیستم می­‌دهیم. سپس سیستم سعی می­‌کند تا ارتباطی بین حقوق یک فرد و احتمال رفتن او به یک رستوران فرضی را بفهمد.

ماشین زمانی به نتیجه مطلوب می­‌رسد که یک ارتباط مثبت بین حقوق و رفتن به یک رستوران گران قیمت پیدا کند و این همان مدل مورد نظر ما است.

یادگیری از داده ها
یادگیری از داده ها

استنتاج Inference از مدل؛ بخش دوم در ماشین لرنینگ

وقتی مدل ساخته شد، این امکان به وجود می‌­آید که با داده­‌های جدید تستش کنید تا بدانید چقدر قوی و قابل تکیه است. داده­‌های جدید را در قالب یک بردار ویژگی (Feature Vector) و به عنوان ورودی، به مدل می­‌دهید تا به شما یک پیش­‌بینی بدهد.

این قسمت در آموزش یادگیری ماشین بسیار هیجان‌­انگیز است. چون بدون نیاز به آپدیت کردن قوانین یا منظم کردن دوباره­‌‌ی مدل، شما می‌­توانید از آن مدل، برای استنتاج و نتیجه­‌گیری از دیتای جدید استفاده کنید. هر بار هم که الگوریتم در استخراجِ نتایجِ درست، بهتر می­‌شود، از همان نتایج دوباره برای عملکرد بهترش در مورد داده­‌های جدید، استفاده می­‌کند.

در آموزش یادگیری ماشین باید به خوبی نحوه عملکرد هر دو بخش­ یادگیری و استنتاج را بیاموزید.

نحوه عملکرد دو بخش­ یادگیری و استنتاج
نحوه عملکرد دو بخش­ یادگیری و استنتاج

مراحل یادگیری ماشین

مراحل یادگیری ماشین به طور خلاصه در قدم­‌های زیر و به ترتیب ذکر شده است:

  1. بیان مساله (Define a question)
  2. جمع­‌آوری دیتا (داده) (Collect data)
  3. بصری­‌سازی دیتا (Visualize data)
  4. مرتب‌­سازی الگوریتم (Train algorithm)
  5. آزمایش الگوریتم (Test the Algorithm)
  6. جمع‌­آوری بازخورد (Collect feedback)
  7. تصحیح الگوریتم (Refine the algorithm)
  8. ادامه چرخه از مراحل ۴ تا ۷ تا زمانی که به نتایج رضایت بخش و مدل برسیم
  9. استفاده از مدل برای پیش‌­بینی

آموزش الگوریتم ­های یادگیری ماشین

یادگیری ماشین ML الگوریتم‌­های بسیار زیادی دارد اما می­‌توان آن­‌ها را در سه دسته اصلی زیر طبقه‌بندی کرد که در ادامه به طور کامل و با مثال توضیح داده شده‌اند:

  • یادگیری با نظارت (Supervised ML)
  • یادگیری بی نظارت (Unsupervised ML)
  • و یادگیری تقویتی (Reinforcement ML)
مهمترین و کاربردی ترین الگوریتم ­های یادگیری ماشین
مهمترین و کاربردی ترین الگوریتم ­های یادگیری ماشین

یادگیری با نظارت Supervised ML چیست؟

در یادگیری نظارت شده (Supervised ML)، الگوریتم­‌ها از داده­‌های مرتب شده و بازخوردهای انسان‌­ها استفاده می­‌کنند تا ارتباط بین ورودی‌­ها و خروجی­‌ها را یاد بگیرند.

چه زمانی از یادگیری با نظارت Supervised ML استفاده می­‌کنیم؟

شما زمانی ­می‌­توانید از الگوریتم‌­­های یادگیری نظارت شده استفاده کنید که نوع داده­‌های خروجی، شناخته شده هستند و الگوریتم می‌­تواند نتیجه دیتای جدید را پیش­‌بینی کند.

به عنوان مثال شما تصاویرِ تعدادی موز و سیب را با برچسبِ موز و سیب به الگوریتم می­‌دهید و ماشین یاد می‌­گیرد که سیب و موز چه شکلی دارند. سپس تصویرهای سیب و موز بدون برچسب (Label) را به عنوان ورودی به ماشین می‌­دهید و او خود تشخیص می­‌دهد کدام سیب است و کدام موز و به آن‌­ها برچسب درست می‌­زند.

انواع یادگیری با نظارت Supervised ML

الگوریتم­‌های یادگیری با نظارت در دو نوعِ اصلی زیر، طبقه­‌بندی می­‌شوند:

۱. دسته بندی یا Classification در یادگیری ماشین

در دسته ­بندی یا Classification، دیتای ورودی براساس چند برچسب، از هم جدا شده و در دسته‌­های مجزا قرار می­‌گیرد. برای آموزش یادگیری ماشین در این نوع به مثال زیر توجه کنید.

مثال طبقه بندی در ماشین لرنینگ

فرض کنید می‌­خواهید جنسیت مشتریان یک شرکت تجاری را پیش­‌بینی کنید. مشتریان شما فقط می‌­توانند زن یا مرد باشند، پس خروجی مشخص بوده و این الگوریتم از نوع یادگیری نظارت شده است.

هدف شرکت هم، تعیین کردن احتمالِ زن یا مرد بودن هر مشتری، بر اساس اطلاعات جمع‌­آوری شده و طبقه­‌بندی کردن مشتریان در دو گروه مجزای جنسیتی است. پس نوع الگوریتم، دسته‌­بندی است.

برای این کار، ابتدا اطلاعات مشتریان را مثل؛ قد، وزن، شغل، حقوق، سبد خریدشان و… از دیتابیس خود جمع‌­آوری می­‌کنید تا الگوریتم الگوها را از دیتا تشخیص دهد و یک مدل بسازد.

زمانی که مدل ساخته شده و یاد گرفت چطور زن یا مرد بودن را تشخیص دهد، شما می‌توانید از داده‌­های جدید برای پیش­‌بینی­ استفاده کنید. برای مثال، شما اطلاعات جدیدی را از یک مشتری ناشناس دریافت کردید و می‌­خواهید بدانید او زن است یا مرد، اگر مدل پیش‌­بینی کرد ۷۰درصد مرد، به این معناست که الگوریتم ۷۰درصد اطمینان دارد که مشتری مرد است و ۳۰درصد احتمال می‌­دهد او زن است.

۲. رگرسیون Regression  [به همراه مثال]

زمانی از مدلِ رگرسیون Regression استفاده می‌­شود، که ماشین برای پاسخ، به دنبال یک مقدار پیوسته و متوالی باشد. به عنوان مثال یک تحلیل‌گر مسائل مالی، نیاز دارد ارزش یک سهام را بر اساس چند ویژگی مثل سهم، عملکرد گذشته سهام، شاخص­‌های اقتصاد کلان و…. پیش‌­بینی کند. سیستم باید به روشی آموزش ببیند که قیمت سهام را با کمترین خطای ممکن تخمین بزند.

معروف ترین الگوریتم­ های یادگیری نظارت شده Supervised ML

  1. رگرسیون خطی  (Linear regression)
  2. رگرسیون لجستیک (Logistic regression)
  3. درخت تصمیم (Decision Tree)
  4. ماشین بردار پشتیبانی (Support Vector Machines – SVM)
  5. دسته بندی کننده بیزی ساده (Naive Bayes)
  6. k نزدیک‌‌ترین همسایگی (K-nearest neighbor)
  7. جنگل تصادفی (Random Forest)
  8. گرادیان تقویتی (Gradient Boosting)

۱۱ کاربرد عملی یادگیری نظارت شده Supervised ML

در آموزش یادگیری ماشین (Machine Learning) بسیار مهم است که شما از موارد کاربرد هر الگوریتم در دنیای واقعی آگاه باشید. به این ترتیب می‌­توانید با ذهن بازتری یادگیری ماشین را آموخته و از آن استفاده کنید.

موارد کاربرد یادگیری با نظارت Supervised ML به شرح زیر است:
  1. بیوانفورماتیک (Bioinformatics)
  2. ساختار کمی (Quantitative Structure)
  3. بازاریابی بانک اطلاعاتی (Database Marketing)
  4. تشخیص دست خط(Handwriting Recognition)
  5. بازیابی اطلاعات (Information Retrieval)
  6. یادگیری درجه‌­‌بندی (Learning to Rank)
  7. استخراج اطلاعات (Information Extraction)
  8. تشخیص اشیاء در دید رایانه‌‌­ای (Object Recognition In Computer Vision)
  9. تشخیص نوری کاراکترها (Optical Character Recognition)
  10. تشخیص اسپم (Spam Detection)
  11. تشخیص الگو (Pattern Recognition)
  12. و ….

یادگیری بی نظارت Unsupervised ML چیست؟

در یادگیری نظارت نشده (Unsupervised ML)، الگوریتم بدون دادن یک خروجی واضح و روشن، تنها در داده‌­های ورودی، به دنبال الگوها، شباهت‌­ها و تفاوت‌­‌ها می‌­گردد. مانند بررسی دیتای دموگرافیکِ (جمعیت شناختی) مشتری‌­ها مثل سن، جنسیت و موقعیت مکانی و… تا الگوها را بشناسد.

چه زمانی از یادگیری نظارت نشده Unsupervised ML استفاده کنیم؟

از یادگیری بی نظارت Unsupervised ML، زمانی که نمی‌­دانید چطور دیتا را طبقه­‌بندی کنید و می‌­خواهید الگوریتم برای شما الگوها و دسته­‌بندی دیتا را انجام دهد، می­‌‌توانید استفاده کنید. البته ماشین باید در ابتدا برنامه‌­نویسی شود که چطور از دیتا یاد بگیرد.

مثال یادگیری بی نظارت

به عنوان مثال تصاویر موز و سیب را به همراه دیتای اولیه و ویژگی­‌هایشان به ماشین می­‌دهیم درحالیکه برچسب‌­گذاری نشده‌­اند و ماشین هم تا به حال این تصاویر را ندیده است. در این حالت ماشین بر اساس خصوصیات و شباهت‌­هایی که تصاویر با هم دارند، خودش سیب­‌ها و موزها را دسته بندی می­‌کند.

انواع یادگیری بی نظارت Unsupervised ML

الگوریتم­‌های یادگیری نظارت نشده در دو نوعِ اصلی زیر، طبقه­‌بندی می­‌شوند:

خوشه ‌­بندی Clustering

خوشه ­بندی (Clustering) در موضوعاتی استفاده می‌­شود که شما می­‌خواهید گروه­‌های اصلی در داده­‌ها را کشف کنید. مثل گروه­‌بندی مشتری­‌ها بر اساس رفتار خریدشان

پیوستگی Association

از یادگیری ماشین توسط مدل پیوستگی (Association)، زمانی استفاده می‌­شود که شما می‌­خواهید قوانینی که بخش عظیمی از دیتای شما را توصیف می‌­کنند، کشف کنید. مثلا افرادی که کالای x را می­‌خرند اغلب تمایل دارند کالای y را هم بخرند.

پرکاربردترین الگوریتم‌­های یادگیری نظارت نشده Unsupervised ML

  1. K-means Algorithm
  2. Apriori Algorithm
  3. Expectation–maximization algorithm (EM)
  4. Principal Component Analysis (PCA)
  5. الگوریتم k میانگینK-means Algorithm
  6. الگوریتم آپریوری Apriori Algorithm
  7. الگوریتم EM Expectation–maximization algorithm
  8. تحلیل مولفه‌­های اصلیPrincipal Component Analysis (PCA)

۴ حوزه اصلی استفاده از الگوریتم­های نظارت نشده Unsupervised ML

از الگوریتم­های یادگیری نظارت نشده در موضوعات متنوعی استفاده می­‌شود که به شرح زیر ملاحظه می­‌کنید. آگاهی از این روش‌­ها نقش مهمی در آموزش یادگیری ماشین و درک بهتر آن دارد.

  1. تحلیل رفتار انسان‌­ها
  2. تجزیه و تحلیل شبکه­‌های اجتماعی برای تشخیص گروه­‌های دوستی
  3. بخش­‌بندی بازار شرکت­‌ها بر اساس مکان جغرافیایی ، نوع صنعت و…
  4. سازماندهی خوشه­‌های محاسباتی بر اساس فرایند و الگوهای رویداد مشابه

آموزش یادگیری تقویتی Reinforcement ML چیست؟

در این مرحله از آموزش یادگیری ماشین و الگوریتم­‌های آن، به آموزش یادگیری تقویتی Reinforcement ML می‌پردازیم. در الگوریتم تقویت شده Reinforcement ML، ماشین آموزش داده می‌‌شود که بر اساس داده‌­های موجود و ممکن، تصمیمی بگیرد. ماشین از هر تصمیمی که می­‌گیرد، یک فیدبک یا بازخورد دریافت می­‌کند که آیا تصمیم درست بوده است یا غلط و به این ترتیب هر بار یاد می‌­گیرد که کدام تصمیم درست بود و در دفعات بعد در همان موقعیت، آن رفتار را تکرار می­‌کند.

دلیل نامگذاری این یادگیری ماشین به تقویت شده یا تقویتی این است که عملکرد الگوریتم‌ همواره با مراحل فیدبک و بازخورد تقویت می‌‌شود.

الگوریتم های یادگیری تقویتی Reinforcement ML

از ۴ مورد زیر، دو مورد اول معروف‌­ترین الگوریتم‌­ های یادگیری تقویتی محسوب می­‌شوند:

  1. Q-Learning Algorithm
  2. State–action–reward–state–action Algorithm (SARSA)
  3. Deep Q Network Algorithm (DQN)
  4. Deep Deterministic Policy Gradient Algorithm (DDPG)

کاربرد یادگیری تقویتی Reinforcement ML

کاربرد یادگیری تقویتی­ بیشتر در حوزه بازی­‌های کامپیوتری (Video Games) و هوش مصنوعی است. مواردِ دیگرِ کاربرد یادگیری تقویت شده را به شرح زیر ملاحظه می‌­کنید.

  1. مدیریت منابع در خوشه­‌های رایانه­‌ای Resources management in computer clusters
  2. کنترل چراغ راهنمایی Traffic Light Control
  3. رباتیک Robotics
  4. پیکربندی سیستم وب Web System Configuration
  5. توصیه‌‌های شخصی­‌سازی شده Personalized Recommendations
  6. یادگیری عمیق Deep Learning

مقایسه الگوریتم های یادگیری ماشین ، کدام را انتخاب کنیم؟

در مقایسه الگوریتم های یادگیری ماشین با هم و انتخاب مناسب­‌ترین الگوریتم باید حتما اهداف پروژه، نوع و حجم داده­‌های موجود و همچنین میزان زمانتان را مدنظر قرار دهید. چون همانطور که ملاحظه کردید، تعداد زیادی الگوریتم یادگیری ماشین وجود دارد که هر کدام برای هدفی مشخصی ساخته شده­ است.

در مثال زیر، هدف پیش­‌بینی نوع گل از بین سه نوعِ مختلفِ قرمز، آبیِ روشن و آبیِ تیره است. این پیش‌­بینی بر اساس اندازه، طول و عرضِ گلبرگ­ گل‌­ها است. در تصویر زیر نتیجه پیش­‌بینی را از ۱۰ الگوریتم مختلف مشاهده می­‌کنید. تصویر اول از سمت چپ دیتای اولیه است و مابقی نتیجه الگوریتم‌­هاست.

همانطور که می‌­بینید الگوریتم­‌‌ها، اطلاعات را گروه­‌بندی کرده­‌اند. در عکس دوم از سمت چپ، تمام نقاط در بخش بالایی تصویر در دسته گل قرمز قرار دارند، بخش وسط نشان‌دهنده گروهی از گل‌­هاست که یا رنگ آبی روشن هستند یا الگوریتم درمورد رنگشان اطمینان ندارد و بخش پایین تماما به گل­‌ها با رنگ آبی تیره مربوط است.

چگونگی انتخاب الگوریتم مناسب
چگونگی انتخاب الگوریتم مناسب

تصاویر دیگر هم نتایج طبقه‌­بندی توسط الگوریتم‌‌­های دیگر را نشان می‌‌­دهد، که با هم متفاوت هستند، پس انتخاب الگوریتمِ مناسب، متناسب با هدف پروژه، نوع و میزانِ دیتا بسیار مهم است.

یادگیری ماشین با پایتون: پایتون بهترین زبان برنامه ­نویسی برای Machine Learning است

پایتون (Python) بهترین زبان برنامه ­نویسی برای یادگیری ماشین است.

با اینکه شما می­‌توانید تقریباً از هر زبان برنامه نویسی برای نوشتن برنامه­‌های مبتنی بر یادگیری ماشین استفاده کنید، اما چون نوشتن هر الگوریتم از ابتدا، فرایند وقت گیری است؛ به همین دلیل بهتر است از یک زبان برنامه‌­نویسی­ که کتابخانه­‌های از پیش ساخته شده (Pre-built Libraries) و فریم­‌ورک‌­های (Framework) خوبی داشته باشد، استفاده کنید. همچنین زبان برنامه­‌نویسی مورد نظر باید به طور پیشرفته­­‌ای از علوم و مدل‌­های داده پشتیبانی کند.

 

در دوره استادی پایتون ما از پایه با بحث برنامه نویسی پایتون و دستورات این زبان برنامه نویسی قدرتمند آشنا می شویم.

دوره استادی پایتون (ورژن ۳) از پایه

چرا پایتون بهترین زبان برنامه ­نویسی برای یادگیری ماشین است؟

پایتون Python در حال حاضر محبوب‌ترین زبان برای ML است. چون:

فریم ­‌ورک ‌­ها و کتابخانه ‌­های پایتون مناسب برای ماشین لرنینگ

بسیاری از فریم­‌ ورک‌­ها و کتابخانه ­‌های پایتون به طور کاملا ویژه­‌ای، برای هوش مصنوعی و یادگیری ماشین کاربرد دارند.

لیستی از این کتابخانه‌­ها را مشاهده می‌­کنید:

  • Keras : یک کتابخانه منبع باز و پرکاربرد در آزمایش شبکه‌­های عصبی عمیق
  • TensorFlow: کتابخانه­‌های رایگان و متن­‌بازی که در شبکه­‌های عصبی و یادگیری عمیق کاربرد دارند.
  • Scikit-Learn: کتابخانه سایکیت لرن، الگوریتم­‌های مختلف طبقه‌­بندی، رگرسیون و خوشه‌­بندی را دارا است.
  • Seaborn: سیبورن برای انجام بصری‌­سازی در یادگیری ماشین مورد استفاده قرار می‌­گیرد.
  • Matplotlib: مت پلات لیب هم یک کتابخانه قدرتمند برای بصری‌­سازی داده‌­ها به کمک انواع نمودارها است.
  • NumPy: نام پای یک کتابخانه معروف برای انجام تحلیل‌­های عددی مثل محاسبه میانگین و… است.
  • Pandas: پانداس هم برای پردازش انواع فایل‌­های CSV مورد استفاده قرار می­‌گیرد.

کار با پایتون ساده است

پایتون ساختار و دستورات بسیار ساده­‌‌ای دارد که باعث شده­ است زبان برنامه­‌نویسی محبوب دانشجویان و برنامه­‌نویسان باشد. کدهای پایتون بسیار شبیه به زبان انسان است و این امر کار را به مراتب ساده‌­تر کرده است.

پایتون رو به رشد و فراگیر است

شرکت­‌های بزرگی از زبان برنامه‌­نویسی پایتون استفاده کرده­‌اند؛ همچون گوگل، فیسبوک، اینستاگرام و… . حتی مسئولیت ایجاد کتابخانه‌­هایی مثل Keras در پایتون، برای آموزش یادگیری ماشین، با گوگل بوده است.

همچنین منابع اینترنتی بسیار قوی‌­ای برای آموزش ماشین لرنینگ با پایتون، منتشر شده است؛ که به روز هستند و کمک بزرگی به توسعه و البته افزایش محبوبیت این زبان کرده‌اند.

۱۰ زبان برنامه­ نویسی محبوب برای ML در گوگل ترندز ۲۰۲۰

اگر می­‌خواهید بدانید بعد از پایتون کدام زبان­‌های برنامه نویسی برای یادگیری ماشین، ترند هستند؛ به لیست زیر که با توجه به تحقیق انجام شده در گوگل ترندز و بررسی بیشترین کلمات سرچ شده است، دقت کنید:

  1. Python
  2. C++
  3. Java
  4. JavaScript
  5. C#
  6. R
  7. Julia
  8. GO
  9. TypeScript
  10. Scala

 

۶ چالش­ اصلی و محدودیت­ در یادگیری ماشین

با اینکه یادگیری ماشین کار بسیاری از صنعت‌­ها را راحت کرده است، اما استفاده از این تکنولوژی چالش‌­ها و محدودیت­‌هایی هم دارد. از جمع‌­آوری و تحلیل داده­‌های مناسب گرفته تا پاک کردن دیتای نویز که شما در آموزش یادگیری ماشین باید اشراف کاملی به این موارد داشته باشید.

  1. جمع‌­آوری داده­‌ها و طریقۀ مصرف آن‌­ها Data Collection & Usage

چالش اصلی در یادگیری ماشین، نبود دیتا یا نبود تنوع در مجموعه داده­‌ها است. اگر دیتا در دسترس یک ماشین نباشد، نمی‌­تواند یاد بگیرد. همچنین داده‌­هایی که تنوع ندارند، باعث می‌­شوند زمان زیادی طول بکشد تا ماشین یاد بگیرد. یک ماشین به ناهمگنی و تنوع نیاز دارد تا به یک بینش و درک در رفتار برسد. خیلی به ندرت پیش می‌­آید که یک الگوریتم، بتواند اطلاعات درستی ارائه کند زمانی که تنوع دیتای کمی دارد.

توصیه می‌­شود که حداقل ۲۰ مشاهده برای هر گروه داشته باشید تا به یادگیری ماشین کمک کند. وگرنه این محدودیت منجربه ارزیابی و پیش‌­بینی ضعیف ماشین می‌­شود.

از کجا بدانیم کدام داده برای الگوریتم یادگیری ماشین ما مناسب‌تر است؟

قبل از هرچیزی اهداف الگوریتم را بنویسید و مشخص کنید چه نوع اطلاعاتی می‌تواند برای رسیدن به آن اهداف مفید باشد. باید توجه کنید که صرفا جمع­‌آوری دیتا فقط فضای ذخیره­‌ی شما را پر می­‌کند. شما باید بدانید به چه نوع داده­‌ای نیاز دارید و چطور قصد استفاده از آن را دارید. بنابراین به عنوان مثال؛ اگر می‌­خواهید تصمیم بگیرید کدام رستوران را انتخاب کنید، نیازی به پیش بینی وضعیت هوا برای آن روز ندارید (مگر اینکه بخواهید روی تراس بنشینید!).

جمع‌­آوری هر دیتای با ربط و بی­‌ربطی فقط باعث طولانی‌­تر شدن فرایند یادگیری ماشین و متعاقبا، دیرتر رسیدنِ شما به نتیجه می‌­شود. پس هدف و طریقۀ مصرف دیتا فراموش نشود و بر آن اساس بردار ویژگی خود را مشخص کنید.

  1. امنیت Security

امنیت سایبری یکی از موضوعات داغ این روزها است. چون با در دست داشتن اطلاعات شخصیِ بسیاری از افراد، می‌توان افکار عمومی را به سمت یک تصمیم، جهت­‌دهی کرد یا تغییر جهت داد. در واقع موضوع، استفاده غیرقانونی از داده­‌های جمع‌آوری شده است.

بنابراین هنگام جمع­‌آوری اطلاعات، باید مطمئن شوید که قانون را نقض نمی‌­کنید و همچنین باید اطمینان حاصل کنید که رضایت افراد برای جمع آوری داده‌­ها، گرفته شده است.

پیشنهاد دانشیار آی تی به شما

افزایش امنیت شبکه بی‌سیم خانگی

خواندن مطلب

  1. اعتبار سنجی داده ها Data Validation

وقتی داده‌­های ورودی، از چندین منبع باشد، باید به صحت و اعتبار داده­‌های خود دقت کنید. آیا اطلاعاتی وجود دارد که بتواند به سیستم آسیب بزند؟ در این حالت، الگوریتم‌های یادگیری ماشین نیمه نظارت شده با خودکار کردنِ روندِ برچسب زدن می‌توانند کمک کنند. آن­‌ها می‌­توانند وارد داده­‌های بدون برچسب شوند و آن­‌ها را با نمونه­‌های موجود، که برچسب‌­گذاری شده­‌اند، مقایسه کنند.

  1. الگوریتم های درست Right Algorithms

انتخاب الگوریتم درست یکی از چالش‌­های اساسی ML است. این موضوع را پیش­‌تر هم توضیح دادیم که هر مدلِ یادگیری ماشین، یک هدف دارد و برای انجام کارهای خاصی طراحی شده است.

به عنوان مثال، یک الگوریتمِ نظارت نشده، نمی­‌تواند داده­‌های شما را به درستی برچسب‌گذاری کند زیرا هدف اصلی آن جستجوی الگوها است. پس قبل از اجرای ML، یک بار دیگر، انتظارات خود از این فناوری و هدف نهاییتان را بنویسید.

  1. مجموعه داده برای آموزش Training Dataset

هنگامی که شما الگوریتم یادگیری ماشینِ خود را آموزش می­‌دهید، به یک دیتاست (Data Set) یا مجموعه داده آموزشی Training Dataset خوب و بزرگ نیاز دارید، تا الگوریتم بتواند از روی آن، الگوها، اطلاعات و رفتار درست را شناسایی کند. اگر مجموعه دادۀ آموزشی شما کوچک باشد، نتایج ممکن است درست نباشد.

در واقع استفاده از الگوریتم­‌های یادگیری ماشین برای دیتاسِت‌­های کوچک، اکثرا مقرون به صرفه نیست، بنابراین از حجمِ اطلاعاتِ معتبر مطمئن شوید و بعد از یادگیری ماشین استفاده کنید.

دیتاست یا مجموعه داده آموزشی را برای الگوریتم چگونه جمع­ آوری کنیم؟

دیتا ست یا مجموعه داده آموزشی را می­‌توانید از حساب گوگل آنالیتیکس شرکت جمع‌­آوری یا خریداری کنید؛ اما موضوع مهم همانطور که در بخش قبل هم گفتیم این است که حتما باید این اطلاعات قانونی، اعتبارسنجی شده و متناسب با هدف شما باشند.

  1. داده ‌­های نویزی Data Noise

داده ­­‌های نویزی و اخلال­‌گر (Data Noise) به داده­‌های گفته می‌­شود که هیچ ارتباطی با هدف الگوریتمِ یادگیری ماشین ندارند. به عنوان مثال، اگر به دنبال رستورانی هستید که سس خاصی را سرو می­کند، داشتن اطلاعات از منوی رستوران‌­ها برای شما مهم است اما اگر هدفتان پیدا کردن یک رستوران خوب در حومه شهر است، نام آشپز رستوران­‌ها برای شما غیرضروری خواهد بود.

داده­‌های نویزی می‌­توانند شامل اطلاعات ناقص، داده­‌های بی­‌اهمیت، بیت‌­های غیر عادی و اطلاعات غیر قابلِ شناسایی باشند.

این موضوع به این دلیل مهم است؛ که به گفته محققان آی بی ام IBM، “طبق اصل پارتو: ۸۰٪ از وقتِ با ارزش یک متخصصِ داده صرفِ پیدا کردن، پاکسازی و سازماندهی داده‌­‌ها می­‌شود و تنها ۲۰٪ از زمان او صرف تجزیه و تحلیل داده‌‌­ها­ می‌­شود.”چون داده­‌های نویزی، عملکرد الگوریتمِ یادگیری ماشین را پایین می‌­آورند و باعث می­‌شوند نتایج خیلی دقیق نشوند.

کاربردهای یادگیری ماشین و ۷ حوزه ای که پیشرفت خود را مدیون استفاده از آن است

با اینکه استفاده از یادگیری ماشین، چالش­‌ها و محدودیت‌­های خود را دارد اما به یاد داشته باشید که کاربردهای یادگیری ماشین در علوم مختلف، باعث پیشرفت بسیار زیادی شده است. چون یادگیری ماشین دانشی است که هر روز به سرعت رشد می‌­کند و تا الان هم می‌­توان گفت همۀ حوزه­‌ها را فتح کرده است.

در ادامۀ مقاله به معرفی ۷ حوزه­‌ای که پیشرفت خود را مدیون به کارگیری یادگیری ماشین هستند می­‌پردازیم تا شما هم با این آموزش یادگیری ماشین، در هر حوزه‌­ای که هستید با ایده­‌های بهتر، یک تحول اساسی خلق کنید.

  1. یادگیری ماشین در اقتصاد و خدمات مالی و بانکداری Banking & Financial Services

یادگیری ماشین در اقتصاد و خدمات مالی و بانکداری، به این دلیل که این حوزه با داده­‌های عددی زیادی سر و کار دارد، بسیار پرکاربرد است. یکی از بهترین استفاده‌­های الگوریتم‌­های یادگیری ماشین در این حوزه، تشخیص ناهنجاری و جلوگیری از کلاهبرداری است. یادگیری ماشین، علاوه بر محافظت از مشتری‌­های پر ریسک و جلوگیری از کلاهبرداری یا دستکاری، به شناسایی فرصت­‌های سرمایه گذاری و تجارت هم کمک می‌‌­کند.

  1. کاربرد یادگیری ماشین در مدیریت و دولت Government

یادگیری ماشین و داده­‌کاوی (Data Mining) می‌توانند به دولت در مدیریت، امنیت عمومی و صنایع همگانی کمک کنند. یکی از زمینه­‌های بسیار مهم در این مورد، کمک به کارایی انرژی است که منجر به حداقل رساندن هزینه‌ها و بار مالی، می‌­شود.

در ضمن الگوریتم‌های یادگیری ماشین، در تشخیص چهره و در جهت نظارت و جلوگیری از جعل هویت هم کمک می­‌کنند.

  1. یادگیری ماشین در پزشکی و بهداشت و درمان Healthcare

یادگیری ماشینی در پزشکی برای پیش بینی موضوعات مرتبط با بهداشت و درمان یکی از ترندهایی است که رشد صعودی بسیار سریعی دارد. به وسیلۀ دستگاه‌­ها و سنسورهای پوشیدنی، داده‌­های بیمار می‌­تواند در اختیار الگوریتم­‌های یادگیری ماشین و به طور لحظه­ به لحظه قرار بگیرد که به نجات جان آن‌­ها کمک زیادی می­‌کند.

همچنین آنالیز داده­‌های بزرگ Big data و الگوریتم­‌های یادگیری ماشین، می‌­توانند به کمک هم و با تحلیل روند و شناسایی موقعیت‌­های قرمز، به تشخیص و درمان، بسیار کمک کنند. در ضمن از الگوریتم‌های یادگیری ماشین برای پردازش تصویر در شکل‌­گیری­ بافت‌­های غیر طبیعی اندام­‌های انسان استفاده می‌­شود، تا به تشخیص زودهنگام سرطان برسند.

  1. کاربرد یادگیری ماشین در صنعت ، کسب و کارها و تجارت الکترونیک Retail & Ecommerce

صنعت، کسب و کارها و تجارت­‌های الکترونیک، به کمک الگوریتم­‌های یادگیری ماشین و با استفاده از سیستم پیشنهاددهی (recommendation systems) می‌­توانند تجربه‌­ی لذت‌بخش‌­تری برای مشتری­‌ها ایجاد کنند.

همچنین کسب و کارها می‌­توانند با جمع­‌آوری و آنالیز دیتا، تجربه خرید هر فردی را  شخصی‌­سازی کنند و همچنین از این داده­‌ها برای اجرای کمپین­‌های بازاریابی، بهینه‌­سازی قیمت­‌ها و آگاهی از نگرش مشتری استفاده کنند.

  1. یادگیری ماشین و هوش مصنوعی در صنعت نفت ، گاز و انرژی Oil, Gas & Energy Sector

با استفاده از الگوریتم­‌های دسته بندی (classification) یادگیری ماشین و هوش مصنوعی، تجزیه و تحلیل مواد معدنی موجود در زمین، یافتن منابع انرژی جدید و … مقرون به صرفه­‌تر شده است. همچنین از الگوریتم‌های یادگیری نظارت نشده برای تشخیص الگوهایی مثل خرابی سنسور یا حل نقص‌­هایی که پیش از این دیده نمی‌­شد، استفاده می‌شود.

  1. یادگیری ماشین در صنعت حمل و نقل و خودرو Transportation & Automotive

بهترین مسیر کدام است؟ چگونه ظرفیت رفت و آمد در خیابان­‌ها را افزایش دهیم؟ چگونه سیستم نورپردازی شهر را بهینه کنیم؟ به همه این سؤالات می‌توان با کمک الگوریتم‌های یادگیری ماشین پاسخ داد.

آیا تابحال از اپلیکیشن بَلَد، نشان یا وِیز (Waze) استفاده کرده‌اید و از توانایی آن برای پیدا کردن بهترین مسیر لذت برده‌­اید؟ بله، این همان کارکردِ یادگیری ماشینی است. آموزش یادگیری ماشین برای شرکت‌­هایی که با تحویل‌­های فوری، حمل و نقل عمومی و رفت و آمد سروکار دارند، بسیار مهم است.

همچنین اتومبیل­‌های بدون راننده، هم در مبحث رانندگی و هم سیستم اطلاع رسانی خودکارِ انرژی، از الگوریتم‌های یادگیری ماشین استفاده کرده‌­اند.

  1. یادگیری ماشین در بازاریابی و تبلیغات Advertising Technologies) ADTECH)

کسب و کارهای ADTECH که کار اصلی آن‌ها تبلیغات هوشمند است، به شدت روی الگوریتم‌­های یادگیری ماشین تکیه کرده‌­اند. به این دلیل که فناوری تبلیغاتی، یکی از مهمترین صنعت‌­های بیگ دیتا است.

دقیقا مثل کاربرد یادگیری ماشین در تجارت الکترونیک برای شخصی‌سازیِ تجربه هر مشتری، تبلیغات نیز توسط این تکنولوژی شخصی‌­سازی می­‌شود و به این ترتیب بازاریابی هدفمندتر می‌شود.

در این بین مشتری‌­ها با تبلیغاتی که دوست دارند، مورد هدف قرار می‌­گیرند (بر اساس توصیه­‌های موتورهای جستجو و ترجیحات خود کاربر)، تبلیغ کننده هم چون تبلیغش به دست افراد مناسب رسیده است، راضی است و در این بین سیستمِ تبلیغ کننده هم پول خود را دریافت می­‌کند و به این ترتیب همه راضی هستند.

چرا یادگیری ماشین اهمیت دارد؟

آیا آموزش یادگیری ماشین تصمیم درستی است؟ زمان با ارزش­‌ترین دارایی است و استفاده از یادگیری ماشین، زمانِ بیشتر و تجربه­‌ی لذت‌­بخش‌­تری برای همه فراهم می­‌کند.

یک مشاور املاک ماهر می­‌تواند قیمت هر خانه‌­ای را بر اساس تجربه و شناختی که از بازار دارد و با در نظر گرفتن تمامِ متغیرهای خانه، همسایه، اقتصاد، محیط و… تخمین بزند. او برای این یادگیری و تخصص، تمامِ عمرش را صرف کرده است.

اما یک ماشین هم می­‌تواند آموزش ببیند که دقیقا همان قیمت را پیش­‌بینی کند ولی با دقتی بیشتر، در زمانی کمتر و با بهبودِ عملکرد دائمی و به این ترتیب انجام کارهایی که برای انسان طاقت­‌فرسا یا غیرممکن است، به راحتی ممکن می‌­شود.

به همین دلیل آموزش یادگیری ماشین یک راهکار قطعی برای رشد در عصر دیجیتال به شمار می‌­آید.

جمع بندی آموزش یادگیری ماشین

  • در این مقاله از دانشیار آی تی، نقشه راه آموزش یادگیری ماشین را آموختیم.
  • مفهوم یادگیری با نظارت، یادگیری بی نظارت و یادگیری تقویتی را درک کردیم.
  • علاوه بر آشنایی با مهمترین الگوریتم‌‌­های هر کدام از انواعِ یادگیری­‌ها، زمینه‌­ی کاربردِ آن­‌ها را در دنیای واقعی متوجه شدیم.
  • با چالش‌­ها و مزایای یادگیری ماشین آشنا شدیم.
  • و فهمیدیم چرا زبان برنامه‌­نویسی پایتون، بهترین زبان برای یادگیری ماشین است.

به نظر شما در ایران بهترین حوزه برای استفاده از یادگیری ماشین چیست؟ کدام شرکت‌ها در استفاده از یادگیری ماشین پیشتاز هستند؟ جواب سوالات را در قسمت نظرات این مقاله بنویسید و با ما در ارتباط باشید.

 

نویسنده: نگار سلیمانی

 

پیشنهاد دانشیار آی تی برای آموزش یادگیری ماشین با پایتون

دوره جامع یادگیری ماشین و داده کاوی با پایتون؛ که یک دورۀ پروژه محور است و طی ۱۸ ساعت آموزش با ۲۲ پروژۀ عملی، به شما مباحث لازم و اساسی را آموزش می‌­دهد.

دوره‌های مرتبط در دانشیار آی تی

به این پست امتیاز دهید.
بازدید : 398 views بار دسته بندی : برنامه‌نویسی تاريخ : 12 نوامبر 2022 به اشتراک بگذارید :
دیدگاه کاربران
    • دیدگاه ارسال شده توسط شما ، پس از تایید توسط مدیران سایت منتشر خواهد شد.
    • دیدگاهی که به غیر از زبان فارسی یا غیر مرتبط با مطلب باشد منتشر نخواهد شد.