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

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

سیستم های یادگیری ماشین ها از سه بخش اصلی تشکیل شده است که عبارتند از:

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

کاربرد‌های یادگیری ماشین :

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

امنیت داده‌ها :

بدافزارها یکی از مشکلات کاربران و کمپانی‌ها در فضای آنلاین است که قدمت آن به روزهای ابتدایی شکل‌گیری اینترنت بازمی‌گردد. در سال ۲۰۱۴، موسسه‌ی کسپراسکی اعلام کرد که روزانه بیش از ۳۲۵٫۰۰۰ بدافزار کشف می‌کند. براساس اطلاعات ارائه شده توسط موسسه‌ی تحقیقاتی Deep Instinct، اغلب بدافزار‌های جدید از کد مشابهی که در بدافزار‌های پیشین مورد استفاده قرار گرفته، بهره می‌برند، حال آنکه دامنه‌ی تغییرات اعمال شده بین ۲ تا ۱۰ درصد است. تحقیقات انجام شده نشان از این دارد که مدل یادگیری مورد استفاده در هوش مصنوعی قادر است تغییرات ۲ تا ۱۰ درصدی در کد پیاده‌سازی شده را شناسایی کرده و تشخیص دهد که کدام فایل‌ها بدافزار هستند. همچنین باید به این نکته اشاره کرد که الگوریتم‌های یادگیری ماشین می‌توانند الگوی‌های مربوط به رد و بدل شدن اطلاعات در سرورهای ابری را تحت نظر گرفته و موارد مشکوک را که احتمالا منجر به سوءاستفاده‌های امنیتی خواهند شد، شناسایی کنند.

انواع یادگیری ماشینی :

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

ارتباط یادگیری ماشین با آمار :

یادگیری ماشین و آمار رشته های نزدیکی هستند. طبق نظر مایکل. ال. جردن (Micheal l. Jordan) ایده های یادگیری ماشین، از اصول متدلوژی گرفته تا ابزار نظری، پیشینه ای طولانی در آمار دارند. او همچنین عبارت علم داده ها را برای نام گذاری کل این رشته پیشنهاد کرد.
لئو بریمن (Leo Breiman) دو پارادایم آماری را مطرح ساخت: مدل داده و مدل الگوریتمیک، که مدل  الگوریتمیک کما بیش به معنای الگوریتم های یادگیری ماشین مثل جنگل تصادفی است.
برخی آماردانان با استفاده از روش های یادگیری ماشین، گرایشی ساخته اند که آن را یادگیری آماری می نامند.

ساخت مدل :

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

امنیت در دنیای واقعی :

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

نحوه عملکرد یادگیری ماشین :

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

شبکه های عصبی :

یکی از اصطلاحاتی که به تناوب از سوی شرکت هایی نظیر گوگل و فیسبوک مورد استفاده قرار می گیرد «شبکه عصبی» است. یک الگوریتم شبکه عصبی مصنوعی (ANN)، که معمولا “شبکه عصبی” (NN) نامیده می شود، الگوریتمی است که از ساختار و جنبه های عملکردی شبکه های عصبی بیولوژیکی الهام گرفته شده است. در این شبکه، محاسبات در قالب گروه های متصلی از نورون های مصنوعی، ساختار می یابند و اطلاعات را با یک روش پیوندگرایی به محاسبات، پردازش می کند. یک شبکه عصبی در اصل نوعی تکنیک یادگیری ماشینی است که براساس نحوه عملکرد نورون های مغز انسان طراحی شده و از این ایده پیروی می کند که نورون ها پس از دریافت تعدادی داده ورودی، سیگنالی را بر حسب تفسیر خود از آن اطلاعات پخش می کنند. در اصطلاحات رایج یادگیری ماشینی این کار از طریق دستکاری ماتریکس و همچنین نوعی تابع فعالسازی انجام می گیرد.
شبکه های عصبی مدرن، ابزارهای مدل سازی غیر خطی داده های آماری هستند. این شبکه ها معمولا برای مدل سازی روابط پیچیده بین ورودی ها و خروجی ها، الگو شناسی در داده ها، یا دریافت ساختار آماری در یک توزیع توئم احتمال میان متغیر های مشاهده شده استفاده می شوند.
کاربرد شبکه های عصبی در سال های اخیر افزایشی چشمگیر داشته و هم اکنون نیز از این شبکه ها همرا ه با لایه های متعددی از نورون های متصل به هم استفاده می شود. در جریان کنفرانس Google I/O سال 2015، ساندار پیچای نایب رئیس بخش محصولات گوگل توضیح داد که چطور یادگیری ماشینی و شبکه های عصبی به این شرکت کمک کرده تا ماموریت اصلی خود یعنی سازماندهی اطلاعات جهانی را به انجام رسانده و دسترسی به این اطلاعات را برای همه کاربران سطح دنیا فراهم نماید.
از همین روست که می توانید از Google Now سوالاتی مانند این را بپرسید: در زبان اسپانیایی چطور می گویید قورباغه؟ و به خاطر همین شبکه های عصبی است که گوگل می تواند اموری نظیر تشخیص صدا، پردازش زبان های طبیعی و ترجمه را انجام دهد.
در حال حاضر گوگل از شبکه های عصبی 30 لایه استفاده می کند که رقمی فوق العاده محسوب می شود و به خاطر استفاده از آنهاست که نرخ خطای تشخیص کلام گوگل از 23 درصد در سال 2013 میلادی به 8 درصد در سال 2015 کاهش پیدا کرد.

خوشه بندی یا Clustering :

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

یادگیرنده می آموزد :

داده هایی مانند این مورد به یک سیستم یادگیری ماشین اغلب به نام “مجموعه آموزش” یا “داده های آموزشی” نامیده می شود، زیرا توسط یادگیرنده در سیستم یادگیری ماشین برای آموزش خود برای ایجاد یک مدل بهتر استفاده می شود. یادگیرنده به نمرات نگاه می کند و ببینید که چقدر دور از مدل هستند.بعد از آن ریاضیات بیشتری برای تنظیم پیش فرض های اولیه استفاده می شود.
پیش بینی جدید دوباره انجام می شود، به طوری که انتظار می رود که زمان بیشتری را صرف کسب نمره prefect کند.
این فقط یک نمونه از این فرآیند است که کاملا ساخته شده است. مهمترین فایروال صرفا به این معنی است که یادگیرنده تنظیمات بسیار کوچک را برای پارامترها انجام می دهد تا مدل را اصلاح کند.

مبادلات مالی :

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

کاربرد‌های عینی و عملی یادگیری ماشین :

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