در بسیاری از مواقع عبارت یادگیری ماشین را همراه با واژه هوش مصنوعی میبینید. حتی گاهی بسیاری از افراد این دو واژه را بجای هم به کار میبرند. واقعیت این است یادگیری یکی از بخشهای دنیای هوشمصنوعی است.
یادگیری ماشینی یا ماشین لرنینگ (Machine Learning) یکی از زیر شاخههای فناوری هوش مصنوعی است که بر توسعه الگوریتمها و مدلهای آماری تمرکز دارد که رایانهها را قادر میسازد تا وظایفی را بدون دستورالعملهای صریح انجام دهند.
نکست مایند در این مقاله ابتدا یادگیری ماشین را معرفی میکند، سپس رابطه بین یادگیری ماشین و هوش مصنوعی، توسعه تاریخی یادگیری ماشین، چگونگی عملکرد ماشین لرنینگ، کاربردهای مختلف آن، و نحوه استفاده از آن توسط سرویسهای هوش مصنوعی پیشرو در سراسر جهان را بررسی میکند.
یادگیری ماشینی چیست؟
یادگیری ماشینی یا لرنینگ ماشین رشتهای از علوم کامپیوتر است که به رایانهها این توانایی را میدهد که از دادهها بیاموزند و بر اساس آن دادهها تصمیم بگیرند بدون اینکه به طور واضح برنامهریزی شوند. تام میچل در کتاب معروف خود، یادگیری ماشین را به یک برنامه کامپیوتری تعریف میکند که از تجربه E با توجه به دستهای از وظایف T و معیار عملکرد P یاد میگیرد، اگر عملکرد آن در وظایف در T، همانطور که با P اندازهگیری میشود، با تجربه E بهبود یابد.
ایده اساسی یادگیری ماشین، ساخت الگوریتمهایی است که می توانند دادههای ورودی را دریافت کنند و از تجزیه و تحلیل آماری برای پیش بینی یک خروجی استفاده کنند و در عین حال خروجیها را با در دسترس قرار گرفتن دادههای جدید به روز کنند.
یادگیری ماشین و هوش مصنوعی: تفاوتها و شباهتها
همانطور که در مقاله «هوش مصنوعی چیست؟» بررسی کردیم، هوش مصنوعی مجموعهای از روشها و تکنیکها است و زیرشاختههای بسیاری دارد. یادگیری ماشینی یک زیرمجموعه از هوش مصنوعی است که به طور خاص بر روی الگوریتم هایی تمرکز دارد که از دادهها یاد میگیرند و پیش بینی میکنند. هوش مصنوعی طیف وسیعی از تکنیکها مانند هوش مصنوعی نمادین، سیستمهای خبره و شبکههای عصبی را در بر میگیرد. یادگیری ماشین در درجه اول شامل الگوریتم هایی مانند رگرسیون خطی، درخت تصمیم و شبکه های عصبی است.
برنامه های کاربردی هوش مصنوعی می توانند از سیستم های خبره و بازی تا وسایل نقلیه خودران و دستیارهای صوتی متفاوت باشند. یادگیری ماشین در درجه اول برای وظایف داده محور مانند طبقه بندی، رگرسیون، خوشه بندی و سیستم های توصیه استفاده می شود.
تاریخچه یادگیری ماشین
یادگیری ماشینی در دهه 1950 زمانی که دانشمندانی مانند آلن تورینگ ایده یادگیری ماشینها از دادهها را بررسی کردند، آغاز شد. پیشرفتهای اولیه شامل الگوریتمهای ساده و سیستمهای مبتنی بر قانون بود. در دهه 1980، ظهور رایانههای قدرتمندتر امکان توسعه مدلهای پیچیدهتر مانند شبکههای عصبی را فراهم کرد. دهه 2000 به سبب سیستمهای اطلاعاتی بسیار و همچنین توسعه سختافزارهای مناسب هوش مصنوعی، پیشرفت های قابل توجهی در تکنیک های یادگیری ماشین و کاربرد آنها در زمینه های مختلف حاصل شد.
امروزه یادگیری ماشین یکی از مهمترین و کاربردیترین زیرشاخههای هوش مصنوعی است.
اساس کار یادگیری ماشینی یا ماشین لرنینگ چیست؟
همانطور که گفته شد، ماشین لرنینگ از مجموعهای از دادهها میآموزد، سپس میتواند بر اساس دادههای تازه و جدید عمل کند. برای درک بهتر این موضوع، ابتدا مفاهیم اساسی در دنیای یادگیری ماشین را بررسی میکنیم، سپس به صورت ساده، مراحل ماشین لرنینگ را بررسی میکینم
مفاهیم اساسی در دنیای یادگیری ماشین
- جمع آوری دادهها و پیش پردازش: گام اولیه در ماشین لرنینگ جمع آوری یک مجموعه داده قابل توجه و مرتبط با مسئله مورد نظر است. این دادهها اغلب به پیش پردازش نیاز دارند. پیش پردازش شامل تمیز کردن برای رسیدگی به مقادیر از دست رفته، نرمالایز کردن برای مقیاس بندی مناسب ویژگیها، و تبدیل برای تبدیل دادههای دسته بندی به شکل عددی است.
- انتخاب و استخراج ویژگی: منظور از ویژگی خصوصیات یا ویژگی های فردی قابل اندازه گیری دادهها هستند. انتخاب ویژگیهای مناسب بسیار مهم است زیرا آنها به طور مستقیم بر عملکرد مدل تأثیر میگذارند. استخراج ویژگی شامل ایجاد ویژگی های جدید از ویژگی های موجود برای بهبود دقت مدل است.
- انتخاب مدل: این موضوع شامل انتخاب الگوریتم مناسبی است که به بهترین وجه متناسب با مسئله است. الگوریتمهای رایج شامل رگرسیون خطی برای پیشبینی خروجی پیوسته، درختهای تصمیمگیری برای طبقهبندی و شبکههای عصبی برای وظایف پیچیده تشخیص الگو هستند.
انواع یادگیری ماشینی
یادگیری نظارت شده
یادگیری نظارت شده یا Supervised learning نوعی از یادگیری ماشینی است که در آن الگوریتمی بر روی دادههای برچسب دار آموزش داده میشود. در این زمینه، “داده های برچسب دار” به این معنی است که هر نمونه آموزشی با یک برچسب خروجی همراه میشود. هدف این است که الگوریتم یک نقشه برداری از ورودیها به خروجی های صحیح را بیاموزد تا بتواند خروجی ورودی های جدید و نادیده را به طور دقیق پیش بینی کند.
این فرآیند یادگیری شامل دو مرحله اصلی است: آموزش و آزمایش. در طول مرحله آموزش، الگوریتم پارامترهای خود را برای به حداقل رساندن خطا در پیشبینیهای خود تنظیم میکند، در حالی که در طول آزمایش، عملکرد آن بر روی مجموعهای از دادههای جداگانه که قبلاً ندیده است، ارزیابی میشود. یادگیری نظارت شده دارای دو نوع طبقهبندی (Classification) و رگرسیون (Regression) است.
یادگیری نظارت شده به زبان ساده
تصور کنید میخواهید به فرزندتان بیاموزید که موز و پرتقال چه میوههایی هستند. در ابتدا چند تصویر موز و چند پرتقال به او نشان میدهید. هنگامی که به او تصویر موز را نشان میدهید میگوید این موز است، موز زرد است ( زرد یک برچسب است که به موز دادهاید) یا میگوید موزد دراز است ( دراز بودن برچسب دیگری است که به موز میزنید). سپس چند پرتقال به او نشان میدهید و میگویید این پرتقال است و پرتقال نارنجی است. این پرتقال است و پرتقال گرد است. این همان مرحله آموزش در یادگیری نظارت شده است.
در مرحله در مرحله بعد شما یک موز به او نشان میدهید اما نمیگویید که این موز است، کودک با تشخیص این که این میوه زرد و دراز است تشخیص میدهد که این میوه موز است. این همان مرحله آزمایش است. یادگیری نظارت شده مشابه همین روش است. چیزی که شما نیاز دارید مجموعه زیادی از دادهها است که آنها را برچسب گذاری یا لیبل گذاری کنید.
مثالی ساده از یادگیری نظارت شده در دنیای روزمره
یک مثال ساده از یادگیری تحت نظارت، فیلتر ایمیل هرزنامه است. در اینجا، ورودی یک ایمیل است، و خروجی یک برچسب است که نشان می دهد ایمیل “هرزنامه” است یا “هرزنامه نیست”. برای ساخت این فیلتر، از مجموعه بزرگی از ایمیلها که هرکدام بهعنوان هرزنامه نامگذاری شدهاند، برای آموزش الگوریتم استفاده میشود. الگوریتم یاد میگیرد که الگوها و ویژگیهای رایج در ایمیلهای اسپم، مانند کلمات کلیدی یا عبارات خاص را تشخیص دهد. پس از آموزش، فیلتر میتواند ایمیلهای جدید را ارزیابی کرده و آنها را بر اساس آموختههای خود به طور دقیق طبقهبندی کند. به لطف یادگیری نظارت شده یا تحت نظارت است که انباکس ایمیل شما مرتب است.
کاربردهای یادگیری نظارت شده
یادگیری نظارت شده یک روش بسیار کاربردی در دنیای هوش مصنوعی است و کاربردهای بسیاری دارد. برخی از این کاربردها عبارتند از:
- دستیارهای صوتی: دستیارهای مجازی مانند سیری، دستیار گوگل و الکسا از یادگیری نظارت شده برای تشخیص گفتار برای درک و پاسخ به دستورات صوتی کاربران استفاده می کنند.
- تشخیص چهره در عکسها: پلتفرمهای رسانههای اجتماعی و برنامههای مدیریت عکس از الگوریتمهای یادگیری نظارت شده برای شناسایی و برچسب گذاری خودکار افراد در عکسها بر اساس تصاویر قبلی استفاده میکنند.
- توصیههای محصول: وبسایتهای فروشگاهی مانند آمازون و همچنین وبسایت نتفلیکس از یادگیری نظارت شده برای توصیه محصولات، فیلمها به کاربران بر اساس تاریخچه مرور و خرید آنها استفاده میکنند.
- رانندگی خودکار: سیستمهای پیشرفته کمک راننده (ADAS) و خودروهای خودران از یادگیری نظارت شده برای تشخیص اشیایی مانند عابران پیاده، وسایل نقلیه و علائم راهنمایی و رانندگی برای تصمیم گیری در زمان واقعی رانندگی استفاده می کنند.
یادگیری بدون نظارت
یادگیری نظارت نشده نوعی از یادگیری ماشینی است که در آن خبری از برچسبهای آموزشی نیست. هدف این است که ماشین خودش الگوها یا ساختارهای پنهان را در دادهها پیدا کند.
برای درک بهتر تفاوت یادگیری نظارت نشده، آن را به عنوان گشت و گذار در یک شهر جدید و ناشناخته در حالی که هیچ نقشهای در دست ندارید، در نظر بگیرید. در این حالت شما مجبورید خودتان اینقدر شهر را بچرخید تا کم کم با شهر آشنا شوید ( در حالی که در یادگیری نظارت شده شما از همان ابتدا با یک نقشه وارد شهر میشوید و فقط کافی است بر اساس نقشه مسیر خود را پیدا کنید). تکنیکهای رایج در یادگیری بدون نظارت شامل خوشهبندی (گروهبندی موارد مشابه) و تداعی (پیدا کردن روابط بین آیتمها) است.
یادگیری نظارت نشده به زبان ساده
تصور کنید که یک سبد از موز و پرتقال در مقابل کودک خود گذاشته اید. از او میخواهید که میوههایی که شبیه به هم هستند را از هم جدا کند. او نمیداند که کدام موز است و کدام پرتقال است اما خودش با نگاه کردن به سبد میوه احتمالا میتواند از پس این کار بر بیاید. هرچه تفاوت میوهها بیشتر باشد این کار سادهتر است و برعکس. در یادگیری بدون نظارت، ماشین خودش باید راه مناسب را پیدا کند.
کاربردهای یادگیری نظارت نشده
یادگیری نظارت نشده کاربردهای متعددی دارد که در دنیای واقعی بسیاری از شرکتها از آنها استفاده میکنند برخی از این کاربردها عبارتند از:
- تقسیم بندی مشتریان: شرکتها با یادگیری نظارت نشده میتوانند مشتریان خود را بر اساس رفتار و ترجیحاتی که دارند دستهبندی کنند. شرکت آمازون از این روش برای ایجاد توصیهها و پیشنهادات بازاریابی هدفمند و شخصی سازی شده استفاده میکند. نتفیلیکس و اسپاتیفای نیز برای پیشنهاد و نمایش محتوا به کاربران خود از این روش استفاده میکنند.
- تشخیص تقلب: با یادگیری نظارت نشده میتوان الگوهایی که حاکی از تقلب یا کلاهبرداری است را تشخصی دهد. بانکها و موسسات مالی از از این روش بسیار استفاده میکنند تا از ضرر و زیاد جلوگیری کنند.
- خوشه (دسته بندی) بندی اسناد: با استفاده از این تکنیک میتوان اسناد را بر اساس محتوایی که دارند دستهبندی کرد. Google news از یادگیری نظارت نشده برای دستهبندی اخبار خود استفاده میکند.
یادگیری تقویتی
یادگیری تقویتی(Reinforcement learning) نوعی از یادگیری ماشینی است که در آن یک عامل یاد میگیرد که با انجام اقداماتی در یک محیط برای به حداکثر رساندن برخی از مفهاهیم پاداش تجمعی تصمیم بگیرد. در این نوع عامل با محیط در تعامل است و بازخورد را به صورت پاداش یا جریمه دریافت می کند و از این بازخورد برای بهبود اقدامات آینده خود استفاده میکند. در یادگیری تقویتی هدف توسعه استراتژی یا سیاستی است که کل پاداش را در طول زمان به حداکثر برساند. بر خلاف یادگیری نظارت شده، که در آن مدل از یک مجموعه داده برچسبگذاری شده یاد میگیرد، یادگیری تقویتی به روش آزمون و خطا متکی است و از اقدامات خود و نتایج آنها یاد میگیرد.
یادگیری تقویتی به زبان ساده
یادگیری تقویتی مانند آموزش به سگ برای آوردن توپ است. تصور کنید یک سگ دارید و میخواهید به او یاد بدهید که هر بار توپ را پرتاپ میکنید او توپ را برگرداند. هر بار که سگ توپ را به شما بازگرداند، شما به آن یک تیکه غذا (پاداش) میدهید. اگر توپ را برنگرداند، غذایی هم گیرش نمیآید. با گذشت زمان، سگ میآموزد که آوردن توپ و بازگرداندن آن باعث میشود که برایش خوشایند باشد، بنابراین در این کار بهتر و بهتر میشود. در یادگیری تقویتی، یک برنامه کامپیوتری (سگ) یاد می گیرد که با انجام اقدامات مختلف و گرفتن پاداش یا جریمه، وظایف خود را انجام دهد و به تدریج اقدامات خود را بهبود می بخشد تا بیشترین پاداش را به دست آورد.
کاربردهای یادگیری تقویتی در دنیای واقعی
یادگیری تقویتی کاربردهای بسیار زیادی در دنیای واقعی دارد. در واقع بخش بسیاری از کاربردهای پیشرفته یادگیری ماشین در این دسته قرار دارند. برخی از این کاربردها عبارتند از:
- بازی و سرگرمی: الگوریتمهای یادگیری تقویتی در بازیهایی مانند شطرنج، Go و بازیهای ویدیویی مانند StarCraft و Dota 2 به عملکرد فوقانسانی دست یافتهاند.
- رباتیک: آموزش رباتها برای انجام کارهای پیچیده از طریق یادگیری تقویتی انجام میپدیرد. در واقع بازوهایی رباتیک در خطوط مونتاژ و رنگ آمیزی و جوشکاری با این روش دقت خود را افزایش میدهند.
- وسایل نقلیه خودمختار: وسایل نقلیه خودران میتوانند سیاست های کنترلی برای ناوبری، اجتناب از موانع و تصمیم گیری در رانندگی را توسعه دهند. یا مثلا هواپیماهای بدون سرونشین و پهباد ها با این فناوری استقلال و قابلیتّای خود را توسعه دهند.
- امور مالی: در امورمالی یادگیری تقویتی میتواند استراتژیهای معاملاتی که با شرایط بازار سازگار است را توسعه دهد. یا به بهینهسازی تخصصی داراییها و استراتژیهای مدیریت ریسک بپردازد.
- پردازش زبان طبیعی: یادگیری تقویتی میتواند به بهبود عوامل مکالمه کند و تعامل انسان با چتبات ها را افزایش دهد. در زمینه ترجمه نیز یادگیری تقویتی میتواند در افزایش کیفیت ترجمه اتوماتیک بسیار موثر باشد.
- صنعت و تولید: نگهداری و تعمیرات پیشبینانه و بهینهسازی فرآیندهای تولیدی از قابلیتهای روش یادگیری تقویتی است.
مراحل یادگیری ماشین به زبان ساده
برای پیاده سازی یک سیستم ماشین لرنینگ به صورت ساده باید ابتدا مدل آموزش داد، پس از آموزش مدل، عملکرد آن را ارزیابی کرد و در صورت مناسب بودن، استقرار سیستم یادگیری ماشین امکان پذیر است. در ادامه هر کدام از مراحل را بررسی میکنیم.
آموزش دادن یا train
مدل با استفاده از بخشی از مجموعه داده آموزش داده میشود. در طول آموزش، مدل پیشبینی میکند و پارامترهای خود را تنظیم میکند تا خطا بین پیشبینیهای خود و نتایج واقعی را به حداقل برساند. این فرآیند بسته به وظیفه، توسط یک تابع هدف هدایت میشود، در بسیاری از مواقع یک تابع ضرر مانند میانگین مربعات خطا یا از دست دادن متقابل آنتروپی است.
ارزیابی
پس از آموزش، مدل بر روی یک مجموعه داده اعتبارسنجی جداگانه ارزیابی می شود تا عملکرد آن ارزیابی شود. معیارهایی مانند دقت، یادآوری، و امتیاز F1 برای وظایف طبقهبندی استفاده میشود، در حالی که میانگین خطای مطلق یا ریشه میانگین مربعات خطا برای وظایف رگرسیونی استفاده میشود.
تنظیم فراپارامتر
این شامل تنظیم پارامترهای حاکم بر فرآیند یادگیری (به عنوان مثال، نرخ یادگیری، تعداد لایهها در یک شبکه عصبی) برای بهبود عملکرد مدل است. اغلب از تکنیک هایی مانند جستجوی شبکه ای یا جستجوی تصادفی استفاده می شود.
استقرار و نظارت مدل
پس از آموزش و ارزیابی، این مدل می تواند برای پیشبینی دادههای جدید در زمان واقعی به کار گرفته شود. با این حال، عملکرد مدل میتواند در طول زمان به دلیل تغییرات در توزیع داده های اساسی، پدیدهای که به عنوان رانش مفهومی شناخته میشود، کاهش یابد. نظارت مستمر و بازآموزی دوره ای برای حفظ دقت و قابلیت اطمینان مدل ضروری است.
یادگیری عمیق چیست؟
یادگیری عمیق بخشی از یادگیری ماشین یا ماشین لرنینگ است که از شبکههای عصبی با لایههای متعدد ( به همین دلیل به آن عمیق میگویند.) استفاده میکند. این شبکههای عصبی برای تقلید از ساختار و عملکرد مغز انسان طراحی شدهاند و به آنها اجازه میدهند الگوهای پیچیده در دادهها را مدلسازی کنند.
در واقع میتوان گفت که یادگیری عمیق مدلهای پیچیدهتری را نسبت با یادگیری ماشین استفاده میکند. در ماشین لرنینگ الگوریتمهایی نظیر رگرسیون خطی، درخت تصمیم، ماشینهای بردار پشتیبان که نسبتاً ساده و قابل تفسیر هستند استفاده میشود. در حالی که در یادگیری عمیق مدلهایی مانند شبکههای عصبی کانولوشن، شبکههای عصبی مکرر، ترانسفورماتورها و … استفاده میشود.
ماشین لرنینگ میتواند با مجموعه دادههای کوچک هم عملکرد خوبی داشته باشد اما در یادگیری عمیق برای دستیابی به دقت و عملکرد بالا با مقادیر زیادی داده نیاز است. همچنین میتوان گفت که مدلهای یادگیری عمیق نیاز به سخت افزارهای پردازشی قوی تر دارند (برای آشنایی با انواع سخت افزار مناسب برای هوش مصنوعی اینجا کلیک کنید.)
ماشین لرنینگ در یک نگاه
یادگیری ماشینی یک زمینه پویا و به سرعت در حال تحول است که صنایع را متحول می کند و زندگی روزمره ما را بهبود میبخشد. از مراقبت های بهداشتی و مالی گرفته تا سرگرمی و حمل و نقل، کاربردهای یادگیری ماشینی گسترده و متنوع هستند. با پیشرفت فناوری، پتانسیل یادگیری ماشینی برای هدایت نوآوری و حل مشکلات پیچیده همچنان در حال رشد است. درک اصول اولیه یادگیری ماشین، تاریخچه، برنامه های کاربردی و روندهای آینده آن برای هر کسی که به دنبال حرکت در چشم انداز فناوری مدرن است ضروری است.