نمونههایی از کاربردها
چند نمونهٔ مشخص از وظایف یادگیری ماشین و روشهایی را که میتوانند آنها را حل کنند بررسی کنیم:
- تحلیل تصاویر محصولات روی خط تولید برای طبقهبندی خودکار آنها
- این یک مسئلهٔ «طبقهبندی تصویر» است که معمولاً با شبکههای عصبی کانولوشنی (CNN؛ فصل ۱۴) یا گاهی با Transformerها (فصل ۱۶) انجام میشود.
- تشخیص تومور در اسکنهای مغزی
- این مسئله «بخشبندی معنایی تصویر» است؛ هر پیکسل تصویر طبقهبندی میشود، زیرا باید محل و شکل دقیق تومور تعیین شود. معمولاً برای این کار از CNN یا Transformer استفاده میشود.
- طبقهبندی خودکار مقالههای خبری
- این مسئله در حوزهٔ پردازش زبان طبیعی (NLP) و مشخصاً «طبقهبندی متن» قرار میگیرد. میتوان آن را با شبکههای عصبی بازگشتی (RNN) و CNN حل کرد، اما Transformerها معمولاً عملکرد بهتری دارند؛ فصل ۱۶.
- علامتگذاری خودکار دیدگاههای توهینآمیز در تالارهای گفتوگو
- این نیز طبقهبندی متن است و از همان ابزارهای پردازش زبان طبیعی استفاده میکند.
- خلاصهسازی خودکار اسناد طولانی
- این شاخهای از پردازش زبان طبیعی به نام «خلاصهسازی متن» است و باز هم از همان خانوادهٔ ابزارها استفاده میکند.
- ساخت ربات گفتوگو یا دستیار شخصی
- این کار مجموعهای از اجزای پردازش زبان طبیعی را درگیر میکند؛ از جمله درک زبان طبیعی (NLU) و بخشهای پرسش و پاسخ.
- پیشبینی درآمد سال آیندهٔ شرکت براساس چندین معیار عملکرد
- این یک مسئلهٔ رگرسیون، یعنی پیشبینی مقدار، است. میتوان از هر مدل رگرسیونی مانند رگرسیون خطی یا چندجملهای (فصل ۴)، ماشین بردار پشتیبان برای رگرسیون (فصل ۵)، جنگل تصادفی رگرسیونی (فصل ۷) یا شبکهٔ عصبی مصنوعی (فصل ۱۰) استفاده کرد. اگر بخواهید توالی معیارهای عملکرد گذشته را نیز در نظر بگیرید، RNN، CNN یا Transformer مناسباند؛ فصلهای ۱۵ و ۱۶.
- واکنش برنامه به فرمانهای صوتی
- این مسئله «تشخیص گفتار» است و نیاز به پردازش نمونههای صوتی دارد. چون صدا دنبالهای طولانی و پیچیده است، معمولاً از RNN، CNN یا Transformer استفاده میشود.
- تشخیص تقلب کارت اعتباری
- این مسئله «تشخیص ناهنجاری» است و میتوان آن را با جنگلهای جداساز، مدلهای آمیختهٔ گاوسی (فصل ۹) یا خودرمزگذارها (فصل ۱۷) حل کرد.
- بخشبندی مشتریان براساس خریدهایشان برای طراحی راهبرد بازاریابی متفاوت برای هر بخش
- این «خوشهبندی» است و با روشهایی مانند k-means، DBSCAN و روشهای دیگر انجام میشود؛ فصل ۹.
- نمایش یک مجموعهدادهٔ پیچیده و پُربُعد در قالب نموداری روشن و قابلفهم
- این «تصویریسازی داده» است و معمولاً از روشهای کاهش ابعاد استفاده میکند؛ فصل ۸.
- پیشنهاد محصولی که احتمالاً برای مشتری جذاب است، براساس خریدهای قبلی
- این یک «سامانهٔ توصیهگر» است. یکی از رویکردها، دادن خریدهای گذشته و اطلاعات دیگر مشتری به یک شبکهٔ عصبی مصنوعی و واداشتن آن به پیشبینی محتملترین خرید بعدی است. چنین شبکهای معمولاً با توالی خریدهای قبلی همهٔ مشتریان آموزش میبیند.
- ساخت یک ربات هوشمند برای بازی
- این کار معمولاً با یادگیری تقویتی (Reinforcement Learning یا RL؛ فصل ۱۸) انجام میشود؛ شاخهای از یادگیری ماشین که «عامل»ها، مانند رباتهای بازی، را آموزش میدهد تا در یک محیط مشخص، اقدامهایی را انتخاب کنند که پاداش آنها را در طول زمان بیشینه کند. برنامهٔ مشهور AlphaGo که قهرمان جهان در بازی Go را شکست داد با یادگیری تقویتی ساخته شد.
این فهرست میتواند بسیار طولانیتر باشد، اما همین نمونهها دامنه و پیچیدگی شگفتانگیز مسائلی را که یادگیری ماشین قادر به حل آنهاست و نوع روش مناسب برای هر دسته را نشان میدهند.
انواع سامانههای یادگیری ماشین
سامانههای یادگیری ماشین انواع بسیار زیادی دارند، بنابراین دستهبندی آنها براساس چند معیار کلی مفید است:
- میزان و نوع نظارتی که هنگام آموزش دریافت میکنند: نظارتشده، بدون نظارت، نیمهنظارتشده، خودنظارتشده و انواع دیگر.
- اینکه آیا میتوانند همزمان با ورود دادهٔ جدید، بهصورت افزایشی یاد بگیرند یا نه: یادگیری برخط در برابر یادگیری دستهای.
- اینکه با مقایسهٔ مستقیم نقاط دادهٔ جدید با نقاط شناختهشده کار میکنند یا الگوهای دادهٔ آموزشی را کشف کرده و مدلی پیشبینیکننده میسازند، شبیه کاری که دانشمندان انجام میدهند: یادگیری نمونهمحور در برابر یادگیری مدلمحور.
این معیارها مانعةالجمع نیستند و میتوان آنها را به هر شکل ترکیب کرد. برای مثال، یک فیلتر هرزنامهٔ پیشرفته ممکن است با یک شبکهٔ عصبی عمیق که با نمونههای هرزنامه و پیام عادی برچسبخورده توسط انسان آموزش دیده است، بهصورت پیوسته از دادهٔ تازه یاد بگیرد؛ در این صورت سامانه همزمان برخط، مدلمحور و نظارتشده است.
نظارت در آموزش
سامانههای یادگیری ماشین را میتوان براساس میزان و نوع نظارتی که هنگام آموزش دریافت میکنند دستهبندی کرد. دستههای زیادی وجود دارد، اما در اینجا موارد اصلی را بررسی میکنیم: یادگیری نظارتشده، یادگیری بدون نظارت، یادگیری خودنظارتشده، یادگیری نیمهنظارتشده و یادگیری تقویتی.
یادگیری نظارتشده (Supervised Learning)
در یادگیری نظارتشده، مجموعهٔ آموزشیای که به الگوریتم میدهید پاسخهای مطلوب را نیز در بر دارد؛ این پاسخها «برچسب» نامیده میشوند.
شکل ۱-۵. مجموعهٔ آموزشی برچسبخورده برای طبقهبندی هرزنامه؛ نمونهای از یادگیری نظارتشده
یکی از وظایف معمول یادگیری نظارتشده «طبقهبندی» است. فیلتر هرزنامه مثال خوبی است: با تعداد زیادی رایانامه همراه با کلاس آنها، هرزنامه یا عادی، آموزش داده میشود و باید بیاموزد پیامهای جدید را طبقهبندی کند.
وظیفهٔ رایج دیگر، پیشبینی یک مقدار عددی هدف است؛ برای مثال قیمت خودرو براساس مجموعهای از ویژگیها مانند کارکرد، سن، برند و مانند آن. این نوع مسئله «رگرسیون» نام دارد.۱ برای آموزش سامانه باید نمونههای زیادی از خودروها همراه با ویژگیها و مقادیر هدف، یعنی قیمتها، در اختیارش قرار دهید.
برخی مدلهای رگرسیونی را میتوان برای طبقهبندی نیز بهکار برد و برعکس. برای نمونه، «رگرسیون لجستیک» معمولاً برای طبقهبندی استفاده میشود، زیرا میتواند مقداری تولید کند که احتمال تعلق نمونه به یک کلاس را نشان دهد؛ مانند ۲۰ درصد احتمال هرزنامهبودن.
شکل ۱-۶. مسئلهٔ رگرسیون: پیشبینی یک مقدار براساس ویژگی ورودی؛ معمولاً چند ویژگی ورودی و گاهی چند مقدار خروجی وجود دارد.
یادگیری بدون نظارت (Unsupervised Learning)
در یادگیری بدون نظارت، همانطور که از نامش پیداست، دادهٔ آموزشی برچسب ندارد و سامانه تلاش میکند بدون معلم یاد بگیرد.
فرض کنید اطلاعات فراوانی دربارهٔ بازدیدکنندگان وبلاگ خود دارید. شاید بخواهید با یک الگوریتم خوشهبندی، گروههای بازدیدکنندگان مشابه را کشف کنید. هیچگاه به الگوریتم نمیگویید هر بازدیدکننده به چه گروهی تعلق دارد؛ الگوریتم این ارتباطها را بدون کمک شما پیدا میکند. ممکن است متوجه شود ۴۰ درصد بازدیدکنندگان نوجوانانیاند که کتابهای مصور را دوست دارند و معمولاً بعد از مدرسه وبلاگ را میخوانند، در حالی که ۲۰ درصد بزرگسالانی هستند که داستان علمیتخیلی را میپسندند و آخر هفتهها مراجعه میکنند. اگر از خوشهبندی سلسلهمراتبی استفاده کنید، الگوریتم میتواند هر گروه را نیز به گروههای کوچکتر تقسیم کند؛ این اطلاعات برای هدفگیری محتوای هر گروه مفید است.
شکل ۱-۷. مجموعهٔ آموزشی بدون برچسب برای یادگیری بدون نظارت
شکل ۱-۸. خوشهبندی
الگوریتمهای تصویریسازی نیز نمونههای خوبی از یادگیری بدون نظارتاند: حجم زیادی دادهٔ پیچیده و بدون برچسب دریافت میکنند و نمایش دوبعدی یا سهبعدیای تولید میکنند که بهسادگی قابل رسم است. این الگوریتمها تلاش میکنند تا حد ممکن ساختار داده را حفظ کنند؛ مثلاً خوشههای جدا در فضای ورودی را در نمایش نهایی روی هم نیندازند، تا بتوانید سازمان داده را درک کنید و شاید الگوهای غیرمنتظره را بیابید.
شکل ۱-۹. نمونهای از نمایش t-SNE که خوشههای معنایی را برجسته میکند.۲
وظیفهٔ مرتبط دیگری «کاهش ابعاد» است که هدف آن سادهکردن داده بدون ازدستدادن اطلاعات زیاد است. یک راه، ادغام چند ویژگی همبسته در یک ویژگی است. برای مثال کارکرد خودرو ممکن است با سن آن همبستگی زیادی داشته باشد، بنابراین الگوریتم کاهش ابعاد میتواند این دو را در یک ویژگی نمایانگر فرسودگی خودرو ادغام کند. این فرایند «استخراج ویژگی» نام دارد.
وظیفهٔ مهم بدون نظارت دیگر «تشخیص ناهنجاری» است؛ برای نمونه تشخیص تراکنشهای غیرعادی کارت اعتباری برای جلوگیری از تقلب، یافتن عیبهای تولید یا حذف خودکار دادههای پرت پیش از تغذیهٔ آنها به الگوریتم یادگیری دیگر. در آموزش، سامانه عمدتاً نمونههای عادی را میبیند و یاد میگیرد آنها را بشناسد؛ سپس هنگام مشاهدهٔ نمونهٔ جدید تشخیص میدهد آیا شبیه موارد عادی است یا احتمالاً ناهنجار.
وظیفهای بسیار مشابه «تشخیص تازگی» است که نمونههای جدید متفاوت از تمام نمونههای موجود در مجموعهٔ آموزشی را پیدا میکند. برای این کار باید مجموعهٔ آموزشی بسیار پاک باشد و هیچ نمونهای که قرار است الگوریتم آن را بهعنوان مورد تازه شناسایی کند در آموزش وجود نداشته باشد. برای مثال، اگر هزاران تصویر سگ داشته باشید و یک درصد آنها Chihuahua باشند، الگوریتم تشخیص تازگی نباید تصاویر جدید Chihuahua را «تازه» بداند؛ اما الگوریتم تشخیص ناهنجاری ممکن است این سگها را آنقدر نادر و متفاوت ببیند که آنها را ناهنجاری طبقهبندی کند؛ بدون هیچ بیاحترامی به Chihuahuaها.
شکل ۱-۱۰. تشخیص ناهنجاری
وظیفهٔ رایج بدون نظارت دیگر «یادگیری قواعد وابستگی» است؛ هدف، کاوش حجم زیاد داده و کشف رابطههای جالب میان صفتهاست. فرض کنید صاحب یک فروشگاه زنجیرهای هستید. اجرای یک الگوریتم قواعد وابستگی روی سوابق فروش ممکن است نشان دهد کسانی که سس باربیکیو و چیپس سیبزمینی میخرند، تمایل دارند استیک هم بخرند؛ در نتیجه شاید قرار دادن این اقلام نزدیک یکدیگر مفید باشد.
یادگیری نیمهنظارتشده (Semi-Supervised Learning)
از آنجا که برچسبگذاری داده معمولاً زمانبر و پرهزینه است، اغلب تعداد زیادی نمونهٔ بدون برچسب و تعداد کمی نمونهٔ برچسبخورده در اختیار دارید. برخی الگوریتمها میتوانند با چنین دادهٔ نیمهبرچسبخوردهای کار کنند؛ این «یادگیری نیمهنظارتشده» نام دارد.
شکل ۱-۱۱. یادگیری نیمهنظارتشده با دو کلاس، مثلث و مربع: نمونههای بدون برچسب، یعنی دایرهها، کمک میکنند نمونهٔ جدید، یعنی علامت ضربدر، در کلاس مثلث قرار گیرد، حتی اگر به مربعهای برچسبخورده نزدیکتر باشد.
برخی خدمات میزبانی عکس، مانند Google Photos، نمونههای خوبی هستند. پس از بارگذاری تصاویر خانوادگی، سامانه بهطور خودکار تشخیص میدهد شخص A در عکسهای ۱، ۵ و ۱۱ و شخص B در عکسهای ۲، ۵ و ۷ ظاهر شدهاند. این بخشِ بدون نظارت الگوریتم، یعنی خوشهبندی، است. سپس کافی است شما بگویید این افراد چه کسانیاند. با افزودن تنها یک برچسب برای هر شخص،۳ سامانه میتواند نام افراد را در همهٔ عکسها مشخص کند و جستوجوی تصاویر آسانتر میشود.
بیشتر الگوریتمهای نیمهنظارتشده ترکیبی از الگوریتمهای نظارتشده و بدون نظارتاند. برای مثال میتوان از خوشهبندی برای گروهبندی نمونههای مشابه استفاده کرد و سپس هر نمونهٔ بدون برچسب را با پرتکرارترین برچسب در خوشهٔ خودش برچسب زد. پس از برچسبگذاری کل مجموعهداده میتوان از هر الگوریتم یادگیری نظارتشده استفاده کرد.
یادگیری خودنظارتشده (Self-Supervised Learning)
رویکرد دیگر آن است که از یک مجموعهدادهٔ کاملاً بدون برچسب، مجموعهای کاملاً برچسبخورده تولید کنیم. پس از آنکه تمام داده برچسب گرفت، هر الگوریتم نظارتشدهای قابل استفاده است. این روش «یادگیری خودنظارتشده» نام دارد.
برای مثال، اگر مجموعهٔ بزرگی از تصاویر بدون برچسب داشته باشید، میتوانید بخش کوچکی از هر تصویر را بهطور تصادفی بپوشانید و مدلی را آموزش دهید که تصویر اصلی را بازسازی کند. هنگام آموزش، تصویر پوشاندهشده ورودی مدل و تصویر اصلی برچسب یا هدف آن است.
شکل ۱-۱۲. نمونهٔ یادگیری خودنظارتشده: ورودی، تصویر دارای بخش پوشاندهشده است و هدف، تصویر اصلی است.
مدل حاصل ممکن است بهخودیخود نیز مفید باشد؛ برای مثال برای ترمیم تصاویر آسیبدیده یا حذف اشیای ناخواسته. اما اغلب مدلی که با یادگیری خودنظارتشده آموزش داده میشود هدف نهایی نیست و معمولاً میخواهید آن را برای وظیفهای اندکی متفاوت که واقعاً برایتان مهم است تنظیم و ریزتنظیم کنید.
فرض کنید هدف واقعی شما ساخت مدل طبقهبندی حیوانات خانگی است؛ با دریافت تصویر هر حیوان خانگی، گونهٔ آن را مشخص کند. اگر مجموعهٔ بزرگی از عکسهای بدون برچسب حیوانات خانگی دارید، ابتدا میتوانید با یادگیری خودنظارتشده یک مدل ترمیم تصویر آموزش دهید. وقتی مدل خوب عمل کند، باید بتواند گونههای مختلف حیوانات را از هم تشخیص دهد؛ زیرا هنگام بازسازی صورت پوشاندهشدهٔ یک گربه باید بداند نباید صورت سگ را جایگزین کند. اگر معماری مدل اجازه دهد، و بیشتر معماریهای شبکهٔ عصبی چنین امکانی دارند، میتوان مدل را تغییر داد تا بهجای ترمیم تصویر، گونهٔ حیوان را پیشبینی کند. مرحلهٔ آخر ریزتنظیم مدل روی یک مجموعهٔ برچسبخورده است: مدل از قبل ظاهر گربه، سگ و دیگر گونهها را میشناسد و در این مرحله فقط باید نگاشت میان گونههای شناختهشده و برچسبهای مورد انتظار را یاد بگیرد.
برخی افراد یادگیری خودنظارتشده را بخشی از یادگیری بدون نظارت میدانند، زیرا با مجموعهدادههای کاملاً بدون برچسب آغاز میشود. اما این روش هنگام آموزش از برچسبهای تولیدشده استفاده میکند و از این جهت به یادگیری نظارتشده نزدیکتر است. همچنین اصطلاح «یادگیری بدون نظارت» معمولاً برای وظایفی مانند خوشهبندی، کاهش ابعاد یا تشخیص ناهنجاری بهکار میرود، در حالی که یادگیری خودنظارتشده روی همان وظایف یادگیری نظارتشده، عمدتاً طبقهبندی و رگرسیون، تمرکز دارد. بنابراین بهتر است آن را یک دستهٔ مستقل در نظر بگیریم.
یادگیری تقویتی (Reinforcement Learning)
یادگیری تقویتی ماهیتی بسیار متفاوت دارد. سامانهٔ یادگیرنده که در این زمینه «عامل» نامیده میشود، محیط را مشاهده میکند، اقدامهایی را انتخاب و اجرا میکند و در مقابل پاداش میگیرد؛ یا بهشکل پاداش منفی، جریمه دریافت میکند. عامل باید خودش بهترین راهبرد، یعنی «سیاست (Policy)»، را برای بیشینهکردن پاداش در طول زمان بیاموزد. سیاست تعیین میکند عامل در یک وضعیت مشخص چه اقدامی را انتخاب کند.
شکل ۱-۱۳. یادگیری تقویتی
برای مثال، بسیاری از رباتها برای یادگیری راهرفتن از الگوریتمهای یادگیری تقویتی استفاده میکنند. برنامهٔ AlphaGo شرکت DeepMind نیز نمونهٔ خوبی است؛ در مه ۲۰۱۷ زمانی خبرساز شد که Ke Jie، نفر اول ردهبندی جهانی بازی Go در آن زمان، را شکست داد. AlphaGo سیاست برندهٔ خود را با تحلیل میلیونها بازی و سپس انجام بازیهای فراوان با خودش آموخت. توجه کنید که هنگام مسابقه با قهرمان، یادگیری غیرفعال بود و AlphaGo فقط سیاستی را که قبلاً آموخته بود اجرا میکرد. همانطور که در بخش بعد خواهید دید، این حالت «یادگیری برونخط» نامیده میشود.
یادگیری دستهای در برابر یادگیری برخط
معیار دیگری برای دستهبندی سامانههای یادگیری ماشین این است که آیا سامانه میتواند از جریان پیوستهٔ دادهٔ ورودی، بهصورت افزایشی یاد بگیرد یا نه.