یادگیری ماشین (Machine learning) یکی از شاخه‌های وسیع و پرکاربرد هوش مصنوعی است که شیوه‌ها و الگوریتم‌هایی را تنظیم وکشف می‌کند که بر اساس آن‌ها رایانه‌ها و سامانه‌ها توانایی یادگیری پیدا می‌کنند. در این مقاله در مورد تعریف یادگیری ماشین صحبت کردیم.

یادگیری ماشینی روز به روز در حال پیشرفت و گسترد‌ه‌تر شدن است. پس برای ورود به این حوزه متخصص شدن در آن لازم است که اصطلاحات مهم و پر کاربرد این حوزه را بشناسید. هدف از این مقاله، معرفی مهم‌ترین اصطلاحات حوزه یادگیری ماشین است. با آموختن این اصطلاحات می‌توانید آن‌ها را در  مسائل تجاری و فنی به کار ببرید. این تعاریف، جامع نیستند اما به شما کمک می‌کنند که پیش از جلسات مهم (مثل جلسه با یک مدیر هوش مصنوعی و یا مصاحبه شغلی) آمادگی داشته باشید و دستپاچه نشوید

۱ – پردازش زبان طبیعی (Natural Language Processing – NLP)

NLP یا پردازش زبان طبیعی یک مفهوم مشترک است برای متد های متنوع یادگیری ماشین که کامپیوتر را قادر میسازد تا دستورات انسان را بفهمد و اجرا کند همانطور که نوشته یا صحبت می‌شود.

مهم ترین موارد استفاده پردازش زبان طبیعی:

Text Classification and Ranking –طبقه‌بندی و رتبه‌بندی متون

هدف از این مورد، پیش بینی کلاس اسناد یا رتبه بندی اسناد با استفاده از روابط بین آنها می‌باشد.

این مورد می تواند در اسپم فیلترینگ(پیش بینی اینکه یک ایمیل اسپم هست یا خیر) یا طبقه بندی محتوا (انتخاب مقالاتی در وب با موضوعی خاص) استفاده شود.

Sentiment Analysis – تحلیل احساسات

هدف از تجزیه و تحلیل احساسات، مشخص کردن نگرش یا واکنش احساسی شخص در ارتباط با موضوعی خاص (مانند: حس مثبت یا منفی یا عصبانیت ) می‌باشد. از این موضوع بطور گسترده در مطالعات مرتبط با رضایت مشتری استفاده می‌شود (به عنوان مثال تحلیل نظرات مربوط به یک محصول)

Document Summarization – خلاصه‌سازی اسناد

ابن مورد مربوط به خلاصه سازی اسناد است. که برای ایجاد توضیحی کوتاه و معنی دار از یک متن بلند، کاربرد دارد.

Named Entity Recognition – تشخیص موجودیت‌های اسمی

الگوریتم های استخراج موجودیت، فرایندی است که در آن دسته‌ای خاص از اجزا در یک متن ساختار نیافته شناسایی می‌شوند. برای نمونه یک فرد، نام شرکت،  تاریخ، قیمت، عنوان و غیره در متون شناسایی می‌شوند.  NER موجب می‌شود که فرایندهای متن کاوی (Text Mining) با سرعت بیشتری انجام شود. چرا که اطلاعات ساختار نیافته، به اطلاعات ساختار یافته تبدیل می‌شوند. برای نمونه به جدول (یا JSON) تبدیل می‌شوند.

Speech Recognition – تشخیص گفتار

از تکنیک های تشخیص گفتار برای تبدیل سیگنال‌های صوتی افراد به متن استفاده می‌شود. Siri (دستیار صوتی آیفون) یک مثال خوب در این زمینه است که نشان می‌دهد نحوه کار  Speech Recognition (تشخیص گفتار) چگونه است.

Natural Language Understanding and Generation – درک و تبدیل زبان طبیعی

