یادگیری ماشین چگونه کار می کند؟ – توضیح به زبان ساده
یادگیری و درک تکنولوژیهای نوآورانه در عصر دگرگونی دیجیتال، دیگر نه سرگرمی بلکه ضرورت است. از جمله فناوریهای پیشگام در این عصر میتوان به یادگیری ماشین اشاره کرد. امروزه یادگیری ماشین به یکی از اجزای اصلی تکنولوژی و همچنین سیستمهای تصمیمگیری تبدیل شده است و قابلیتهایی در اختیار ما قرار میدهد که در سابق و با استفاده از مهارت کدنویسی ممکن نبود. در این مطلب از مجله فرادرس، پس از ارائه تعریفی از یادگیری ماشین، با انواع آن و همچنین ابزارهای شاخص در این حوزه آشنا شده و بهطور کلی متوجه میشویم که یادگیری ماشین چگونه کار می کند.
در این مطلب، ابتدا میآموزیم که یادگیری ماشین چگونه کار می کند و از اهمیت آن در حوزههای مختلف میگوییم. در ادامه و پس از معرفی انواع روشهای یادگیری ماشین، کاربردها و همچنین ابزارهای رایج آن را نیز مورد بررسی قرار میدهیم. در انتهای این مطلب از مجله فرادرس، با چند نمونه از مشاغل مرتبط با یادگیری ماشین آشنا شده و به پرسشهای متداول در این زمینه پاسخ میدهیم.
یادگیری ماشین چیست و چگونه کار می کند؟
یادگیری ماشین یا ماشین لرنینگ، زیرشاخهای از «هوش مصنوعی» (Artificial Intelligence | AI) و متمرکز بر توسعه الگوریتمهای کامپیوتری است؛ الگوریتمهایی که بهطور خودکار، با کسب تجربه و بهکارگیری دادهها و اطلاعات موجود پیشرفت میکنند. به بیان سادهتر، یادگیری ماشین کامپیوترها را قادر میسازد تا از دادهها یاد بگیرند و بدون آنکه مستقیم و بهواسطه برنامهای از پیش تعریف شده به آنها دیکته شود، تصمیم گرفته یا به پیشبینی پاسخ موضوعات و مسائل مختلف بپردازند.
اگر بخواهیم پایهایتر بررسی کرده و به پرسش یادگیری ماشین چگونه کار می کند پاسخ دهیم، باید بگوییم که یادگیری ماشین یعنی خلق و اجرای الگوریتمهایی که فرایندهایی همچون تصمیمگیری و پیشبینی را تسهیل میکنند. چنین الگوریتمهایی طراحی میشوند تا به مرور زمان و با پردازش دادههای بیشتر، به عملکرد و دقت بالاتری دست پیدا کنند. در روشهای «برنامهنویسی» (Programming) سابق، کامپیوتر مجموعهای از دستورالعملهای از پیش تعیین شده را برای اجرای هر برنامه دنبال میکرد.
اما در یادگیری ماشین شرایط متفاوت است؛ به این صورت که مجموعهای از نمونهها و کاری که باید انجام شود به کامپیوتر ارائه میشود تا خود راهحلی مناسب و مطابق با دادههای از قبل مشاهده شده را پیدا کند. به عنوان مثال اگر بخواهیم کامپیوتری تصاویر گربهها را شناسایی کند، بهجای تعیین دستورالعملهایی مشخص درباره شکل ظاهری گربه، هزاران تصویر به آن ارائه داده و به الگوریتم اجازه میدهیم تا خود الگوها و ویژگیهای شاخص گربه را تشخیص دهد. الگوریتم با گذشت زمان و پردازش تصاویر بیشتر، در شناسایی گربهها، حتی نمونههای دیده نشده و ناآشنا بهتر میشود. همین قابلیت یادگیری از دادهها و پیشرفت تدریجی است که یادگیری ماشین را به ابزاری تاثیرگذار و منعطف بدل کرده است. یادگیری ماشین نیروی محرک دستاوردهای فنی مانند «دستیارهای صوتی» (Voice Assistants) و «سیستمهای توصیهگر» (Recommendation Systems) در اتومبیلهای خودران و «تحلیلهای پیشگویانه» (Predictive Analytics) است.
یادگیری ماشین، هوش مصنوعی و یادگیری عمیق
اغلب یادگیری ماشین را با هوش مصنوعی و «یادگیری عمیق» (Deep Learning) اشتباه میگیرند. در فهرست زیر، هر یک از این سه عنوان مهم را شرح میدهیم:
- هوش مصنوعی: وقتی میگوییم هوش مصنوعی، در واقع منظورمان توسعه برنامههایی است که هوشمندانه عمل کرده و با کمک مجموعهای از الگوریتمها، به بررسی هوش انسانی میپردازند. تمرکز اصلی حوزه هوش مصنوعی را میتوان در سه مهارت یادگیری، استدلال و «خودتصحیحگری» (Self-correction) برای رسیدن به حداکثر بهرهوری خلاصه کرد. گاهی اوقات برای اشاره به برنامههای مبتنی بر یادگیری ماشین نیز از عبارت هوش مصنوعی استفاده میشود.
- یادگیری ماشین: زیرمجموعهای از هوش مصنوعی که از الگوریتمهای محاسباتی برای پیشبینی استفاده میکند. پیشبینیهای یادگیری ماشین ممکن است حاصل روش «یادگیری نظارت شده» (Supervised Learning) باشد که در آن الگوها از دادههای موجود استخراج میشوند؛ و یا نتیجه، بدون راهنمایی و با کشف الگوهای عمومی توسط الگوریتم حاصل شود که به آن «یادگیری نظارت نشده» (Unsupervised Learning) گفته میشود. پیشبینی مقادیر عددی بر اساس «دادههای تاریخی» (Historical Data)، دستهبندی رویدادها در دو گروه «درست» (True) یا «نادرست» (False) و «خوشهبندی» (Clustering)، از جمله ویژگیهای یادگیری ماشین هستند.
- یادگیری عمیق: زیرشاخهای از یادگیری ماشین که در آن، «شبکههای عصبی مصنوعی» (Artificial Neural Networks | ANN) چند لایه و الهام گرفته شده از ساختار مغز انسان طراحی میشوند.
برخلاف روشهای مرسوم یادگیری ماشین، الگوریتمهای یادگیری عمیق رویهای کمتر خطی، پیچیدهتر و سلسله مراتبی دارند که با حجم بالایی از داده آموزش دیده و عملکرد دقیقی را نتیجه میدهند. «ترجمه زبانی» (Language Translation)، «تشخیص تصویر» (Image Recognition) و «پزشکی انفرادی» (Personalized Medicine) نمونههایی کاربردی از یادگیری عمیق هستند.
اهمیت یادگیری ماشین در چیست؟
در قرن ۲۱، داده مانند نفت ارزشمند و یادگیری ماشین نیز موتور محرک جهان داده-محور است. فناوری حیاتی در عصر دیجیتال امروز، که هر چه از میزان اهمیت آن بگوییم کم گفتهایم. در زیر، چند نمونه از دلایل این اهمیت را فهرست کردهایم:
- «پردازش داده» (Data Processing)
- محرک نوآوری
- «خودکارسازی» (Automation)
در ادامه، به شرح هر یک از موارد عنوان شده در فهرست بالا میپردازیم.
پردازش داده
یکی از اصلیترین دلایل اهمیت یادگیری ماشین، توانایی آن در هدایت و معنی دادن به حجم بالایی از دادهها است. همزمان با گسترش دادههای دیجیتال از طریق شبکههای اجتماعی، سنسورها و دیگر مراجع، روشهای تجزیه و تحلیل قدیمی داده دیگر کافی و کارآمد نیست. الگوریتمهای یادگیری ماشین این قابلیت را دارند تا با پردازش تعداد زیادی از دادهها، الگوهای مخفی را کشف و در تصمیمگیری به ما کمک کنند.
محرک نوآوری
یادگیری ماشین، محرک نوآوری و کارآمدی در بخشهای بسیاری از صنعت است:
- خدمات درمانی: از الگوریتمهای یادگیری ماشین در پیشبینی زودهنگام شیوع بیماریها و مدیریت درمان بیمار استفاده میشود و دقت تصویربرداری پزشکی را نیز افزایش میدهد.
- امور مالی: با استفاده از یادگیری ماشین، میتوان راهحل هایی برای اموری همچون «رتبهبندی اعتبار» (Credit Scoring)، «تشخیص کلاهبرداری» (Fraud Detection) و «معاملات الگوریتمی» (Algorithmic Trading) پیدا کرد.
- امور فروش: سیستمهای توصیهگر، زنجیره تأمین و خدمات مشتری، همگی از جمله مواردی هستند که از الگوریتمهای یادگیری ماشین سود میبرند.
خودکارسازی
یادگیری ماشین نقش بسیار مهمی را در فرایند خودکارسازی ایفا میکند. چنین الگوریتمهایی با یادگیری از دادهها و پیشرفت تدریجی، برخی از وظایف انسان را بر عهده گرفته و به ما این امکان را میدهند تا بر کارهای پیچیدهتر و خلاقانهتری متمرکز شویم. موضوعی که نه تنها موجب افزایش بهرهوری میشود، بلکه فرصتهای نوآوری بیشتری را نیز خلق میکند.
یادگیری ماشین چگونه کار می کند؟
پاسخ دادن به این پرسش که یادگیری ماشین چگونه کار می کند، نیازمند بررسی دقیق و قدم به قدم فرایند تبدیل دادههای خام به اطلاعاتی ارزشمند است. در ادامه با مراحل مختلف اجرای یک الگوریتم یادگیری ماشین آشنا شده و در کل میآموزیم که یادگیری ماشین چگونه کار می کند.
۱. جمعآوری داده
اولین قدم «جمعآوری داده» (Data Collection) است. یادگیری ماشین بدون داده معنی ندارد. کیفیت و کمیت دادههای شما، تاثیر مستقیمی بر عملکرد مدل میگذارد. برای جمعآوری داده، میتوان به منابع مختلفی از جمله «پایگاههای داده» (Databases)، فایلهای متنی، تصاویر، فایلهای صوتی یا حتی صفحات وب مراجعه کرد. پس از جمعآوری، باید دادهها را برای استفاده مدل آماده کنیم. فرایندی که شامل سازماندهی دادهها در قالبی مشخص مانند فایل CSV یا پایگاه داده شده و مرتبط بودن دادهها با مسئله پیشِرو را تضمین میکند.
۲. پیشپردازش داده
«پیشپردازش داده» (Data Preprocessing) از جمله قدمهای ضروری در فرایند «آموزش» (Training) مدل است که شامل مرتبسازی داده از طریق حذف موارد مشابه، مدیریت دادههای گم شده از طریق حذف یا جایگزینی آنها و نرمالسازی داده در قالبی استاندارد میشود. با اجرای فرایند پیشپردازش، کیفیت دادهها را بهبود بخشیده و از تفسیر درست آنها توسط مدل مطمئن میشویم. این مرحله تاثیر بهسزایی در بالا بردن دقت نهایی دارد.
۳. انتخاب مدل مناسب
پس از آمادهسازی دادهها، قدم بعدی انتخاب مدل مناسب است. «رگرسیون خطی» (Linear Regression)، «درخت تصمیم» (Decision Tree) و «شبکههای عصبی» (Neural Networks) تنها چند نمونه از مدلهایی هستند که میتوانیم از میان آنها انتخاب کنیم. انتخاب مدل وابسته به نوع دادهها و مسئلهایست که میخواهیم حل کنیم. اندازه و نوع داده، پیچیدگی مسئله و منابع محاسباتی در دسترس، همه معیارهایی مهم در انتخاب مدل هستند.
۴. آموزش مدل
مرحله بعد از انتخاب مدل، آموزش دادن مدل با دادههای آماده شده در مرحله دوم است. منظور از آموزش مدل، تغذیه دادهها به مدل و اجرای آن در جهت تنظیم پارامترهای داخلی برای پیشبینی بهتر خروجی است. در طول فرایند آموزش، لازم است تا از بروز مشکلاتی همچون «بیشبرازش» (Overfitting) که در آن مدل عملکرد خوبی نسبت به «دادههای آموزشی» (Training Data) از خود نشان میدهد، اما در تشخیص دادههای جدید ضعیف عمل میکند و همچنین «کمبرازش» (Underfitting) جلوگیری شود.
۵. ارزیابی مدل
پس از آموزش و پیش از توسعه، باید عملکرد مدل مورد ارزیابی قرار بگیرد. قابل ذکر است که ارزیابی مدل باید نسبت به دادههای جدید و مشاهده نشده در طول فرایند آموزش انجام شود. رویکردهایی همچون «صحت» (Accuracy) برای مسائل «دستهبندی» (Classification)، «دقت» (Precision) و «بازیابی» (Recall) برای مسائل «دستهبندی دودویی» (Binary Classification) و «میانگین مربعات خطا» (Mean Squared Error) در مسائل رگرسیون، از جمله معیارهای ارزایابی رایج و کاربردی در یادگیری ماشین هستند.
۶. تنظیم ابرپارامترها و بهینهسازی
در قدم بعدی و پس از ارزیابی مدل شاید نیاز باشد بهمنظور ارتقا عملکرد، «ابَرپارامترها» (Hyperparameters) را تنظیم و منظم کنید. به این فرایند «منظمسازی پارامتر» (Parameter Tuning) یا «بهینهسازی ابرپارامتر» (Hyperparameter Optimization) گفته میشود. از جمله تکنیکهای مورد استفاده در تنظیم ابرپارامترها، میتوان به «جستجوی مشبک» (Grid Search) که در آن ترکیبهای مختلفی از پارامترها آزموده میشوند و یا «اعتبارسنجی متقابل» (Cross Validation) که با تقسیم دادهها به زیرمجموعههای مختلف، عملکرد مدل را بر روی دادهها جدید تضمین میکند، اشاره داشت.
۷. پیشبینی و توسعه
در مرحله آخر و بعد از فرایند آموزش و بهینهسازی، مدل آماده پیشبینی نتایج دادههای جدید است. در این مرحله دادههای جدید به مدل ارائه شده و از خروجی مدل برای تصمیمگیری و بررسی بیشتر استفاده میشود. توسعه مدل یعنی ادغام با محیط تولیدی که در آن دادههای حقیقی پردازش شده و دید تازهای از مسئله حاصل میشود. این مرحله اغلب با عنوان «عملیات یادگیری ماشین» (Machine Learning Operations | MLOps) شناخته میشود.
انواع مختلف یادگیری ماشین چیست؟
بهطور کلی، انواع مختلف یادگیری ماشین در سه گروه یادگیری نظارت شده، یادگیری نظارت نشده و «یادگیری تقویتی» (Reinforcement Learning) خلاصه میشود. در ادامه این مطلب از مجله فرادرس به بررسی عمیقتر این روشها پرداخته و یاد میگیریم که انواع مختلف یادگیری ماشین چگونه کار می کند.
یادگیری نظارت شده
«یادگیری نظارت شده» (Supervised Learning) رایجترین نوع یادگیری ماشین بوده و آشنایی با آن، قدم ابتدایی مناسبی است تا متوجه شویم یادگیری ماشین چگونه کار می کند. در این روش، آموزش مدل بر روی «مجموعهداده» (Dataset) برچسبگذاری شده صورت میگیرد. به بیان دیگر، همراه با دادهها، پاسخ آنها نیز به عنوان «برچسب» (Label) به مدل ارائه میشود. برچسب نیز میتواند انواع مختلفی از «دستهای» (Categorical) گرفته تا «مقادیر حقیقی» (Real-value) داشته باشد. سپس و در طول آموزش، مدل ارتباطی میان ورودی یا همان «ویژگیها» (Features) و خروجی یا همان برچسبها را پیدا میکند. در ادامه و پس از فرایند آموزش، مدل میتواند خروجی دادههای جدید و از پیش دیده نشده را پیشبینی کند. رگرسیون خطی در مسائل رگرسیون و «رگرسیون لاجستیک» (Logistic Regression)، درخت تصمیم و «ماشینهای بردار پشتیبان» (Support Vector Machines | SVM) در مسائل دستهبندی، مثالهایی رایج از یادگیری نظارت شده هستند. مسئله تشخیص تصویری شامل اشکال هندسی را در نظر بگیرید، که هر تصویر برچسب «شش ضلعی»، «مثلث» یا «مربع» را نیز با خود به همراه دارد. در چنین مسئلهای، مدل نظارت شده تصاویر جدید را شناسایی و با دقت دستهبندی میکند.
یادگیری نظارت نشده
برخلاف یادگیری نظارت شده، در «یادگیری نظارت نشده» (Unsupervised Learning) مدل بر روی مجموعهدادهای بدون برچسب آموزش میبیند. در نتیجه وظیفه پیدا کردن الگوها و روابط میان دادهها بر عهده مدل است و کمکی از جانب انسان دریافت نمیکند. از یادگیری نظارت نشده در مسائل خوشهبندی و «کاهش ابعاد» (Dimensionality Reduction) استفاده میشود. در خوشهبندی دادههای مشابه در گروه یکسانی قرار میگیرند و در کاهش ابعاد، بهواسطه برخی «متغیرهای اساسی» (Principal Variables)، از تعداد متغیرهای تصادفی کاسته میشود. الگوریتم «K میانگین» (K-means) برای مسائل خوشهبندی و «تحلیل مولفه اساسی» (Principal Component Analysis | PCA) برای مسائل کاهش ابعاد، دو نمونه از الگوریتمهای یادگیری نظارت نشده هستند. به عنوان مثال در «بازاریابی» (Marketing)، از یادگیری نظارت نشده برای دستهبندی گروههای مختلف کاربران استفاده میشود. الگوریتمهای یادگیری نظارت نشده، با بررسی الگوهای خرید، «دادههای جمعیتی» (Demographic Data) و دیگر اطلاعات موجود، مشتریها را به گروههایی با خواستهها و رفتارهای مشابه یکدیگر تقسیم میکنند.
یادگیری تقویتی
به الگوریتمی که در آن یک «عامل هوشمند» (Intelligent Agent) نحوه تعامل در محیطی مشخص را یاد میگیرد، «یادگیری تقویتی» (Reinforcement Learning) گفته میشود. عامل هوشمند بر اساس هر رفتار و از طریق امتیاز، تشویق یا مجازات میشود. هدف عامل هوشمند، رسیدن به حداکثر پاداش است. برخلاف یادگیری نظارت شده و بدون نظارت، یادگیری تقویتی مناسب مسائلی با دادههای «ترتیبی» (Sequential) است و تصمیمات هر مرحله بر نتایج آینده تاثیر میگذارند. انجام بازیهای کامپیوتری، رباتیک و «مدیریت منابع» (Resource Management) تنها چند مورد از کاربردهای یادگیری تقویتی هستند.
تاثیر یادگیری ماشین در زندگی انسان
یادگیری ماشین صنایع بسیاری را متحول کرده و با نوآوریهایی بیسابقه، نحوه اجرای فرایندهای مرسوم را به کلی تغییر داده است. «ساتیا نادلا» (Satya Nadella) مدیر عامل شرکت «مایکروسافت» (Microsoft) میگوید: «ماشین لرنینگ، متحولکنندهترین تکنولوژی زمان ماست. فناوری که تمامی حوزهها را دگرگون میکند». در ادامه به چند مورد از این حوزههای دگرگون شده اشاره میکنیم.
خدمات درمانی
در بحث بهداشت و درمان از یادگیری ماشین برای پیشبینی و شناسایی بیماریهای مختلف استفاده میشود. به عنوان مثال سرویس DeepMind شرکت «گوگل» (Google) در همکاری با پزشکان، اقدام به ساخت مدلهایی برای شناسایی زودهنگام بیماریها و بهبود مراقبت از بیماران میکند.
امور مالی
یادگیری ماشین تاثیر بهسزایی در مباحث مالی داشته است. نظرسنجیها نشان میدهد که مدیران بسیاری از هوش مصنوعی در مسائل مالی و شناسایی مشکلات بهره میبرند.
حمل و نقل
هوش مصنوعی پایه و اساس اتومبیلهای خودران است. شرکتهایی همچون «تسلا» (Tesla) از یادگیری ماشین استفاده میکنند تا دادههای بلادرنگ حاصل از سنسورها را پردازش کنند. فرایندی که باعث میشود اتومبیل تصمیم بگیرد، اشیاء را شناسایی و بهطور خودکار رانندگی کند. همچنین یادگیری ماشین میتواند در مدیریت زیرساختهای جادهای نیز مورد استفاده قرار گیرد.
کاربرد های یادگیری ماشین
کاربردهای این حوزه متنوع است و روزانه با بسیاری از آنها روبهرو هستیم. یادگیری ماشین در بیشتر موارد کیفیت زندگی انسان را بالا برده است. در لیست زیر چند نمونه از این کاربردها را فهرست کردهایم:
- سیستمهای توصیهگر
- دستیارهای صوتی
- سیستمهای تشخیص کلاهبرداری
- شبکههای اجتماعی
- «تشخیص تصویر» (Image Recognition)
- «تشخیص گفتار» (Speech Recognition)
- «فیلتر ایمیلهای اسپم» (Email Spam Filtering)
- «پیشنهاد محصول» (Product Recommendation)
- «بررسی شکل املا و گرامر» (Spelling and Grammar check)
در ماشین لرنینگ، فراهم آوردن محیط مناسب برای یادگیری و تطبیق پیدا کردن با موقعیتهای جدید ضرورت دارد. در ادامه، تفسیر جامعتری از کاربردهای عنوان شده ارئه میدهیم تا بهتر متوجه شویم که یادگیری ماشین چگونه کار می کند.
سیستم های توصیهگر
به عنوان یکی از قابل لمسترین کاربردها میتوان از سیستمهای توصیهگر نام برد. شرکتهایی مانند «نتفلیکس» (Netflix) و «آمازون» (Amazon)، از یادگیری ماشین برای تجزیه و تحلیل رفتار کاربران در جهت پیشنهاد محصولات یا آثار سینمایی جذاب برای مخاطب استفاده میکنند.
دستیار های صوتی
دستیارهای صوتی مانند «سیری» (Siri)، «الکسا» (Alexa) و «دستیار گوگل» (Google Assistant)، بهمنظور درک فرمانهای صوتی شما و در ادامه ارائه پاسخی مناسب، از یادگیری ماشین بهره میبرند. چنین سیستمهایی از تعاملات مداوم شما یاد گرفته و با مرور زمان بهتر میشوند.
سیستم های تشخیص کلاهبرداری
بانکها و شرکتهای ارائه دهنده کارتهای اعتباری، از یادگیری ماشین برای شناسایی تراکنشهای مشکوک به کلاهبرداری استفاده میکنند. آنها با بررسی الگوهای عادی و غیر عادی، رفتارهای مشکوک را در لحظه نشانهگذاری میکنند.
شبکه های اجتماعی
استفاده شبکههای اجتماعی از یادگیری ماشین گسترده است. شخصیسازی صفحه مختص شما و حذف محتوای نامناسب، تنها چند نمونه از کاربرد یادگیری ماشین در شبکههای اجتماعی هستند.
تشخیص تصویر
اگر توجه کرده باشید، در برخی برنامهها و حتی شبکههای اجتماعی مانند «فیسبوک» (Facebook)، افراد مختلف در تصاویر نشانهگذاری میشوند. این کاربرد، مثالی از یادگیری ماشین در «تشخیص تصویر» (Image Recognition) است.
تشخیص گفتار
گزینه «جستجو با صدا» (Search by Voice) در نرمافزارهای گوگل، نمونهای عالی برای این کاربرد است. دستیارهای صوتی مختلف، ما را در یافتن اطلاعات از طریق فرامین صوتی یاری میکنند.
فیلتر ایمیل های اسپم
بهطور معمول، تمامی ایمیلهایی که دریافت میکنید در سه گروه مهم، عادی و اسپم قرار میگیرند. یادگیری ماشین این توانایی را دارد تا الگوهای تکراری و مخرب را شناسایی و از سایر نمونهها جدا کند.
پیشنهاد محصول
هنگامی که در یک فروشگاه بهدنبال محصول یا سرویس خاصی میگردید، موتور جستجوی گوگل از این اطلاعات یاد گرفته و به یک نتیجهگیری در مورد سلیقه شما دست پیدا میکند. در نتیجه، در آینده تبلیغات مرتبط به شما نمایش داده میشوند.
بررسی شکل املا و گرامر
مثال رایج این کاربرد که همگی با آن آشنایی داریم، تصحیح خودکار املا و گرامر واژگان در برنامههای پیامرسان تلفن همراه است.
معرفی ابزار های مهم
در جهان یادگیری ماشین، دسترسی به جعبه ابزار مناسب، به اندازه درک و یادگیری مفاهیم پایه اهمیت دارد. ابزارهایی همچون زبانهای برنامهنویسی و کتابخانهها که اجزای سازنده طراحی و توسعه الگوریتمها هستند.
زبان برنامه نویسی پایتون
زبان برنامهنویسی «پایتون» (Python) بهخاطر سادگی و خوانایی، از محبوبیت بالایی برخوردار بوده و انتخاب خوبی برای تازهکارها است.
همچنین زبان برنامهنویسی پایتون شامل کتابخانههای کارآمد بسیاری است. کتابخانههایی مانند NumPy و Pandas مناسب تبدیلات و تحلیل داده هستند و از کتابخانه Matplotlib در «نمایش داده» (Data Visualiztion) استفاده میشود.
کتابخانه Scikit-learn، الگوریتمهای بسیاری را بهصورت آماده در اختیار افراد قرار میدهد و دو کتابخانه TensorFlow و PyTorch نیز در ساخت و آموزش شبکههای عصبی مورد استفاده قرار میگیرند.
زبان برنامه نویسی R
زبان برنامهنویسی R از دیگر زبانهای رایج در این حوزه است که بهطور خاص در «تحلیل آماری» (Statistical Analysis) کاربرد دارد. مانند پایتون، زبان برنامه نویسی R نیز کتابخانههای بسیاری برای پیادهسازی آسان الگوریتمها دارد. کتابخانههایی همچون Caret، Mlr و RandomForest، الگوریتمهای زیادی از رگرسیون گرفته تا دستهبندی و کاهش ابعاد را شامل میشوند.
کتابخانه TensorFlow
کتابخانه TensorFlow ابزاری «متنباز» (Open-Source) برای انجام محاسبات عددی و بهویژه مناسب مدلهایی در مقیاس بزرگ است. این کتابخانه توسط تیم Google Brain توسعه داده شده و از هر دو پردازنده CPU و GPU پشتیبانی میکند. با استفاده از این کتابخانه میتوان شبکههای عصبی پیچیدهای را ساخت و آموزش داد؛ کاربردی که آن را به گزینهای محبوب در یادگیری عمیق تبدیل کرده است.
کتابخانه Scikit-learn
کتابخانهای برای زبان برنامهنویسی پایتون که بازه گستردهای از الگوریتمها در یادگیری نظارت شده و بدون نظارت را شامل میشود. این کتابخانه به «رابط برنامهنویسی اپلیکیشن» (Application Programming Interface | API) و مستندات کاملش معروف است. عمده استفاده از کتابخانه Scikit-learn در «داده کاوی» (Data Mining) و تحلیل داده است. این کتابخانه همچنین هماهنگی خوبی با دیگر کتابخانهها مانند NumPy و Pandas دارد.
کتابخانه Keras
کتاخانه Keras، رابط برنامهنویسی اپلیکیشن یا به اختصار API سطح بالایی برای ساخت شبکههای عصبی است. این کتابخانه که برای زبان برنامهنویسی پایتون طراحی شده است، این قابلیت را دارد تا همراه با سایر کتابخانهها مانند TensorFlow، CNTK یا Theano مورد استفاده قرار گیرد. کتابخانه Keras رابط کاربری راحتی برای طراحی و آموزش شبکههای عصبی دارد؛ امری که آن را به گزینهای عالی برای استفاده افراد مبتدی تبدیل میکند.
کتابخانه PyTorch
کتابخانهای متنباز که بر اساس کتابخانه دیگری بهنام Torch طراحی شده است. کتابخانه PyTorch به انعطافپذیری و بازدهی بالا در میان محققان شهرت دارد. این کتابخانه محدوده وسیعی از کاربردها همچون «بینایی ماشین» (Computer Vision) و «پردازش زبان طبیعی» (Natural Language Processing) را شامل میشود. «گراف محاسباتی پویا» (Dynamic Computational Graph) یکی از ویژگیهای کلیدی این کتابخانه است که انجام محاسبات منعطف و بهینه را ممکن میسازد.
معرفی مشاغل برتر در یادگیری ماشین
یادگیری ماشین، فرصتهای شغلی بسیاری را در حوزه هوش مصنوعی پدید آورده است. از «علوم داده» (Data Science) تا «مهندسی هوش مصنوعی» (AI Engineering)، امروزه افراد حرفهای و ماهر در این حوزه خواهان زیادی دارند. در ادامه چند مورد از این مشاغل را معرفی و بررسی میکنیم.
دانشمند علوم داده
«دانشمند علوم داده» (Data Scientist) از «روشهای علمی» (Scientific Methods) و الگوریتم ها برای کشف الگوهای موجود در دادههای «ساختاریافته» (Structured) و «غیرساختاریافته» (Unstructured) استفاده میکند. مهارتهای اساسی یک دانشمند علوم داده به شرح زیر است:
- تحلیل آماری
- آشنایی با زبان برنامهنویسی پایتون یا R
- آشنایی با اصول اولیه ماشین لرنینگ
- مهارت نمایش داده
- مهارت حل مسئله
از جمله ابزارهای لازم در علم داده میتوان به موارد زیر اشاره کرد:
- زبان برنامهنویسی پایتون
- زبان برنامهنویسی R
- «زبان پرسوجوی ساختاریافته | اِسکیواِل» (Structured Query Language | SQL)
- فریمورک «هادوپ» (Hadoop)
- فریمورک «اسپارک» (Spark)
- نرمافزار «تبلو» (Tableau)
ماشین لرنینگ ابزاری کلیدی در جعبه ابزار دانشمندان علوم داده است که از طریق آن ارتباط میان دادهها را کشف میکنند.
مهندس یادگیری ماشین
«مهندس یادگیری ماشین» (Machine Learning Engineer) به فردی گفته میشود که سیستمهای یادگیری ماشین را طراحی و پیادهسازی میکند. به عنوان چند مورد از مهارتهایی کلیدی مهندس یادگیری ماشین، میتوان به موارد زیر اشاره کرد:
- آشنایی با زبانهای برنامهنویسی مانند پایتون، «جاوا» (Java) یا R
- آشنایی با الگوریتمهای پایهای
- «آمار و احتمال» (Statistics)
- آشنایی با اصول «طراحی سیستم» (System Design)
در ادامه چند ابزار کاربردی مهندس یادگیری ماشین را فهرست کردهایم:
- زبان برنامهنویسی پایتون
- کتابخانه TensorFlow
- کتابخانه Scikit-learn
- کتابخانه PyTorch
- کتابخانه Keras
پیادهسازی و استفاده از الگوریتمهای یادگیری ماشین با زبانهای برنامهنویسی پایتون و R و همچنین کار کردن با مجموعهدادههای مختلف، از جمله وظایف یک مهندس یادگیری ماشین است.
محقق یادگیری ماشین
محقق یادگیری ماشین فردی است که با انجام تحقیقات مرتبط، میآموزد که یادگیری ماشین چگونه کار می کند و در ادامه باعث پیشرفت این حوزه میشود. این محققان هم در فضای آکادمیک و هم صنعتی فعالیت داشته و به توسعه فناوریهای نو مشغول هستند. یک محقق یادگیری ماشین باید مهارتهای زیر را داشته باشد:
- درک عمیق از الگوریتمهای پایه
- برنامهنویسی به زبان پایتون یا R
- آشنایی با روشهای تحقیق
- ماهر در محاسبات ریاضی
در فهرست زیر، ابزارهای مورد استفاده یک محقق یادگیری ماشین را ملاحظه میکنید:
- زبان برنامهنویسی پایتون
- زبان برنامهنویسی R
- کتابخانه TensorFlow
- کتابخانه PyTorch
- نرمافزار «متلب» (MATLAB)
خلاصهای از عنواین شغلی مطرح شده در این بخش به شرح زیر است:
حرفه | مهارتهای کلیدی | ابزارهای لازم |
دانشمند علوم داده | تحلیل آماری، زبان پایتون یا R، یادگیری ماشین، نمایش داده، حل مسئله | زبان R، زبان پایتون، SQL، هادوپ، اسپارک، نرمافزار تبلو |
مهندس یادگیری ماشین | زبان پایتون یا جاوا یا R، الگوریتمهای یادگیری ماشین، آمار و احتمال، طراحی سیستم | زبان پایتون، کتابخانه TensorFlow، کتابخانه Scikit-learn، کتابخانه PyTorch، کتابخانه Keras |
محقق یادگیری ماشین | درک عمیق از الگوریتمهای پایه، زبان پایتون یا R، آشنایی با روشهای تحقیق، ماهر در محاسبات ریاضی | زبان پایتون، زبان R، کتابخانه TensorFlow، کتابخانه PyTorch، نرمافزار متلب |
چگونه یادگیری ماشین را شروع کنیم؟
آغاز به کار و یادگیری این حوزه ممکن است دشوار بهنظر برسد؛ اما با به بهرهگیری از مسیر یادگیری و منابع مناسب، همه میتوانند یادگیری این حوزه جذاب از هوش مصنوعی را شروع کنند. در ادامه به معرفی چند قدم ابتدایی در این مسیر میپردازیم.
یادگیری مبانی و اصول اولیه
یادگیری مبانی و اصول اولیه، ابتداییترین قدم برای درک این موضوع است که یادگیری ماشین چگونه کار می کند. پیش از عمیق شدن و پیشروی بیشتر، ابتدا مهم است که پایه ریاضیاتی خوبی بهویژه در آمار و احتمال و «جبر خطی» (Linear Algebra) داشته باشید. همچنین آشنایی اولیه با یک زبان برنامهنویسی مانند پایتون نیز بسیار مفید است.
انتخاب ابزار مناسب
انتخاب ابزار مناسب از اهمیت بالایی برخوردار است. از شاخصترین این ابزارها، زبان برنامهنویسی پایتون همراه با کتابخانههایی مانند NumPy، Pandas و Scikit-learn است. از سادگی و چندمنظوره بودن میتوان به عنوان دلایل محبوبیت زیاد زبان برنامهنویسی پایتون نام برد.
یاد گرفتن الگوریتم های یادگیری ماشین
پس از آشنایی با مبانی، میتوانید مسیر یادگیری خود را با مطالعه در مورد الگوریتمهای پیشرفتهتر ادامه دهید. پیشنهاد میشود قبل از یادگیری روشهای پیچیدهتر مانند شبکههای عصبی، ابتدا از الگوریتمهای سادهتری مانند رگرسیون خطی و درخت تصمیم شروع کنید.
انجام پروژه های مرتبط
کار کردن بر روی پروژههای مرتبط، روشی عالی برای کسب تجربه عملی و محک زدن آموختههای شماست. با پروژههای کوچک مانند تخمین «قیمت خانه» (House Price) یا دستهبندی «انواع گل زنبق» (Iris Species) شروع کنید و به مرور پروژههای پیچیدهتری را انجام دهید.
بهروز باشید
یادگیری ماشین بهسرعت در حال متحول شدن است و از همین جهت، بسیار اهمیت دارد که در جریان آخرین تحولات قرار بگیرید. به عنوان مثال دنبال کردن رسانههایی همچون مجله فرادرس، شرکت در کنفرانسها و مشارکت در جوامع آنلاین، شما را در این زمینه بهروز نگه میدارد.
سوالات متداول
حال که متوجه شدیم یادگیری ماشین چگونه کار می کند و با ابزارهای آن نیز آشنا شدیم، زمان خوبی است تا در این بخش، به چند نمونه از پرسشهای متداول این حوزه پاسخ دهیم.
یادگیری ماشین چیست؟
زیرشاخهای از هوش مصنوعی که سیستمهای کامپیوتری را قادر میسازد تا با یادگیری الگوهای مجموعهداده، نتایج حاصل از دادههای جدید را بدون هیچگونه برنامهنویسی پیشبینی کنند.
هوش مصنوعی با یادگیری ماشین چه تفاوتی دارد؟
یادگیری ماشین زیرشاخهای از هوش مصنوعی است. در حالی که هدف هوش مصنوعی در شبیه سازی مهارتها و رفتارهای شناختی انسان خلاصه میشود، چالش یادگیری ماشین در کشف الگوهای موجود برای پیشبینی خروجی نمونههای جدید است.
تفاوت یادگیری ماشین و یادگیری عمیق در چیست؟
یادگیری عمیق زیرمجموعهای از یادگیری ماشین است که بیشتر به عنوان مجموعه الگوریتمهای مرتبط با شبکههای عصبی چند لایه شناخته میشود. برخلاف الگوریتمهای مرسوم یادگیری ماشین، روشهای یادگیری عمیق پیچیدهتر بوده و با فراگرفتن الگوی میان دادهها، عملکرد بسیار خوبی را نتیجه میدهند.
مدل یادگیری ماشین چیست و چگونه کار می کند؟
نمادی از یک الگوریتم یادگیری ماشین که بهمنظور پیشبینی خروجی، بر روی مجموعهای از دادهها آموزش دیده است.
دلیل محبوبیت زبان برنامهنویسی پایتون در یادگیری ماشین چیست؟
«قواعد نحوی» (Syntax) قابل فهم، شروع آسان، جامعه پشتیبان قوی، مستندات کامل و کتابخانههای بهروز و تخصصی، مواردی هستند که زبان برنامهنویسی پایتون را به گزینهای ایدهآل برای یادگیری ماشین بدل کردهاند.
جمعبندی
از خدمات درمانی گرفته تا حمل و نقل و سرگرمی، الگوریتمهای یادگیری ماشین حامل نوآوریهای شگفتانگیزی در تمامی صنایع هستند. همانطور که در این مطلب از مجله فرادرس خواندیم، شروع به کار در این حوزه نیازمند دانش حداقلی از ریاضیات و برنامهنویسی است که به راحتی میتوان آنها را با مراجعه به منابع معرفی شده فرا گرفت. یادگیری ماشین یک مسیر است؛ حوزهای در حال تکامل که برای همگام بودن با آن باید خود را بهروز نگه داریم.