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

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

امروزه سرعت پیشرفت علم و تکنولوژی آن‌قدر زیاد شده است که همراه شدن با آن بسیار دشوار است. یکی از علوم به روز دنیا که رسیدن به یک تحول عظیم در زندگی روزمره را هدف قرار داده‌است، هوش مصنوعی یا Artificial Intelligent می‌باشد. هوش مصنوعی را می‌توان اینگونه تعریف کرد، علمی است که توانایی یادگیری و حل مسائل، توانایی فکر کردن و منطقی عمل کردن، را برای یک ماشین یا کامپیوتر ایجاد می‌کند. به طور کلی هوش مصنوعی، از ترکیب علوم مختلف در جهت هوشمند کردن ماشین‌ها استفاده می‌کند. یکی از زیرشاخه‌های تکنولوژی هوش مصنوعی، یادگیری ماشین یا Machine Learning می‌باشد که به توضیح مختصری از آن در این مقاله پرداخته‌ایم.

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

یادگیری ماشین علمی است که به ماشین‌ یاد می‌دهد چطور چیزهای جدید را از روی داده‌های موجود (دیتاست Data set) و بدون دخالت عامل انسانی و خودش به تنهایی یاد بگیرد. حال این سوال پیش می‌آید با وجود افراد خبره در هر زمینه‌ای چرا نیاز به وجود ماشینی است که همان عمل را خودش از خودش یاد بگیرد؟ یا اصلا این یادگیری چه فایده‌ای را به دنبال دارد؟

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

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

این دقیقا کاری است که ماشین در یادگیری ماشین یا Machine Learning باید انجام دهد، تا بتواند خودش از خودش یاد گرفته و عملکرد یا رفتارش را مرتب کند.

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

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

تفاوت میان داده‌ کاوی و یادگیری ماشین

منظور از داده کاوی پیدا کردن اطلاعات مفید، پنهان شده و معتبر از میان حجم عظیمی از داده‌هاست. همچنین یادگیری ماشین یعنی به ماشین می‌گوید با استفاده از یک مدل یادگیری داده‌های آموزشی را یادبگیر و سپس از آن برای داده‌های جدید استفاده کن. شباهت آن‌ دو در یافتن داده‌های مفید است ولی تفاوت‌های زیادی در مسئولیت، مبدأ، پیاده‌سازی، ماهیت، موارد کاربرد و تکنینک‌های به کار رفته باهم دارند.

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

انواع مدل‎‌های یادگیری ماشین

به طور کلی الگوریتم‌های یادگیری ماشین به 3 دسته تقسیم می‌کنند:
  • یادگیری با نظارت (Supervised Learning)
  • یادگیری نیمه نظارتی(Semi supervised learning)
  • یادگیری بدون نظارت (Unsupervised Learning)
  • یادگیری تقویتی (Reinforcement Learning)

الگوریتم یادگیری با نظارت (Supervised learning)

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

 الگوریتم یادگیری بدون نظارت (Unsupervised Learning)

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

یادگیری نیمه نظارتی(Semi supervised learning)

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

یادگیری تقویتی(Reinforcement learning)

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

یادگیری تقویتی در تولید ماشین‌های خودران ، مدیریت کسب و کار، سیستم های کامپیوتری، بینایی ماشین، آموزش، انرژی، امور مالی، بازی ها، مراقبت های بهداشتی، پردازش زبان طبیعی (NLP)، رباتیک و حمل و نقل کاربرد دارد. به طور مثال سرویس مترجم زبان گوگل (Google Translate) از یادگیری تقویتی استفاده می‌کند.

جمع بندی

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

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

سخن پایانی

هر فردی که بخواهد وارد این حوزه شود و به آن علاقه داشته باشد لازم است اندکی اطلاعات در زمینه‌های دیگر نیز داشته باشد. از جمله مهم‌ترین آن‌ها می‌توان به یادگیری یک زبان برنامه نویسی مرتبط مانند Python، R، Java، SQL Scala و کسب مهارت در آن اشاره کرد. همچنین باید در زمینه آمار، احتمال و داده‌ها نیز اطلاعاتی اندک داشته باشد، توانایی درک تجزیه و تحلیل داده‌ها، مدل‌سازی داده‌ها، آمار و احتمال و توسعه را داشته باشد. این موضوع که الگوریتم‌های ماشین لرنینگ را باید یاد بگیرد که امری بدیهی است. این علم با کامپیوتر کار می‌کند پس در زمینه علوم کامپیوتر نیز باید مطالعاتی انجام دهد تا درک کاملی از ساختمان داده، طراحی الگوریتم و معماری کامپیوتر داشته باشد. در حوزه یادگیری ماشین گاهی با حجم زیادی از اطلاعات سرو کار داریم این امر باعث می‌شود به دانش و آشنایی با بیگ دیتا نیز نیاز شود. کاربردهای فراوان یادگیری ماشین و گستردگی آن باعث شده برای ورود به یادگیری آن اطلاعات اولیه زیادی نیاز باشد علاوه بر موارد گفته شده حتی نیاز به آشنایی با مباحث مهم یادگیری عمیق مثل شبکه عصبی مصنوعی، پردازش زبان‌های طبیعی، شبکه‌های عصبی پیچشی و... نیز دارد.

رفتن به بالا