این نوشته، بخشی از کتاب یادگیری ماشین است.
در نوشتهٔ قبل، درباره کاهش ابعاد داده یا عصارهگیری از دادهها صحبت کردیم. اجازه دهید این نوشته را با یک مثال ملموس در این رابطه شروع کنیم.
فرض کنید میخواهیم ترافیک بخشی از یک خیابان را در یک ساعت خاص پیشبینی کنیم. برای آموزش مدل، دادههای متنوعی را برداشت کردهایم؛ مثلا تعداد ماشینهای عبوری در ۵ دقیقه گذشته، میانگین سرعت ماشینها، درجه و وضعیت آبوهوا، روز هفته، ساعت روز، تعطیل بودن یا نبودن، آلودگی هوا و … .
هر نمونه را با یک بردار نشان میدهیم:
x = [57, 83, 1, 4, 0, 1, ...]
در بردار بالا، عدد ۵۷ مثلا میتواند نماینده تعداد ماشینهای عبوری و ۸۳ نشاندهنده میانگین سرعت ماشینها باشد. این بردار ممکن است کوچک به نظر برسد. اما اگر بخواهیم در هر دقیقه، برای هر نقطه از شهر، این دادهها را جمعآوری کنیم، پردازش آنها پرهزینه میشود.
وقتی تعداد ماشینهای عبوری را داریم، شاید میزان آلودگی هوا چیز بیشتری درباره ترافیک در اختیار مدل ما قرار ندهد. اما از کجا بدانیم کدام ویژگی را میشود دور ریخت؟
در یادگیری با نظارت، ما به پاسخ یا خروجی مطلوب دسترسی داشتیم. مثلا میدانستیم که در روزهای گذشته، دمای هوا چه تاثیری بر میزان فروش بستنی گذاشته است. اینجا اما تصویری از وضعیت مطلوب نداریم.
به همین خاطر، روشهای کاهش ابعاد داده، اغلب در دسته «یادگیری بدون نظارت» قرار میگیرند. در یادگیری بدون نظارت، خبری از دادههای برچسبدار (labeled data) نیست؛ یعنی مشخص نیست که به ازای مجموعهای از ویژگیهای ورودی، مدل چه خروجیای باید تولید کند.
بنابراین ما باید مسئله را به گونهای تعریف کنیم که دستیابی به پاسخ مطلوب، بدون راهنمایی (دادههای برچسبدار) امکان پذیر شود. یک روش شناختهشده برای عصارهگیری از دادهها، Principal Component Analysis است. PCA تلاش میکند مولفههای اصلی دادهها را به گونهای بیرون بکشد که واریانس آنها بیشینه شود.
برای درک موضوع، فرض کنید که ما ۵۰۰ جمله داریم که مفاهیم مختلفی را بیان میکنند. میخواهیم عصاره این جملات را بگیریم، بدون اینکه هیچ مفهومی از دست برود. پس باید جملاتی را حذف کنیم که مفاهیم مشابهی را بیان میکنند. در این صورت، جملات باقیمانده، مفاهیم مستقل و منحصربهفردی خواهند داشت؛ این یعنی واریانس دادهها بیشینه شده است.
PCA با دادههای برداری، به شکل مشابه رفتار میکند. روش کار PCA، شبیه به درست کردن اسپرسو است؛ یعنی مولفههای اصلی داده را بهگونهای استخراج میکند که با دادههای اولیه (پودر قهوه) شباهتی ندارد. بنابراین بردار بالا بعد از عصارهگیری، ممکن است تبدیل شود به:
x' = [40, 1, 102]
مثالهای دیگری از یادگیری بدون نظارت
فرض کنید برخی از رانندگان یک تاکسی اینترنتی، با انجام سفرهای جعلی، از طرحهای تشویقی سوء استفاده میکنند. در اینجا ما تعریف دقیقی از سفر جعلی نداریم. یعنی نمیدانیم چه رفتاری از طرف رانندگان، نشانه تقلب است.
به طور کلی، تشخیص ناهنجاریها و الگوهای خاص و پنهان شده در دادههای بدون برچسب (unlabeled)، در دسته «یادگیری بدون نظارت» قرار میگیرد.
خوشهبندی
همه ما بارها با پیشنهادات خرید در فروشگاههای آنلاین روبهرو شدهایم. برای ارائه این پیشنهادات، فروشگاههای آنلاین اغلب مشتریان خود را براساس شباهتهایشان، گروهبندی میکنند.
سایتهای بخش آنلاین فیلم و سریال همانند نتفلیکس، با استفاده از همین تکنیک، کاربران را براساس سلایقشان و محتوای ویدیویی را براساس مضامینی که دارند، در چندین گروه قرار میدهند. براساس این گروهبندی، این سایتها به شما محتوایی را پیشنهاد میدهند که احتمالا موردپسندتان است.
خوشهبندی یعنی قرار دادن دادهها در چند گروه به شکلی که اعضای خوشه، به یکدیگر شباهت زیادی داشته باشند. برای خوشهبندی دادهها، باید تعریف کنیم که منظورمان از «شباهت» چیست.
مثلا پمپبنزینهای شهر واشنگتن را در نظر بگیرید. در تصویر زیر، هر ضربدر نماینده یک پمپبنزین است:

