«فرصت یادگیری» محلی است برای کسب آموزشهای عمومی و تخصصی در حوزه هوشمصنوعی و رباتیک. دورههای مورد نظرتان را با ما در میان بگذارید: ForsatAcademy@gmail.com https://t.me/ForsatAcademy
یادگیری در هوش مصنوعی
سطح: عمومی
واقعیت آن است که هوش مصنوعی یک چوب جادویی نیست که به هر مساله ای بزنند، آن مساله حل بشود بلکه هوش مصنوعی ترکیب زیبایی از ریاضیات، علوم کامپیوتر، علوم زیستی و... است که باید ابتدا روش حل مساله را «یاد بگیرد» تا بتواند مساله را حل کند.
یادگیری ماشین (Machine Learning) یکی از شاخه های هوش مصنوعی است. یادگیری را می توان به چهار نوع تقسیم نمود:
1- یادگیری نظارت شده (Supervised Learning)
2- یادگیری بدون ناظر (Unsupervised Learning)
3- یادگیری تقویتی (Reinforcement Learning)
بیایید یک مساله مطرح کنیم: میخواهیم عامل هوشمندی بسازیم (به بیان ساده یک برنامه کامپیوتری بنویسیم) که بتواند مفهوم درون یک تصویر را تشخیص دهد. (در اصطلاح رسمی به این حوزه می گویند: بازیابی تصویر مبتنی بر محتوا Content Based Image Retrieval). پس می خواهیم قابلیتی برای کامپیوتر ایجاد کنیم تا بتواند یک تصویر را دریافت کند و بگوید در این تصویر کدامیک از مفاهیم آبشار یا رودخانه (به عنوان مثال) وجود دارند.
* یادگیری باناظر supervised learning
از نام این رویکرد پیداست که یک «ناظر» یا معلم وجود دارد. ناظری که به عامل هوشمند ما آموزش های لازم را می دهد تا این عامل هوشمند بتواند به هدفش که درک مفاهیم تصویری است برسد. در این روش ابتدا یک تصویر به عامل هوشمند ارائه می شود و آقای ناظر، خودش، مشخص می کند که در این تصویر چه مفهومی (آبشار یا رودخانه) وجود دارد. اینکار به دفعات زیاد انجام می شود. تا جاییکه بالاخره برنامه هوشمند ما خودش بتواند مفهوم درون تصویر را استخراج کند. به این روش می گویند روش یادگیری باناظر یا یادگیری نظارت شده. علتش هم مشخص است: یک ناظری وجود دارد که روش حل مساله (استخراج مفاهیم تصویری) را به برنامه ما (عامل هوشمند) یاد می دهد یا آموزش می دهد. این روش خیلی شبیه به یادگیری ما انسان هاست. اگر به یک کودک چندین نمونه از عکس آبشار و سپس چندین نمونه از تصاویر رودخانه را نشان دهیم و به او یاد بدهیم که کدامیک آبشار است و کدامیک رودخانه است، آنگاه انتظار داریم در تصاویری که کودک هیچگاه ندیده است، بتواند آبشار و رودخانه را از یکدیگر تشخیص دهد.
شاید متوجه شده باشید این فرآیند در دو قسمت انجام می شود: فاز آموزش (Train) و فاز تست. در فاز آموزش، عامل هوشمند به کمک یک ناظر سعی در یادگیری دارد و در فاز تست نیز مشخص می شود که عامل هوشمند تا چه اندازه موفق شده است فرآیند یادگیری را انجام دهد. خیلی بعید است که عامل هوشمند ما بطور صد در صد بتواند فرآیند یادگیری را انجام دهد. در برخی مسائل 60 درصد دقت یادگیری خیلی خوب تلقی می شود و در برخی مسائل دقت کمتر از 98 درصد اصلا قابل قبول نخواهد بود! اجازه بدهید در پستهای آینده معیارهای سنجش کیفیت یادگیری عاملهای هوشمند را بررسی کنیم.
*یادگیری بدون ناظر unsupervised learning
گاهی اوقات اساسا ناظری وجود ندارد تا بتواند به عامل هوشمند (برنامه کامپیوتری ما) یاد بدهد که در هر تصویر چه مفهومی وجود دارد. در این شرایط عامل هوشمند باید خودش آستینش را بالا بزند و تا جاییکه می تواند پیش برود. ما اگر مجموعه تصاویری از آبشار و رودخانه را در اختیار یک کودک بگذاریم و بگوییم آنهایی که شبیه به هم هستند را در یک گروه قرار بده آنگاه احتمالا کودک باهوش ما تصاویری را که در آن عکس آبشار وجود دارد را در کنار یکدیگر می گذارد و تصاویری که عکس رودخانه دارند را نیز در کنار یکدیگر قرار خواهد داد. کودک ما حتی اگر آبشار را نشناسد اما تا این حد تشخیص می دهد که این مجموعه تصاویر شبیه به یکدیگر هستند (مجموعه تصاویر آبشار) و مجموعه دیگر (رودخانه) از مجموعه تصاویر آبشار، تفاوت ظاهری بارزی دارند. بنابراین در روش بدون ناظر، عامل هوشمند سعی می کند میزان شباهت تصاویر با یکدیگر را بسنجد. تصاویری که به یکدیگر شبیه تر هستند را در یک دسته قرار دهد. حتی اگر عامل هوشمند نداند نام این مجموعه آبشار است یا رودخانه! اما به هر حال در راستای یادگیری قدمی برداشته است و قابلیت گروه بندی تصاویر را در خودش بوجود آورد. در ادامه اگر یک تصویر جدید به این عامل هوشمند (که میتواند یک برنامه کامپیوتری باشد و یا یک کودک یکی-دوساله) بدهیم و بگوییم این تصویر شبیه به کدام مجموعه از تصاویر اولیه است؟ به سادگی دسته مربوط به تصویر ورودی را تعیین میکند یعنی اگر تصویر شامل مفهوم آبشار باشد، آن را در گروه تصاویر آبشار و اگر شامل مفهوم رودخانه باشد، تصویر را در گروه تصاویر روخانه قرار خواهد داد.
* یادگیری تقویتی Reinforcement Learning
بعضی از عزیزانی که به هوش مصنوعی علاقه مند هستند، وقتی با یادگیری نظارت شده و بخصوص یادگیری بدون نظارت آشنا می شوند، دادشان به هوا می رود! که «این که یادگیری نیست»، «این که هوش مصنوعی نیست» هوش مصنوعی باید خودش یادبگیرد نه آنکه ما به آن یاد بدهیم! من مجددا به این دسته از دوستان عزیز یادآوری می کنم که هوش مصنوعی یک چوب جادویی نیست. هوش مصنوعی هنری است که ریاضیات را با علوم کامپیوتر ترکیب می کند و نرم افزارهایی می سازد که می تواند مساله ای را حل کند. حتی کودکان باهوش ما، که بعدها از نوابغ عالم می شوند، سالهایی را صرف یادگیری می کنند و بعد خودشان می توانند به حل مسائل یا ارائه راه حل بپردازند. علی ای حال، یادگیری تقویتی برای این دسته از عزیزان خیلی جالب خواهد بود چرا که، در ظاهر، بدون آنکه کسی به عامل هوشمند چیزی یاد بدهد، خودش در تعامل با محیط می تواند آرام آرام روش حل مساله را یاد بگیرد.
فرض کنید مجموعه تصاویری از آبشار و رودخانه را در اختیار کودکی می گذاریم و به او می گوییم به ازای هر عکس آبشاری که پیدا کنی یک شکلات به تو می دهیم! خب در ابتدای کار که این بنده خدا فرق بین آبشار و رودخانه را اصلا نمی داند. پس ناچارا بطور تصادفی عکسی انتخاب کرده و به ما دهد. اگر عکس آبشار باشد به او یک شکلات می دهیم وگرنه چیزی به او نمی دهیم. حالا این عامل هوشمند ما یک تجربه خیلی کمی دارد. در ادامه می گوییم یک عکس دیگر بده. باز هم با فرآیندی شبه تصادفی (فقط با یک نمونه تجربه قبلی) عکسی انتخاب می کند و به ما می دهد. و باز هم طبق قرار اولیه اگر عکس مزبور، تصویری از یک آبشار بود به او یک شکلات می دهیم وگرنه هیچ. خب اگر این فرآیند را به دفعات زیاد تکرار کنیم، در نهایت این کودک یاد خواهد گرفت که بابت کدام تصاویر شکلاتی دریافت می کند و بابت کدام تصاویر چیزی دریافت نمی کند! یعنی عامل هوشمند در تعامل با محیط و با دریافت پاداش ( و احیانا جریمه) به این تجربه می رسد که کدام تصویر شامل مفهوم آبشار و کدام تصویر شامل مفهوم رودخانه است. توجه داشتید که هیچگاه بطور مستقیم به عامل هوشمند گفته نشد که مفهوم یک تصویر چیست؟ بلکه خودش آرام آرام به دانش استخراج مفاهیم از تصویر دست یافت.
واقعیت آن است که یادگیری تقویتی نیز دارای مرحله آموزش یا Train است. در زمانی که بابت تشخیص مفهوم درست، پاداشی دریافت می کند، در واقع در حال آموزش دیدن است و با تکرار زیاد این فرآیند، عامل هوشمند به جایی می رسد که به سرعت می تواند تصاویر آبشار را از رودخانه تفکیک کند. این مثالی از یادگیری تقویتی بود. هدیه به کسانی که یادگیری باناظر و بدون ناظر را اساسا یادگیری نمی دانند!
به کانال تلگرامی آکادمی هوش مصنوعی «فرصت یادگیری» بپیوندید:
https://web.telegram.org/#/im?p=@ForsatAcademy
مطلبی دیگر از این انتشارات
ماجرای اخیر درز اطلاعات فیسبوک چیست؟
مطلبی دیگر از این انتشارات
کگل(Kaggle) چیست(قسمت دوم )
مطلبی دیگر از این انتشارات
آپاچی ماهوت (Apache Mahout)