یادگیری ماشین، ماشین لرنینگ یا Machine Learning یکی از شاخههای پرطرفدار هوش مصنوعی است که همه ما امروزه با آن سروکار داریم.
این علم جدید و معروف، همانطور که از نامش پیداست به ماشینهایی اشاره دارد که با توجه به تجربیات خود شروع به یادگیری میکنند.
به زبان سادهتر در ماشین لرنینگ یک ماشین به گونهای برنامهنویسی میشود که خود توانایی فکر کردن، یادگیری و تصمیمگیری را داشته باشد.
در یادگیری ماشین برنامهنویسی به صورت مستقیم و صریح انجام نمیشود؛
الگوریتمهایی عمومی وجود دارد که پس از دریافت دادههای دریافتی منطق مورد نظر خود را ایجاد میکند.
در یادگیری ماشین هر چه سیستم با دادهها، ادوات، شبکهها و افراد زیادی سروکار داشته باشد، تجربیات آن بیشتر میشود و در حقیقت باهوشتر میشود.
ماشین لرنینگ چیست؟
یادگیری ماشین یکی از شاختههای معروف هوش مصنوعی است که امروزه کاربرد بسیار زیادی در زندگی ما دارد.
این علم شگفت انگیز به سیستم کمک میکند بدون برنامهریزی قبلی و بدون نیاز به کدنویسی صریح با کسب تجربه عملکرد خود را بهبود بخشد.
برنامههای کامپیوتری که دادههایی در دسترس دارند، با استفاده از این فناوری تجربه کسب میکنند و توسعه مییابند. اولین گام یادگیری ماشین، ایجاد امکان یادگیری کامپیوتر بدون دخالت انسان است.
چرا باید از یادگیری ماشین استفاده کنیم؟
با توجه به هزینهبر بودن استفاده از نیروی انسانی و کاهش بازدهی و دقت آنها در طول زمان، بهتر است از یک فناوری که تکرارپذیری بالاتر و دقت بسیار بالا دارد استفاده شود.
چرا ماشین لرنینگ اهمیت یافت؟
با پیشرفت تکنولوژی بشر به دنبال آسانتر کردن راهها بود.
دستیابی به فناوری هوش مصنوعی اگرچه تغییراتی شگرف در جهان تکنولوژی ایجاد کرد اما پس از مدتی، دانشمندان را متوجه ساخت که با استفاده از آن قادر به انجام فرآیندهای سخت و سنگین نخواهد بود.
پس از چندی، این موضوع پذیرفته شد که بدون وجود ماشینهایی خودآموز بسیاری از وظایف پیچیده ماشینها انجام نخواهد شد.
همانطور که کودکان با کسب تجربه و انجام پیاپی فعالیتها، یادگیری خود را تکمیل میکنند، یادگیری ماشین نیز به خود میآموزد.
مغز انسان توانایی پردازش انواع دادهها را دارد اما با افزایش حجم داده، انجام محاسبات، تحلیل داده و انجام کار در کمترین زمان بسیار مشکل شد.
برای تحلیل حجم بسیار بالای داده، خودکارسازی فرآیندها، بازشناسی الگوها و ارزشآفرینی به کمک یادگیری ماشین با سرعت و سهولت انجام میشود.
انواع الگوریتم ماشین لرنینگ
یادگیری ماشین با سه نوع الگوریتم یادگیری نظارت شده، یادگیری نظارت نشده و یادگیری تقویتی انجام میشود.
انواع الگوریتم بر اساس نوع داده آموزشی داده شده تعریف میشوند. این الگوریتمها وابسته به خروجی مورد نظر مزایا و معایب خاص خود را دارند.
یادگیری نظارت شده
این یادگیری تحت نظارت ماشین از دادههای پیشین خود آموزش میبیند و بر اساس این مثالها الگو را فرا میگیرد.
به عبارتی مطابق با یک تابع نگاشت با یک ورودی فرضی، خروجی مشخصی خواهد داشت.
بدین ترتیب که با وجود متغیر ورودی X و متغیر خروجی Y بتوان نزدیکترین تابع نگاشت را حدس زد و برای ورودیهای جدید، خروجی آن داده را پیشبینی کرد.
دو نوع مساله تحت نظارت وجود دارد:
دستهبندی: به معنی نظمدهی خروجی در چند گروه است.
به عنوان مثال دستهبندی ایمیلها در دو گروه اسپم و غیراسپم از این نوع است.
رگرسیون: به خروجیهای قابل اندازهگیری اشاره دارد و با متغیرهای پیوسته تعریف میشود.
به عنوان مثال با اطلاع از نوع یک خودرو و مسافت گالونهای گاز مورد نیاز برای طی شدن مسافت را با استفاده از رگرسیون میتوان محاسبه نمود.
یادگیری نظارت نشده
در یادگیری بدون نظارت تنها متغیرهای ورودی (x) به سیستم داده میشود و هیچ خروجی مشخص و دادههای برچسبداری وجود ندارد.
سیستم باید خود به دنبال ساختار میان دادهها بگردد.
در حقیقت یادگیری نظارت نشده بر تحلیل دادهها و کشف الگوریتم کلی آنها است و در دو نوع مساله خوشهبندی و انجمنی تقسیم میشود:
قوانین انجمنی: کشف قواعد کلی حاکم بر حجم عظیمی از دادهها در گروه مساله قوانین انجمنی قرار میگیرد.
بر این اساس ماشین با تحلیل دادهها درک خواهد کرد که به عنوان مثال خریدار کالای A، متقاضی خرید کالای B نیز خواهد بود.
خوشهبندی: در این مساله یادگیری دادههایی با ویژگیهای مشخص در یک گروه خاص قرار میگیرند.
به عنوان مثال ماشین تفاوت دو خودروی پراید و دنا را درک میکند و آنها را در دو گروه دستهبندی میکند.
یادگیری تقویتی
همانطور که از نام یادگیری تقویتی پیداست، این الگوریتم در تعامل با محیط یا یک عامل تقویت میشود و چیزهای جدیدی میآموزد.
با استفاده از این روش ماشین با سعی و خطا مساله را حل میکند.
حل مساله با در نظر گرفتن پاداش برای پاسخ درست و جریمه برای پاسخ غلط انجام میشود.
ماشین بعد از هر نتیجه سعی و خطا در محیط، تلاش میکند به سمت پاسخ صحیح پیش رود.
پیشنیاز ماشین لرنینگ
یکی از مهمترین علومی که باید پیش از یادگیری ماشین به خوبی فراگیرید، ریاضیات است.
در یادگیری ماشین باید بتوانید صحت، زمان آموزش، پیچیدگی مدل، تعداد پارامترها و مشخصههای مربوط به یک مساله را درنظر داشته و الگوریتمی مناسب انتخاب کنید.
برای تشخیص شرایطی که بیشبرازش یا کمبرازش اتفاق میافتد باید از موازنه واریانس – بایاس استفاده کنید. همچنین برای تنظیم درست پارامترها و استراتژیهای اعتبارسنجی و تخمین دره تصمیمگیری صحیح و عدم قطعیت به ریاضیات نیاز دارید.
سطح ریاضیات مورد نیاز برای یادگیری ماشین به زمینه مورد نظر شخص برای یادگیری بستگی دارد. موارد زیر به ترتیب اهمیت، علوم الزامی ریاضیات برای مهندسی ماشین لرنینگ هستند:
- در جبر خطی باید به مبحث ماتریسها، اتحاد و تجزیه، متعامد سازی، ماتریسهای متقارن و پروجکشن تسلط داشته باشید.
- در علم نظریه آمار و احتمال قوانین احتمال و اصل، متغیرهای تصادفی، واریانس و امید ریاضی، توزیههای توام و شرطی، توزیع استاندارد و نظریه بیزی را فراگیرید.
- در علم حساب، حساب دیفرانسیل، انتگرال و مشتقات جزئی را یاد بگیرید.
- در علم الگوریتمها و بهینهسازی پیچیدگیها، درختهای دودویی، هیپ و استک را فراگیرید.
برای کسب تخصص در ماشین لرنینگ چه مهارتهایی نیاز داریم؟
در مسیر یادگیری ماشین و متخصص شدن در این رشته چالشبرانگیز، مهارتهای بسیاری را باید فراگرفت.
فرد بدون علم و علاقه لازم به یادگیری ماشین در مسیر سختی که پیش رو دارد خسته خواهد شد. موارد زیر مهمترین مهارتهایی هستند که در راه یادگیری ماشین باید آنها را فراگرفت:
تئوریهای یادگیری ماشین و الگوریتمهای آن
هر متخصص اصلیترین مفاهیم و اصول اولیه یادگیری ماشین باید در ابتدای مسیر یاد بگیرد.
در آغاز یادگیری علوم داده را بشناسید، با مفهوم Big Data آشنا شوید، تعریف هوش مصنوعی، ماشین لرنینگ و دیپ لرنینگ را فراگیرید و تفاوتها و اشتراکات آنها را بشناسید. علم به کاربرد این موارد در دنیای واقعی درک آنها را آسانتر میکند.
یادگیری ماشین با سه نوع الگوریتم معروف و کلی به نامهای تحت نظارت، بدون نظارت و تقویتی تعریف میشود.
شناخت انواع الگوریتمهای یادگیری ماشین، هدف و نتیجه، مزایا و معایب آنها اهمیت بسیاری در طول یادگیری ماشین دارند. درک نحوه عملکرد این الگوریتمها مهم است. موارد زیر الگوریتمهای شناخته شده و مهم یادگیری ماشین هستند:
- رگرسیون خطی
- رگرسیون لجستیک
- درخت تصمیم
- جنگل تصادفی
- خوشه بندی
- CART
- Apriori
- PCA
- K-means
- KNN
درک نسبی علوم کامپیوتر
مهندس یادگیری ماشین باید علوم کامپیوتر را بشناسد. از جمله دانشهای مهمی که در این حوزه باید آموخته شود موارد زیر هستند:
- ساختمان داده مانند پشته، صف، آرایهها، درخت و جنگل
- طراحی الگوریتم مثل جستجو، مرتبسازی، بهینهسازی، محاسبه و پیچیدگی
- معماری کامپیوتر مثل حافظه، مفهوم بنبست و پردازش نامتقارن
پس از یادگیری این موارد باید نحوه پیادهسازی و استفاده از آنها نیز فراگرفته شوند.
درک مباحث آمار و احتمال
درک مفاهیم پایه آمار و احتمال برای یادگیری ماشین کافی است.
نیازی نیست تسلط کامل بر آمار و احتمال داشته باشید. میتوانید مفاهیم مهم و اساسی این درس را با استفاده کتب یا دورههای آموزشی درک کنید. اساسیترین مباحث در آمار و احتمال موارد زیر هستند:
- نمونهگیری
- احتمال و توزیعهای احتمال
- توزیع متغیرهای تصادفی
- رگرسیون خطی، چندگانه و لجستیک
یادگیری یکی از زبانهای برنامه نویسی پایتون یا R
برای تحلیل داده یادگیری یکی از زبانهای برنامه نویسی پایتون یا R یا هردوی آنها الزامی است.
پایتون زبانی منعطف، ساده و قدرتمند است که در ساخت اپلیکشن، برنامهنویسی تحت وب و ساخت بازی کاربرد دارد.
در هوش مصنوعی و یادگیری ماشین این زبان بسیار محبوب است؛ زیرا در عین سادگی کتابخانههای قدرتمند زیادی دارد.
زبان برنامهنویسی R نیز امکانات زیادی دارد و به یادگیری ماشین کمک میکند اما پایتون زبانی محبوبتر و پرکاربردتر است.
یادگیری کلان داده
با توجه به اینکه در حین یادگیری ماشین ممکن است با دادههای بسیاری روبرو شوید.
بهتر است مفاهیم و اصول کلان داده یا Big data را بشناسید.
ذخیره دادههای کلان، نحوه فراخوانی و پردازش آنها به ایجاد راهحلهایی مناسب برای حل مسائل مختلف یادگیری ماشین کمک میکند. از جمله مهمترین مفاهیم دادههای کلان در یادگیری ماشین موارد زیر هستند:
- HDFS
- Mapreduce
- Hive
- Pig
- Spark
- Scala
مطالعه مدلهای یادگیری عمیق
در یادگیری ماشین، مدلهای یادگیری عمیق از جمله مباحث سخت و پیشرفته هستند.
این مدلها به کار روی تولید ماشینهای بدون راننده کمک میکنند.
از این مدلها در ساخت دستیارهای صوتی Siri و Cortana شرکت اپل و مایکروسافت استفاده شدهاست. در این زمینه از یادگیری مباحث اساسی و مهم زیر شروع کنید:
- شبکه عصبی مصنوعی یا Artificial Neural Networks
- پردازش زبانهای طبیعی یا Natural language processing
- شبکههای عصبی پیچشی یا convolutional neural network
- تنسورفلو یا TensorFlow
- اوپنسیوی یا Open Computer Vision Library
ماشین لرنینگ در زندگی
امروزه ماشین لرنینگ در زمینههای مختلفی از علوم و تحلیل دادهها استفاده میشود.
برای اینکه تحلیل دادهها در مقیاس بزرگ و با دقت بالا انجام شود،
یادگیری ماشین مورد استفاده قرار میگیرد.
الگوریتمهای مختلف یادگیری ماشین وظایف این علم را در دستههای گستردهای طبقهبندی کردهاند. برخی از کاربردها و مشاغل مربوط به یادگیری ماشین را در ادامه بررسی میکنیم.
کاربردها
یادگیری ماشین در پزشکی
سیستمهای تشخیص به کمک رایانه که اختصاراً با CAD نشان داده میشود به تفسیر تصاویر علم پزشکی کمک میکنند.
آنالیز و تحلیل تصاویر بدست آماده توسط اشعه ایکس، MRI و سونوگرافی که دادههای بسیاری در اختیار مختصصان قرار میدهد در مدت زمانی کوتاه قابل انجام نیست. برای کمک به پزشکان در تشخیص وجود بیماریهای احتمالی سیستم CAD تصاویر دیجیتالی را بررسی و بیماریهای احتمالی را مشخص میکنند.
ماشین لرنینگ در اینترنت اشیا
امروزه شرکتهای مختلف برای جمعآوری دادهها در مکانهای مختلف از جمله قطار، هواپیما اتومبیل، ساختمانها و … سنسورهای متصل به اینترنت تعبیه شده است. کسب اطلاعات و تحلیل دادههای دریافتی با فناوری ماشین لرنینگ قابل انجام است.
مشاغل
مهندس یادگیری ماشین
یکی از پرتقاضاترین مشاغل مرتبط با هوش مصنوعی و یادگیری ماشین، مهندس یادگیری ماشین است که به مهارت بسیار بالایی در این حوزه نیاز دارد.
دانش برنامه نویسی تقریبا بالا و توانایی کار با رنج وسیعی از دادهها از جمله مهارتهای لازم برای یک مهندس یادگیری ماشین است.
متخصص بینایی ماشین
ماشین با استفاده از تجهیزات و نرمافزاهایی خاص تصاویر را میبیند و پردازش میکند.
متخصص بینایی ماشین در زمینه تشخیص تخلف و جریمه رانندگان، کنترل ترافیک و بالا بردن ایمنی خودروها فعالیت میکند. مهندسین بینایی ماشین باید به علوم رایانه، مهندسی مکانیک شناخت نور مسلط باشند.
دانشمند رباتیک
امروزه رباتهای خانگی بسیاری ساخته و استفاده میشوند.
در بخشهای مختلف صنعت و پزشکی نیز رباتهای مختلفی در حال طراحی هستند.
داشمندان رباتیک باید در زمینه هوش مصنوعی، ماشین لرنینگ، کامپیوتر، مکانیک و برق تخصص داشته باشند.
سخن نهایی
یکی از حوزههای پراهمیت و پرطرفدار در علم هوش مصنوعی، یادگیری ماشین است.
در یادگیری ماشین نیازی به کدنویسی صریح نیست.
از الگوریتمهایی استفاده میشود که با دریافت دادههای ورودی و کسب تجربه عملکرد خود را بهبود میبخشند و اصطلاحا باهوشتر میشوند.
مسیر یادگیری ماشین مسیری سخت و طولانی است.
برای یادگیری ماشین نیاز به مهارتهای زیادی لازم است که بدون علاقه، ممکن است در اواسط راه افراد را خسته کند. در این مقاله مهارتهای مورد نیاز برای یادگیری ماشین و لزوم یادگیری هر کدام از آنها به اختصار توضیح داده شد. در صورتی که نیاز به توضیحات تکمیلی داشتید، سوالات خود را در قسمت نظرات با ما به اشتراک بگذارید.
.
.
–