یادگیری ماشین Machine learning

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

 17 

نتیجه برای "یادگیری ماشین Machine learning --- هوش مصنوعی --- برنامه نویسی و IT" با فیلترهای مشخص شده در مکتب‌خونه موجود است.
مرتب‌سازی نتایج بر اساس:

یادگیری ماشین یا ماشین لرنینگ چیست؟

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

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

کاربردهای یادگیری ماشین چیست؟

امروزه تقریباً تمام افرادی که از تکنولوژی استفاده می‌کنند، از مزایای یادگیری ماشین بهره‌مند می‌شوند. مثال‌هایی از کاربردهای یادگیری ماشین عبارت‌اند از:

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

متدهای یادگیری ماشین چیست؟

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

متداول‌ترین روش‌های ماشین یادگیری ماشین نظارت شده و بدون نظارت است. در یادگیری نظارت شده ماشین بر اساس داده‌های ورودی و خروجی که انسان به آن آموزش داده، یاد می‌گیرد. در حالی که الگوریتم‌های یادگیری بدون نظارت این کار را بدون داده‌های برچسب‌گذاری شده انجام می‌دهند و به ماشین اجازه می‌دهند که ساختار خود را درون داده‌های ورودی پیدا کند.

یادگیری نظارت شده

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

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

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

یادگیری نظارت نشده

در یادگیری بدون نظارت داده‌های ورودی برچسب ندارند؛ بنابراین الگوریتم یادگیری ماشین نظارت نشده تلاش می‌کند نقاط مشترک بین داده‌های ورودی را پیدا کند. از آنجایی که تعداد داده‌های بدون برچسب همواره بیشتر داده‌های با برچسب است، فراگیری آموزش یادگیری ماشین نظارت نشده اهمیت ویژه‌ای دارد.

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

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

آموزش machine learning را چگونه آغاز کنیم؟

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

اگر هیچ مطالعه‌ای در زمینه آمار نداشته‌اید، یادگیری تعریف همبستگی و رگرسیون برای شما لازم است. زیرا این روش‌ها معمولاً برای بررسی رابطه بین متغیرهای کمی استفاده می‌شوند.

رویکردها و الگوریتم‌های یادگیری ماشین به طور مدام در حال توسعه هستند؛ بنابراین شما باید همواره اطلاعات خود را به‌روز نگه دارید. شیوه آموزش افراد ممکن است با هم متفاوت باشد. بعضی با مطالعه کتاب یادگیری ماشین را فرا گرفته‌اند و بعضی در دوره یادگیری ماشین شرکت کرده‌اند.

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

الگوریتم‌های یادگیری ماشین چیست؟

 متداول‌ترین الگوریتم‌های یادگیری ماشین که کاربرد بیشتری دارند و احتمالاً تاکنون بارها اسم آن‌ها را شنیده‌اید، عبارت‌اند از:

 K نزدیک‌ترین همسایه (K-nearest neighbor)

الگوریتم K نزدیک‌ترین همسایه (KNN) یک مدل تشخیص الگوست که می‌تواند برای طبقه‌بندی و رگرسیون استفاده شود. این روش از ساده‌ترین الگوریتم‌های یادگیری ماشین است که کاربردهای بسیاری دارد. خروجی این روش عضویت در یک کلاس است. در الگوریتم KNN یک شیء جدید را به کلاس متداول در نزدیکی همسایه‌های آن اختصاص می‌دهند.  

یادگیری درخت تصمیم‌گیری

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

درخت‌ها یکی از قدرتمندترین و پرکاربردترین الگوریتم‌های یادگیری ماشین هستند که جزو دسته الگوریتم‌های نظارت شده محسوب می‌شوند. هدف از یادگیری درخت تصمیم‌گیری ایجاد مدلی است که ارزش یک هدف را بر اساس متغیرهای ورودی پیش‌بینی کند.