با استفاده از این مورد، متن تولید شده توسط انسان، به نمونه های رسمی تر و قابل تفسیر توسط کامپیوتر تبدیل می‌شود. عکس این مورد نیز صادق است. تکنیک‌های NLG (تبدیل زبان طبیعی)، متون منطقی تولید شده توسط کامپیوتر را به متن‌هایی که توسط انسان‌ها تولید می‌شود، تبدیل می‌کند. NLG و NLU اغلب در چت ‏بات ها و سیستم‌های تولید خودکار گزارش استفاده می‌شود.

این مورد از نظر مفهوم، برعکس تشخیص موجودیت اسمی (Named Entity Recognition) است.

Machine Translation – ترجمه ماشینی

ترجمه ماشینی بصورت خودکار، متن یا گفتار را از یک زبان به زبان دیگر تبدیل می‌کند.

NLP_graph

۲- مجموعه داده – Dataset

داده بخش مهمی از یادگیری ماشینی است. اگر میخواهید یک سیستم یادگیری ماشینی راه‌اندازی کنید، باید داده‌ دریافت کنید (مثلا از منابع عمومی داده بگیرید) یا اینکه خودتان داده‌ها را جمع‌آوری کنید. تمامی داده‌هایی که برای ایجاد یا تست مدل‌های یادگیری ماشینی استفاده می‌شود، مجموعه داده (Data Set) نامیده می‌شود.

دانشمندان داده، مجموعه داده‌ها را به ۳ گروه تقسیم می کنند:

Training data – داده‌های آموزشی

داده های آموزشی برای آموزش یک مدل استفاده می شود. بدین معنا که مدل یادگیری ماشینی داده‌ها را می‌بیند و یاد‌میگیرد که الگو ها را شناسایی کند. یا اینکه یاد می‌گیرد که ویژگی های مهم را طی پیش‌بینی تشخیص دهد.

Validation data – داده‌های اعتبارسنجی

داده‌های اعتبار سنجی برای تنظیم پارامترهای مدل و مقایسه مدل‌های مختلف به کار می‌روند. هدف مقایسه مدل‌های مختلف و  تعیین بهترین مدل می‌باشد. داده‌های اعتبار سنجی باید با داده های آموزشی تفاوت داشته باشند. از داده‌های اعتبارسنجی نباید در مرحله آموزش استفاده شوند. در غیر این صورت، این مدل بیش برازش (یا Over fit) می‌شود. درنتیجه تعمیم آن به اطلاعات جدید (تولید شده) ضعیف است.

Test data – داده‌های آزمایشی

همیشه یک مجموعه داده آزمایشی نیز وجود دارد. از این مجموعه داده زمانی استفاده می‌شود که مدل نهایی جهت پیاده‌سازی روی داده‌های جدید، انتخاب شده است. از این داده‌ها در ساخت مدل هیچ استفاده‌ای نمی‌شود.

۳- بینایی کامپیوتر – Computer Vision

بینایی کامپیوتر یا به اختصار (CV) یکی از حوزه‌های هوش مصنوعی است. این حوزه مربوط به ارائه ابزار برای  تحلیل و درک داده‌های تصاویر و ویدئوها است.

مهم‌ترین قابلیت‌های CV ها عبارتند از:

Image classification (طبقه‌بندی تصاویر)

طبقه‌بندی تصویر یکی از وظایف بینایی کامپیوتر است که سیستم را برای تشخیص آنچه در یک تصویر است، آموزش می‌دهد. برای مثال، می توان یک مدل را برای تشخیص اشیاء مختلف در فضای عمومی، آموزش داد. ( کاربردی برای اتومبیل‌های خودران)

Object detection (تشخیص اشیا)

کار اصلی يک سيستم تشخيص شی، شناسايي انواع اشيای موجود در يک تصوير مي­باشد.  برای مثال، می‌توان از تشخیص ابعاد برای ساخت یک سیستم شناسایی چهره استفاده کرد. یکی از کاربردهای این مورد، تشخیص چهره می‌باشد. به این صورت که دور هر چهره‌ای که تشخیص می‌دهد یک قاب می‌کشد. (لازم به ذکر است که سیستم‌های طبقه‌بندی تصاویر تنها می توانند بگوید که چهره‌ای روی تصویر وجود دارد یا خیر. که این کار توسط تشخیص شی نیز قابل انجام است).

