مقدمه
یادگیری ماشین شاخهای از هوش مصنوعی (AI) است که به سیستمها توانایی یادگیری و بهبود خودکار از تجربه را بدون برنامهریزی صریح میدهد. یادگیری ماشین بر توسعه برنامههای کامپیوتری تمرکز دارد که میتوانند به دادهها دسترسی پیدا کنند و از آنها برای یادگیری خود استفاده کنند.
در این مقاله، برخی از تکنیکها و ابزارهای مهمی را که به شما کمک میکنند تا از یادگیری ماشین به درستی و به طور موثری استفاده کنید، بررسی خواهیم کرد.
تاریخچهی یادگیری ماشین
یادگیری ماشین (ML) جنبهای مهم در تجارت و پژوهش مدرن است. این فناوری از الگوریتمها و مدلهای شبکههای عصبی برای کمک به سیستمهای رایانهای در بهبود تدریجی عملکردشان استفاده میکند. الگوریتمهای یادگیری ماشین به طور خودکار یک مدل ریاضی را با استفاده از دادههای نمونه — که به عنوان «دادههای آموزشی» نیز شناخته میشوند — میسازند تا بدون برنامهریزی خاص برای تصمیمگیریها، آنها را اتخاذ کنند.
در این مقاله، نگاهی کوتاه به تاریخچه یادگیری ماشین خواهیم داشت.
در سال ۱۹۵۰، آلن تورینگ «آزمون تورینگ» را برای تعیین اینکه آیا یک کامپیوتر دارای هوش واقعی است یا خیر، ابداع کرد. برای قبولی در این آزمون، یک کامپیوتر باید بتواند یک انسان را به باور این که خود نیز انسان است، فریب دهد. در سال ۱۹۵۲، آرتور ساموئل اولین برنامه یادگیری کامپیوتری را نوشت.
این برنامه بازی چکرز بود و رایانه IBM با هر بار بازی بهتر میشد و با بررسی حرکتهای برنده، آنها را در برنامه خود گنجانده بود. در سال ۱۹۵۷، فرانک روزنبلات اولین شبکه عصبی را برای کامپیوترها (پرسپترون) طراحی کرد که فرآیند تفکر مغز انسان را شبیهسازی میکرد. در سال ۱۹۶۷، الگوریتم «نزدیکترین همسایه» نوشته شد که به کامپیوترها اجازه میداد تا از تشخیص الگوهای بسیار ابتدایی استفاده کنند.
این الگوریتم میتوانست برای نقشه برداری از مسیر سفر فروشندگان استفاده شود، به طوری که از یک شهر تصادفی شروع میشود و اطمینان حاصل میشود که آنها در طول یک سفر کوتاه از همه شهرها بازدید میکنند. در سال ۱۹۷۹، دانشجویان دانشگاه استنفورد «Stanford Cart» را اختراع کردند که میتواند به طور مستقل در یک اتاق از مانعها عبور کند. در سال ۱۹۸۱، جرارد دجونگ مفهوم یادگیری مبتنی بر تفسیر (EBL) را معرفی کرد که در آن یک کامپیوتر دادههای آموزشی را تجزیه و تحلیل میکند و با حذف دادههای غیر مهم، یک قانون کلی که میتواند دنبال کند، ایجاد میکند. در سال ۲۰۱۶، الگوریتم هوش مصنوعی گوگل، یک بازیکن حرفهای در بازی چینی Go را شکست داد که پیچیدهترین بازی تختهای جهان محسوب میشود و چندین برابر شطرنج سختتر است.
الگوریتم AlphaGo که توسط گوگل DeepMind توسعه یافته است، توانست در رقابت Go پنج بازی از پنج را پیروز شود.
یادگیری ماشین (Machine Learning) چیست؟
یادگیری ماشینی (ML) مطالعه الگوریتمهای رایانهای است که به طور خودکار از طریق تجربه بهبود مییابند. این حوزه به عنوان زیرمجموعهای از هوش مصنوعی شناخته میشود. الگوریتمهای یادگیری ماشینی مدلی را بر اساس دادههای نمونه، معروف به «دادههای آموزشی»، ایجاد میکنند تا پیشبینی یا تصمیمگیری کنند بدون اینکه صریحاً برای انجام این کار برنامهریزی شوند.
مطابق با McKinsey، یادگیری ماشینی به عنوان "الگوریتمهایی که میتوانند بدون اتکا به برنامهنویسی مبتنی بر قوانین، از دادهها بیاموزند" تعریف شده است.
طبق گفته آرتور ساموئل، یادگیری ماشینی توانایی رایانه برای انجام وظایف به طور مستقل بدون برنامهریزی صریح است.
انواع یادگیری ماشین
رویکردهای یادگیری ماشین را میتوان در 4 دسته درنظر گرفت: یادگیری نظارت شده Supervised learning
یادگیری بدون نظارت Unsupervised learning
یادگیری نیمه نظارت شده Semi-supervised learning
یادگیری تقویتی Reinforcement learning
یادگیری نظارت شده
یادگیری نظارتشده، یکی از شاخههای اصلی یادگیری ماشین است که به دنبال یافتن الگوهایی در دادههای برچسبگذاریشده(labeled data) برای پیشبینی نتایج آینده است.
در یادگیری نظارتشده، الگوریتم به مجموعه دادهای دسترسی دارد که شامل ورودی-خروجی مطلوب برای هر نمونه است. این مجموعه داده، به عنوان دادههای آموزشی(train data) شناخته میشود و الگوریتم با استفاده از این دادهها، سعی میکند یک تابع پیشبینی کننده را آموزش دهد.
این تابع، ورودی را بر اساس مثالهای جفت ورودی-خروجی، به خروجی نگاشت میدهد. به عبارتی، الگوریتم از روی مثالهای آموزشی، قوانین و الگوهایی را استخراج میکند که به آن اجازه میدهد تا برای ورودیهای جدید، خروجیهای مشابهی را پیشبینی کند.
برای مثال، میتوان از یادگیری نظارتشده برای تشخیص چهره در تصاویر، پیشبینی قیمت مسکن، یا طبقهبندی ایمیلهای اسپم استفاده کرد. در هر یک از این موارد، دادههای آموزشی شامل مجموعهای از تصاویر با برچسبهای مربوط به چهرهها، مجموعهای از مشخصات مسکن با قیمتهای مربوطه، یا مجموعهای از ایمیلها با برچسبهای "اسپم" یا "غیر اسپم" خواهد بود.
برخی از الگوریتمهای شناخته شده یادگیری نظارت شده:
K-nearest Neighbors, Linear Regression, Support Vector Machines, Decision Tree, Random Forest, Neural Networks.
یادگیری بدون نظارت
یادگیری بدون نظارت، برخلاف یادگیری نظارتشده، از دادههای بدون برچسب برای کشف الگوها و ساختارهای نهفته در دادهها استفاده میکند.
فرض کنید میخواهید گروههای مختلف مشتریان را در یک فروشگاه آنلاین شناسایی کنید. در یادگیری بدون نظارت، شما دادههای خرید مشتریان را بدون هیچ برچسب یا اطلاعات اضافی به الگوریتم ارائه میدهید. الگوریتم با تحلیل این دادهها، گروههایی از مشتریان را با رفتار خرید مشابه شناسایی میکند.
در این نوع یادگیری، الگوریتم به طور مستقل الگوها و ساختارهایی را در دادههای بدون برچسب کشف میکند. این الگوها میتوانند به عنوان ورودی برای وظایف مختلف یادگیری ماشین، مانند خوشهبندی، کاهش ابعاد و شناسایی ناهنجاری استفاده شوند. یادگیری بدون نظارت میتواند به شناسایی الگوهای نهفته در دادهها که ممکن است با روشهای سنتی قابل مشاهده نباشند، کمک کند. این نوع یادگیری به طور معمول برای پیشبینی نتایج آینده استفاده نمیشود.
یادگیری بدون نظارت، یک روش قدرتمند برای شناسایی الگوها و ساختارهای نهفته در دادههای بدون برچسب است. با این حال، قبل از استفاده از آن، باید به دقت نیازها و محدودیتهای خود را در نظر بگیرید.
یادگیری نیمه نظارت شده
یادگیری نیمهنظارتشده، روشی ترکیبی است که از هر دو داده برچسبگذاری شده(labeled data) و دادههای بدون برچسب(unlabeled data) برای آموزش مدل استفاده میکند. این روش تلاش میکند از مزایای هر دو یادگیری نظارتشده و بدون نظارت بهره ببرد و پل ارتباطی بین آنها باشد.
تصور کنید میخواهید یک فیلتر اسپم بسازید. شما مجموعه کوچکی از ایمیلها دارید که به عنوان اسپم و غیر اسپم برچسبگذاری شدهاند، اما مجموعه بسیار بزرگتری از ایمیلهای بدون برچسب نیز در اختیار دارید. یادگیری نیمهنظارتشده به شما اجازه میدهد از هر دو مجموعه داده استفاده کنید:
دادههای برچسبگذاریشده: ایمیلهای برچسبگذاریشده به مدل کمک میکنند تا ویژگیهای اسپم و غیر اسپم را بیاموزد.
دادههای بدون برچسب: ایمیلهای بدون برچسب اطلاعات اضافی در مورد زبان و الگوهای مورد استفاده در ایمیلها ارائه میدهند، حتی اگر به طور صریح به عنوان اسپم یا غیر اسپم طبقهبندی نشدهاند.
در یادگیری نیمهنظارتشده، الگوریتم از دادههای برچسبگذاریشده برای شروع ساخت یک مدل استفاده میکند و سپس از دادههای بدون برچسب برای اصلاح و بهبود عملکرد مدل بهره میبرد. این روش به ویژه زمانی ارزشمند است که دادههای برچسبگذاریشده کمیاب و تهیه آنها پرهزینه باشد، در حالی که دادههای بدون برچسب به راحتی در دسترس هستند. این روش به برچسبگذاری دستی کمتری نیاز دارد و به صرفه تر است. اما دادههای بدون برچسب باید مرتبط و نماینده واقعی از تمامی دادهها باشند. الگوریتمهای نیمه نظارت شده میتوانند پیچیدهتر و از نظر محاسباتی گرانتر از یادگیری نظارتشده باشند.
در اینجا برخی از تکنیکهای رایج یادگیری نیمهنظارتشده ذکر شده است:
آموزش خودکار(Self-training): مدل برچسبهایی برای دادههای بدون برچسب پیشبینی میکند و از این پیشبینیها به عنوان نمونههای آموزشی استفاده میکند.
مدلهای مولد(Generative models): مدل توزیعی از دادهها را میآموزد و سپس از این توزیع برای تولید دادههای جدید و مصنوعی استفاده میکند که میتوانند برای آموزش مورد استفاده قرار گیرند.
آموزش مشترک(Co-training): دو مدل مختلف بر روی نماهای مختلف از دادهها آموزش داده میشوند. ابتدا هر دو مدل با دادههای برچسبگذاریشده آموزش میبینند. سپس هر مدل پیشبینیهایی برای دادههای بدون برچسب انجام میدهد. مدلها با هم اطلاعات خود را درباره دادههای بدون برچسب تبادل میکنند. مدل اول اطلاعاتی را درباره ویژگیهای بصری تصاویر به مدل دوم میدهد، و مدل دوم اطلاعاتی را درباره متادادهها به مدل اول میدهد. هر مدل از اطلاعات تبادل شده برای بهبود پیشبینیهای خود استفاده میکند. این فرآیند تا زمان رسیدن به یک دقت مشخص یا رسیدن به یک نقطه پایدار، تکرار میشود.
به طور کلی، یادگیری نیمهنظارتشده رویکرد امیدوارکنندهای برای استفاده از هر دو دادههای برچسبگذاریشده و بدون برچسب برای بهبود عملکرد مدلهای یادگیری ماشین ارائه میدهد. این روش به ویژه زمانی سودمند است که دادههای برچسبگذاریشده کمیاب یا پرهزینه باشند، اما دادههای بدون برچسب فراوان هستند. با توجه به افزایش دسترسی به دادهها، انتظار میرود که یادگیری نیمهنظارتشده در آینده رواج بیشتری پیدا کند.
یادگیری تقویتی
یادگیری تقویتی (Reinforcement Learning یا RL) یکی از جالبترین و چالشبرانگیزترین حوزههای یادگیری ماشین است که هدف آن آموزش عاملهای هوشمند (intelligent agents) برای تصمیمگیری در یک محیط تعاملی است.
تصور کنید که در حال آموزش یک سگ هستید. شما با دادن تشویقی (پاداش) به او برای رفتارهای خوب، مثل نشستن، و با نادیده گرفتن یا سرزنش (تنبیه) برای رفتارهای بد، مثل پارس کردن بیمورد، او را تربیت میکنید. یادگیری تقویتی دقیقاً همین کار را با الگوریتمهای هوش مصنوعی انجام میدهد.
عامل در هر مرحله، با توجه به حالت فعلی محیط، یک کنش را انتخاب میکند. سپس محیط با تغییر حالت خود و ارائه یک پاداش به عامل، به این کنش پاسخ میدهد. هدف عامل، یادگیری یک سیاست (Policy) است که به او بگوید در هر حالت چه کنشی را انجام دهد تا در درازمدت بیشترین پاداش را دریافت کند.
یادگیری تقویتی کاربردهای فراوانی در دنیای واقعی دارد، از جمله:
بازیها: آموزش هوش مصنوعی برای شکست دادن انسانها در بازیهای پیچیده مثل شطرنج و Go.
رباتیک: آموزش رباتها برای انجام وظایف مختلف، مثل جابجایی اجسام و ناوبری.
بهینهسازی: یافتن بهترین راه حل برای مسائل پیچیده، مثل مسیریابی و مدیریت منابع.
پزشکی: آموزش الگوریتمها برای تشخیص بیماریها و پیشنهاد درمانهای مناسب.
از جمله چالشهای این روش میتوان به نیاز به دادههای آموزشی زیاد، مشکل تعادل بین اکتشاف و بهرهبرداری و پیچیدگی محاسباتی اشاره کرد.
کاربردهای یادگیری ماشین
یادگیری ماشین در دنیای واقعی در هر بخشی کاربرد دارد. برخی از این کاربردها عبارتند از:
تشخیص تصویر
تشخیص گفتار
پیشبینی ترافیک
پیشنهاد محصول
خودروهای خودران
فیلتر کردن هرزنامه و بدافزار در ایمیل
دستیار شخصی مجازی
تشخیص تقلب آنلاین و…
نتیجهگیری
با پیشروی ما به عصر دیجیتال، یکی از جدیدترین نوآوریهایی که شاهد آن بودهایم، خلق یادگیری ماشین است. این شکل فوق العاده از هوش مصنوعی در حال حاضر در صنایع و حرفههای مختلف مورد استفاده قرار میگیرد.