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

یادگیری بدون نظارت

یادگیری بدون نظارت

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

supervisedVSunsupervised

توضیح عکس

در عکس سمت چپ دو نوع داده وجود دارد، داده‌هایی با ضربدر‌های قرمز و داده‌هایی با دایره‌های آبی. دایره‌آبی و ضربدر قرمز همان برچسب‌ها هستند. این عکس مسئله طبقه‌بندی (نوعی از یادگیری بانظارت) را نشان می‌دهد و وظیفه مدل پیدا کردن خط سیاه رنگ است که به کمک آن بتوان دسته «دایر‌ه‌های آبی»‌ را از دسته «ضربدرهای قرمز» تفکیک کرد؛ هر نقطه‌ای که سمت راست خط مشکی باشد متعلق به دسته «ضربدر‌های قرمز» و هر نقطه‌ای هم که سمت چپ خط قرار بگیرد متعلق به دسته «دایره‌های آبی» خواهد بود.

اما در عکس سمت راست هیچ گونه برچسبی وجود ندارد و همه داده‌ها به یک شکل هستند. در این حالت ماشین تشخیص داده است که در داده‌های ما دو دسته وجود دارد؛ یکی پایین سمت چپ و دیگری بالا سمت راست صفحه.

الگوریتم‌های یادگیری ماشین بی‌نظارت، که در آن مدل بدون دخالت انسان و با داده‌های بدون برچسب، الگوهای پنهان بین داده‌ها را پیدا می‌کند، به طور کلی به سه دسته خوشه‌بندی (clustering)، کاهش ابعاد (dimensionality reduction) و استخراج قانون وابستگی (association rule mining) تقسیم‌بندی می‌شود. روش‌های یادگیری ماشین بی‌نظارت بسیار زیادی وجود دارند که می‌توان از آن‌ها برای پیدا کردن الگوهای پنهان و نتایج مفید استفاده کرد. اما نکته مهم این است که یک دانشمند علم داده، زمینه کاری مسئله (problem domain) خود را به خوبی بشناسد و بتواند الگوریتم درست را انتخاب کند.

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

خوشه‌بندی

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

به عنوان مثال عکس پایین نمونه‌ای از خوشه‌بندی است که داده‌ها را بر اساس معیار فاصله اقلیدسی به ۳ دسته ‌خوشه‌بندی کرده‌ایم.clustering

کاهش ابعاد

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

سوالی که مطرح می‌شود این است که چه نیازی به این کار داریم؟ چرا لازم است تعداد ستون‌های یک دیتاست جدولی که مثلاً 80 ستون دارد را کاهش دهیم؟ چرا به سادگی از تمام این 80 ویژگی برای آموزش مدل خود استفاده نکنیم؟

مسائل و مشکلاتی که به هنگام کار با داده‌های دارای ابعاد زیاد مطرح می‌شود تحت عنوان the curse of dimensionality شناخته می‌شود. به عنوان یک واقعیت، زمانی که تعداد ویژگی‌های مسئله مورد نظر ما زیاد می‌شود، به طبع نیاز داریم داده‌های بیشتری داشته باشیم. در نتیجه، زمانی که ابعاد بیشتری داریم، مدل یادگیری ماشین پیچیده شده و این باعث به‌وجود آمدن بیش‌برازش (overfitting) می‌شود. بیش‌برازش باعث می‌شود که مدل یادگیری ماشین به داده‌هایی که روی آن‌ آموزش دیده وابسته شود و روی داده‌هایی که تا به حال ندیده است عملکرد مطلوبی نداشته باشد.

the curse of dimensionality

توضیح عکس

محور xها، نمایانگر تعداد ویژگی‌های نمونه‌ها و محور yها، عملکرد یک مدل طبقه‌بندی را نشان می‌دهد.

این نمودار نشان می‌دهد تعداد ویژگی‌های زیاد لزوما به معنی عملکرد بهتر نیست!

برای مطالعه مقاله یادگیری بانظارت بر روی لینک کلیک کنید

امیرحسین باقری

امیرحسین باقری هستم عاشق برنامه نویسی مخصوصا با python و همینطور طراح قالب و متخصص فرانت اند؛ از دانشی که تو این مدت بدست آوردم میشه به HTML, CSS, Bootstrap, Flexbox, SASS, Python, Django, DRF و هوش مصنوعی اشاره کرد.
دکمه بازگشت به بالا