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