میتوانیم این پمپبنزینها را براساس «نزدیکی»شان به یکدیگر، درون چند خوشه قرار بدهیم. اگر بخواهیم ۵ خوشه داشته باشیم، نتیجه چیزی شبیه به تصویر زیر میشود:

در اینجا برای خوشهبندی پمپبنزینها، از الگوریتم K-Means استفاده کردهایم که از پرکاربردترین روشها در خوشهبندی است. در مثال بالا، این الگوریتم ۵ پمپبنزین را به صورت تصادفی، به عنوان مرکز خوشهها در نظر میگیرد و هر پمپبنزین را به خوشهای نسبت میدهد که به مرکز آن بیشترین شباهت را داشته باشد (فاصله نزدیکتری داشته باشد).
سپس میانگین اعضای گروه، به عنوان مرکز خوشه انتخاب میشود. به همان صورت قبلی، پمپبنزینها به خوشههای جدید نسبت داده میشوند. این کار به قدری تکرار میشود که دیگر اعضای خوشهها تغییر نکند.
اگر تعداد خوشهها را تغییر دهیم (مثلا ۷ تا)، نتیجه متفاوت میشود:

در اینجا، ما فقط مشخص کردیم که منظورمان از شباهت، نزدیکی جغرافیایی است؛ روی نحوه شکلگیری خوشهها نظارتی نداشتیم. به همین خاطر «خوشهبندی» ذیل «یادگیری بدون نظارت» قرار میگیرد. البته، اگر از الگوریتم متفاوتی برای خوشهبندی استفاده کنیم، ممکن است نتیجه به شدت متفاوت شود.
یکی از زیرشاخههای مهم «یادگیری بدون نظارت»، یادگیری خودنظارتی نام دارد. این روش ماشین را قادر میسازد تا از دادههای بدون برچسب، الگوهای ارزشمند استخراج کند. تحولات سالهای اخیر در حوزه هوش مصنوعی را مدیون یادگیری خودنظارتی هستیم. در فصلهای بعدی کتاب، به این موضوع خواهم پرداخت.
کلیدواژههای مهم
بعد از خواندن این مطلب، سعی کنید این کلیدواژهها/مفاهیم را به خاطر بسپارید:
- یادگیری بدون نظارت | Unsupervised Learning
- تحلیل مؤلفههای اصلی | Principal Component Analysis
- خوشهبندی | Clustering
- K-Means
نوشته حاضر، بخشی از «کتاب یادگیری ماشین» است که برای مدیر محصولها یا افراد غیرفنی نوشته شده است. فهرست این کتاب را در اینجا ببینید.
میتوانید به فصل قبلی کتاب برگردید و درباره «مهندسی ویژگیها و کاهش ابعاد داده» بخوانید یا در فصل قبلتر، مبحث «یادگیری با نظارت» را مرور کنید. همچنین، میتوانید کتاب را ورق بزنید و در فصل بعدی، ببینید ماشین چطور انسان را از محدودیتهای ذهنیاش رها میکند.
نوشتههای روزانه من را درباره محصول، فناوری و کسبوکار در تلگرام دنبال کنید!

دیدگاهتان را بنویسید