وبلاگ چت روم کامپیوتر و شبکه در سایت الفور
به عنوان یکی از شاخههای وسیع و پرکاربرد هوش مصنوعی، یادگیری ماشینی (Machine learning) به تنظیم و اکتشاف شیوهها و الگوریتمهایی میپردازد که بر اساس آنها رایانهها و سامانهها توانایی تعلٌم و یادگیری پیدا میکنند.
هدف یادگیری ماشینی این است که کامپیوتر (در کلیترین مفهوم آن) بتواند به تدریج و با افزایش دادهها بازدهیی بالاتری در وظیفه مورد نظر پیدا کند. گسترده این وظیفه میتواند از تشخیص خودکار چهره با دیدن چند نمونه از چهره مورد نظر تا فراگیری شیوه گامبرداری برای روباتای دوپا با دریافت سیگنال پاداش و تنبیه باشد.
طیف پژوهشهایی که در یادگیری ماشینی میشود گستردهاست. در سوی نظریی آن پژوهشگران بر آناند که روشهای یادگیری تازهای به وجود بیاورند و امکانپذیری و کیفیت یادگیری را برای روشهایشان مطالعه کنند و در سوی دیگر عدهای از پژوهشگران سعی میکنند روشهای یادگیری ماشینی را بر مسایل تازهای اعمال کنند. البته این طیف گسسته نیست و پژوهشهای انجامشده دارای مولفههایی از هر دو رویکرد هستند.
یکی از تقسیمبندیهای متداول در یادگیری ماشینی، تقسیمبندی بر اساس نوع دادههای در اختیار عامل هوشمند است. به سناریوی زیر توجه کنید:
فرض کنید به تازگی رباتای سگنما خریدهاید که میتواند توسط دوربینای دنیای خارج را مشاهده کند، به کمک میکروفنهایاش صداها را بشنود، با بلندگوهایی با شما سخن بگوید (گیریم محدود) و چهارپایاش را حرکت دهد. همچنین در جعبه این ربات دستگاه کنترل از راه دوری وجود دارد که میتوانید انواع مختلف دستورها را به ربات بدهید. در پاراگرافهای آینده با بعضی از نمونههای این دستورات آشنا خواهید شد.
اولین کاری که میخواهید بکنید این است که اگر ربات شما را دید خرناسه بکشد اما اگر غریبهای را مشاهده کرد با صدای بلند عوعو کند. فعلاً فرض میکنیم که ربات توانایی تولید آن صداها را دارد اما هنوز چهره شما را یاد نگرفتهاست. پس کاری که میکنید این است که جلوی چشمهایاش قرار میگیرید و به کمک کنترل از راه دورتان به او دستور میدهید که چهرهای که جلویاش میبیند را با خرناسهکشیدن مربوط کند. اینکار را برای چند زاویه مختلف از صورتتان انجام میدهید تا مطمئن باشید که ربات در صورتی که شما را از مثلاً نیمرخ ببیند بهتان عوعو نکند. همچنین شما چند چهره غریبه نیز به او نشان میدهید و چهره غریبه را با دستور عوعوکردن مشخص میکنید. در این حالت شما به کامپیوتر ربات گفتهاید که چه ورودیای را به چه خروجیای مربوط کند. دقت کنید که هم ورودی و هم خروجی مشخص است و در اصطلاح خروجی برچسبدار [1] است. به این شیوه یادگیری، یادگیری بانظارت [2] میگویند.
اینک حالت دیگری را فرض کنید. برخلاف دفعه پیشین که به رباتتان میگفتید چه محرکای را به چه خروجیای ربط دهد، اینبار میخواهید ربات خودش چنین چیزی را یاد بگیرد. به این صورت که اگر شما را دید و خرناسه کشید به نحوی به او پاداش دهید (مثلاً به کمک همان کنترل از راه دورتان) و اگر به اشتباه به شما عوعو کرد، او را تنبیه کنید (باز هم با همان کنترل از راه دورتان). در این حالت به ربات نمیگویید به ازای هر شرایطی چه کاری مناسب است، بلکه اجازه میدهید ربات خود کاوش کند و تنها شما نتیجه نهایی را تشویق یا تنبیه میکنید. به این شیوه یادگیری، یادگیری تقویتی [3] میگویند.
در دو حالت پیش قرار بود ربات ورودیای را به خروجیای مرتبط کند. اما گاهی وقتها تنها میخواهیم ربات بتواند تشخیص دهد که آنچه میبیند (یا میشنود و...) را به نوعی به آنچه پیشتر دیدهاست ربط دهد بدون اینکه به طور مشخص بداند آنچیزی که دیده شدهاست چه چیزی است یا اینکه چه کاری در موقع دیدناش باید انجام دهد. ربات هوشمند شما باید بتواند بین صندلی و انسان تفاوت قایل شود بیآنکه به او بگوییم این نمونهها صندلیاند و آن نمونههای دیگر انسان. در اینجا برخلاف یادگیری بانظارت هدف ارتباط ورودی و خروجی نیست، بلکه تنها دستهبندیی آنها است. این نوع یادگیری که به آن یادگیری بی نظارت [4] مهم است چون دنیای ربات پر از ورودیهایی است که کسای برچسبای به آنها اختصاص نداده اما به وضوح جزیی از یک دسته هستند.
یادگیری بینظارت را میتوان به صورت عمل کاهش بعد [5] در نظر گرفت.
از آنجا که شما سرتان شلوغ است، در نتیجه در روز فقط میتوانید مدت محدودی با رباتتان بازی کنید و به او چیزها را نشان دهید و نامشان را بگویید (برچسبگذاری کنید). اما ربات در طول روز روشن است و دادههای بسیاری را دریافت میکند. در اینجا ربات میتواند هم به خودیی خود و بدون نظارت یاد بگیرد و هم اینکه هنگامی که شما او را راهنمایی میکنید، سعی کند از آن تجارب شخصیاش استفاده کند و از آموزش شما بهره بیشتری ببرد. ترکیبای که عامل هوشمند هم از دادههای بدون برچسب و هم از دادههای با برچسب استفاده میکند به یادگیری نیمه نظارتی [6] میگویند.
یادگیری تحت نظارت، یک روش عمومی در یادگیری ماشین است که در آن به یک سیستم، مجموعه جفتهای ورودی – خروجی ارائه شده و سیستم تلاش میکند تا تابعی از ورودی به خروجی را فرا گیرد. یادگیری تحت نظارت نیازمند تعدادی داده ورودی به منظور آموزش سیستم است. با این حال ردهای از مسائل وجود دارند که خروجی مناسب که یک سیستم یادگیری تحت نظارت نیازمند آن است، برای آنها موجود نیست. این نوع از مسائل چندان قابل جوابگویی با استفاده از یادگیری تحت نظارت نیستند. یادگیری تقویتی مدلی برای مسائلی از این قبیل فراهم میآورد. در یادگیری تقویتی[7]، سیستم تلاش میکند تا تقابلات خود با یک محیط پویا را از طریق آزمایش و خطا بهینه نماید. یادگیری تقویتی مسئلهای است که یک عامل که میبایست رفتار خود را از طریق تعاملات آزمایش و خطا با یک محیط پویا فرا گیرد، با آن مواجه است. در یادگیری تقویتی هیچ نوع زوج ورودی- خروجی ارائه نمیشود. به جای آن، پس از اتخاذ یک عمل، حالت بعدی و پاداش بلافصل به عامل ارائه میشود. هدف اولیه برنامهریزی عاملها با استفاده از تنبیه و تشویق است بدون آنکه ذکری از چگونگی انجام وظیفه آنها شود.
Richard S. Sutton and Andrew G. Barto, Reinforcement Learning: An Introduction, MIT Press, 1998 (online version).
Tom M. Mitchell, Machine Learning, McGraw-Hill Companies, Inc., 1997. ISBN 0-07-042807-7