هوش مصنوعی با پایتون، بخش سوم – یادگیری ماشین (قسمت اول)

یادگیری به معنی دست یافتن به دانش یا مهارت از طریق مطالعه یا تجربه است. بر این اساس ما میتوانیم یادگیری ماشین را بهصورت زیر تعریف کنیم:
ممکن است بهعنوان حوزه علوم رایانه تعریف شود، به شکل ویژهتر یک برنامه کاربردی از هوش مصنوعی، که سیستمهای کامپیوتری را قادر میسازد با دادهها یاد بگیرند و از تجربه بدون برنامهنویسی صریح اصلاح شوند و بهبود پیدا کنند.
اساساً تمرکز اصلی در یادگیری ماشین اجازه به کامپیوترها برای یادگیری خودکار بدون مداخله انسان است. حالا سؤالی که پیش میآید این است که یادگیری به این روش چگونه آغازشده و به انجام میرسد؟ میتواند با مشاهدات دادهها آغاز شود. دادهها میتوانند بعضی از نمونهها، دستورالعمل یا برخی از تجربههای مستقیم نیز باشند. سپس بر اساس این ورودی دستگاه با تصمیمگیری در مورد برخی از الگوهای دادهها، تصمیم بهتری میگیرد.
انواع یادگیری ماشین (Machine Learning یا ML)
الگوریتمهای یادگیری ماشین کمک میکنند تا سیستم کامپیوتری بدون برنامهنویسی صریح یاد بگیرد. این الگوریتمها به دودسته با نظارت[1] و بدون نظارت[2] تقسیمبندی میشوند. حال به بررسی چند الگوریتم میپردازیم:
الگوریتمهای نظارتشده یادگیری ماشین
این الگوریتم رایجترین الگوریتم یادگیری ماشین است. نظارتشده نامگذاری شده است چراکه فرآیند یادگیری الگوریتم از دیتاست آموزشدهنده[3] (Training Dataset) میتواند بهعنوان یک معلم نظارت بر فرآیند یادگیری در نظر گرفته شود. در این نوع الگوریتم یادگیری ماشین، نتایج احتمالی از قبل شناختهشدهاند و دادههای آموزشی[4] هم با پاسخهای صحیح برچسبگذاری[5] شدهاند. این مفهوم را میتوان به شرح زیر درک کرد:
فرض کنیم ما متغیر ورودی به نام X و متغیر خروجی به نام Y داریم و ما الگوریتمی به کار میبریم تا تابع نگاشت را از ورودی به خروجی مثل زیر یاد بگیرد:
Y = f (x)
حالا هدف اصلی این است که تابع نگاشت را آنقدر خوب تقریب بزنیم تا هنگامیکه داده ورودیِ جدیدِ (X) داشتیم بتوانیم متغیر خروجی (Y) را برای آن داده پیشبینی کنیم.
مسائل اصلی یادگیری نظارتشده را میتوان به دو نوع مسئله که در زیر آمده تقسیم نمود:
- طبقهبندی: (Classification) یک مسئله بهعنوان مسئله طبقهبندی در نظر گرفته میشود زمانی که ما خروجیهای دستهبندیشده داشته باشیم، مانند: “black”، “teaching”، “non-teaching” و غیره.
- رگرسیون: یک مسئله بهعنوان مسئله رگرسیون در نظر گرفته میشود زمانی که ما خروجی با مقدار واقعی داشته باشیم، مانند: “distance”، “kilogram” و غیره.
درخت تصمیمگیری، جنگل تصادفی، KNN (K Nearest Neighbors) و رگرسیون منطقی مثالهای از الگوریتمهای یادگیری ماشینِ نظارتشده هستند.
الگوریتمهای بدون نظارت یادگیری ماشین
همانطور که از نام آن پیداست این نوع از الگوریتمهای یادگیری ماشین هیچ ناظری برای ارائه راهنمایی ندارند. به همین دلیل است که الگوریتمهای یادگیری ماشینِ بدون نظارت تقریباً همتراز با چیزی هستند که برخی هوش مصنوعیِ واقعی مینامند. این مفهوم را میتوان به شرح زیر درک کرد:
فرض کنید ما متغیر ورودی X راداریم، لذا هیچ متغیر خروجیِ متناظری مانند آنچه در الگوریتمهای یادگیریِ نظارتشده داشتیم، وجود نخواهد داشت.
به بیان ساده میتوانیم بگوییم که در یادگیری نظارتنشده هیچ پاسخ صحیحی وجود نخواهد داشت و هیچ آموزگاری هم برای راهنمایی نداریم. الگوریتمها به کشف الگوهای جالب در دادهها کمک میکنند.
مسائل یادگیری ماشینِ نظارتنشده را میتوان به دو نوع زیر تقسیم نمود:
- خوشهبندی: در مسائل خوشهبندی ما نیاز به کشف گروهبندیهای ذاتی در دادهها داریم. برای مثال گروهبندی مشتریان بر اساس رفتار خریدِ آنها
- وابستگی: یک مسئله وابستگی نامگذاری میشود چراکه این نوع مسائل نیاز به کشف قواعدی دارد که بخشهای بزرگی از اطلاعات ما را توصیف میکند. برای مثال پیدا کردن مشتریانی که هر دو X و Y را خریداری کردهاند.
K-Means برای خوشهبندی و الگوریتم Apriori برای وابستگی، مثالهایی الگوریتمهای یادگیری ماشین نظارتنشده هستند.
قسمتهای دیگر این مقاله آموزشی را از لینکهای زیر بخوانید:
هوش مصنوعی با پایتون، بخش سوم – یادگیری ماشین (قسمت دوم)
هوش مصنوعی با پایتون، بخش سوم – یادگیری ماشین (قسمت آخر)
[1] Supervised
[2] Unsupervised
[3] Training Dataset
[4] Training Data
[5] Labeled