آیا تابهحال به این فکر کردهاید که برنامههای هواشناسی چطور آبوهوای روزهای آینده را پیشبینی میکنند؟ یا ماشینهای بدون سرنشین چطور بدون راننده در خیابانها حرکت میکنند؟ همه اینها با ماشین لرنینگ محقق شدهاند.
ماشین لرنینگ یکی از فناوریهایی است که نقش بسیار مهمی را در قرن ۲۱ بازی میکند و درک آن در عصر حال حاضر دیگر یک انتخاب نیست، بلکه ضرورت است. نظرسنجی Deloitte در سال ۲۰۲۰ نشان داد که ۶۷٪ از شرکتها از ماشین لرنینگ استفاده میکنند؛ همچنین در حالت کلی ۳۳% از شرکتها برنامهای برای استفاده از آن در سالهای آینده دارند؛ اما ماشین لرنینگ چیست و چه کاربردی دارد؟
در این مقاله به معرفی ماشین لرنینگ، نحوه عملکرد و کاربردهای هیجانانگیز آن میپردازیم. اگر میخواهید با جدیدترین فناوری امروز آشنا شوید، تا انتهای مقاله همراه ما باشید.
ماشین لرنینگ (Machine Learning) یا یادگیری ماشین که اغلب بهاختصار ML نامیده میشود، شاخهای از هوش مصنوعی (AI) و علوم کامپیوتر است که بر استفاده از دادهها و الگوریتمهایی برای تقلید رفتار انسانها، تمرکز دارد. گاهی افراد اصطلاحات ماشین لرنینگ و هوش مصنوعی را بهجای هم به کار میبرند، درحالیکه یادگیری ماشین زیرشاخهای از هوش مصنوعی است که به رایانهها توانایی یادگیری میدهد.
ماشین لرنینگ به زبان ساده، کامپیوترها را قادر میسازد تا از دادهها بیاموزند و بدون برنامهریزی صریح، تصمیمگیری یا پیشبینی کنند. درحالیکه در برنامهنویسی سنتی، کامپیوتر از مجموعهای از دستورالعملهای از پیش تعریف شده برای انجام یک کار پیروی میکند، در یادگیری ماشین، مجموعهای از مثالها (دادهها) و وظیفهای برای انجامدادن به رایانه داده میشود، اما بعد از آن نحوه انجام کار به آن گفته نمیشود؛ این وظیفه رایانه است که نحوه انجام کار را بر اساس مثالهایی که به آن ارائه شده، تشخیص دهد.
بهعنوانمثال، اگر میخواهیم رایانه تصاویر گربهها را تشخیص دهد، دستورالعملهای خاصی در مورد ظاهر گربه به آن ارائه نمیدهیم. در عوض، ما هزاران تصویر از گربه را به آن نشان داده و به الگوریتم ماشین لرنینگ اجازه میدهیم الگوها و ویژگیهای رایجی را که یک گربه دارد، کشف کند. با گذشت زمان، همانطور که الگوریتم، تصاویر بیشتری را پردازش میکند، در تشخیص گربهها و تصاویری که حتی قبلاً ندیده است، بهتر عمل میکند.
اصطلاح ماشین لرنینگ در زمینه علم داده و هوش مصنوعی برای اولینبار توسط «آرتور ساموئل (Arthur Samuel)»، محققی در شرکت IBM، در دهه ۱۹۵۰ معرفی شد. او با بهکارگیری اصطلاح ماشین لرنینگ، به الگوریتمها و مدلهایی اشاره کرد که میتوانند از تجربیات موجود یاد بگیرند و بهمرور زمان توانایی بهبود عملکرد خود را پیدا کنند.
ماشین لرنینگ اغلب با هوش مصنوعی یا دیپ لرنینگ (Deep Learning) اشتباه گرفته میشود؛ در صورتی که هر یک تعاریف متفاوتی دارند. بیایید نگاهی به تفاوت این اصطلاحات با یکدیگر بیندازیم.
درک نحوه عملکرد ماشین لرنینگ مستلزم بررسی فرایندی گامبهگام است که دادههای خام را به بینشهای ارزشمندی تبدیل میکند. بیایید این روند را تجزیه کنیم:
اولین مرحله در فرایند یادگیری ماشین، جمعآوری دادههاست. دادهها همانند رگی حیاتی در موجودیت ماشین لرنینگ هستند؛ کیفیت و کمیت دادههای شما میتواند مستقیماً بر عملکرد مدلتان تأثیر گذارد. دادهها را میتوان از منابع مختلفی مانند پایگاهدادهها، فایلهای متنی و صوتی، تصاویر و حتی از اینترنت جمعآوری کرد.
پس از جمعآوری، دادهها باید برای یادگیری ماشین آماده شوند. این فرایند شامل سازماندهی دادهها در قالبی مناسب، مانند فایل CSV یا یک database، و اطمینان از مرتبط بودن دادهها با مشکلی است که میخواهید حل کنید.
پیشپردازش دادهها گامی مهم در فرایند ماشین لرنینگ است. این مرحله شامل گذراندن دادهها از یک صافی (حذف موارد تکراری، تصحیح خطاها)، مدیریت دادههای ازدسترفته (از طریق حذف یا جایگذاری دوباره آنها) و عادیسازی دادهها (تبدیل دادهها به فرمتی استاندارد) میشود.
پیشپردازش، کیفیت دادههای شما را بهبود میبخشد و تضمین میکند که مدل یادگیری ماشین شما میتواند آن را بهدرستی تفسیر کند. این مرحله همچنین میتواند دقت مدل شما را به میزان قابل توجهی بهبود دهد.
پس از آمادهشدن دادهها، مرحله بعدی انتخاب مدل یادگیری ماشین است. انواع مختلفی از مدلها از جمله رگرسیون خطی، درخت تصمیم و شبکههای عصبی، برای انتخاب وجود دارد. انتخاب مدل به ماهیت دادههای شما و مشکلی که میخواهید حل کنید، بستگی دارد.
عواملی که در انتخاب مدل باید در نظر گرفته شوند، عبارتاند از اندازه و نوع دادههای شما، پیچیدگی مشکل و منابع محاسباتی موجود.
مرحله بعدی آموزش ماشین با استفاده از دادههای آمادهشده است. آموزش شامل تزریق دادهها به مدل و اجازهدادن به آن برای تنظیم پارامترهای داخلی برای پیشبینی بهتر خروجی است.
در طول آموزش، مهم است که از بیشبرازش (overfitting) و کمبرازش (underfitting) اجتناب کنید. بیشبرازش به معنای ارائه جزئیات بسیار زیاد به مدل است؛ بهطوری که گیج شده و دیگر نتواند درست پیشبینی کند. کمبرازش نیز به این معنی است که مدل با وجود دادههای سادهای که به آن میدهیم، نتواند واکنش درستی نشان دهد.
هنگامی که مدل آموزش داده شد، مهم است که عملکرد آن را قبل از استقرار ارزیابی کنید. این مرحله شامل آزمایش مدل بر روی دادههای جدیدی است که در طول آموزش، ندیده است.
معیارهای رایج برای ارزیابی عملکرد یک مدل عبارتاند از: صحت (برای مسائل طبقهبندی)، دقت و یادآوری (برای مسائل طبقهبندی باینری)، و میانگین مربعات خطا (برای مشکلات رگرسیون).
پس از ارزیابی مدل، ممکن است لازم باشد که هایپر پارامترهای آن را برای بهبود عملکرد آن تنظیم کنید. این فرایند به تنظیم پارامتر یا بهینهسازی هایپر پارامتر معروف است.
تکنیکهای تنظیم هایپر پارامتر شامل جستجوی شبکهای (که در آن ترکیبهای مختلف پارامترها را امتحان میکنید) و اعتبارسنجی متقاطع (که در آن دادههای خود را به زیر مجموعهها تقسیم میکنید و مدل خود را در هر زیر مجموعه آموزش میدهید تا اطمینان حاصل کنید که روی دادههای مختلف به خوبی کار میکند) میشود.
زمانی که مدل آموزش دید و بهینه شد، آماده است تا روی دادههای جدید به پیشبینی بپردازد. این فرایند شامل تزریق دادههای جدید به مدل و استفاده از خروجی مدل برای تصمیمگیری یا تجزیهوتحلیل بیشتر است.
استقرار مدل، شامل ادغام آن در محیط تولیدی است که در آن میتواند دادههای دنیای واقعی را پردازش کند و بینشهای لحظهای ارائه دهد. این فرایند اغلب به عنوان MLO شناخته میشود.
یادگیری ماشین را میتوان بهطورکلی بر اساس ماهیت سیستم یادگیری و دادههای موجود به سه نوع طبقهبندی کرد: یادگیری تحت نظارت، یادگیری بدون نظارت و یادگیری تقویتی. بیایید به هر یک از این موارد بپردازیم:
یادگیری تحت نظارت (ُSupervised Learning) رایجترین نوع ماشین لرنینگ است. در این رویکرد، مدل بر اساس مجموعه داده برچسبگذاری شدهای آموزش میبیند. به عبارت دیگر، دادهها با لیبل یا برچسبی همراه میشوند که مدل سعی در پیشبینی آن دارد.
مدل در طول فرایند آموزش، رابطه میان ورودی (ویژگیها) و خروجی (برچسب) را میآموزد. پس از آموزش، مدل میتواند خروجی را برای دادههای جدیدی که هرگز آنها را ندیده، پیشبینی کند. برای مثال، تصویر گربهای که هرگز ندیده را به او میدهیم و او میتواند تشخیص دهد که این تصویر باید در دسته گربهها، جای گیرد.
نمونههای رایج الگوریتمهای ماشین لرنینگ تحت نظارت شامل رگرسیون خطی برای مسائل رگرسیون و رگرسیون لجستیک، درختهای تصمیمگیری و ماشینهای بردار پشتیبان برای مسائل طبقهبندی است. اگر دوست دارید بیشتر در این باره بدانید، میتوانید در دوره «دوره یادگیری ماشین نظارت شده» شرکت کنید.
از سوی دیگر، یادگیری بدون نظارت (Unsupervised Learning) شامل آموزش مدل بر روی مجموعه دادهای بدون برچسب است. در این روش، مدل، بهتنهایی و بدون کمک خارجی، باید سعی کند تا الگوها و روابط موجود میان دادهها را پیدا کند.
این نوع یادگیری اغلب برای خوشهبندی و کاهش ابعاد استفاده میشود. خوشهبندی شامل دستهبندی دادههای مشابه با هم است، درحالیکه کاهش ابعاد شامل کاهش تعداد متغیرهای تصادفی مورد بررسی، با بهدستآوردن مجموعهای از متغیرهای اصلی است.
نمونههای رایج الگوریتمهای یادگیری بدون نظارت شامل k-means برای مسائل خوشهبندی و تجزیهوتحلیل مؤلفه اصلی (PCA) برای مشکلات کاهش ابعاد است. در دنیای واقعی از این روش در زمینههای مختلف استفاده میشود. برای مثال، در بازاریابی، یادگیری بدون نظارت اغلب برای تقسیمبندی پایگاه مشتری یک شرکت استفاده میشود. با بررسی الگوهای خرید، دادههای جمعیتی و سایر اطلاعات، این الگوریتم میتواند مشتریان را در بخشهایی گروهبندی کند که رفتارهای مشابهی را بدون هیچگونه برچسب قبلی از خود نشان میدهند.
با شرکت در دوره «دوره یادگیری ماشین بدون نظارت» میتوانید اطلاعات بیشتری در اینباره کسب کنید.
یادگیری تقویتی (Reinforcement Learning) نوعی از ماشین لرنینگ است که در آن، ماشین از طریق تعامل با محیط اطراف خود یاد میگیرد که چگونه تصمیم بگیرد. ماشین برای اقداماتی که انجام میدهد، پاداش یا جریمه میشود و هدف از این کار یادگیری بهتر و به حداکثر رساندن کل پاداش است.
برخلاف یادگیری تحت نظارت و بدون نظارت، یادگیری تقویتی بهویژه برای مشکلاتی که دادهها متوالی هستند، مناسب است و تصمیمگیری در هر مرحله میتواند بر نتایج آینده تأثیر بگذارد. نمونههای رایج یادگیری تقویتی شامل بازی، رباتیک، مدیریت منابع و بسیاری موارد دیگر است.
امروزه ماشین لرنینگ، بدون این که متوجه آن شویم، در زندگی ما حضور دارد و در جهت بهبود زندگی روزمره ما تلاش میکند. در زیر چند کاربرد ماشین لرنینگ از دنیای واقعی آورده شده است:
حتماً در پلتفرمهای تماشای آنلاین فیلم مانند نتفلیکس یا سایتهای دانلود فیلم دیدهاید که پس از انتخاب یک فیلم و تماشای آن، پیشنهادهای دیگری را مشابه فیلمی که دیدهاید، به شما ارائه میدهند.
در واقع، سیستمهای پیشنهادی یکی از قابلمشاهدهترین کاربردهای یادگیری ماشین هستند. شرکتهایی مانند نتفلیکس و آمازون از یادگیری ماشین برای تجزیهوتحلیل رفتار گذشته شما و توصیه محصولات یا فیلمهایی که ممکن است دوست داشته باشید، استفاده میکنند.
دستیارهای صوتی مانند سیری، الکسا و دستیار گوگل از یادگیری ماشین برای درک دستورات صوتی شما و ارائه پاسخهای مرتبط استفاده میکنند. آنها به طور مداوم به کمک تعاملاتی که با شما دارند، بیشتر یاد میگیرند و عملکرد خود را تقویت میکنند.
بانکها از ماشین لرنینگ برای شناسایی تراکنشهای تقلبی استفاده میکنند. آنها با تجزیهوتحلیل الگوهای رفتاری عادی و غیرعادی، میتوانند فعالیتهای مشکوک را در زمان واقعی تشخیص دهند.
پلتفرمهای رسانههای اجتماعی از یادگیری ماشین برای کارهای مختلف، از شخصیسازی فید تا فیلتر کردن محتوای نامناسب، بهره میبرند.
ماشینهای بدون سرنشین و خودران جزو جذابترین کاربردهای ماشین لرنینگ هستند. فناوری توسعهدهنده بسیاری از ماشینهای خودران مبتنی بر ماشین لرنینگ، بهویژه دیپ لرنینگ است.
در دنیای یادگیری ماشین، داشتن ابزار مناسب به اندازه درک مفاهیم آن مهم است. این ابزارها که شامل زبانهای برنامهنویسی و کتابخانهها میشوند، چارچوبهایی را برای پیادهسازی و استقرار الگوریتمهای یادگیری ماشین فراهم میکنند. در ادامه برخی از محبوبترین ابزارها در یادگیری ماشین را بررسی میکنیم:
پایتون زبان برنامهنویسی محبوبی برای یادگیری ماشین است که به دلیل سادگی و خوانایی آسان، انتخابی عالی برای مبتدیان به شمار میرود. همچنین دارای اکوسیستمی قوی از کتابخانههاست که برای یادگیری ماشین طراحی شدهاند.
کتابخانههایی مانند NumPy و Pandas برای دستکاری و تجزیهوتحلیل دادهها استفاده میشوند، درحالیکه Matplotlib برای تجسم دادهها به کار میرود. Scikit-learn طیف گستردهای از الگوریتمهای ماشین لرنینگ را ارائه داده و TensorFlow و PyTorch برای ساخت و آموزش شبکههای عصبی استفاده میشوند. برای آموزش ماشین لرنینگ در پایتون لازم است که به طور کامل با برنامهنویسی پایتون آشنا باشید. برای یادگیری پایتون میتوانید در دوره «دوره برنامه نویسی پایتون» آکادمی همراه اول شرکت کنید.
R زبان برنامهنویسی دیگری است که به طور گسترده در یادگیری ماشین بهویژه برای تجزیهوتحلیل آماری استفاده میشود. این اکوسیستم پر از پکیجهایی است که اجرای الگوریتمهای یادگیری ماشین را آسان میکند.
پکیجهایی مانند caret، mlr و randomForest، انواع الگوریتمهای یادگیری ماشین، از رگرسیون و طبقهبندی گرفته تا خوشهبندی و کاهش ابعاد را ارائه میکنند.
TensorFlow کتابخانهای منبعباز قدرتمند برای محاسبات عددی بهویژه برای یادگیری ماشین در مقیاس بزرگ است. این کتابخانه توسط تیم Google Brain توسعهیافته است و از CPU و GPU به صورت همزمان پشتیبانی میکند.
TensorFlow به شما امکان ساخت و آموزش شبکههای عصبی پیچیده را میدهد و همین موضوع آن را به انتخابی محبوب برای برنامههای یادگیری عمیق تبدیل کرده است.
Scikit-learn کتابخانه پایتون است که طیف گستردهای از الگوریتمهای ماشین لرنینگ را برای یادگیری تحت نظارت و بدون نظارت ارائه میدهد. این کتابخانه به لطف API واضح و مستندات دقیقش، معروف شده است.
Scikit-learn اغلب برای دادهکاوی و تجزیهوتحلیل داده استفاده شده و به خوبی با سایر کتابخانههای پایتون مانند NumPy و Pandas ادغام میشود.
شروع سفر یادگیری ماشین لرنینگ میتواند دلهرهآور به نظر برسد، اما با رویکرد و منابع مناسب، هر کسی میتواند این حوزه هیجانانگیز را بیاموزد. در زیر چند مرحله برای شروع مطرح میکنیم:
قبل از اینکه در ماشین لرنینگ غرق شوید، باید پیشنیاز ماشین لرنینگ یعنی مهارتهای ریاضی (بهویژه آمار و جبر خطی) و برنامهنویسی را کسب کنید. زبان برنامهنویسی پایتون به دلیل سادگی و دردسترسبودن کتابخانههای یادگیری ماشین آن، انتخاب مناسبی است. این مهارتها را میتوانید در رشته ماشین لرنینگ دانشگاه یاد بگیرید.
همچنین منابع زیادی برای یادگیری اصول یادگیری ماشین و پایتون وجود دارد؛ بهعنوانمثال، «بوت کمپ هوش مصنوعی و پایتون» نقطه شروع خوبی برای این منظور است. کتاب ماشین لرنینگ مانند «Think Stats» و «دوره سقوط پایتون» نیز میتوانند برای شروع مناسب باشند.
انتخاب ابزار مناسب در یادگیری ماشین بسیار مهم است. پایتون، همراه با کتابخانههایی مانند NumPy، Pandas و Scikit-learn، به دلیل سادگی و تطبیقپذیری آن، گزینههای ایدئالی به نظر میرسند. برای شروع کار با این ابزارها، میتوانید آموزشهای آنلاین را دنبال کنید یا دورههای آموزشی را بگذرانید.
هنگامی که با اصول اولیه آشنا شدید، میتوانید شروع به یادگیری الگوریتمهای ماشین لرنینگ کنید. قبل از اینکه به سراغ الگوریتمهای پیچیدهتر مانند شبکههای عصبی بروید، با الگوریتمهای ساده مانند رگرسیون خطی و درختهای تصمیمگیری شروع کنید.
کار عملی راهی عالی برای کسب تجربه و تقویت آموختههایتان است. با سادهترین پروژه ماشین لرنینگ با پایتون مانند پیشبینی قیمت خانه یا وضعیت آبهوا شروع کنید و بهتدریج پروژههای پیچیدهتری را انجام دهید.
یادگیری ماشین حوزهای است که بهسرعت در حال تحول است؛ بنابراین مهم است که از آخرین پیشرفتها مطلع بوده و خود را بهروز نگه دارید. دنبالکردن وبلاگهای مرتبط، شرکت در کنفرانسها و انجمنهای آنلاین میتواند به شما کمک کند تا در جریان اطلاعات جدید و دستاول باشید.
الگوریتمهای یادگیری ماشین باعث نوآوری و کارایی در صنایع مختلف، از مراقبتهای بهداشتی و مالی گرفته تا حملونقل و سرگرمی، میشوند. همانطور که در بالا به آن اشاره کردیم، شروع ماشین لرنینگ مستلزم پایهای قوی در ریاضیات و برنامهنویسی، درک خوب الگوریتمهای یادگیری ماشین و تجربه عملی کار بر روی پروژههاست.
چه بخواهید به دانشمند داده تبدیل شوید یا مهندس یادگیری ماشین و متخصص هوش مصنوعی، ماشین لرنینگ این فرصتها را در اختیار شما قرار میدهد. با ابزارها و منابع مناسب، هر کسی میتواند یادگیری ماشین را بیاموزد و قدمهای اولیه خود را برای آیندهای متفاوت بردارید.
منابع:
آکادمی همراه اول با هدف تربیت، توسعه و توانمندسازی نیروی انسانی در اکوسیستم دیجیتال در تابستان ۹۹ آغاز به کار کرده است. آکادمی به پشتوانهی تجربهی آموزش و توسعهی نیروی انسانی همراهاول میکوشد نیازهای آموزشی عمومی، تخصصی و شکاف میان تحصیلات آکادمیک و فضای کار بابرگزاری مسیرهای شغلی از جمله هوش مصنوعی، تحلیل گر داده ، کارشناس محصول و … پوشش دهد.