یادگیری ماشین
به عنوان یکی از شاخههای وسیع و پرکاربرد هوش مصنوعی، یادگیری ماشین (Machine learning) به تنظیم و اکتشاف شیوهها و الگوریتمهایی میپردازد که بر اساس آنها رایانهها و سامانهها توانایی تعلٌم و یادگیری پیدا میکنند.
شما احتمالاً چندین بار در روز از یادگیری ماشین استفاده میکنید، حتی بدون آنکه بدانید. هر بار که شما یک جستجوی اینترنتی در گوگل یا بینگ انجام میدهید، یادگیری ماشینی انجام میشود چراکه نرمافزار یادگیری ماشینی آنها چگونگی رتبهبندی صفحات وب را درک کرده است.
شما را میشناسد، این نیز یادگیری ماشین است. هر بار که ایمیل خود را چک میکنید و فیلتر هرزنامه شما را از داشتن مجدد هزاران هرزنامه خلاص میکند نیز به همین دلیل است که کامپیوتر شما آموختهاست که هرزنامهها را از ایمیل غیراِسپم تشخیص دهد.
این همان یادگیری ماشین است. این علمی است که باعث میشود کامپیوترها بدون نیاز به یک برنامه صریح در مورد یک موضوع خاص یاد بگیرند.
اهداف و انگیزه ها
هدف یادگیری ماشین این است که کامپیوتر (در کلیترین مفهوم آن) بتواند به تدریج و با افزایش دادهها کارایی بهتری در انجام وظیفهٔ مورد نظر پیدا کند. گسترهٔ این وظیفه میتواند از تشخیص خودکار چهره با دیدن چند نمونه از چهرهٔ مورد نظر تا فراگیری شیوهٔ گامبرداری روباتهای دوپا با دریافت سیگنال پاداش و تنبیه باشد.
طیف پژوهشهایی که در یادگیری ماشینی میشود گستردهاست. در سوی نظری آن پژوهشگران بر آناند که روشهای یادگیری تازهای به وجود بیاورند و امکانپذیری و کیفیت یادگیری را برای روش هایشان مطالعه کنند و در سوی دیگر عدهای از پژوهشگران سعی میکنند روشهای یادگیری ماشینی را بر مسایل تازهای اعمال کنند.
البته این طیف گسسته نیست و پژوهشهای انجامشده دارای مولفههایی از هر دو رویکرد هستند.
یادگیری ماشین کمک فراوانی به صرفه جویی در هزینههای عملیاتی و بهبود سرعت عمل تجزیه و تحلیل دادهها میکند.
به عنوان مثال در صنعت نفت و پتروشیمی با استفاده از یادگیری ماشین، دادههای عملیاتی تمام حفاریها اندازهگیری شده و با تجزیه و تحلیل دادهها، الگوریتمهایی تنظیم میشود که در حفاریهای بعدی بیشترین نتیجه و استخراج بهینهای را داشته باشیم.
تقسیمبندی مسایل
یکی از تقسیمبندیهای متداول در یادگیری ماشینی، تقسیمبندی بر اساس نوع دادههای در اختیار عامل هوشمند است. به سناریوی زیر توجه کنید:
فرض کنید به تازگی رباتی سگنما خریدهاید که میتواند توسط دوربینی دنیای خارج را مشاهده کند، به کمک میکروفنهایش صداها را بشنود، با بلندگوهایی با شما سخن بگوید (گیریم محدود) و چهارپایش را حرکت دهد.
همچنین در جعبهٔ این ربات دستگاه کنترل از راه دوری وجود دارد که میتوانید انواع مختلف دستورها را به ربات بدهید. در پاراگرافهای آینده با بعضی از نمونههای این دستورها آشنا خواهید شد.
اولین کاری که میخواهید بکنید این است که اگر ربات شما را دید خرناسه بکشد اما اگر غریبهای را مشاهده کرد با صدای بلند عوعو کند. فعلاً فرض میکنیم که ربات توانایی تولید آن صداها را دارد اما هنوز چهرهٔ شما را یادنگرفتهاست. پس کاری که میکنید این است که جلوی چشمهایاش قرار میگیرید و به کمک کنترل از راه دورتان به او دستور میدهید که چهرهای که جلویاش میبیند را با خرناسهکشیدن مربوط کند.
اینکار را برای چند زاویهٔ مختلف از صورتتان انجام میدهید تا مطمئن باشید که ربات در صورتی که شما را از مثلاً نیمرخ ببیند بهتان عوعو نکند.
همچنین شما چند چهرهٔ غریبه نیز به او نشان میدهید و چهرهٔ غریبه را با دستور عوعوکردن مشخص میکنید. در این حالت شما به کامپیوتر ربات گفتهاید که چه ورودی را به چه خروجی مربوط کند. دقت کنید که هم ورودی و هم خروجی مشخص است و در اصطلاح خروجی برچسبدار است. به این شیوهٔ یادگیری، یادگیری با نظارت میگویند.
بیشتر بخوانید »»» الگوریتم Rank Brain
اینک حالت دیگری را فرض کنید. برخلاف دفعهٔ پیشین که به رباتتان میگفتید چه محرکهای را به چه خروجی ربط دهد، اینبار میخواهید ربات خودش چنین چیزی را یاد بگیرد.
به این صورت که اگر شما را دید و خرناسه کشید به نحوی به او پاداش دهید (مثلاً به کمک همان کنترل از راه دورتان) و اگر به اشتباه به شما عوعو کرد، او را تنبیه کنید (باز هم با همان کنترل از راه دورتان).
در این حالت به ربات نمیگویید به ازای هر شرایطی چه کاری مناسب است، بلکه اجازه میدهید ربات خود کاوش کند و تنها شما نتیجهٔ نهایی را تشویق یا تنبیه میکنید. به این شیوهٔ یادگیری، یادگیری تقویتی میگویند.
در دو حالت پیش قرار بود ربات ورودی را به خروجی مرتبط کند. اما گاهی وقتها تنها میخواهیم ربات بتواند تشخیص دهد که آنچه میبیند (یا میشنود و…) را به نوعی به آنچه پیشتر دیده است ربط دهد بدون اینکه به طور مشخص بداند آنچیزی که دیده شده است چه چیزی است یا این که چه کاری در موقع دیدنش باید انجام دهد.
ربات هوشمند شما باید بتواند بین صندلی و انسان تفاوت قایل شود بیآنکه به او بگوییم این نمونهها صندلیاند و آن نمونههای دیگر انسان. در اینجا برخلاف یادگیری با نظارت هدف ارتباط ورودی و خروجی نیست، بلکه تنها دستهبندی آنها است.
این نوع یادگیری که به آن یادگیری بی نظارت میگویند بسیار مهم است چون دنیای ربات پر از ورودیهایی است که کسی برچسبی به آنها اختصاص نداده اما به وضوح جزئی از یک دسته هستند. یادگیری بینظارت را میتوان به صورت عمل کاهش بعد در نظر گرفت.
از آنجا که شما سرتان شلوغ است، در نتیجه در روز فقط میتوانید مدت محدودی با رباتتان بازی کنید و به او چیزها را نشان دهید و نامشان را بگویید (برچسبگذاری کنید).
اما ربات در طول روز روشن است و دادههای بسیاری را دریافت میکند. در اینجا ربات میتواند هم به خودی خود و بدون نظارت یاد بگیرد و هم اینکه هنگامی که شما او را راهنمایی میکنید، سعی کند از آن تجارب شخصیاش استفاده کند و از آموزش شما بهرهٔ بیشتری ببرد.
ترکیبی که عامل هوشمند هم از دادههای بدون برچسب و هم از دادههای با برچسب استفاده میکند به یادگیری نیمه نظارتی میگویند.
یادگیری با نظارت
یادگیری تحت نظارت، یک روش عمومی در یادگیری ماشین است که در آن به یک سیستم، مجموعهای از جفتهای ورودی – خروجی ارائه شده و سیستم تلاش میکند تا تابعی از ورودی به خروجی را فرا گیرد. یادگیری تحت نظارت نیازمند تعدادی داده ورودی به منظور آموزش سیستم است.
یادگیری تحت نظارت خود به دو دسته تقسیم میشود: رگرسیون و طبقهبندی. رگرسیون آن دسته از مسائل هستند که خروجی یک عدد پیوسته یا یک سری اعدا پیوسته هستند مانند پیشبینی قیمت خانه بر اساس اطلاعاتی مانند مساحت، تعداد اتاق خوابها، و غیره و دسته طبقهبندی به آن دسته از مسائل گفته میشود که خروجی یک عضو از یک مجموعه باشد مانند پیشبینی اینکه یک ایمیل هرزنامه هست یا خیر یا پیشبینی نوع بیماری یک فرد از میان ۱۰ بیماری.
با این حال ردهای از مسائل وجود دارند که خروجی مناسب که یک سیستم یادگیری تحت نظارت نیازمند آن است، برای آنها موجود نیست. این نوع از مسائل چندان قابل جوابگویی با استفاده از یادگیری تحت نظارت نیستند. یادگیری تقویتی مدلی برای مسائلی از این قبیل فراهم میآورد.
در یادگیری تقویتی، سیستم تلاش میکند تا تقابلات خود با یک محیط پویا را از طریق آزمون و خطا بهینه نماید. یادگیری تقویتی مسئلهای است که یک عامل که میبایست رفتار خود را از طریق تعاملات آزمون و خطا با یک محیط پویا فرا گیرد، با آن مواجه است.
در یادگیری تقویتی هیچ نوع زوج ورودی- خروجی ارائه نمیشود. به جای آن، پس از اتخاذ یک عمل، حالت بعدی و پاداش بلافصل به عامل ارائه میشود. هدف اولیه برنامهریزی عاملها با استفاده از تنبیه و تشویق است بدون آنکه ذکری از چگونگی انجام وظیفه آنها شود.
یادگیری بی نظارت
بیشتر بخوانید »»» 7 زبان برنامه نویسی فراگیر در سال 2018
سایر مقالات مفید این سایت: