یادگیری ماشینی چیست و چرا اهمیت زیادی دارد؟
برای یادگیری یک مهارت، ما ابتدا دانش لازم را به دست میآوریم، با دقت تمرین میکنیم و حین این روند بر عملکرد خود نظارت میکنیم. در نهایت، با انجام اینها در آن کار بهتر میشویم. یادگیری ماشینی یکی از مهمترین شاخههای هوش مصنوعی است که اساسا چنین فرایندی را برای کامپیوترها امکانپذیر میکند. در ادامه به این فناوری و اهمیت آن میپردازیم.
آیا کامپیوترها میتوانند یاد بگیرند؟
تعریف کردن هوش کار سختی است. همهی ما میدانیم که منظورمان از هوش چیست اما توصیف دقیق آن کار سادهای نیست. صرفنظر از احساس و خودآگاهی، یک توصیف دقیق برای هوش میتواند توانایی یادگیری مهارتهای جدید، جذب دانش و به کار بردن آنها در موقعیتهای جدید برای رسیدن به نتیجهی مطلوب باشد.
با توجه به مشکل بودن تعریف هوش، تعریف دقیق هوش مصنوعی هم کار سادهای نخواهد بود. به زبان بسیار ساده، اگر یک دستگاه محاسباتی قادر به انجام کاری باشد که معمولا نیازمند استدلال انسانی و هوش است، میگوییم که از هوش مصنوعی استفاده میکند.
بهعنوان مثال، اسپیکرهای هوشمند مانند آمازون اکو و گوگل نست میتوانند دستورهای شفاهی ما را بشنوند، صداها را بهعنوان کلمات تفسیر کنند، معنای کلمات را استخراج کنند و در نهایت سعی میکنند خواستههای ما را برآورده کنند. در این میان میتوانیم به درخواستهایی مانند پخش موسیقی، جواب یک سؤال یا خاموش کردن چراغها اشاره کنیم.
در همهی تعاملات، به جز چیزهای بسیار ساده، این درخواستها به کامپیوترهای موجود در فضای ابری منتقل میشود که بیشترین پردازشهای سنگین مربوط به هوش مصنوعی را انجام میدهند. فرمان صوتی تجزیه میشود، معنا استخراج میشود، پاسخ آماده میشود و در نهایت این اطلاعات به اسپیکر هوشمند راه پیدا میکند.
یادگیری ماشینی اساس اکثر سیستمهای هوش مصنوعی است که با آنها در تعامل هستیم. برخی از این سیستمها به شکل گجتهای هوشمند موجود در خانهها هستند و برخی دیگر بخشی از خدماتی هستند که به صورت آنلاین استفاده میکنیم. پیشنهادهایی که یوتیوب برای پخش ویدیوهای جدید ارائه میکند و پلیلیستهایی که به طور خودکار در اسپاتیفای ایجاد میشوند مبتنی بر یادگیری ماشینی هستند. موتورهای جستوجو از یادگیری ماشینی استفاده میکنند و فروشگاههای آنلاین برای پیشنهاد خریدهای جدید بر اساس فعالیتهای کاربران از این فناوری بهره میبرند.
کامپیوترها میتوانند به مجموعهی بزرگی از دادهها دسترسی داشته باشند. آنها میتوانند کارهایی که برای انسانها سخت و بسیار وقتگیر است را با سرعت زیاد و به دفعات انجام دهند. بنابراین اگر یادگیری نیاز به دانش، تمرین و بازخورد عملکرد دارد، پس کامپیوتر باید یک کاندیدای ایدئال باشد.
البته این موضوع به معنای آن نیست که کامپیوتر میتواند واقعا به معنای انسانی فکر کند یا اینکه درک و تفکر مشابه انسانها داشته باشد. اما میتواند یاد بگیرد و با تمرین کردن بهتر میشود. روی هم رفته مهندسان برای اینکه بتوانند مفاهیم جدید را به کامپیوترها یاد دهند باید چه چالشهایی را پشت سر بگذارند؟
شبکههای عصبی
مغز حیوانات شبکهای از نورونها را در خود جای داده است. نورونها میتوانند سیگنالها را طریق سیناپس به نورونهای دیگر منتقل کنند. این اقدام کوچک که میلیونها بار تکرار میشود، باعث ایجاد فرایندهای فکری و خاطرات ما میشود.
با الهام از شبکههای عصبی بیولوژیکی، شبکههای عصبی مصنوعی ایجاد شدند تا برخی از ویژگیهای همتایان ارگانیک خود را تقلید کنند. از دههی ۱۹۴۰، سختافزارها و نرمافزارهایی توسعه داده شدهاند که شامل هزاران یا میلیونها «گره» (Node) هستند. این گرهها، مانند نورونها، سیگنالها را از گرههای دیگر دریافت میکنند. آنها همچنین میتوانند سیگنالهایی را برای ارائه به دیگر گرهها ایجاد کنند. این گرهها به طور همزمان قادر به ارسال و دریافت سیگنال از گرههای متعددی هستند.
اگر یک حیوان به این نتیجه برسد که حشرات زرد و سیاه رنگ در حال پرواز همیشه نیش دردناکی میزنند، آن حیوان از تمام حشرات زرد و سیاه در حال پرواز اجتناب خواهد کرد. مگس گلزار (یک نوع زنبور) از این ترس استفاده میکند. این حشره مانند زنبور بیعسل زرد و سیاه است اما نیش ندارد. حیواناتی که با زنبور بیعسل برخورد داشتهاند و یک درس دردناک یاد گرفتهاند، دیگر کاری با مگس گلزار ندارند. آنها یک حشره با رنگ زرد و سیاه میبینند و تصمیم میگیرند که وقت عقبنشینی است. اما این واقعیت که مگس گلزار در یک محدودهی خاص در هوا میتواند شناور باقی بماند، حتی در نظر گرفته نمیشود؛ ولی زنبور بیعسل نمیتواند.
اهمیت پرواز و راهراه سیاه تمام چیزهای دیگر را زیر سایهی خود میبرد. اهمیت این سیگنالها «وزندهی» به آن اطلاعات نامیده میشود. شبکههای عصبی مصنوعی هم میتوانند از وزندهی استفاده کنند. یک گره نباید تمام ورودیهای خود را به طور برابر در نظر بگیرد و باید برخی سیگنالها را نسبت به دیگران ترجیح دهد.
یادگیری ماشینی از آمار برای یافتن الگوها در مجموعه دادههایی که بر روی آنها آموزش دیده، استفاده میکند. یک مجموعه داده ممکن است شامل کلمات، اعداد، تصاویر، تعاملات کاربر مانند کلیک در وبسایت یا هر چیز دیگری باشد که میتواند به صورت دیجیتالی ثبت و ذخیره شود. سیستم باید بخشهای اساسی اطلاعات دریافتی را مشخص کند و سپس آنها را با الگوهایی که در مجموعهی داده شناسایی کرده تطبیق دهد.
اگر یک سیستم میخواهد یک گل را شناسایی کند، باید طول ساقه، اندازه و شکل برگ، رنگ، تعداد گلبرگها و دیگر چیزها را تشخیص دهد. البته در واقعیت، سیستم به اطلاعات بسیار بیشتری نیاز پیدا میکند. زمانی که سیستم جزئیات نمونهی را به دست میآورد، فرایند تصمیمگیری را آغاز میکند و با این کار از بین دادههای موجود به نتیجه میرسد.
یک سیستم یادگیری ماشینی با بهروزرسانی الگوریتمهای خود از اشتباهات انجام شده درس میگیرد تا بتواند مشکلات مربوط به استدلال خود را اصلاح کند. پیچیدهترین نوع شبکههای عصبی، شبکههای عصبی عمیق هستند. از نظر مفهومی، این سیستمها از تعداد زیادی شبکههای عصبی تشکیل شدهاند که بر روی یکدیگر قرار گرفتهاند. همین فرایند به سیستم این توانایی را میدهد که حتی الگوهای کوچک را در فرایندهای تصمیمگیری خود شناسایی و از آنها استفاده کند.
این لایهها معمولا برای وزندهی اطلاعات استفاده میشوند. به اصطلاح لایههای مخفی میتوانند بهعنوان لایههای «متخصص» عمل کنند. آنها سیگنالهای وزندهی شده را دربارهی یک ویژگی واحد از موضوع تست ارائه میدهند. بهعنوان مثال دربارهی گل، ممکن است لایههای مخفی برای شناسایی شکل برگها یا اندازهی جوانهها استفاده شوند.
انواع مختلف یادگیری
سه تکنیک اصلی برای آموزش سیستمهای یادگیری ماشینی وجود دارد؛ یادگیری با نظارت، یادگیری بدون نظارت و یادگیری تقویتی.
یادگیری با نظارت
یادگیری با نظارت رایجترین روش برای آموزش سیستمها است. در یادگیری تحت نظارت، دادهها قبل از ارائه به سیستم برچسبگذاری و ساختاربندی میشوند تا معیارهای استفادهشده در فرایند تصمیمگیری برای سیستم یادگیری ماشینی تعریف شود. بهعنوان مثال یوتیوب برای پیشنهاد ویدیوهای جدید به کاربران از این روش بهره میبرد.
یادگیری بدون نظارت
یادگیری بدون نظارت نیازی به آمادهسازی دادهها ندارد. این یعنی دادهها از قبل برچسبگذاری نمیشوند. سیستم دادهها را اسکن میکند و الگوها را شناسایی میکند. تکنیکهای یادگیری بدون نظارت برای امنیت فضای مجازی با میزان موفقیت بالا به کار گرفته شدهاند. سیستمهای تشخیص نفوذ که با یادگیری ماشینی تقویت شدهاند، میتوانند فعالیت شبکههای غیرمجاز را تشخیص دهند زیرا با الگوهای رفتاری مشاهده شده از طرف کاربران مجاز مطابقت ندارند.
یادگیری تقویتی
یادگیری تقویتی در مقایسه با دو روش دیگر سن و سال کمتری دارد. به زبان ساده، یک الگوریتم یادگیری تقویتی از آزمون و خطا و بازخورد برای رسیدن به یک مدل بهینه از رفتار به منظور دستیابی به یک هدف معین استفاده میکند. این امر مستلزم بازخورد افرادی است که به تلاشهای سیستم با توجه به تأثیر مثبت یا منفی رفتار آن در رسیدن به هدف، امتیاز میدهند.
جنبهی کاربردی هوش مصنوعی
به دلیل کاربردهای زیادی که یادگیری ماشینی در حوزههای مختلف پیدا کرده، از آن تحت عنوان «جنبهی کاربردی هوش مصنوعی» یاد میکنند. سیستمهای مبتنی بر یادگیری ماشینی ارزش زیادی دارند و فریمورکهای تجاری زیادی برای بهرهگیری از این تکنولوژی ایجاد شده است.
اگر نیاز فوری به این تکنولوژی ندارید و بیشتر میخواهید با استفاده از زبانهای برنامهنویسی مانند پایتون تا حدی با یادگیری ماشینی آشنا شوید، منابع رایگان خیلی خوبی در این زمینه ارائه شده است. بهعنوان مثال میتوانیم به فریمورک متنباز Torch و مجموعهای از ابزارهای ارائه شده در سایت Scikit-Learn اشاره کنیم که با زبان برنامهنویسی پایتون سازگار هستند. برای پردازش تصاویر میتوانید از فریمورک Caffe استفاده کنید و Keras هم یکی دیگر از فریمورکهای یادگیری ماشینی مبتنی بر پایتون محسوب میشود.
منبع: How To Geek