(بخش‌بندی تصاویر) Image segmentation

بخش‌‌بندی تصویر، به فرآیند قطعه‌بندی کردن یک تصویر دیجیتال به چند بخش (مجموعه از پیکسل‌ها، همچنین با عنوان سوپر پیکسل شناخته می‌شود) گفته می‌شود. هدف بخش‌‌بندی، ساده‌سازی یا/و تغییر در نمایش یک تصویر به چیزی ست که هم معنی دارتر و هم برای آنالیز آسان‌تر است.بخشبندی تصویر معمولاً برای پیدا کردن محل اشیا موردنظر و مرزها (خطوط، منحنی‌ها و غیره) در تصویر استفاده می‌شود. به عبارتی بخش‌بندی تصویر، به فرآیندی گفته می‌شود که در آن، به هر پیکسل، برچسبی اختصاص داده می‌شود، به طوری که پیکسل‌هایی با برچسب یکسان، ویژگی‌های مشابهی دارند.

 (تشخیص نکات برجسته) Saliency detection

این مورد نیز یکی از وظایف CV است. در Saliency Detection مدل به گونه‌ای آموزش می‌بیند که بخش‌هایی که برای بیننده بیشتر جلب توجه می‌کند را شناسایی می‌کند. از جمله کاربردهای این مورد، تعیین موقعیت تبلیغات در ویدیوها است.

۴- یادگیری با نظارت – Supervised learning

یادگیری با نظارت، از خانواده مدل های یادگیری ماشینی است که مدل‌ها با استفاده از مثال آموزش می‌بینند. به این معنی که داده‌ها برای یک یادگیری ماشینی با نظارت به برچسب نیاز دارند. به عنوان مثال، اگر می خواهیم مدلی بسازیم که  یک متن در مورد بازاریابی را تشخیص دهد، باید مدلی با مجموعه‌ای از نمونه های برچسب گذاری شده ارائه دهیم (متن + اطلاعاتی که نشان دهد نمونه در مورد بازاریابی هست یا خیر). در صورتیکه مدل روی داده‌های جدید پیاده‌سازی شود، هدف‌ (یا Target ) را پیش بینی می کند. از این رو در مورد مثالی که پیشتر ذکر شد می‌توان گفت که اگر متن در مورد بازاریابی بود برچسب ۱ و در غیر این صورت برچسب صفر پیش بینی می‌شود.

۵- یادگیری بدون نظارت – Unsupervised learning

بر خلاف یادگیری با نظارت، در یادگیری بدون نظارت مدل‌ها براساس مشاهدات خود یادگیری را انجام میدهند. یعنی داده‌های ارائه شده به آن از نوع الگوریتم های بدون برچسب است (هیچ یافته عینی به الگوریتم داده نمی شود). مدل‌های یادگیری بدون نظارت، قادر به پیدا کردن ساختار یا روابط بین ورودی های مختلف هستند. مهمترین نوع تکنیک های یادگیری بدون نظارت “خوشه بندی” است. در خوشه بندی با توجه به داده‌ها،مدل‌ ورودی‌ها را در خوشه‌های مختلف قرار می‌دهد (که در آن ورودی‌های مشابه در خوشه های یکسان قرار می‌گیرند).

۶- یادگیری تقویتی – Reinforcement Learning

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

از جمله‌ مثال‌های یادگیری تقویتی (Reinforcement Learning)  می‌توان به حل مکعب روبیک و یا بازی شطرنج در کامپیوتر اشاره نمود.

یادگیری تقویتی فقط محدود به بازی نمی‌شود و موارد بیشتری را شامل می‌شود. در قیمت گذاری لحظه‌ای نیز از یادگیری تقویتی استفاده می‌شود.

NLP_graph

۷- شبکه عصبی – Neural Networks

