به عنوان یکی از شاخههای وسیع و پرکاربرد هوش مصنوعی، یادگیری ماشینی (Machine learning) به تنظیم و اکتشاف شیوهها و الگوریتمهایی میپردازد که بر اساس آنها رایانهها و سامانهها توانایی تعلٌم و یادگیری پیدا میکنند.
اهداف و انگیزهها
هدف یادگیری ماشینی این است که کامپیوتر (در کلیترین مفهوم آن) بتواند به تدریج و با افزایش دادهها بازدهیی بالاتری در وظیفهٔ مورد نظر پیدا کند. گستردهٔ این وظیفه میتواند از تشخیص خودکار چهره با دیدن چند نمونه از چهرهٔ مورد نظر تا فراگیری شیوهٔ گامبرداری برای روباتای دوپا با دریافت سیگنال پاداش و تنبیه باشد.
طیف پژوهشهایی که در یادگیری ماشینی میشود گستردهاست. در سوی نظریی آن پژوهشگران بر آناند که روشهای یادگیری تازهای به وجود بیاورند و امکانپذیری و کیفیت یادگیری را برای روشهایشان مطالعه کنند و در سوی دیگر عدهای از پژوهشگران سعی میکنند روشهای یادگیری ماشینی را بر مسایل تازهای اعمال کنند. البته این طیف گسسته نیست و پژوهشهای انجامشده دارای مولفههایی از هر دو رویکرد هستند.
تقسیمبندی مسایل
یکی از تقسیمبندیهای متداول در یادگیری ماشینی، تقسیمبندی بر اساس نوع دادههای در اختیار عامل هوشمند است. به سناریوی زیر توجه کنید:
فرض کنید به تازگی رباتای سگنما خریدهاید که میتواند توسط دوربینای دنیای خارج را مشاهده کند، به کمک میکروفنهایاش صداها را بشنود، با بلندگوهایی با شما سخن بگوید (گیریم محدود) و چهارپایاش را حرکت دهد. همچنین در جعبهٔ این ربات دستگاه کنترل از راه دوری وجود دارد که میتوانید انواع مختلف دستورها را به ربات بدهید. در پاراگرافهای آینده با بعضی از نمونههای این دستورات آشنا خواهید شد.
اولین کاری که میخواهید بکنید این است که اگر ربات شما را دید خرناسه بکشد اما اگر غریبهای را مشاهده کرد با صدای بلند پارس کند. فعلا فرض میکنیم که ربات توانایی تولید آن صداها را دارد اما هنوز چهرهٔ شما را یاد نگرفتهاست. پس کاری که میکنید این است که جلوی چشمهایاش قرار میگیرید و به کمک کنترل از راه دورتان به او دستور میدهید که چهرهای که جلویاش میبیند را با خرناسهکشیدن مربوط کند. اینکار را برای چند زاویهٔ مختلف از صورتتان انجام میدهید تا مطمئن باشید که ربات در صورتی که شما را از مثلاً نیمرخ ببیند بهتان پارس نکند. همچنین شما چند چهرهٔ غریبه نیز به او نشان میدهید و چهرهٔ غریبه را با دستور پارسکردن مشخص میکنید. در این حالت شما به کامپیوتر ربات گفتهاید که چه ورودیای را به چه خروجیای مربوط کند. دقت کنید که هم ورودی و هم خروجی مشخص است و در اصطلاح خروجی برچسبدار [۱] است. به این شیوهٔ یادگیری، یادگیری باسرپرست [۲] میگویند.
اینک حالت دیگری را فرض کنید. برخلاف دفعهٔ پیشین که به رباتتان میگفتید چه محرکای را به چه خروجیای ربط دهد، اینبار میخواهید ربات خودش چنین چیزی را یاد بگیرد. به این صورت که اگر شما را دید و خرناسه کشید به نحوی به او پاداش دهید (مثلاً به کمک همان کنترل از راه دورتان) و اگر به اشتباه به شما پارس کرد، او را تنبیه کنید (باز هم با همان کنترل از راه دورتان). در این حالت به ربات نمیگویید به ازای هر شرایطی چه کاری مناسب است، بلکه اجازه میدهید ربات خود کاوش کند و تنها شما نتیجهٔ نهایی را تشویق یا تنبیه میکنید. به این شیوهٔ یادگیری، یادگیری تقویتی [۳] میگویند.
در دو حالت پیش قرار بود ربات ورودیای را به خروجیای مرتبط کند. اما گاهی وقتها تنها میخواهیم ربات بتواند تشخیص دهد که آنچه میبیند (یا میشنود و...) را به نوعی به آنچه پیشتر دیدهاست ربط دهد بدون اینکه به طور مشخص بداند آنچیزی که دیده شدهاست چه چیزی است یا اینکه چه کاری در موقع دیدناش باید انجام دهد. ربات هوشمند شما باید بتواند بین صندلی و انسان تفاوت قایل شود بیآنکه به او بگوییم این نمونهها صندلیاند و آن نمونههای دیگر انسان. در اینجا برخلاف یادگیری با سرپرست هدف ارتباط ورودی و خروجی نیست، بلکه تنها دستهبندیی آنها است. این نوع یادگیری که به آن یادگیری بیسرپرست [۴] مهم است چون دنیای ربات پر از ورودیهایی است که کسای برچسبای به آنها اختصاص نداده اما به وضوح جزیی از یک دسته هستند.
یادگیری بیسرپرست را میتوان به صورت عمل کاهش بعد [۵] در نظر گرفت.
از آنجا که شما سرتان شلوغ است، در نتیجه در روز فقط میتوانید مدت محدودی با رباتتان بازی کنید و به او چیزها را نشان دهید و نامشان را بگویید (برچسبگذاری کنید). اما ربات در طول روز روشن است و دادههای بسیاری را دریافت میکند. در اینجا ربات میتواند هم به خودیی خود و بدون سرپرست یاد بگیرد و هم اینکه هنگامی که شما او را راهنمایی میکنید، سعی کند از آن تجارب شخصیاش استفاده کند و از آموزش شما بهرهٔ بیشتری ببرد. ترکیبای که عامل هوشمند هم از دادههای بدون برچسب و هم از دادههای با برچسب استفاده میکند به یادگیری نیم سرپرست [۶] میگویند.
يادگيری تحت سرپرستی، يک روش عمومی در يادگيری ماشين است که در آن به يک سيستم، مجموعه جفتهای ورودی – خروجی ارائه شده و سيستم تلاش میکند تا تابعی از ورودی به خروجی را فرا گيرد. يادگيری تحت سرپرستی نيازمند تعدادی داده ورودی به منظور آموزش سيستم است. با اين حال ردهای از مسائل وجود دارند که خروجی مناسب که يک سيستم يادگيری تحت سرپرستی نيازمند آن است، برای آنها موجود نيست. اين نوع از مسائل چندان قابل جوابگويی با استفاده از يادگيری تحت سرپرستی نيستند. يادگيری تقويتی مدلی برای مسائلی از اين قبيل فراهم میآورد. در يادگيری تقويتی[۷]، سيستم تلاش میکند تا تقابلات خود با يک محيط پويا را از طريق خطا و آزمايش بهينه نمايد. يادگيری تقويتی مسئلهای است که يک عامل که میبايست رفتار خود را از طريق تعاملات آزمايش و خطا با يک محيط پويا فرا گيرد، با آن مواجه است. در يادگيری تقويتی هيچ نوع زوج ورودی- خروجی ارائه نمیشود. به جای آن، پس از اتخاذ يك عمل، حالت بعدی و پاداش بلافصل به عامل ارائه میشود. هدف اوليه برنامهريزی عاملها با استفاده از تنبيه و تشويق است بدون آنکه ذکری از چگونگی انجام وظيفه آنها شود. در اين سمينار ابتدا مسئله يادگيری تقويتی معرفی شده و سپس الگوريتمهای مختلف مطرح در آن بيان میشوند.