همانطور که در مطلب قبلی به هوش مصنوعی پرداخته شد و یادگیری ماشین به عنوان یکی از مهم ترین زیرمجموعه های آن معرفی گردید. یادگیری ماشین مربوط به مدل ماشینی است که طراحی شده تا با بهرهگیری از الگوریتمها و بدون آنکه صراحتا برنامهریزی و تک تک اقدامات به آن دیکته شود بتواند روی مجموعه ای از مثال ها و داده های واقعی یا شبیه سازی شده بیاموزد و عمل کند. به عنوان سادترین مثال فرض کنید می خواهیم قیمت منازل یک منطقه را با کمک مساحت و عمر بنا داشته باشیم.
کافی است یک مدل ماشینی طراحی کرده و برای منزل هایی که اخیرا به فروش رفته اند مساحت و عمر بنا را ورودی داده و قیمت آن ساختمان را به عنوان خروجی بدهیم تا مدل یاد بگیرد چگونه از ورودی به خروجی برسد. لازم به تاکید است یادگیری ماشینی حوزهای از مطالعه در علوم کامپیوتر و روشی برای طراحی الگوریتمها است. این رویکرد برای طراحی الگوریتم، ایجاد و طراحی برنامهها و ماشینهای هوشمند مصنوعی را ممکن میسازد.
آنچه خواهیم خواند:
- ابتدا یک تاریخچه از یادگیری ماشین خواهیم گفت
- یادگیری ماشین را به چهاردسته تقسیم می کنیم
- انواع روش ها و الگوریتم های مهم یادگیری ماشین را بیان خواهیم کرد
تاریخچه
امروزه یادگیری ماشینی مزایای بسیار زیادی را برای انسان فراهم کرده و استفاده از آن سریعتر از هر زمان دیگری در حال رشد است. با این وجود ، رسیدن به موقعیت فعلی یک سفر طولانی بوده است.
اصطلاح “یادگیری ماشین” اولین بار همراه با هوش مصنوعی و پیشگام با بازی های رایانه ای آرتور ساموئل در سال ۱۹۵۹ ابداع شد. با این حال ، ساموئل در واقع اولین برنامه یادگیری رایانه را هنگام حضور در IBM در سال ۱۹۵۲ نوشت. این برنامه یک بازی چاکرز(checkers) بود که در آن کامپیوتر هر بار که بازی میکرد بهبود مییافت، و تجزیه و تحلیل یک استراتژی برد را انجام میداد.
در سال ۱۹۵۷ ، فرانک روزنبلات اولین شبکه عصبی رایانه ای مصنوعی را ایجاد کرد که به آن پرسپترون(perceptron) نیز می گویند و برای شبیه سازی فرایندهای مغز انسان طراحی شده است. در سال ۱۹۶۷ ، الگوریتم “نزدیکترین همسایه” طراحی شد که آغاز شناسایی الگوی اساسی با استفاده از رایانه است. این اکتشافات اولیه قابل توجه بود ، اما فقدان برنامه های کاربردی مفید و قدرت محاسباتی محدود در آن دوران منجر به رکود طولانی مدت در یادگیری ماشین و هوش مصنوعی تا دهه ۱۹۸۰ شد.
دسته بندی های یادگیری ماشین
یادگیری با نظارت (Supervised learning)
این نوع از یادگیری روی داده های برچسب خورده قابل اجرا است و به خاطر اینکه پروسه ی یادگیری (از روی داده آموزشی) یک الگورتیم توسط یک ناظر کنترل می شود. به این ترتیب که “الگوریتم یادگیری” در تکرارهای مختلف خروجی دادههای آموزش را تخمین می زند، و سپس این خروجیها توسط یک ناظر تصحیح می شود، و زمانی که الگورتیم به عملکرد قابل قبولی می رسد، پروسه یادگیری متوقف می شود. همان مثالی که بالاتر برای پیش بینی قیمت یک منزل و ساختمان گفته شد نوعی از یادگیری با نظارت است.
یادگیری بدون نظارت
در این دسته از یادگیری تنها داده خامی داریم که هیچ برچسبی نخورده است. در واقع اینجا ناظری وجود ندارد تا به الگوریتم در یادگیری کمک کند. هدف اصلی یادگیری بدون نظارت مدل کردن توزیع داده هست تا بتواند اطلاعات بیشتری درباره داده بدست آورد. مدل این از یادگیری مجبور است خودش ساختار مخفی دادهی بدون برچسب را پیدا کند. یادگیری بدون نظارت شده به دو دسته خوشهبندی و کاهش بعد تقسیم می شود. برای خوشه بندی به شکل ۲ نگاه کنید. در این شکل شده داده های خام به نوعی از هم جدا شده و در چهار خوشه مجزا قرار می گیرند.
اینکه آیا خود ماشین می تواند مفهوم رنگ را فهمیده و این اجزا را از هم تفکیک کند وابسته به الگوریتم و متد یادگیری دارد که ما به آن می دهیم. بنظر می رسد اگر ما می-خواستیم اجزای داده خام در شکل ۲ در سه دسته تقسیم بندی شوند، پیش بینی می شود به نتیجه مطلوب نرسیم. این نشان دهنده چالش های بسیار زیاد این نوع از یادگیری مخصوصا در رابطه با داده هایی است که خیلی نسبت به آن ها دید روشنی نداریم. در نهایت خروجی این دسته بندی ها توسط هوش انسانی بررسی شده تا ببیند چقدر سودمند بوده است. در شکل ۳ نیز نوع دیگر یادگیری بدون نظارت بحث شده که مربوط به کاهش بعد است. برای پیدا کردن دیدی مناسب نسبت به داده هایی با ابعاد زیاد(بیشتر از ۳) باید بعد را کاهش دهیم که با از دست رفتن اطلاعات همراه است. اینکه چگونه کاهش بعد را اجرا کنیم به یادگیری بدون نظارت مربوط بوده متدهای آن را باید دنبال کرد.
یادگیری نیمه نظارتی(Semi supervised learning)
هنگامی که بخش کمی از داده های شما برچسب خورده اند و می خواهید کل داده های خود را برچسب بزنید از این نوع یادگیری بهره بگیرید. در شکل ۴ نمونه ای از این نوع یادگیری برای دسته بندی داده های خام با تعداد محدود داده برچسب خورده انجام شده است. این نوع یادگیری حد میانی یادگیری بی نظارت و با نظارت است و در برچسب زنی داده های بزرگ کاربرد دارد.
یادگیری تقویتی(Reinforcement learning)
این نوع یادگیری از روانشناسی رفتارگرایی الهام میگیرد. این روش بر رفتارهایی تمرکز دارد که ماشین باید برای بیشینه کردن پاداشش انجام دهد و با دادن پاداش سعی می کند بهترین مسیر را با هدف کمال گرایی دنبال کند.. یادگیری تقویتی در زمینههای گوناگونی مانند نظریه بازیها، نظریه کنترل، تحقیق در عملیات، نظریه اطلاعات، سامانه چندعامله، هوش ازدحامی، آمار، الگوریتم ژنتیک، بهینهسازی بر مبنای شبیهسازی بررسی میشود. یادگیری تقویتی با یادگیری نظارت شده دو تفاوت عمده دارد، نخست اینکه در آن ورودی و خروج به صورت صریح تعربف نمی شود و دیگر آنکه تمرکز زیادی روی کارایی زنده و یادگیری برخط وجود دارد که نیازمند پیدا کردن یک تعادل مناسب بین اکتشاف چیزهای جدید و بهرهبرداری از دانش اندوخته شده دارد.
یادگیری تقویتی در تولید، ماشینهای خودران ، مدیریت کسب و کار، سیستم های کامپیوتری، بینایی ماشین، آموزش، انرژی، امور مالی، بازی ها، مراقبت های بهداشتی، پردازش زبان طبیعی (NLP)، رباتیک، “علم، مهندسی و هنر” و حمل و نقل کاربرد دارد. به عنوان مثال سرویس مترجم زبان گوگل از یادگیری تقویتی استفاده می کند. همچنین گروه OpenAi توانستند مدل یادگیری تقویتی طراحی کنند که پس از ساعت ها بازی با انسان ها در بازی آنلاین Dota2 توانست تیم قهرمان جهان را شکست دهد.
در اینجا چهارنوع یادگیری بحث شد. هر کدام از این یادگیری ها با توجه به مسئله می تواند به کار گرفته شود. در شکل ۶ کاربرد های هر کدام از این چهارنوع به صورت هدف موضوع موردنظر آورده شده است.
الگوریتم های یادگیری ماشین و رویکردهای حل مسئله
روش های مختلفی برای یادگیری ماشین معرفی شده است که بررسی هر کدام از آن ها نیازمند ایجاد دست نوشته-های جداگانه است. در اینجا ما چند مورد کاربردی آن را بسیار کوتاه را معرفی کرده تا خواننده با آن آشنا شده و در صورت علاقه آن را دنبال کند. مواردی مانند شبکه های عصبی و یادگیری عمیق که از اهمیت زیادی برخوردار است را در ادامه دست نوشته ها و مطالب بعدی دنبال خواهیم کرد.
شبکه های عصبی(Artificial Neural Networks)
این شبکه ها بر مبنای عملکرد مغز انسان طراحی شده است و بجای نورون های مغز انسان از نورون های مصنوعی درون الگوریتم کامپیوتری کامپیوتری استفاده شده و می تواند دارای ورودی یا خروجی باشد که این ورودی یا خروجی معمولا به صورت یک عدد است. ورودی همان ویژگی های داده های ما مثلا مساحت و عمربنا از طریق نورون های ورودی داده می شود و خروجی نیز همان قیمت ساختمان است. برای دیدن ساختار یک نورون واقعی و شبکه ای از نورون های مصنوعی به شکل های ۷ و ۸ مراجعه کنید.
شبکه های عصبی مصنوعی عمیق یا یادگیری عمیق(Deep Learning)
همان شبکه های عصبی مصنوعی است که نورون های زیادی به عنوان لایه های میانی به آن افزوده ایم. قدرت این شبکه ها بیشتر بوده و پیچیدگی بیشتری نیز برای یادگیری دارد. این شبکه ها نیز دسته بندی خاص خودش را دارد که یک نمونه از آن شبکه های عصبی پیچشی(convolutional neural network) نام دارد که در آینده که به سراغ تصویر برداری پزشکی می رویم به عنوان پیش نیاز آن باید بررسی شود. در شکل ۹ یک نمونه از شبکه های عمیق را می بینیم که دارای سه لایه میانی و مخفی است.
بیز ساده(Naive Bayes)
دستهبندیکننده بیز ساده در یادگیری ماشین به گروهی از دستهبندیکنندههای ساده بر پایه احتمالات گفته میشود که با فرض استقلال متغیرهای تصادفی و براساس قضیه بیز ساخته میشوند. بهطور ساده روش بیز روشی برای دستهبندی پدیدهها، بر پایه احتمال وقوع یا عدم وقوع یک پدیدهاست و بررسی می کند مثلا با وجود حالت x چقدر احتمال دارد حالت y رخ دهد.
نزدیکترین همسایه(k-Nearest Neighbors)
بیشتر در دسته بندی داده ها کاربرد دارد و یکی از ۱۰ الگوریتم برتر مورد استفاده توسط دیگر متخصصین علوم داده است. برای توصیف این الگوریتم از شکل ۱۱ استفاده می کنیم. فرض می کنیم می خواهیم بفهمیم دایره سبزرنگ مورد نمونه آزمون ما بوده و سوال این است که به دسته قرمز مربوط است یا دسته آبی؟ وقتی سه همسایه نزدیک آن را نگاه کنیم دوتای آن قرمز است پس با احتمال بیشتری به کلاس قرمز تعلق دارد. اما اگر ۵ همسایه نزدیک دایره سبز را نگاه کنیم مبینیم که ۳ همسایه آبی دارد و با احتمال بیشتری به کلاس آبی تعلق دارد. این نقاط در فضای دوبعدی ویژگی ها رسم شده است و هرچه دونقطه در این صفحه به هم نزدیک تر باشند به معنای ویژگی های مشابه بیشتری است.
بردار ماشین پشتیبان(Support Vector Machines)
در این مدل از یادگیری به زبان ساده سعی می شود با بدست آوردن یک بردار در فضایn بعدی ویژگی ها میان دسته های مختلف تمایز قائل شود. به عنوان نمونه در شکل ۱۲ بردار قرمز رنگ دو نوع از گلوله سبز و آبی را از هم جدا کرده است. این مدل از یادگیری معمولا دقت بالاتری از مدل های دیگر(غیر از یادگیری عمیق) را به ارمغان می-آورد.
درخت تصمیم گیری(Decision Tree Learning)
یادگیری درخت تصمیمگیری یک رویکرد یادگیری ماشینی است که با استفاده از مجموعهای از طبقهبندیهای که منجر به خروجی یا پاسخ میشود، ورودیها را پردازش میکند. به طور معمول چنین درختهای تصمیمگیری یا درختان طبقهبندی، پاسخ گسسته را خروجی میدهند؛ با این حال، با استفاده از درختهای رگرسیون، خروجی میتواند مقادیر پیوسته (معمولا عدد حقیقی)بگیرد.
رگرسیون خطی(Linear regression)
در آمار، رگرسیون خطی یک رویکرد مدل خطی بین متغیر پاسخ(Response) با یک یا چند متغیر توصیفی(Explanatory) است. اغلب برای کشف مدل رابطهی خطی بین متغیرها از رگرسیون استفاده میشود. در این حالت فرض بر این است که یک یا چند متغیر توصیفی که مقدار آنها مستقل از بقیه متغیرها یا تحت کنترل محقق است، میتواند در پیشبینی متغیر پاسخ که مقدارش وابسته به متغیرهای توصیفی و تحت کنترل محقق نیست، موثر باشد. هدف از انجام تحلیل رگرسیون شناسایی مدل خطی این رابطه است. در کنار رگرسیون خطی نوع غیر خطی آن نیز وجود دارد که البته به دلیل پیچیدگی، کاربرد کمتری دارد.
خوشه یابی(cluster analysis)
این موضوع بیشتر در بخش مربوط به یادگیری بدون نظارت بحث شد. یکی از مهم ترین الگوریتم های آن نیز خوشهبندی کی-میانگین(k-means clustering) بوده که یک مثال از آن در شکل ۱۵ آمده است. در این مدل سعی می شود نقاطی از فضای ویژگی ها پیدا شود که مراکز همان خوشه هایی است که ما را به هدفمان می رساند.
دیگر مدل های یادگیری ماشین
الگوهای مهم دیگری برای یادگیری ماشین نیز وجود دارند که می توان به الگوریتم ژنتیک و تکامل(Genetic and Evolutionary Algorithms)، یادگیری نمایش یا ویژگی(Representation learning)، شبکه های عصبی گرافی(graph neural network)، یادگیری دیکشنری پراکنده(sparse dictionary learning) و … اشاره کرد.
جمع بندی
در این مطلب سعی شد ابتدا جایگاه یادگیری ماشین و انواع دسته بندی آن به زبانی ساده بیان شود. سپس انواع الگوریتم هایی که توسط متخصصین علم داده به کار بسته می شود در اینجا بیان شود. خواننده باید بر طبق مسئله ای که با آن روبه رو شده یک یا چند الگوریتم یادگیری ماشین را به کار بسته تا ببیند کدام مدل بیشترین دقت و کارایی را به عمل می آورد. همچنین ترکیب مدل های مختلف یادگیری ماشین نیز وجود دارد تا دقت را به بالاترین حد خود برساند. در آینده برخی از الگوریتم ها را (به خصوص یادگیری عمیق) به صورت کاربردی دنبال خواهیم کرد.
منابع: