یادگیری ماشین روشهای مختلفی دارد که از آن جمله میتوان به یادگیری ماشین نظارتی، بدون نظارت و تقویتی اشاره کرد. به عنوان زیر مجموعهای از هوش مصنوعی، الگوریتمهای یادگیری ماشین یک مدل ریاضی بر اساس دادههای نمونه یا دادههای آموزش برای پیشبینی یا تصمیمگیری بدون برنامهریزی آشکار، ایجاد میکنند. کاربران روزانه به اشکال مختلفی از یادگیری ماشین استفاده میکنند، بدون آنکه اطلاعی در این زمینه داشته باشند. هر زمان جستوجویی با گوگل یا بینگ انجام میدهید در حال استفاده از یادگیری ماشینی هستید، زیرا الگوریتم یادگیری ماشین آنها چگونگی رتبهبندی صفحات وب را درک کرده است. زمانیکه فیسبوک یا برنامه عکس اپل دوستان و تصاویر شما را میشناسد، بازهم یادگیری ماشین به شما کمک میکند. هر زمان ایمیل خود را بررسی میکنید و فیلتر هرزنامه شما را از داشتن مجدد هزاران هرزنامه خلاص میکند الگوریتم یادگیری ماشین در پشت صحنه در حال انجام کار است تا هرزنامه را از غیرهرزنامه تشخیص دهد. این همان یادگیری ماشین است. این علمی است که باعث میشود رایانهها بدون نیاز به یک برنامه صریح در مورد یک موضوع خاص یاد بگیرند.
دلایل استفاده از یادگیری ماشین چیست؟
هدف یادگیری ماشین این است که سامانهها بتوانند به تدریج و با افزایش دادهها کارایی بهتری در انجام وظیفه پیدا کند. گستره این وظیفه میتواند از تشخیص خودکار چهره با دیدن چند نمونه از چهره مورد نظر تا فراگیری شیوه گامبرداری روباتهای دوپا با دریافت سیگنال پاداش و تنبیه باشد. طیف پژوهشهایی که در یادگیری ماشین میشود گسترده است. به لحاظ نظری پژوهشگران بر آناند که روشهای یادگیری تازهای به وجود بیاورند و امکانپذیری و کیفیت یادگیری را برای روشهایشان مطالعه کنند و در سوی دیگر عدهای از پژوهشگران سعی میکنند روشهای یادگیری ماشینی را بر مسایل تازهای اعمال کنند. البته این طیف گسسته نیست و پژوهشهای انجامشده دارای مؤلفههایی از هر دو رویکرد هستند. یادگیری ماشین کمک فراوانی به صرفه جویی در هزینههای عملیاتی و بهبود سرعت عمل تجزیه و تحلیل دادهها میکند. به عنوان مثال در صنعت نفت و پتروشیمی با استفاده از یادگیری ماشین، دادههای عملیاتی تمام حفاریها اندازهگیری شده و با تجزیه و تحلیل دادهها، الگوریتمهایی تنظیم میشود که در حفاریهای بعدی استخراج پربازده و بهینهتری داشته باشیم.
تقسیمبندی مشکلات رایج روز
یکی از تقسیمبندیهای مرسوم در یادگیری ماشینی، تقسیمبندی بر اساس نوع دادههای در اختیار سرور هوشمند است. برای روشنتر شدن مبحث به مثال زیر دقت کنید: تصور کنید فرض کنید رباتی خریدهاید که میتواند توسط دوربینی دنیای خارج را مشاهده کند به کمک میکروفنها صداهای پیرامون را بشنود با بلندگوهایی با شما صحبت کند و چهارپایهاش را حرکت دهد. همچنین در جعبه این روبات دستگاه کنترل از راه دوری وجود دارد که میتوانید انواع مختلف دستورها را به روبات بدهید. اولین کاری که میخواهید بکنید این است که اگر روبات شما را دید صدای خاصی از خود تولید کند، اما اگر غریبهای را مشاهده کرد با صدای بلند شما را خبردار کند. اکنون تصور کنید که روبات توانایی تولید آن صداها را دارد، اما هنوز چهره شما را نمیشناسد. پس کاری که میکنید این است که جلوی چشمهای روبات قرار میگیرید و به کمک کنترل از راه دور به او دستور میدهید که چهرهای که روبرویش قرار دارد را با صدای خاصی هماهنگ کند. اینکار را برای چند زاویه مختلف از صورتتان تکرار میکنید تا مطمئن باشید روبات در زوایای مختلف قادر به تشخیص چهره شما است. همچنین چند چهره غریبه به او نشان میدهید و مشخص میکنید برای چهرههای غریبه صدای خاصی تولید کند. در این سناریو به روبات اعلام داشتهاید که چه ورودی را به چه خروجی مربوط است. دقت کنید که هم ورودی و هم خروجی مشخص است و در اصطلاح خروجی برچسبدار است. به این شیوه یادگیری، یادگیری با نظارت میگویند.
اکنون سناریو دیگری را تصور کنید. این مرتبه بر عکس حالت گذشته که به روبات اعلام کردید چه محرکهای را به چه خروجی ربط دهد، اینبار میخواهید روبات خودش چنین چیزی را یاد بگیرد. به این صورت که اگر شما را دید و تولید صدا کرد به شکلی به او پاداش دهید و اگر تشخیص اشتباه داد او را تنبیه کنید. در این حالت به روبات نمیگویید به ازای هر شرایطی چه کاری مناسب است، بلکه اجازه میدهید روبات خود کاوش کند و تنها شما نتیجه نهایی را تشویق یا تنبیه میکنید. به این شیوه یادگیری، یادگیری تقویتی میگویند.
در دو حالت پیش قرار بود روبات ورودی را به خروجی مرتبط کند. با اینحال، گاهی وقتها تنها میخواهیم روبات بتواند تشخیص دهد که آنچه میبیند یا میشنود به نوعی به آنچه پیشتر دیده ارتباط دهد، بدون اینکه شکل روشن بداند آن چیزی که دیده شده چه چیزی است یا اینکه چه کاری در موقع دیدنش باید انجام دهد. ربات هوشمند باید بتواند تفاوت میان صندلی و انسان را درک کند، بدون آنکه شما بگویید این نمونهها صندلی هستند و آن نمونههای دیگر انسان هستند. در اینجا برخلاف یادگیری با نظارت هدف ارتباط ورودی و خروجی نیست، بلکه تنها دستهبندیی آنها است. این نوع یادگیری که به آن یادگیری بی نظارت میگویند بسیار مهم است چون دنیای روبات پر از ورودیهایی است که کسی برچسبی به آنها اختصاص نداده اما به وضوح جزئی از یک دسته هستند. یادگیری بینظارت را میتوان به صورت عمل کاهش بعد در نظر گرفت.
از آنجا که انسانها با کارهای مختلفی مشغول هستند، در نتیجه در روز فقط میتوانند مدت محدودی با روبات در ارتباط باشند و به او چیزها را نشان دهند و نامشان را بگوییند که همان فرآیند برچسبگذاری است، با اینحال، روبات در طول روز روشن است و دادههای بسیاری را دریافت میکند. در اینجا روبات میتواند هم به خودی خود و بدون نظارت یاد بگیرد و هم اینکه هنگامی که او را راهنمایی میکنید، سعی کند از آن تجارب شخصیاش استفاده کند و از آموزش شما بهره بیشتری ببرد. ترکیبی که عامل هوشمند هم از دادههای بدون برچسب و هم از دادههای با برچسب استفاده میکند به یادگیری نیمه نظارتی میگویند.
یادگیری با نظارت
اغلب مدلهای یادگیری ماشین از یادگیری تحت نظارت استفاده میکنند. در یادگیری ماشین تحت نظارت، سامانه تلاش میکند از نمونههای پیشین نکاتی را یاد بگیرد. یادگیری با نظارت، یک روش عمومی در یادگیری ماشین است که در آن به یک سیستم، مجموعهای از جفتهای ورودی – خروجی ارائه شده و سیستم تلاش میکند تا تابعی از ورودی به خروجی را فرا گیرد. یادگیری تحت نظارت نیازمند تعدادی داده ورودی برای آموزش سیستم است. در این نوع یادگیری سامانه تلاش میکند تا الگوها را بر مبنای مثالها داده شده به آن یاد بگیرد. یادگیری با نظارت به دو دسته تقسیم میشود: رگرسیون و طبقهبندی. رگرسیون آن دسته از مسائل هستند که خروجی یک عدد پیوسته یا یک سری اعداد پیوسته هستند مانند پیشبینی قیمت خانه بر اساس اطلاعاتی مانند مساحت، تعداد اتاق خوابها، و غیره و دسته طبقهبندی به آن دسته از مسائل گفته میشود که خروجی یک عضو از یک مجموعه باشد مانند پیشبینی اینکه یک ایمیل هرزنامه هست یا خیر یا پیشبینی نوع بیماری یک فرد از میان ۱۰ بیماری. با این حال ردهای از مسائل وجود دارند که خروجی مناسب که یک سیستم یادگیری تحت نظارت نیازمند آن است، برای آنها موجود نیست. این نوع از مسائل چندان قابل جوابگویی با استفاده از یادگیری تحت نظارت نیستند. یادگیری تقویتی مدلی برای مسائلی از این قبیل فراهم میآورد. در یادگیری تقویتی، سیستم تلاش میکند تا تقابلات خود با یک محیط پویا را از طریق آزمون و خطا بهینه نماید. یادگیری تقویتی مسئلهای است که یک عامل که میبایست رفتار خود را از طریق تعاملات آزمون و خطا با یک محیط پویا فرا گیرد، با آن مواجه است. در یادگیری تقویتی هیچ نوع زوج ورودی- خروجی ارائه نمیشود. به جای آن، پس از اتخاذ یک عمل، حالت بعدی و پاداش بلافصل به عامل ارائه میشود. هدف اولیه برنامهریزی عاملها با استفاده از تنبیه و تشویق است بدون آنکه ذکری از چگونگی انجام وظیفه آنها شود.
یادگیری با نظارت آماری
در آماری احتمال خروجی بر حسب ورودی محاسبه میشود. اگر ورودی xباشد و خروجی x و y به توان i باشند از دادهها یاد گرفته میشود، به عبارت دیگر یادگیری در واقع پیدا کردن تابع p(y|x),y است. دو روش کلی برای پیدا کردن تابع فوق وجود دارد که روش تولیدی (Generative) و روش تشخیصی (Discriminative) نام دارند. در روش تشخیصی p(y|x) به شکل مستقیم دریافت میشود، اما در روش تولیدی ابتدا p(y) و p(x|y) از دادهها برآورد میشوند و بعد با استفاده از قانون بیز p(y|x) محاسبه میشود.
یادگیری بدون نظارت
در یادگیری بدون نظارت، الگوریم باید به تنهایی به دنبال ساختاهای موردنیاز در دادهها باشد. به بیان دیگر، یادگیری بدون نظارت زمانی استفاده میشود که در مجموعه دادهها فقط متغیرهای ورودی در دسترس هستند و هیچ متغیر داده خروجی در دسترس نیست. در اینجا هیچ پاسخ تخصیص داده شده وجود ندارد و هیچ متغیر داده خروجی نیز در دسترس نیست. یادگیری بی نظارت (Unsupervised machine learning) در نقطه مقابل یادگیری تحت نظارت است. اگر یادگیری روی دادههای بدون برچسب و برای یافتن الگوهای پنهان در این دادهها انجام شود، یادگیری، بدون نظارت است. از انواع یادگیری بدون نظارت میتوان به الگوریتمهای خوشهبندی (Clustering)، تخصیص پنهان دیریکله (LDA) و جاسازی لغات (Word Embedding) اشاره کرد. یادگیری بدون نظارت به مسائل خوشهبندی و انجمنی تقسیم میشود.
یادگیری تقویتی
یک برنامه کامپیوتری با محیط پویا در ارتباط است باید به هدف خاصی برسد. این برنامه بازخوردهایی را با عنوان پاداشها و تنبیهها فراهم و فضای نسئله خود را بر همین اساس خطدهی میکند. در یادگیری تقویتی ماشین یاد میگیرد که تصمیمات مشخصی در محیطی که دائما در معرض آزمون و خطا قرار دارد را اتخاذ کند. یادگیری تقویتی بخشی که از یادگیری ماشین است این است که چگونه عاملهای نرمافزاری، باید یک عمل را مناسب محیط انتخاب کنند تا پاداش بهینه بیشینه شود. این رشته به دلیل کلی بودن در بسیاری از رشتههای دیگر از جمله نظریه بازی، تئوری کنترل، تحقیق در عملیات، تئوری اطلاعات، بهینهسازی مبتنی بر شبیهسازی، سیستمهای چند عامل، هوشمند جمعی، آمار و الگوریتمهای ژنتیکی مورد مطالعه قرار میگیرد. در یادگیری ماشین، محیط بهطور معمول به عنوان یک فرآیند تصمیمگیری مارکوف (MDP) معرفی میشود. بسیاری از الگوریتمهای یادگیری تقویتی از تکنیکهای برنامهنویسی پویا استفاده میکنند. در الگوریتمهای یادگیری تقویتی، فرضیه مبتنی بر دانش یک مدل دقیق ریاضی از MDP نیست و هنگامی که مدلهای دقیق غیرقابل دسترسی هستند استفاده میشود. الگوریتمهای یادگیری تقویتی در وسایل نقلیه خودران یا در یادگیری بازی در برابر حریف انسانی استفاده میشوند.
ریاضیات هوشمند
نظریه یادگیری ماشین، زمینهای در آمار و احتمال، علوم رایانه و مباحث الگوریتمی مبتنی بر یادگیری تکرارشونده- کاربرد است که میتواند برای ساخت نرمافزارها هوشمند استفاده شود. به همین دلیل دلایل متعددی برای یادگیری ریاضی در ارتباط با یادگیری ماشین وجود دارد. به همین دلیل به افراد پیشنهاد میشود به فکر یادگیری جبر خطی، نظریه آمار و احتمالات، حساب و الگوریتمها و بهینهسازی پیچیدگیها باشند.
یادگیری مبتنی بر دیکشنری پراکنده
یادگیری مبتنی بر دیکشنری پراکنده یک روش یادگیری ویژگی است که در آن یک مثال آموزشی به عنوان ترکیبی خطی از توابع پایه ارائه می شود و فرض بر این است که یک ماتریس پراکنده است. این مساله از نوع به شدت سخت NP-hard است و حل تقریبی آن دشوار است. الگوریتم K-SVD یک روش اکتشافی معمول برای یادگیری دیکشنری پراکنده است. یادگیری دیکشنری پراکنده در چند زمینه استفاده شده است. در دستهبندی، مسئله مشخص کردن کلاسهایی است که قبلا دیده نشدهاند متعلق به نمونه آموزشیاند. برای دیکشنری که در آن هر کلاس از قبل ساخته شده یک مثال آموزشی جدید با کلاس همراه است که به بهترین شکل توسط لغتنامه مربوطه نمایش داده میشود. بهطور مثال، یادگیری دیکشنری پراکنده در تشخیص و جداسازی نویز تصویر استفاده شده است. ایده اصلی این است که تکههای تصویر تمیز و بدون نویز میتواند جداگانه توسط یک لغتنامه تصویری نشان داده شود، اما قسمت نویز نمیتواند.
امروزه تکنیکهای نوینی در یادگیری ماشین ابداع شدهاند که از آن جمله میتوان به ماشین سازنده متغیر همبسته بالا (HCVCM) اشاره کرد که این الگوریتم یک مدل ترکیبی جدید برای بهبود مدلهای رگرسیون و مدلهای شبکه عصبی مصنوعی برای پیشبینی پدیدهها و عملکرد مواد است.
چه زبانی برای برنامهنویسی یادگیری ماشین مناسب است؟
گستردگی زبانهای برنامهنویسی باعث شده تا برنامهنویسان انتخابهای گوناکونی در این زمینه داشته باشند. با اینحال، برای از زبانها به نسبت سایر زبانها پر کاربردتر هستند از آن جمله به موارد زیر میتوان به پایتون، متلب، جاوا، R، جاوا اسکریپت، #c و اسکالا اشاره کرد. نکتهای که باید در نظر داشت این است که بهترین زبان برنامهنویسی برای هوش مصنوعی و یادگیری ماشین وجود ندارد، زیرا این مسئله کاملاً به پروژهای که قرار است نوشته شود بستگی دارد. بهطور مثال، برنامهنویسی تنها میخواهد مفاهیم اولیه یادگیری ماشین را فراگیرد. برای چنین شخصی استفاده از یک زبان برنامهنویسی با محیط قابل فهم و آسان کفایت میکند. برنامهنویس دیگری ممکن است در فرآیند یادگیری ماشین نیاز به پردازش تصویر داشته باشد. در چنین حالتی زبانهای متلب و پایتون بهترین گزینه هستند، زیرا کتابخانههای قوی برای پردازش تصویر دارند. در حالتی که افراد بخواهند در تئوریهای مربوط به یادگیری ماشین عمیق شده و از روشهای آماری خاص استفاده کنند گزینه مناسب R خواهد بود. البته سی شارپ که به تازگی با ارائه عمومی model builder وارد این مبحث شده قابلیتهای زیادی در این زمینه دارد. توسعهدهندگان میتوانند با دانش کم در ریاضیات از ترکیب نحوی ساده سی شارپ در این زمینه استفاده کنند.
ماهنامه شبکه را از کجا تهیه کنیم؟
ماهنامه شبکه را میتوانید از کتابخانههای عمومی سراسر کشور و نیز از دکههای روزنامهفروشی تهیه نمائید.
ثبت اشتراک نسخه کاغذی ماهنامه شبکه
ثبت اشتراک نسخه آنلاین
کتاب الکترونیک +Network راهنمای شبکهها
- برای دانلود تنها کتاب کامل ترجمه فارسی +Network اینجا کلیک کنید.
کتاب الکترونیک دوره مقدماتی آموزش پایتون
- اگر قصد یادگیری برنامهنویسی را دارید ولی هیچ پیشزمینهای ندارید اینجا کلیک کنید.
نظر شما چیست؟