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

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


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

  • supervised learning = یادگیری با نظارت
  • unsupervised learning = یادگیری بدون نظارت

پیش از این یادگیری با نظارت را اینگونه تعریف کردیم:

این مدل ماشین با استفاده از داده های برچسب گذاری شده و داشتن جواب های درست یاد می گیرند که در لاتین به آن Supervised learning می گویند.


مثال های مختلفی از یادگیری ماشین با نظارت:

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

نمونه دیگری از این دست یادگیری می توان زد پیشبینی مقدار عددی می باشد، به عنوان مثال قیمت یک ماشین با مجموعه ویژگی هایی مثل (مسافت طی شده، برند، سن ماشین و ...). از این دست مثال ها با عنوان regression نامیده می شوند. (در پست های بعدی حتما یک مثال با regression توسط زبان پایتون حل می کنیم.)


برای آموزش سیستم، شما باید تعداد زیادی نمونه یا به عبارتی داده، در اختیار سیستم بگذارید که شامل label و predictor ها باشد.

نکته: دقت کنید بعضی از الگوریتم های regression را می توانند در classification استفاده شوند و برعکس.

برای مثال، رگرسیون منطقی (Logistic Regression) معمولا برای طبقه بندی استفاده می شود، زیرا می تواند یک مقدار را که مربوط به احتمال متعلق به یک کلاس داده شده است، تولید کند.



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

پیش از این یادگیری با نظارت را اینگونه تعریف کردیم:

این مدل ماشین بدون استفاده از داده های برچسب گذاری شده و بدون هیچ معلمی می آموزد که در لاتین به آن Unsupervised Learning می گویند.

درواقع به حالت ساده تر می توان گفت که در ابتدا تمامی نمونه هایی که به آن داده می شوند، هیچ برچسبی ندارند در صورتی که در یادگیری نظارتی تمامی داده ها برچسب داشتند. به عنوان مثال، ایمیل های اسپم و غیر اسپم. در یادگیری بدون نظارت برچسبی بر روی داده ها وجود ندارد.

به عنوان مثال فرض کنید شما اطلاعات زیادی در رابطه با کاربران بلاگ شما دارید. شما ممکن است بخواهید یک الگوریتم خوشه بندی را اجرا کنید تا بتوانید تمامی ملاقات کننده های مشابه هم را در یک خوشه نگاه داری کنید. (الگوریتم خوشه بندی در پست های بعدی توسط زبان پایتون آموزش داده می شود.)

درواقع در مثال بالا شما بدون هیچ کمکی از سیستم می خواهید تشخیص دهد هر کاربر متعلق خوشه ای است و آن بدون کمک شما ارتباطات را پیدا می کند.

فرض کنید که خروجی ماشین شما اینگونه است. 40 درصد ملاقات کنندگان شما مردهایی عاشق کتاب های علمی تخیلی هستند و عموما پست های بلاگ شما را غروب ها می خوانند. درحالی که 20 درصد آن ها جوان هایی علاقه مند به کتاب های داستانی و رمان هستند و بلاگ شما را تنها آخر هفته ها ملاقات می کنند. حتی شما می توانید با استفاده از hierarchical clustering algorithm در هر گروه آن ها را به گروه های کوچک تری تقسیم کنید و این کار ممکن به شما کمک بیشتری کند تا به هدفتان برسید.


الگوریتم های مصور سازی یکی از مثال های دیگری هستند که برای یادگیری بدون نظارت می توان زد. به عنوان مثال شما تعداد بسیار زیادی به آن عکس می دهید و هیچ برچسبی هم بر روی عکس ها نمی گذارید. (مثلا عکس ماشین به آن می دهید و نمی گویید که این ماشین است). الگوریتم مورد نظر تلاش می کند تا ساختاری میان آن ها پیدا کند و آن ها را خوشه بندی کند. درنهایت متوجه می شوند که چطور داده را سازماندهی کنند.


شما به کدام یادگیری علاقه دارید؟

نظر خود را قرار دهید تا بدانیم از کدام الگوریتم ها شروع به پیاده سازی کنیم تا برای شما مطالب نیز جذاب تر باشد.