شبکه‌های عصبی خانواده بسیار گسترده‌ای از مدل‌های یادگیری ماشین است. ایده اصلی پشت آن، تقلید رفتار مغز انسان در هنگام پردازش داده‌ها است. درست مانند شبکه‌های اتصال سلول‌های عصبی واقعی در مغز انسان, شبکه‌های عصبی مصنوعی از لایه‌ها تشکیل شده اند. هر لایه مجموعه ای از سلول‌های عصبی است, هر کدام مسئول تشخیص چیزهای مختلف هستند. یک شبکه عصبی داده‌ها را پی در پی پردازش می‌کند. به این صورت که تنها لایه اول به صورت مستقیم به ورودی متصل است. لایه‌های بعدی مطابق خروجی لایه قبلی ویژگی‌ها را تشخیص می‌دهند. بنابراین با افزایش لایه‌ها، الگوهای پیچیده‌تری در داده‌ها شناخته می‌شود. هنگامی که تعداد لایه‌ها به سرعت افزایش می‌یابد، این مدل به عنوان مدل یادگیری عمیق (یا Deep Learning) نامیده می‌شود. به طور دقیق نمی‌توان گفت که وجود چه تعداد لایه موجب به وجود آمدن مدل یادگیری عمیق می‌شود. تا ۱۰سال قبل ۳ لایه و امروزه ۲۰ لایه موجب به وجود آمدن مدل یادگیری عمیق می‌شوند.

نمونه های مختلفی از شبکه های عصبی وجود دارد. برای نمونه می‌توان به موارد زیر اشاره نمود:

شبکه‌های عصبی پیچشی (یا Convolutional Neural Networks)

این یک موفقیت بزرگ در بینایی کامپیوتر بود. (اخیرا در NLP نیز کاربردهای زیادی داشته است.)

شبکه‌های عصبی بازگشتی (Recurrent Neural Networks)

برای پردازش داده‌ها با ماهیت ترتیبی مانند متون و یا قیمت سهام طراحی شده‌ است. آن‌ها نسبتا قدیمی هستند، اما همانطور که قدرت محاسباتی کامپیوترهای مدرن در طول ۲۰ سال اخیر به طور چشمگیری افزایش یافته است، از این نوع شبکه‌های عصبی می‌توان در یک زمان معقول استفاده کرد.

شبکه‌های عصبی تماما متصل (Fully Connected Neural Networks)

ساده ترین مدلی است که برای داده های آماری/جدولی استفاده می‌شود.

۸- بیش برازش – Over Fitting

هنگامیکه تعداد نمونه‌ها نامناسب باشد، مدل فرضیه‌ای نادرست و منحرف می‌سازد. بنابراین این یک اثر منفی است. این مشکل رایج و بسیار مهم است.

فرض کنید که چندین بار به یک فروشگاه مراجعه کرده اید و کیک مورد علاقه خود را پیدا نکرده اید! احتمالا از این فروشگاه ناامید میشوید و می‌گویید این فروشگاه اصلا مناسب نیست. این درحالی است که هزار مشتری دیگر کاملا از این فروشگاه راضی هستند. اگر شما یک مدل یادگیری ماشین بودید، می توان گفت که شما با توجه به تعداد کم نمونه‌ها بیش برازش (یا Over fitting) کرده‌اید. مدل ساحته شده انحراف (Bias) دارد و بر اساس تصور غلط شما ایجاد شده است و به هیچ وجه دقیق نیست. به عبارتی بیش برازش به این معنی است که یادگیری به خوبی صورت گرفته است اما قدرت تعمیم‌پذیری (Generalization) ندارد.

یک مثال دیگر : تصور کنید که یک مدل برای تشخیص مقالات در مورد یک رشته ورزشی خاص در المپیک ایجاد کرده اید. از آنجا که مجموعه داده آموزشی شما به سمت مقالات مربوط به مسابقات المپیک انحراف (Bias) دارد، مدل ممکن است ویژگی‌هایی مانند واژه “المپیک” را یاد بگیرد و قادر به شناسایی مقالات صحیحی که که این کلمه را ندارند، نباشد.

برگرفته از مقاله‌ای در وبسایت sigmoidal.io

پیشنهاد برای مطالعه