یادگیری ماشین چیست؟ آشنایی با مفاهیم ماشین لرنینگ (Machine learning)
خیلیها معتقدند هوش مصنوعی از رشتههایی است که میتواند آینده جهان را متحول کند؛ اگر بخواهیم صادق باشیم، خیلی هم بیراه نیست. به دلیل همین تاثیر عمیق، در این مقاله از بلاگ آسا قصد داریم در مورد یکی از زیر شاخههای مهم هوش مصنوعی (Artificial intelligence)، یعنی یادگیری ماشین (Machine learning) صحبت کنیم. تلاش ما بر این است که هر آنچه که شما باید برای آشنایی مقدماتی با حوزه یادگیری ماشین بدانید را در اختیارتان قرار دهیم. با ما همراه باشید.
یادگیری ماشین چیست؟
برای اولین بار آرتور ساموئل (Arthur Samuel)، یکی از پیشگامان حوزه هوش مصنوعی در سال ۱۹۵۰ میلادی از عبارت «یادگیری ماشین» استفاده کرد. ماشین لرنینگ که به اختصار ML نامیده میشود، شاخهای از علوم کامپیوتر و هوش مصنوعی (AI) است. به عبارت ساده، در یادگیری ماشینی تلاش میشود که کامپیوترها هم مانند انسانها بتوانند به تدریج یاد بگیرند و پیشرفت کنند.
در واقع با استفاده از ماشین لرنینگ، کامپیوترها میتوانند با استفاده از دادههای تاریخی، حالتهای جدید را پیشبینی کنند و هر چه مقدار این دادهها بیشتر باشد، دقت ماشین هم افزایش پیدا میکند. جالب است بدانید، سیستمهای پیشنهاددهنده، جستجوگرهای صدا، پردازشگرهای تصویر و محصولاتی از این دست، همگی از کاربردهای مهم ماشین لرنینگ هستند.
چرا ماشین لرنینگ مهم است؟
بسیاری از شرکتهای پیشرو امروزی، مانند فیسبوک، گوگل و اوبر، یادگیری ماشینی را یکی از تمرکزهای اصلی خود قرار دادهاند. اهمیت این حوزه، در این است که درباره روند رفتار مشتری و الگوهای عملیاتی تجاری به شرکتها دید میدهد و همچنین باعث توسعه محصولات جدید میشود. این حوزه همچنین برای بسیاری از شرکتها به یک مزیت رقابتی مهم تبدیل شده است.
مقایسه ۴ نوع مختلف یادگیری ماشین
ماشین لرنینگ کلاسیک، بر اساس اینکه الگوریتمهایشان چطور یاد میگیرند در پیشبینی دقیقتر باشند، دستهبندی میشوند که در ادامه به صورت لیست این موارد را معرفی میکنیم:
- یادگیری نظارتی
- یادگیری بدون نظارت
- یادگیری نیمه نظارتی
- یادگیری تقویتی
دانشمندان داده، بسته به نوع دادهای که قصد پیشبینی آن را دارند، یکی از این ۴ نوع ماشین لرنینگ را انتخاب میکنند. در ادامه کمی درباره هر کدام از اینها توضیح میدهیم.
یادگیری نظارتی
Supervised learning یا همان یادگیری نظارتی، نوعی از یادگیری ماشینی است که در آن دانشمندان داده، دادههای برچسبگذاری شده و متغیرهایی که باید برای این برچسبگذاری در نظر گرفته شوند را در اختیار ماشین قرار میدهند. ماشین، دادهها و برچسبهایشان را بررسی میکند تا روش برچسبگذاری را یاد بگیرد. سپس دادههای بدون برچسب را بر اساس الگویی که یاد گرفته، برچسبگذاری میکند. در واقع ورودی و خروجی الگوریتم در روش یادگیری نظارتی مشخص میشود.
یادگیری بدون نظارت
Unsupervised learning یا همان یادگیری بدون نظارت روشی است که در آن دادهها بدون هیچ برچسب خاصی به ماشین داده میشوند. ماشین با بررسی ویژگیهای مختلف دادهها ارتباطات بینشان را پیدا کرده و آنها را دستهبندی میکند.
یادگیری نیمه نظارتی
Semi-supervised learning یا یادگیری نیمه نظارتی، در واقع ترکیبی از دو روش قبلی است. در این روش، هم دادههای برچسبگذاری شده و هم دادههای بدون برچسب در اختیار ماشین قرار داده میشود. ماشین باید بر اساس چیزی که از دادههای برچسبگذاری شده یاد میگیرد، ابتدا دادههای بدون برچسب را برچسبگذاری کند و سپس با بررسی کل دادههای موجود به تصمیمگیری نهایی برسد.
یادگیری تقویتی
Reinforcement learning یا همان یادگیری تقویتی، به طور کلی بر اساس سیستم پاداش و تنبیه کار میکند. دانشمندان داده معمولاً از یادگیری تقویتی برای آموزش به ماشین برای تکمیل یک فرآیند چند مرحلهای استفاده میکنند که قوانین کاملاً مشخصی برای آن وجود دارد. در این روش ماشین در تعامل با محیط بازخورد میگیرد و تلاش میکند پاداش دریافتی را بیشینه و تنبیه را کمینه کند. در این روش ماشین اختیار عمل بیشتری نسبت به روشهای قبلی دارد و به تدریج بهترین روش ممکن برای حل مسائل را پیدا میکند.
کاربردهای ماشین لرنینگ
در عصر دیجیتال امروز Machine learning، طیف گستردهای از کاربردها دارد. شاید بتوان گفت سیستمهای توصیهگر یکی از شناخته شدهترین کاربردهای ماشین لرنینگ هستند. وقتی در شبکههای اجتماعی مختلف مانند اینستاگرام روی نوع خاصی از پستها توقف میکنید و آنها را میخوانید، سیستم توصیهگر یاد میگیرد که شما این نوع از محتوا را دوست دارید. بنابراین محتواهای مشابه آنها را بیشتر به شما نشان میدهد.
همچنین سیستمهای مدیریت مشتریان (CRM)، هوش تجاری (BI)، سیستمهای اطلاعاتی منابع انسانی (HRIS)، اتومبیلهای خودران و دستیارهای مجازی از دیگر مثالهای شناخته شده و کاربردهای یادگیری ماشین در زندگی روزمره ما هستند.
چطور بهترین مدل ماشین لرنینگ را انتخاب کنیم؟
اگر با دیدگاه استراتژیک به یادگیری ماشین نگاه نکنیم، انتخاب مدل ماشین لرنینگ درست برای حل یک مشکل میتواند فرآیند زمانبری باشد. به همین دلیل در ادامه ۴ گام مهم برای انتخاب مدل درست را ذکر کردهایم.
- گام ۱: مشکل را با ورودیهای داده بالقوهای که باید برای راه حل در نظر گرفته شوند، تراز کنید. این مرحله به کمک دانشمندان داده و کارشناسانی نیاز دارد که درک عمیقی از مشکل دارند.
- گام ۲: دادهها را جمعآوری، قالببندی و در صورت لزوم برچسبگذاری کنید. این مرحله معمولاً توسط دانشمندان داده و کسانی که دادهها را آماده میکنند (data wrangler) انجام میشود.
- گام ۳: تصمیم بگیرید که کدام الگوریتم یا الگوریتمها مناسب هستند و آنها امتحان کنید تا متوجه شوید چقدر خوب کار میکنند. این گام معمولا توسط دانشمندان داده انجام میشود.
- گام ۴: به تنظیم دقیق خروجیها تا رسیدن به سطح قابل قبولی از دقت ادامه دهید. این مرحله معمولاً توسط دانشمندان داده با بازخورد کارشناسانی که درک عمیقی از مشکل دارند، انجام میشود.
آینده یادگیری ماشین چگونه است؟
با این که الگوریتمهای یادگیری ماشین از دههها قبل وجود داشتهاند، اما با توجه به رشد هوش مصنوعی به محبوبیت جدیدی دست یافتهاند. به ویژه مدلهای یادگیری عمیق که پیشرفتهترین برنامههای کاربردی هوش مصنوعی با استفاده از آنها ایجاد شدهاند. با افزایش اهمیت یادگیری ماشینی برای عملیات تجاری و کاربردیتر شدن هوش مصنوعی در تنظیمات سازمانی، جنگ و رقابت بین سازمانهای بزرگی که از ماشین لرنینگ استفاده میکنند، فقط تشدید خواهد شد.
پیشنهاد مطالعه: انبار داده چیست؟
تحقیقات مداوم در زمینه یادگیری عمیق و هوش مصنوعی به طور فزایندهای روی توسعه برنامههای کاربردی عمومیتر متمرکز شده است. مدلهای هوش مصنوعی امروزی به آموزش گستردهای نیاز دارند تا الگوریتمی تولید کنند که برای انجام یک کار کاملا بهینه شده باشد. اما برخی از محققان در حال بررسی راههایی برای انعطافپذیرتر کردن مدلها هستند و همچنین به دنبال تکنیکهایی هستند که به ماشین اجازه میدهد تا زمینههای آموختهشده از یک کار را در وظایف مختلف آینده اعمال کند. با وجود این شرایط میتوان گفت آینده از آن هوش مصنوعی و زیرشاخههای آن مانند ماشین لرنینگ است. داشتن مهارت و شغلهای مرتبط با این حوزهها هم میتواند جذاب و پولساز باشد.
رشتههای مرتبط با یادگیری ماشین چیست؟
یادگیری ماشین یک شاخه مهم از هوش مصنوعی است که با چند زیر شاخه شناختهشده و محبوب دیگر هم میتواند همپوشانی داشته باشد. یادگیری عمیق یا دیپ لرنینگ، شبکههای عصبی و پردازش زبانهای طبیعی از جمله زیر شاخههای مرتبط با یادگیری ماشین به حساب میآیند.
۱۰ نمونه از کاربردهای Machine learning در زندگی واقعی
۱- مراقبتهای بهداشتی و تشخیص پزشکی
ماشین لرنینگ با مسائلی مثل پیشآگهی (Prognosis) (به معنی «پیشبینی آینده یک بیماری») و تشخیصی (Diagnostic) در پزشکی و مراقبت های بهداشتی سروکار دارد. پیشرفتهای بیماری، نظارت داشتن روی بیمار و مدیریت او، تجزیه و تحلیل دادهها و مدیریت دادههای نادرست پزشکی تنها برخی از نمونههای کاربردهای یادگیری ماشینی در مراقبتهای بهداشتی هستند.
۲- تشخیص چهره در تصاویر
یکی دیگر از کاربردهای مهم ماشین لرنینگ در زندگی روزمره، تشخیص چهره است؛ به این معنی که ماشین میتواند اجزای بدن و چهره انسان را در محیطهای مختلف تشخیص دهد. یکی از برجستهترین اثرات این کارکرد این است که به راحتی میتوانیم چهره تروریستها و افراد خطرناک را در سراسر جهان شناسایی کنیم تا جهان به جای امنترین تبدیل شود.
۳- پیشبینیهای رفت و آمد
در پلتفرمهایی که از نقشهها و مسیریابی استفاده میکنند، Machine learning از طریق الگوریتمهای ML کمک میکنند که آدم وقتشناستری باشیم. با این الگوریتمها سریعترین مسیر و بهترین راه ممکن را با ترافیک کمتر پیشنهاد میکنند و باعث میشوند که زمان کمتری در ترافیک گیر کنیم. این موضوع زمانی که پای ماشینهای آتشنشانی و آمبولانسها به میان میآید، بسیار حیاتیتر میشود و میتواند زندگی افراد بیشتری را نجات دهد.
۴- امنیت عمومی
یادگیری ماشینی میتواند ایمنی جامعه را با پیشگیری، کاهش و پاسخ به جرایم بهتر کند. جالب است بدانید چند وقت پیش، ۳۰ دانشمند داده و مهندس ماشین لرنینگ با یک سازمان غیردولتی از طریق نقشههای حرارتی مبتنی بر ماشین لرنینگ، برای شناسایی نقاط مهم آزار جنسی همکاری کردند و برنده جایزه Safecity شدند.
۵- کشاورزی
یادگیری ماشینی، کشاورزی دقیق و کارآمد را با نیروهای انسانی کمتر برای تولید با کیفیت بالا ممکن میکند. یادگیری ماشینی همچنین بینشها و توصیههای ارزشمندی را درباره محصولات ارائه میدهد تا کشاورزان بتوانند ضررهای خود را به حداقل برسانند.
۶- دستیارهای هوشمند
سیری، الکسا و دستیار گوگل تنها برخی از دستیارهای هوشمندی هستند که در زندگی روزمره برای انجام فعالیتهایی مانند تنظیم یادآورها، بررسی آب و هوا و غیره استفاده میکنیم. دستیارهای هوشمند همچنین باعث میشوند افرادی که تنها زندگی میکنند، حس تنهایی کمتری داشته باشند.
۷- صنعت و سیاستگذاری دولتی
استفاده از ماشین لرنینگ به مقامات کمک میکند تا حجم عظیمی از دادههای تولید شده توسط دستگاههای نظارت عمومی را ردیابی و مدیریت کنند. تجزیه و تحلیل دادهها به صورت بلادرنگ به پیشگیری از ناهنجاریها و تهدیدات کمک میکند و باعث میشود سازمانهای مجری قانون، مجرمان و کودکان گم شده را راحتتر ردیابی و پیدا کنند.
۸- امنیت محل کار
اپلیکیشنهای مبتنی بر ماشین لرنینگ، با کاهش حوادث محل کار، شناسایی کارکنان بیمار به هنگام ورود به محل کار و کمک به سازمانها در مدیریت بلایای طبیعی، ایمنی محل کار را افزایش میدهند.
۹- حفاظت از محیط زیست
الگوریتمهای یادگیری ماشینی میتوانند به افزایش پایداری محیطی کمک کنند. پروژه Green Horizon IBM یک مثال خوب است که در آن از آمارهای زیست محیطی به دست آمده از دستگاهها و حسگرهای مختلف، برای پیشبینی آلودگی محیط زیستی استفاده میشود. هدف از این پروژهها کاهش اثرات زیست محیطی است.
۱۰- امنیت سایبری
برنامههایی مانند PayPal و GPay از یادگیری ماشین برای ردیابی تراکنشها و تمایز بین تراکنشهای غیرقانونی و قانونی استفاده میکنند. به این ترتیب، ماشین لرنینگ با جلوگیری از کلاهبرداری پولی آنلاین، امنیت سایبری را به حداکثر میرساند.
مهمترین مهارتها برای یادگیری ماشین
اگر قصد دارید وارد دنیای یادگیری ماشینی شوید، باید چند مهارتهای خود را که در رابطه با تجزیه و تحلیل دادهها هستند، تقویت کنید. باید بتوانید حداقل با یک زبان برنامهنویسی کار کنید. ماشین لرنینگ در واقع دستکاری دادهها به روشی بسیار خاص است. شما باید الگوریتمها را نمونهسازی کنید و مکانیسمهای داخلی پشت مفاهیم ML را درک کنید. بلد بودن برنامهنویسی در این امر ضروری است.
با این حال، زبانی که یاد میگیرید در اولویت بعد از تسلط بر مفاهیم اولیه یادگیری ماشین قرار دارد.
بدون دانش پایهای از آمار، یادگیری عمیق، فرآیند و طراحی سیستم (و غیره) هرگز متوجه نمیشوید که چگونه مدلهای مناسب را انتخاب کنید یا مشکلات ماشین لرنینگ را حل کنید. بنابراین تئوری ماشین لرنینگ را در صدر فهرست کارهای خود قرار دهید، سپس یادگیری یک زبان برنامهنویسی مناسب ماشین لرنینگ را شروع کنید. اما چه زبانهایی؟ در ادامه زبانهای برنامهنویسی مهم مرتبط با حوزه یادگیری ماشین را آوردهایم.
۵ زبان برنامهنویسی کاربردی در زمینه یادگیری ماشین
۱- زبان برنامهنویسی R برای یادگیری ماشین
R یک زبان برنامهنویسی کاربردی است که اغلب برای تجزیه و تحلیل دادهها و تصویرسازی آنها استفاده میشود. این زبان بین دانشمندان، آماردانان و در کل جامعه دانشگاهی محبوب است.
در ماشین لرنینگ، R اغلب به عنوان یک ابزار تکمیلی برای پشتیبانی از زبانهای دیگر استفاده میشود. با این حال، به خودی خود برای انجام کارهایی مانند تجزیه و تحلیل احساسات هم محبوب است. زبان R معمولاً در زمینههای علمی مثل مهندسی زیستی (طراحی و آزمایش تجهیزات پزشکی)، بیوانفورماتیک (مطالعه حجم زیادی از دادههای بیولوژیکی) و اکولوژی استفاده میشود. به طور کلی برای هر کار یادگیری ماشینی که از نظر آماری سنگین است، زبان R میتواند گزینه مناسبی باشد.
۲- زبان برنامهنویسی ++C برای ماشین لرنینگ
++C یک زبان برنامهنویسی شی گرا و چند منظوره است. این زبان، به دلیل اینکه زبان سطح پایینی است، کاربردهای زیادی دارد. در حال حاضر برای ایجاد برنامههای دسکتاپ، بازیهای ویدیویی و حتی برنامهنویسی مریخنوردهای فضایی از این زبان برنامهنویسی استفاده میشود.
در حوزه یادگیری ماشینی، کاربران سی پلاس پلاس میتوانند الگوریتمها را دستکاری و منابع حافظه را در سطح جزئیات مدیریت کنند. به همین دلیل است که برای حوزههایی مانند هوش مصنوعی که سرعت در تجزیه و تحلیل مجموعه دادههای بزرگ حیاتیست، بسیار مناسب است.
از طرف دیگر، از آنجایی که زبان برنامهنویسی ++C کنترل دقیقی بر عملکرد ارائه میکند، در زمینههایی مانند رباتیک و بازی که نیاز به پاسخگویی بالا دارند هم، محبوب است.
پیشنهاد مطالعه: دیتا ماینینگ چیست؟
۳- زبان برنامهنویسی جاوا برای ماشین لرنینگ
جاوا هم مانند ++C یک زبان شی گرا است. این زبان گرچه در سطح پایینی کار نمیکند، اما سینتکسش مثل سی پلاس پلاس پیچیده است. جاوا همچنین یک زبان برنامهنویسی چند منظوره است که سابقه طولانیای در حوزه حرفهای دارد. این زبان معمولاً برای ایجاد اپلتها برای صفحات وب، سیستمهای سازمانی در مقیاس بزرگ و برنامههای اندرویدی استفاده میشود.
یکی از ویژگیهای برجسته جاوا این است که بسیار مقیاسپذیر است. این ویژگی آن را برای ایجاد الگوریتمهای پیچیده و در مقیاس بزرگ ماشین لرنینگ به یک گزینه عالی تبدیل میکند. بسیاری از فریمورکهای بیگ دیتا مانند Hive، هدوپ و اسپارک (که برای ماشین لرنینگ استفاده میشوند) هم مبتنی بر جاوا هستند.
ماشین مجازی جاوا هم به کاربران این امکان را میدهد که ابزارهای ماشین لرنینگ را سریعتر ایجاد و آنها را به سرعت اجرا کنند. به همه این دلایل، غولهای فناوری مانند توییتر، لینکدین و فیسبوک همگی از جاوا برای مدیریت بیگدیتا استفاده میکنند.
۴- زبان برنامهنویسی جاوا اسکریپت برای یادگیری ماشین
برخلاف زبان هایی که تا اینجا بررسی کردیم، جاوا اسکریپت یک زبان سطح بالا است. این بدان معناست که درک نحو کارکرد آن بسیار سادهتر و یادگیری آن آسانتر است. جاوا اسکریپت در ابتدا به عنوان یک زبان برنامهنویسی اسکریپتی طراحی شد. از آن زمان به بعد به یک زبان برنامهنویسی همه منظوره تبدیل شده است که معمولاً در مرورگرها به شکل مواردی مانند پیامهای پاپ آپ یا ساعتهای زنده اجرا می شود.
در حالی که جاوا اسکریپت برای کارهای فرانتاند عالی است، اما در بکاند (یا سمت سرور) هم به کار میرود.
در حوزه ماشین لرنینگ، با این که جاوا اسکریپت فاقد سرعت زبانهای سطح پایین است، اما وباپلیکیشنهای آن برای ماشین لرنینگ مفید هستند. به عنوان مثال، توسعهدهندگان اغلب خروجیهای الگوریتمهای ماشین لرنینگ را به داشبوردهای وب مبتنی بر جاوا منتقل میکنند.
با این حال، این زبان برای کارهای پر زحمت خیلی مناسب نیست. از طرفی در حالیکه Machine learning اغلب نیاز به خرد کردن اعداد مختلط دارد، جاوا اسکریپت دارای عملکردهای ریاضی نسبتاً ابتدایی است.
ناگفته نماند که تعداد کتابخانههای جاوا اسکریپت برای یادگیری ماشین در حال افزایش است.
۵- زبان برنامهنویسی پایتون برای یادگیری ماشین
آخرین زبان در این لیست که میخواهیم دربارهاش صحبت کنیم، پایتون است. یک زبان برنامهنویسی سطح بالا و چند منظوره که یادگیری آن آسان است. محبوبیت این زبان در سالهای اخیر افزایش یافته و در زمینههایی مانند تجزیه و تحلیل دادهها و یادگیری ماشینی از ++C هم جلو زده است.
البته گفتنیست، پایتون به عنوان یک زبان سطح بالا (مانند جاوا اسکریپت)، کندتر از برخی زبانهای دیگر اجرا میشود. با این وجود زبان برنامهنویسی پایتون مجموعه عظیمی از کتابخانهها برای همه چیز از بازی و جلوههای ویژه گرفته تا تجزیه و تحلیل دادهها، هوش مصنوعی و ماشین لرنینگ دارد که این کندی نسبی را جبران میکند.
حتی اگر در حال حاضر از زبان پیچیدهتری استفاده میکنید، پایتون همچنان ارزش یادگیری دارد.
اما در رابطه با یادگیری ماشینی، پایتون کاربردهای مشابه جاوا دارد. با این حال، اغلب در حوزههای علمیتر و مواردی که تمرکز کمتری بر سازمان دارد مانند تحلیل احساسات و پردازش زبان طبیعی استفاده میشود.
افزایش محبوبیت اخیر پایتون، میتواند نشاندهنده این باشد که این زبان در کنار حوزه علم داده تکامل پیدا کرده است.
بازار کار ماشین لرنینگ در ایران
با یک جستجوی ساده در پلتفرمهای کاریابی موجود، میبینیم که شغلهای مربوط به هوش مصنوعی و Machine learning جزء موقعیتهای شغلی لوکس هستند. موقعیتهای شغلیای که اغلب شرکتهای تکنولوژیکی بزرگ یا دارای فکرهای بزرگ آگهی میکنند. با این حساب قابل حدس است که حاضرند پرداختیهای قابل توجهی هم به حرفهایهای این حوزه داشته باشند. بنابراین ماشین لرنینگ، از آن دسته شغلهایی است که هم در ایران طرفدارهای زیادی دارد و هم شرکتهای بینالمللی خارجی برای کار با افراد کاربلد این حوزه سر و دست میشکنند.
جمعبندی
در این مقاله تلاش کردیم تا هر آن چه که شما برای آشنایی با حوزه ماشین لرنینگ نیاز داشتید را در اختیارتان بگذاریم. نحوه ورود به این حوزه، کاربردها و مهارتهای یادگیری ماشین، آینده ماشین لرنینگ و همچنین وضعیت بازار کار یادگیری ماشین در ایران از مواردی بود که در این مقاله مطالعه کردید. در پایان اگر تمایل به کار در این حوزه دارید، میتوانید روزمه خودتان را از طریق بخش «همکاری با ما» برایمان ارسال کنید.