در مدل پیش‌بینی، شاخه‌های درخت ویژگی‌های داده‌ها را که از طریق مشاهده تعیین می‌شوند، نشان می‌دهند. نتیجه‌گیری در مورد مقدار هدف داده‌ها هم در برگ‌ها نمایش داده می‌شود.

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

یادگیری عمیق

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

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

در میان الگوریتم‌های یادگیری ماشین که در حال حاضر مورداستفاده و توسعه قرار می‌گیرد، یادگیری عمیق بیشترین داده را جذب می‌کند و حتی می‌تواند در بعضی از وظایف شناختی انسان را شکست دهد. با وجود این ویژگی‌هاست که یادگیری عمیق به روشی با پتانسیل قابل‌توجه در فضای هوش مصنوعی تبدیل شده است.

بینایی کامپیوتری و تشخیص گفتار از جمله پیشرفت‌هایی هستند که با کمک یادگیری عمیق به ثمر نشسته‌اند. IBM Watson یک نمونه شناخته شده از سیستمی است که از یادگیری عمیق بهره می‌برد.

زبان های برنامه‌نویسی یادگیری ماشین کدام‌اند؟

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

خوب است بدانید که یادگیری ماشین با پایتون بیشترین تقاضا و محبوبیت را در بین زبان‌های برنامه‌نویسی دارد. پس از پایتون زبان‌های برنامه‌نویسی جاوا، R و سپس C++ بیشترین کاربرد را در یادگیری ماشین دارند.

پایتون

محبوبیت پایتون ممکن است به دلیل افزایش توسعه فریم‌ورک‌های یادگیری عمیق باشد که اخیراً در دسترس کاربران قرار گرفته است. از جمله آن‌ها می‌توان به TensorFlow، PyTorch و Keras اشاره کرد. پایتون توانایی استفاده به‌عنوان یکی زبان اسکریپت‌نویسی را دارد و سینتکس آن قابل خواندن است.

این زبان قدرتمند و آسان هم برای پردازش داده‌ها و هم کار مستقیم با آن‌ها استفاده می‌شود. کتابخانه یادگیری ماشین scikit-learn در بالای چندین پکیج موجود پایتون ساخته شده است که توسعه دهندگان ممکن است تاکنون با آن‌ها آشنا شده باشند. NumPy، SciPy و Matplotlib از جمله این پکیج‌ها هستند.

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

جاوا

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

جاوا معمولاً اولین انتخاب برای تازه‌واردان حوزه یادگیری ماشین نیست، اما کسانی که سابقه بیشتری در این حوزه دارند کار با جاوا را ترجیح می‌دهند. چراکه جاوا از نظر برنامه‌های یادگیری ماشین در صنعت، امنیت بیشتری نسبت به پایتون دارد. در واقع احتمال حملات سایبری و کلاهبرداری در این زبان کمتر است.

در بین کتابخانه‌های یادگیری ماشین برای جاوا می‌توان به Deeplearning4j اشاره کرد. این یک کتابخانه یادگیری ماشین عمیق منبع باز و توزیع‌شده برای جاوا و Scala است.  

زبان برنامه‌نویسی R

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

پکیج‌های محبوب برای یادگیری ماشین در R شامل caret مخفف short for Classification And REgression Training برای ایجاد مدل‌های پیش‌بینی‌کننده، randomForest برای طبقه‌بندی و رگرسیون و e1071 می‌شود. e1071 شامل توابع آماری و نظریه احتمالات است.

برنامه نویسی C++

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

بعضی از کتابخانه‌های یادگیری ماشین که شما می‌توانید با C++ استفاده کنید، عبارت‌اند از: کتابخانه مقیاس‌پذیر mlpack، Dlib که الگوریتم‌های یادگیری ماشین با طیف وسعی پیشنهاد می‌دهد، modular و Shark منبع باز.

تعصبات انسانی (Human Biases) چه ارتباطی با یادگیری ماشین دارد؟

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

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

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

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

کلام آخر در مورد آموزش یادگیری ماشین

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