یادگیری ماشین چیست و چرا اینقدر مهم است؟
اجازه دهید این مطلب را با یک سوال شروع کنیم.
اولین تصویری که در ذهن شما پس از شنیدن هوش مصنوعی شکل میگیرد چیست؟


اکثر مردم احتمالا یاد فیلمهای هالیوودی مثل ترمیناتور یا Oblivion یا هر چیز فانتزی دیگری مثل اینکه هوش مصنوعی قرار هست در آینده نسل بشر رو از بین ببرد خواهند افتاد. اما در واقع هوش مصنوعی در حال حاضر و برای دههاست که اطراف ما وجود دارد؛ مانند اسپم ایمیل شما!
اجازه دهید ابتدا تکلیف دو اصطلاح که بسیار در حوزه هوش مصنوعی میشنوید و معمولا با یکدیگر اشتباه گرفته میشوند را مشخص کنم: ۱) هوش مصنوعی، ۲) یادگیری ماشین،
هوش مصنوعی (Artificial Intelligence) یک علم مانند ریاضی و یا زیستشناسی است که در آن به مطالعه روشهای ساخت برنامههای هوشمند و ماشینهایی که توانایی حل خلاق مساله را دارند میپردازد.
یادگیری ماشین (Machine Learning) یک شاخه از علم هوش مصنوعی است که در آن سیستمها را قادر خواهد ساخت که تا مساله را بدون اینکه صریحا برنامهنویسی شوند با استفاده از الگوریتمهای یادگیری حل کنند. در ML الگوریتمهای متعددی (مانند الگوریتم شبکه عصبی) برای حل مساله وجود دارد.
چرا از یادگیری ماشین استفاده میکنیم؟
بیایید برنامه اسپم ایمیل را در نظرم بگیریم. اگر قرار بود این الگوریتم را با استفاده از تکنیکهای مرسوم و بصورت مستقیم برنامهنویسی کنیم چه اتفاقی میافتاد؟
احتمالا باید یک لیست بسیار بلند و پیچیده از قوانین و الگوها بصورت دستی تهیه میشد که هرکدام الگوریتمی مجزا برای تشخیص ایمیل اسپم دارد. و این لیست بایستی بصورت مداوم بروزرسانی شود و همه این موارد باید توسط شخص انجام میشد. تصور چنین دنیایی در حال حاضر کمی عجیب است، نه؟ اگر اینطور میبود احتمالا گوگل باید یک تیم بسیار بزرگ فقط برای اسپم ایمیل میداشت.
در طرف مقابل، فیلتر اسپم بر اساس یادگیری ماشین به طور خودکار یاد میگیرد کدام کلمات و عبارات الگوی خوبی برای ایمیلهای اسپم هستند و هر کاربر چنانچه ایمیلهایی را مناسب تشخیص ندهد یا اصطلاحا فلگ کند، این الگوریتم الگوهای جدید را استخراج کرده و روش تشخیص ایمیلهای اسپم را برای آن کاربر شخصیسازی میکند.
همانطور که مشاهده میکنید این برنامه بسیار کوتاهتر، و احتمالا دقیقتر است.
یکی از جاهای دیگری که یادگیری ماشین بیشتر میدرخشد، مسایلی هستند که حل آنها با روشهای مرسوم بسیار پیچیده است، و یا روش مشخصی وجود ندارد. تصور کنید میخواهید یک برنامه بنویسید که از روی صوت عدد یک و دو را تشخیص دهد. برای اینکار باید یک برنامه نویسی سنگین با اندازه گیری طول موج این دو کلمه انجام دهید. حالا تصور کنید میخواهید میلیونها کلمه در زبانهای مختلف را با همین روش برای نوشتن یک برنامه تشخیص گفتار که در محیطهای شلوغ هم کار کند بنویسید. اگر قرار بود با این روش این برنامه نوشته شود مطمئن باشید هیچکدام از گوشیهای ما قابلیت دستیار صوتی را نمیداشت چرا که پیادهسازی این اپلیکیشن با این روش بسیار هزینهبر میبود. در حال حاضر (حداقل تا به الان) بهترین روش برای این مساله الگوریتمهایی هستند که خودشان از روی دیتا یاد میگیرند.
درنهایت یادگیری ماشین میتواند به انسانها کمک کند تا بهتر یاد بگیرند! الگوریتمهای یادگیری ماشین را میتوان رصد کرد و نتایج و الگوهایی که در آنها یافت شده را آموخت. برای نمونه بکارگیری روشهای یادگیری در بازارهای مالی فهم بهتری از روندها، الگوهای بازار و مسایل مالی به ما میدهد که پیش از این قابل درک نبوده و همین امر درک بهتری از مساله به ما میدهد.


استفاده از تکنیک های یادگیری ماشین برای کاوش در حجم زیادی از دادهها میتواند به کشف الگوهایی که پیش از این آشکار نبودهاند کمک کند. به این کار داده کاوی می گویند.
به طور خلاصه، یادگیری ماشین برای موارد زیر کاربرد دارد:
- مسایلی که راهحلهای موجود نیاز به پیادهسازی قوانین و الگوهای زیادی دارد: در حالی که با کمک یادگیری ماشین میتوان آنها را بهتر کد کرد و عملکرد برنامه هم بهتر خواهد بود.
- مسایل پیچیدهای که که هیچ راهحل مناسب و معقولی با روشهای مرسوم برنامهنویسی در آنها وجود ندارد، در حالی که الگوریتمهای یادگیری میتوانند اینگونه مسایل را حل کنند.
- محیطهای پر نوسانی که دیتای موجود در آنجا مدام در حال تغییر است، در حالیکه سیستمهای یادگیری میتوانند سریعتر با دیتای جدید سازگار شوند.
- استخراج دانش در مورد مسایل پیچیده و حجم دیتای بالا
امیدوارم از این نوشته لذت برده باشید در مقاله بعدی در مورد انواع روشهای یادگیری ماشین صحبت خواهد شد.