یادگیری ماشین به طور کلی به سه دسته تقسیم میشود:
در ادامه دربارهی این دستهبندیهای کلی صحبت میکنیم.
رایجترین شکل یادگیری ماشین یادگیری با نظارت نام دارد. این روش اولین روشی است که برای یادگیری ماشین استفاده شده است. یادگیری با نظارت بسیار جذاب و هیجانانگیز است زیرا شباهت زیادی به شکل واقعی فرآیند یادگیری در انسانها دارد. در آموزشهای تحت نظارت یک کامپیوتر با مجموعهای از دادههای برچسبگذاری شده آماده میشود که به آن مجموعهی آموزشی (training set) میگوییم. برای مثال مجموعهای از اعداد که ضربان قلب و فشار خون تعدادی بیمار را نشان میدهد و به این صورت که آیا آنها در سی روز گذشته دچار سکته قلبی شدهاند یا نه، برچسبگذاری شده است.
از روی چنین مجموعه دادههایی، یک الگوریتم یادگیری ماشین با نظارت میتواند از برچسبها برای تشخیص نقاط مشترک بیمارانی که دچار سکتهی قلبی شدهاند یا بیمارانی که سالم باقیماندهاند استفاده کند. الگوریتم میتواند دیدگاهی که در مجموعهی آموزشی پیدا کرده است را به دادههای جدیدی که بدون برچسب در اختیارش گذاشته میشود، تعمیم دهد و پیشبینی کند بیمار جدید تا چه اندازه امکان سکتهی قلبی دارد.
پرسش اصلی در یادگیری با نظارت این است که چگونه بهترین سیستم را بسازیم. سیستمی که بتواند الگوریتم را بهدرستی یاد بگیرد و کاربردیترین الگویی که میان دادههای برچسبگذاری شدهای که در مجموعهی آموزشی در اختیارش قرار گرفته بود، وجود دارد پیدا کند؟ بیشتر الگوریتمها از تابعی به نام تابع هزینه یا تابع زیان استفاده میکنند. این تابع میتواند بهصورت کمی میزان موفقیت الگوریتم در کار با دادههای برچسبگذاری شده را اندازهگیری کند.
تابع زیان دو آرگومان دارد که یکی «برچسب صحیح مثال آموزشی» و دیگری «برچسب پیشبینیشده توسط الگوریتم یادگیری ماشین» است و با توجه به اینکه الگوریتم چقدر درست پیشبینی کرده است مقدار زیان یا خطای الگوریتم را حساب میکند.
به طور کلی این خیلی شبیه شیوهی یادگیری انسان است. کودکان هم در آغاز ممکن است در درک محیط اطراف مشکلاتی داشته باشند و مرتکب اشتباههایی شوند. برای مثال کودک نوپایی که تا حالا فقط سگها را دیده و هیچ گربهای را ندیده است ممکن است با دیدن یک گربه آن را «هاپو» خطاب کند. وقتی این اتفاق میافتد مادر یا معلم بهآرامی اشتباه کودک را تصحیح میکند و در نتیجه او یاد میگیرد که نام این حیوان گربه است و در آینده آن را به این نام خطاب میکند؛ به زبان یادگیری ماشین، برچسبگذاری کودک تصحیح شده است.
در همین راستا، دانستن مقدار زیان (loss value) به الگوریتم یادگیری ماشین اجازه میدهد پارامترهایش را مجدداً محاسبه کند و پیشبینیهای بهتری انجام دهد، در نتیجه مقدار زیان در مواجه با دادههای آموزشی بعدی کاهش پیدا خواهد کرد. این فرآیند دائماً تکرار میشود تا جایی که الگوریتم به کمترین میزان زیان دست پیدا کند و دیگر امکان بهتر کردن آن وجود نداشته باشد.
به طور خلاصه یادگیری با نظارت طبق فرآیندی که در بالا گفتیم کار میکند. البته صدها نوع الگوریتم یادگیری با نظارت وجود دارد که هرکدام ویژگیهای خاص خود را دارند اما در بیشتر موارد روند کلی یکسان است. دامنهی یادگیری با نظارت بسیار گسترده است و الگوریتمهای زیادی را در برمیگیرد که از میان آنها میتوانیم به موارد زیر اشاره کنیم:
یادگیری بدون نظارت درست در نقطهی مقابل یادگیری با نظارت قرار دارد. در یادگیری بدون نظارت الگوریتم تلاش میکند خصوصیات ذاتی ساختار دادهها را از روی نمونههای برچسبگذاری نشده یاد بگیرد. در یادگیری بدون نظارت باید دو کار را انجام دهید:
در خوشهبندی تلاش میکنیم دادهها را به خوشههای معنیدار تقسیم کنیم، به گونهای که عناصر درون یک خوشه شباهتهای مشخصی با یکدیگر داشته باشند و از خوشههای دیگر متمایز باشند. خوشهبندی برای کارهایی مانند تقسیم بازار مفید است. برای مثال فرض کنید یک کسبوکار اطلاعات جمعیتی و اطلاعات مربوط به رفتار خرید مشتریان خود را جمع آوری کرده است. ممکن است این کسبوکار بخواهد بخشهای مختلف بازار که کالای خاصی در آن بهخوبی فروش میرود را شناسایی کند یا بخشهایی که کالاهایش در آن فروش خوبی ندارند را جدا کند. در این صورت آنها میتوانند یک الگوریتم k-means بدون نظارت یا خوشهبندی سلسهمراتبی ایجاد کنند و به کمک آن پایگاههای قوی و ضعیف خود را در بازار بشناسند.
در کاهش ابعادی ما با حجم زیادی داده با ابعاد بسیار زیاد مواجهیم و میخواهیم همان دادهها را بر فضایی با ابعاد بسیار پایینتر تصویر کنیم تا فرآیند تفسیر آنها سادهتر شود. برای مثال word2vec یک روش پردازش زبان طبیعی است که گوگل آن را طراحی کرده است. الگوریتم word2vec حجم زیادی دادهی متنی را میخواند و به ازای هر کلمه، بردار ایجاد میکند.
در نمایش خام، بردارها بر مبنای اندازهی کلمه ساخته میشوند (دهها هزار کلمه) ولی الگوریتم word2vec تعدادی از این کلمات را از هر جا با ابعاد ۵۰ تا ۳۰۰ میسازد. همچنین به کلمات در چارچوب معنایی بافت متن هم نگاه میکند و آنها را درون بردار جای میدهد و به این ترتیب کلماتی که چارچوب معنایی مشترک دارند، نمایش برداری شبیه به هم خواهند داشت. این کار اجازه میدهد که الگوریتم معانی انتزاعیای که کلمات منتقل میکنند، یاد بگیرد.
Word2vec از یک روش آموزشی استفاده میکند که در آن یکسری دادهی برچسبگذاری شده از دادههای خام برچسبگذاری نشده به وجود آمدهاند. با وجود اینکه این یک فرآیند یادگیری بدون نظارت است اما بعضی وقتها با عنوان نیمه نظارت شده (semi-supervised) شناخته میشود. دلیل این نامگذاری این است که الگوریتم نوعی سیستم نظارت داخلی برای خودش ایجاد کرده است.
یک الگوریتم کاهش ابعاد دیگر که استفاده از آن رایج است، تجزیهوتحلیل عناصر اصلی (principle components analysis) نام دارد که بیشتر تحت عنوان PCA شناخته میشود. در PCA دادهها دچار تغییر و تحول میشوند بنابراین این الگوریتم آنها را در دستگاه مختصات دیگری که محورهای آن مؤلفههای اصلی نامیده میشوند نمایش میدهد. نمایش در جهت مؤلفههای اصلی معادل نمایش در جهت بزرگترین اختلاف میان دادهها است. آنالیز این مؤلفههای اصلی حجم زیادی اطلاعات دربارهی مجموعهی دادهها به ما میدهد.
از میان رایجترین الگوریتمهای بدون نظارت موجود میتوان به الگوریتمهای زیر اشاره کرد:
بسیاری از الگوریتمهای بدون نظارت تلاش میکنند خلاقیت انسان را بهنوعی تقلید کنند. اپلیکشینهای توصیهکنندهای که شرکتهایی مانند Netflix و sportify از آنها استفاده میکنند و اپلیکیشنهای تولید کنندهی آثار هنری و مدلهای سهبعدی بعدی مختلف که شرکتهای تولید بازیهای ویدیویی مانند Nvidia آنها را به کار میبرند از همین دستهاند.