ماشین لرنینگ فرآیندی است که به کامپیوترها کمک میکند از پس وظایفی که انسان ها انجام میدهند برآیند. از راندن خودروها گرفته تا ترجمه کردن گفتار، این رشته با کمک کردن به نرم افزار در فهم پیچیدگی ها و آشفتگی جهان واقعی، انفجاری در زمینه کاربردهای هوش مصنوعی ایجاد کرده است. هدف اصلی ماشین لرنینگ تامین قابلیت یادگیری در ماشین ها است تا بتوانند خودشان بدون نیاز به انسان ها چیزها را یاد بگیرند.
هدف از این رشته چیزی نیست جز استفاده از قابلیت های بالای ماشین یا کامپیوترها در یادگیری و انجام دقیق وظایفی که به آنها سپرده میشود. برای اینکه ماشین بتواند در بهترین حالت یادگیری قرار بگیرد لازم است که داده ها و اطلاعاتی در اختیار آن قرار بگیرد. این اطلاعات میتواند به شکل مجموعه ای از فایل ها و داده هایی باشد که به ماشین ارائه میشود. این اطلاعات همچنین میتواند با اجازه دادن به ماشین برای ارتباط با منابع داده و حتی دریافت اطلاعات و کنش تعاملی با جهان واقعی نیز تامین شود. در ادامه به جنبه های گوناگون ماشین لرنینگ پرداخته و سعی میکنیم جوانب مختلف آن را روشن کنیم.
ماشین لرنینگ چیست؟
انواع روش های ماشین لرنینگ
تفاوت ماشین لرنینگ و دیپ لرنینگ
کاربردهای ماشین لرنینگ
کاربرد ماشین لرنینگ در صنایع مختلف
ماشین لرنینگ چیست؟
به صورت خیلی خلاصه، ماشین لرنینگ یا یادگیری ماشین یک نوع از هوش مصنوعی است که به یک سیستم امکان میدهد از روی داده ها یاد بگیرد و نه از روی برنامه نویسی دقیق. این رشته روی توسعه برنامه های کامپیوتری متمرکز می شود تا آنها را قادر سازد به داده ها دسترسی پیدا کرده و از آنها برای یادگیری خودشان استفاده کنند.
در یک سطح دیگر میتوان ماشین لرنینگ را فرایند آموزش دادن به یک سیستم کامپیوتری دانست تا بتواند هنگامی که اطلاعات مناسبی به آن داده میشود، پیشبینی های دقیقی انجام بدهد. این پیشبینی ها ممکن است تشخیص دادن اینکه یک تکه میوه در عکس، سیب یا پرتقال یا موز است، باشد، یا تشخیص یک دسته از افراد که در حال رد شدن از خیابان هستند باشد، یا اینکه در فلان جمله «دفتر» به معنای یک محل کار است یا به معنای محل یادداشت، و یا شناسایی محتوای یک ویدئو و تولید کپشن برای آن باشد.
تفاوت کلیدی یادگیری ماشین با نرم افزارهای سنتی در این است که در اینجا، یک برنامه نویس با کدهای دقیق کامپیوتری تفاوت سیب ها با پرتقال ها را برنامه نویسی نکرده، بلکه خود هوش مصنوعی این تفاوت را شناسایی میکند. به جای این کار، یک مدل یادگیری ماشینی تفاوت میوه ها را بر اساس مجموعه ای از داده ها، برای مثال حجم انبوهی از تصاویر تگ شده میوه های مختلف مثل سیب، پرتقال، و موز یاد میگیرد. برای همین داده ها یا اطلاعات، و نه مقدار محدود بلکه حجم انبوهی از آنها، کلید اصلی امکان پذیری ماشین لرنینگ محسوب میشود.
انواع روش های ماشین لرنینگ
نحوه ارتباط برقرار کردن هوش مصنوعی یا عامل یادگیری ماشین با داده ها بر اساس مدل ها و الگوریتم های مختلفی مشخص میشود. به صورت کلی، اغلب الگوریتم های یادگیری ماشین به دو دسته اصلی تقسیم میشود:
- الگوریتم های یادگیری با نظارت
- الگوریتم های یادگیری بدون نظارت
این در حالی است که دسته های دیگری نیز در این طبقه بندی قرار میگیرند. از جمله این موارد میتوان به انواع یادگیری ماشین زیر اشاره کرد:
- الگوریتم های یادگیری با شبه-نظارت
- الگوریتم های یادگیری ماشین تقویت شده
در ادامه هریک از این روش های ماشین لرنینگ را معرفی کرده و تفاوت آنها با یکدیگر که کاربردهای یادگیری ماشین بر اساس آنها مشخص میشوند را نشان خواهیم داد.
یادگیری ماشین با نظارت چیست؟
این رویکرد معمولا به ماشین ها از طریق مثال آموزش میدهد. در حین آموزش و تمرین دادن در روش با نظارت، حجم بسیار زیادی داده های برچسب خورده به سیستم ارائه میشود. این داده ها ممکن است برای مثال شکل های دستنویسی باشند که مشخص میکنند کدام عدد را نمایش میدهند. با دریافت مثال های کافی، یک سیستم یادگیری ماشین با نظارت یاد میگیرد که خوشه های پیکسل و شکل های مرتبط با هر عدد را شناسایی کرده و در ادامه قادر میشود اعداد دستنویس را تشخیص داده و شناسایی کند. به این ترتیب یاد میگیرد به خوبی فرق بین ۷ و ۸ یا ۴ و ۹ را تشخیص بدهد.
اما به هر حال لازم به ذکر است که تمرین دادن و آموزش این سیستم ها نیاز به حجم انبوهی از اطلاعات برچسب خورده دارد، و بعضی از این سیستم ها برای تسلط یافتن روی یک وظیفه نیاز به میلیون ها مثال دارند. در نتیجه، مجموعه های داده (Datasets) که برای آموزش این سیستم ها به کار میروند بسیار بزرگ هستند. برای مثال مجموعه داده های تصاویر باز گوگل شامل چیزی حدود ۹ میلیون تصویر میشود.
فرآیند پر زحمت برچسب زدن داده ها کاری است که اغلب با استفاده از سیستم های برون سپاری جمعی انجام میشود. برای مثال مجموعه داده ایمیج نت (ImageNet) که شامل بیش از ۱۴ میلیون تصویر طبقه بندی شده است، در طول ۲ سال و با کمک حدود ۵۰.۰۰۰ نفر از سراسر جهان انجام شده است. این در حالی است که به تازگی فیسبوک اعلام کرده مجموعه داده ای از تصاویر عمومی اینستاگرام به دست آورده که شامل بیش از ۵/۳ میلیارد تصویر میشود. این رویکرد، یعنی استفاده از تصاویر در دسترس عمومی برای یادگیری ماشین میتواند راهی برای برون رفت از دردسر برچسب زدن و ایجاد مجموعه داده های دستی باشد.
یادگیری ماشین بدون نظارت چیست؟
در مقابل روش با نظارت، در یادگیری بدون نظارت از الگوریتم هایی استفاده میشود که وظیفه تشخیص پترن یا الگوهای داخل داده ها را انجام میدهند. این الگوریتم ها سعی میکنند شباهت ها را پیدا کنند تا با استفاده از آنها داده ها را به مقوله های مختلف طبقه بندی کنند. برای مثال هنگامی که از یک فروشگاه اینترنتی خرید میکنید از این الگوریتم ها برای کنار هم قرار دادن آیتم های مرتبط با جستجوی شما استفاده میشود. یا اگر از گوگل نیوز استفاده کنید متوجه میشوید که از این الگوریتم ها برای کنار هم گذاشتن موضوعات مشابه و تاپیک های مرتبط استفاده میشود.
این نوع الگوریتم برای شناسایی انواع مشخصی از داده طراحی نشده است، بلکه به سادگی به دنبال داده هایی میگردد که بر اساس مشابهت میتوانند کنار هم قرار بگیرند. همچنین میتواند موارد متفاوتی که بیرون از این دسته ها قرار میگیرند را تشخیص بدهد.
یادگیری ماشین با شبه-نظارت چیست؟
ممکن است به واسطه اوج گرفتن استفاده از یادگیری ماشین با شبه-نظارت، اهمیت مجموعه های عظیم داده برای آموزش سیستم های یادگیری ماشین در طول زمان کاهش پیدا کند. همان طور که از عنوان این روش مشخص است، در آن ترکیبی از یادگیری با نظارت و یادگیری بدون نظارت به کار برده میشود. این تکنیک از مجموعه کوچکی از داده های برچسب خورده و در کنار مجموعه بزرگی از داده های برچسب نخورده برای آموزش سیستم استفاده میکند. از داده های برچسب خورده برای آموزش یک مدل ماشین لرنینگ استفاده میشود، سپس این مدل برای برچسب زدن داده های بدون برچسب به کار برده میشود. به این فرایند برچسب زدن کاذب یا شبه-برچسب-زدن (pseudo-labelling) گفته میشود. سپس مدل بر اساس مجموعه ای از داده های برچسب خورده و برچسب نخورده آموزش میبیند.
استفاده از این روش اخیرا با ایجاد فریم ورک های جی ای ان (Generative Adversarial Networks)، که سیستم های یادگیری ماشینی هستند که میتوانند از داده های برچسب خورده برای تولید داده های کاملا نو استفاده کنند، افزایش پیدا کرده است. هنگامی که یادگیری ماشین با شبه-نظارت به همان تاثیرگذاری یادگیری با نظارت شود، دسترسی به حجم بسیار بالای قدرت محاسبه ممکن است اهمیت بیشتری در یادگیری ماشین موفقیت آمیز پیدا کند تا دسترسی به مجموعه داده های بزرگ برچسب خورده.
یادگیری ماشین تقویت شده چیست؟
برای فهمیدن یادگیری ماشین تقویت شده میتوانید به نحوه ای که یک نفر یاد میگیرد یک بازی قدیمی کامپیوتری را بازی کند توجه کنید. فرد در ابتدا نه قواعد بازی را میداند و نه میداند چطور باید آن را کنترل کند. در حالی که آنها ممکن است کاملا تازه وارد باشند، با نگاه کردن به ارتباط بین دکمه هایی که فشار میدهند و اتفاق هایی که در تصویر میافتد، و امتیازی که در بازی به دست آورده یا از دست میدهند، کم کم یاد گرفته و بازی آنها بهتر و بهتر میشود.
یکی از کاربردهای یادگیری ماشین تقویت شده در شبکه-Q عمیق در مجموعه گوگل دیپ مایند است. این سیستم توانسته در مجموعه گسترده ای از بازی های ویدئویی قدیمی با استفاده از دوره یادگیری ماشین انسان ها را شکست دهد. این سیستم با پیکسل هایی از هر بازی تغذیه شده و اطلاعات مختلف در مورد حالت بازی، مثل فاصله بین چیزهای مختلف در تصویر را تخمین میزند. سپس این موضوع که چطور حالت بازی و کنش هایی که در آن انجام میشوند با امتیاز نهایی ارتباط برقرار میکنند را بررسی میکند.
در نهایت با بررسی چندین باره روند بازی، سیستم به مدلی دست پیدا میکند که با استفاده از آن امکان به دست آوردن بالاترین امتیاز در بازی به وجود میآید.
تفاوت ماشین لرنینگ و دیپ لرنینگ
در حالی که بسیاری از افراد تصور میکنند دو کلمه «ماشین لرنینگ» و «دیپ لرنینگ» را میتوان به جای هم به کار برد، اما در حقیقت این دو رشته کاملا از یکدیگر متفاوت هستند. به صورت کلی، Deep Learning یا یادگیری عمیق زیرمجموعه ای از ماشین لرنینگ به شمار میآید، چرا که مفهوم فنی و کاربردهای عملی آن چیزی به جز یکی از انواع یادگیری ماشین نیست. به همین دلیل است که بسیاری از افراد این دو را با هم اشتباه میگیرند و به یک معنا به کار میبرند.
در اصل، کاری که یادگیری عمیق یا دیپ لرنینگ انجام میدهد ساختار بخشیدن به الگوریتم ها به شکلی است که بتوانند یک شبکه عصبی مصنوعی (artificial neural network) ایجاد کنند، و این امکانی را فراهم میکند که الگوریتم ها از طریق آن میتوانند هم یاد بگیرند و هم به شکل خودمختار تصمیم گیری کنند. این درست همان جایی است که تفاوت اصلی میان این دو تکنولوژی مطرح میشود.
یک برنامه کامپیوتری که با یادگیری ماشین طراحی شده باشد، به انسانی نیاز دارد که متوجه خطاهای آن شده و با اصلاح آنها مانع از تکرارشان در داخل سیستم شود. این در حالی است که یک مدل یادگیری عمیق خودش میتواند با استفاده از شبکه عصبی خودش تشخیص بدهد که وظیفه اش را با موفقیت یا با شکست به انجام رسانده است.
کاربردهای ماشین لرنینگ
سیستم های ماشین لرنینگ زیادی در همین دور و بر ما مشغول فعالیت هستند. بهتر است به یاد داشته باشیم که این رشته یکی از سنگ بناهای اینترنت در معنای امروزی آن محسوب میشود.
هنگامی که از آمازون یا دیجی کالا خرید میکنید، این سیستم ها پیشبینی میکنند خرید بعدی شما چیست یا به چه آیتم هایی ممکن است علاقه داشته باشید. هنگامی که یک ویدئو در یوتیوب یا آپارات تماشا میکنید، این سیستم ها پیشبینی میکنند که از چه ویدئوهای دیگری ممکن است خوش تان بیاید.
در هر جستجوی گوگل از چندین سیستم ماشین لرنینگ استفاده میشود. هدف از این کار فهمیدن منظور شما و حدود دلالت جستجوی شما است، تا وقتی برای مثال به دنبال راه تعمیر شیر دستشویی هستید با تبلیغات شرکت های لبنیاتی مواجه نشوید.
یکی از کاربردهای یادگیری ماشین که قدرت آن را به رخ میکشد انواع دستیارهای مجازی، مانند سیری شرکت اپل، الکسای آمازون، دستیار گوگل، و کورتانای مایکروسافت است. تمام این دستیارها به شکل گسترده از یادگیری ماشین برای شناسایی فرمان های صوتی و توانایی فهم زبان طبیعی استفاده میکنند، همچنین به مجموعه داده های بزرگی برای پاسخ به پرسش های کاربران نیاز دارند.
کاربرد ماشین لرنینگ در صنایع مختلف
گذشته از این کاربردهای بسیار آشکار، استفاده از این سیستم ها تقریبا در هر صنعتی شروع شده است. از جمله این موارد میتوان به موارد کاربرد زیر اشاره کرد:
- دید کامپیوتری در خودروهای خودران، پهپادها و روبات های تحویل دهنده
- شناسایی گفتار و زبان و ترکیب چت بات ها با روبات های خدماتی
- شناسایی چهره برای مقاصد نظارتی در کشورهایی مانند چین
- کمک به رادیولوژیست ها در تشخیص تومورها به وسیله اشعه ایکس
- کمک به محققان در شناسایی توالی های ژنتیکی مرتبط با بیماری ها و شناسایی مولکول هایی که ممکن است در تولید داروهای موثرتر کمک کنند
- امکان پذیر ساختن نگهداری و محافظت پیشبینی گرانه از زیرساخت های بزرگ با کمک اینترنت اشیا
- نسخه برداری کتبی دقیق از گفتار به منظور ثبت اطلاعات فایل های صوتی و تصویری
این فهرست به همین موارد محدود نبوده و هر روز کاربرد دیگری برای ماشین لرنینگ ایجاد میشود. در نهایت این رشته راه را برای حضور روبات ها و یادگیری آنها از انسان ها باز میکند.
سخن پایانی
ماشین لرنینگ یا یادگیری ماشین روشی است که در آن به برنامه های کامپیوتری آموزش داده میشود به جای اجرای کدها، داده ها را شناسایی کرده و مورد تحلیل قرار دهند. این کار به روش ها و با استفاده از الگوریتم های گوناگون انجام میشود. در این مطلب انواع مختلف یادگیری ماشین را معرفی کردیم و هر یک از آنها را بررسی کردیم.
امروزه بیشتر از این رشته برای کاربردهای پیشبینی گرانه استفاده میشود. این پیشبینی میتواند در زمینه های مختلفی که هوش مصنوعی در آنها قابلیت دارد انجام شود. شناسایی تصویر، صدا، شناسایی روندها و ارتباط عناصر مختلف در داخل یک مجموعه داده از جمله این موارد هستند. هدف از این رشته در نهایت انجام وظایف انسانی به وسیله کامپیوترها، با دقت بسیار بالاتر و امنیت بیشتر است.
سوالات پرتکرار:
به طور کلی پنج زبان برنامه نویسی برتر برای یادگیری ماشین وجود دارد. اولین زبان پایتون است که ۵۷% از توسعه دهندگان یادگیری ماشین از این زبان استفاده میکنند؛ زیرا یادگیری آن آسان است. سایر زبان ها جاوا، C ++،R و جاوا اسکریپت هستند.
یادگیری ماشین در مواردی مانند تشخیص پزشکی، پردازش تصویر، پیش بینی، طبقه بندی و رگرسیون کاربرد دارد. همچنین سیستم های هوشمندی که بر اساس الگوریتم های یادگیری ماشین ساخته شده اند، توانایی یادگیری تجربیات گذشته یا داده های تاریخی را دارند.
با وجود مهارت های زیاد و متنوع برای یادگیری ماشین لرنینگ، امکان خود یادگیری هم وجود دارد. میتوانید از تعدادی دوره ماشین لرنینگ در دسترس که نیازی هم به داشتن دانش درک و پیاده سازی الگوریتم های ml ندارند، استفاده کنید. آموزش ماشین لرنینگ با پایتون در این زمینه پیشنهاد میشود.
یادگیری ماشین لرنینگ از ابتدا تا تکمیل برنامه درسی تقریباً ۶ ماه طول میکشد. البته به شرطی که روزانه حداقل ۵-۶ ساعت وقت بگذارید و مطالعه کنید. اگر این استراتژی را دنبال کنید و مهارت های خوبی در ریاضی و تحلیل مسائل داشته باشید، ۶ ماه برای شما کافی است.
۴ مرحله برای یادگیری ماشین به صورت خودآموز و سریع وجود دارد:
• پیش نیازها را بدانید. شما باید پایه آماری قوی داشته باشید، برنامه نویسی و کمی ریاضی هم بدانید.
• حالت اسفنجی داشته باشید. یعنی به راحتی خود را در نظریه های اساسی ML غرق کنید.
• تمرین هدفمند داشته باشید. از بسته های آموزشی مفید برای تمرین در ۹ موضوع اساسی ML استفاده کنید.
• پروژه های یادگیری ماشین انجام دهید تا به خوبی آن را یاد بگیرید.
داشتن ابتکارات بیشتر و بیشتر به متخصصان این حوزه کمک میکند تا با هوش مصنوعی و بدون نیاز به برنامه نیسی این کار را انجام دهند. در این زمینه غول هایی مانند بایدو، گوگل و همچنین شرکت های کوچکتری مانند لوب محصولاتشان را ارائه میدهند.