روشهای یادگیری ماشین
مقدمه:
از ماشینهای هوشمند برای انجام وظایف بسیار متنوعی استفاده میشود و به همین دلیل روشهای مختلفی نیز برای یادگیری ماشینها ابداع شده است. تعداد و جزئیات این روشها بسیار مفصل است اما با توجه به میزان فراهم بودن دادههای لازم برای آموزش و نوع مسئله، روشهای یادگیری ماشین به چند دسته کلی تقسیم میشوند. این روشها با گذشت بیش از 60 سال از ظهور ابتداییترین ماشینهای یادگیرنده، توسعه یافتهاند. در سال 1952 برای اولین بار ماشینی ابداع شد که میتوانست بازی چکرز را یاد گرفته و در مقابل انسان بازی کند. این ماشین یادگیرنده توسط آرتور ساموئل[۱] ابداع شد، اما در آن زمان تصور مشخصی از سطح یادگیری ماشینها وجود نداشت هر چند که سالهاست در داستانهای علمی، ماشینهایی را میبینیم که گاهی باهوشتر انسانها عمل میکنند. در دهه 1980، شبکههای عصبی مصنوعی به دنیای کامپیوتر وارد شدند و روشهای یادگیری ماشین، با سرعت بیشتری گسترش یافتند. روشهای یادگیری ماشین با ریاضیات مدل شده و کارایی آنها نیز با ریاضیات اندازهگیری میشود و طی سالهای اخیر روش بسیار متنوعی ابداع شده که هدف اصلی آنها، ایجاد توان یادگیری سریعتر و دقیقتر ماشینها بوده است.
در یک تقسیم بندی کلی روشهای یادگیری ماشین را میتوان در دستههای زیر قرار داد هر چند که این روشها را نمیتوان به دسته بندی زیر محدود دانست.
یادگیری با نظارت (Supervised learning)
یادگیری با نظارت در دو مرحله انجام میشود. در این روش، ابتدا نمونههایی برای آموزش ماشین وجود دارد و با استفاده از این نمونهها، ماشین را آموزش میدهیم و بعد وارد مرحله آزمون شده و نمونههای جدید را به ماشین داده و انتظار داریم ماشین با توجه به آموختههای خود در مرحله اول، داده آزمون را به درستی تشخیص داده و پردازش کند.
به طور نمونه فرض کنید محصول یک باغ بزرگ از درختان سیب و پرتقال، به طور مخلوط برداشت شده و همه محصولات بر روی یک خط بسته بندی حرکت میکنند. اکنون میخواهیم یک روبات سیبها و پرتغالها را جدا کند. برای این کار یک ماشین طراحی میکنیم و در مرحله یادگیری، تعداد مشخصی از تصاویر سیب و پرتغال را به ماشین نشان میدهیم، پس از آن انتظار داریم که روبات طراحی شده، سیبها و پرتغالها را تشخیص داده و آنها را جدا کند.
در این مدل از یادگیری از ابتدا میدانیم که نمونههای ما دارای دو دسته مشخص هستند و از همه مهمتر، تعدادی داده داریم که برچسب خوردهاند. در ادبیات یادگیری ماشین برچسب خوردن یک داده به معنای مشخص بودن نوع داده است. با استفاده از این دادههای برچسب خورده، ابتدا ماشین را آموزش میدهیم و در ادامه انتظار داریم که ماشین تفاوت سیب و پرتغال را یادگرفته و آنها را از هم جدا کند.
یادگیری بدون نظارت (Unsupervised learning)
در یادگیری بدون نظارت، ما از ابتدا نمیدانیم که دادههای ما چند نوع هستند و تصمیم گیری برای تشخیص انواع نمونهها برعهده ماشین است. در یادگیری بدون نظارت قبل از مواجه شدن با دادهها، هیچ ایدهی اولیهای وجود ندارد و دادههایی که در این نوع از یادگیری، ماشین باید نمونهها را بررسی نموده و دستهها را ایجاد کند. در یادگیری بدو نظارت هیچ نوع دادهی برچسب خوردهای از ابتدا وجود ندارد.
فرض کنید یک روبات جداسازی ماهی برای یک کشتی ماهیگیری صنعتی قرار است ساخته شود. معلوم نیست که این دستگاه در کجای دنیا به کار گرفته خواهد شد و چه نوع صیدی انجام می شود اما این دستگاه وظیفه دارد که بهرحال هرآنچه که از تور بیرون میآید را جدا کند. در این نوع یادگیری، بدون آنکه بداند نام هر دسته چیست، فقط سعی میکند تا ماهیهای شبیه هم را تشخیص داده و در یک دسته مجزا قرار دهد. ممکن است در یک منطقه فقط دو نوع ماهی صید شود و در یک منطقه دیگر، احتمال وجود 4 نوع ماهی وجود داشته باشد. بنابراین انتظار داریم که ماشین در منطقه اول ماهیها را به دو دسته تقسیم کند و در منطقه بتواند هر 4 نوع ماهی را یادگرفته و تشخیص دهد. هر چند که احتمالا شما ماشین را بهگونهای برنامهریزی میکنید که یک دسته هم برای مواردی باشد که ماشین دادههای پرت را در آن قرار دهد تا اگر یک خرچنگ بدشانس هم در تور افتاد، به اجبار یک نوع ماهی تشخیص داده نشود.
یادگیری نیمهنظارتی (Semi-supervised learning)
در یادگیری نیمه نظارتی، برای تعداد کمی از دستهها، داده برچسب خورده وجود دارد و اکثر دادهها بدون برچسب هستند. یادگیری نیمه نظارتی، حد وسط بین یادگیری با نظارت و یادگیری بدون نظارت است. در یادگیری با نظارت، به مقدار زیادی داده برچسب خورده نیاز است و اصولا تهیه دادههای برچسب خورده کاری دشوار محسوب میشود. درصورتیکه دادههای برچسب خورده وجود نداشته باشد، باید از روشهای یادگیری بدون نظارت استفاده شود که دقت کمتری دارند. تجربه نشان داده است وجود مقدار کمی داده برچسب خورده نیز تا حد زیادی میتواند دقت یادگیری را افزایش دهد و به همین خاطر یادگیری نیمه نظارتی ابداع شده است.
یادگیری تقویتی (Reinforcement learning)
یادگیری تقویتی در مسائلی بهکار می رود که بهدلیل ماهیت آنها، هیچ دادهی اولیه برای آموزش وجود ندارد و ماشین باید با استفاده از تجربه خود، بهترین راه حل را پیدا کند. فرض کنیم یک ماشین قرار است شطرنج بازی کند. قبل از شروع بازی نمیتوانیم این طور به ماشین آموزش بدهیم که بردن یک مهره به یک خانه خاص خوب است یا بد است. این موضوع کاملا به شرایط بازی بستگی دارد که قبل از شروع بازی، هیچ اطلاعی از آن نداریم. در یک مثال سادهتر فرض کنیم که قرار است یک روبات در صفحه شکل 1 حرکت کرده و به خانه هدف برسد. هزینه ورود به هر خانه سبز رنگ یک واحد و هزینه ورود به هر خانه قرمز رنگ سه واحد است اما روبات قبل از ورود به یک خانه، از رنگ آن خبر ندارد و پس از ورود متوجه هزینه آن خانه میشود. اکنون روبات باید به گونهای مسیر خود را انتخاب کند که با کمترین هزینه ممکن به هدف برسد. در این مثال روبات مسیرهای مختلف را امتحان کرده و به تدریج با استفاده از آموختههای خود، بهترین مسیر را تشخیص میدهد.
یادگیری فعال (Active learning)
در یادگیری فعال، با مقدار زیادی داده روبهرو هستیم که برچسب گذاری آنها بسیار دشوار است اما در حد محدود میتوانیم بخشی از دادهها را برای برچسب گذاری به متخصصان بدهیم. نکته مهم اینجاست که در اکثر مواقع، همه دادهها ارزش آموزشی یکسان ندارند و برخی از دادهها تاثیر بیشتری در آموزش داشته و برخی نیز چندان موثر نیستند. اگر دادههای را که قرار است برای برچسب گذاری به متخصصان بدهیم، بهطور تصادفی انتخاب کنیم، نتایج کار شاید چندان مناسب نباشد اما راهکارهایی وجود دارد که دادههای را انتخاب کنیم که اطلاعات بیشتری داشته و در روند آموزش موثرتر هستند. دادههای منتخب برای برچسب گذاری یا در ابتدای یادگیری انتخاب میشوند و یا در حین پردازش دادهها، دادههای با ارزشتر تشخیص داده شده و برای برچسب گذاری به متخصصان ارسال میشوند.
یادگیری فعال نوعی از یادگیری نیمه نظارتی محسوب می شود که با انتخاب سئوالات بهتر، آموزش بهتری را فراهم میسازد. در این نوع یادگیری، الگوریتمهای مختلفی برای انتخاب دادههای با ارزش جهت آموزش وجود دارد که با توجه به نوع و روند یادگیری، مورد استفاده قرار میگیرند.
- ↑ Arthur Samuel