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

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

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

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

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

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

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

## تقسیم‌بندی مسائل
بندانگشتی|ورودی و خروجی یادگیری ماشینی
یکی از تقسیم‌بندی‌های متداول در یادگیری ماشین، تقسیم‌بندی بر اساس نوع داده‌های در اختیار کارگزار هوشمند است. به سناریوی زیر توجه کنید:

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

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

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

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

یادگیری بی‌نظارت را می‌توان به صورت عمل کاهش بعد در نظر گرفت.

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

## یادگیری با نظارت

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

### یادگیری با نظارت آماری
در آمار احتمال خروجی بر حسب ورودی محاسبه می‌شود. اگر ورودی xباشد و خروجی y،p(y|x) از داده‌ها یادگرفته می‌شود، به عبارت دیگر یادگیری در واقع پیدا کردن تابع pاست. دو روش کلی برای پیدا کردن تابع p وجود دارد: روش تولیدی (Generative) و روش تشخیصی (Discriminative). به بیان بسیار ساده، در روش تشخیصی، ماشین مرز بین طبقه‌های مختلف را یادمی‌گیرد، اما در روش تولیدی، ماشین نحوه تولید نمونه‌های یک طبقه را یادمی‌گیرد. به بیان ریاضی، در روش تشخیصی p(y|x) مستقیماً یادگرفته می‌شود، ولی در روش تولیدی ابتدا p(y) و p(x|y) از داده‌ها برآورد می‌شوند و بعد با استفاده از قانون بیز (Bayes) p(y|x) محاسبه می‌شود.

### تعریف ریاضی یادگیری با نظارت
در یادگیری با نظارت، مثال‌های آموزشی به صورت جفت‌های (x^{i},y^{i}) که در آن هر نمونه به همراه بر چسب آن داده شده‌اند و i اندیس هر مثال در مجموعه مثال‌های آموزشی Dاست. هدف در این یادگیری به‌دست آوردن تابع f است که بتواند برای نمونه‌های ورودی دیده نشده xبر چسب مناسب را برگرداند یعنی f(x) را. نمونه و برچسب هر دو می‌توانند یک بردار باشند. اگر برچسب یک عدد حقیقی باشد مسئله پیش روی ما «رگرسیون» (Regression) نامیده می‌شود. اگر برچسب یک عدد صحیح باشد به مسئله «طبقه‌بندی» (Classification) گفته می‌شود.

## یادگیری بی‌نظارت
**یادگیری بی‌نظارت** یا **یادگیری بدون نظارت** (انگلیسی: Unsupervised Learning، در مقابل یادگیری بانظارت)، یکی از انواع یادگیری در یادگیری ماشین است. اگر یادگیری بر روی داده‌های بدون برچسب و برای یافتن الگوهای پنهان در این داده‌ها انجام شود، یادگیری بدون نظارت خواهد بود. از انواع یادگیری بدون نظارت می‌توان به الگوریتم‌های خوشه‌بندی (Clustering)، تخصیص پنهان دیریکله (LDA) و جاسازی لغات (Word Embedding) اشاره کرد.

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

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

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

از روش‌های معروف در یادگیری بی‌نظارت می‌توان به الگوریتم‌های **خوشه‌بندی** (Clustering)، **تخصیص پنهان دیریکله** (LDA)، و **جاسازی لغات** (Word Embedding) اشاره کرد.

موارد کاربردی رایج یادگیری بدون نظارت عبارت‌اند از:

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

همچنین در فرآیند آموزش مدل‌های یادگیری ماشین، داده‌ها معمولاً به دو بخش تقسیم می‌شوند: داده‌های آموزشی (Train) برای یادگیری مدل و داده‌های آزمایشی (Test) برای ارزیابی عملکرد آن. این تقسیم‌بندی از حفظ‌کردن داده‌ها توسط مدل جلوگیری می‌کند و قابلیت تعمیم آن به داده‌های جدید را بررسی می‌کند.

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

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

## یادگیری دیکشنری پراکنده
یادگیری دیکشنری پراکنده یا فرهنگ لغت پراکنده یک روش یادگیری است که در آن یک مثال آموزشی به عنوان ترکیبی خطی از توابع پایه ارائه می‌شود، و فرض بر این است که یک ماتریس پراکنده‌است. این مسئله از نوع به شدت سخت NP-hard است و حل تقریبی آن دشوار است. الگوریتم K-SVD یک روش اکتشافی معمول برای یادگیری دیکشنری پراکنده‌است. یادگیری دیکشنری پراکنده در چندین زمینه استفاده شده‌است. در دسته‌بندی، مسئله مشخص کردن کلاس‌هایی است که قبلاً دیده نشده‌اند متعلق به نمونه آموزشی اند. برای دیکشنری که در آن هر کلاس از قبل ساخته شده‌است، یک مثال آموزشی جدید با کلاس همراه است که به بهترین شکل توسط دیکشنری مربوط نمایش داده می‌شود؛ مثلاً یادگیری دیکشنری پراکنده در تشخیص و جداسازی نویز تصویر استفاده شده‌است. ایده اصلی این است که تکه‌های تصویر تمیز و بدون نویز می‌تواند جداگانه توسط یک دیکشنری تصویری نشان داده شود، اما قسمت نویز نمی‌تواند.

## روش‌های جدید یادگیری ماشینی
### ماشین سازنده متغیر همبسته بالا (HCVCM)
این الگوریتم یک مدل ترکیبی جدید برای بهبود مدلهای رگرسیون و مدلهای شبکه عصبی مصنوعی برای پیش‌بینی پدیده‌ها و عملکرد مواد است. ماشین سازنده متغیر همبسته بالا (HCVCM) سعی دارد متغیرهای جدیدی را به جای متغیرهای اولیه ایجاد کند که در بهبود دقت مدل‌ها موثرتر هستند. این متغیرها از متغیرهای اولیه با استفاده از توابع ریاضی متغیرهای جدیدی ایجاد می‌کند، به گونه ای که ارتباط بیشتری با خروجی و همبستگی کمتری با ورودی‌های دیگر دارند. در HCVCM سه مرحله وجود دارد. یکم ،با استفاده از چندین توابع ریاضی متغیرهای جدیدی ایجاد می‌کنند. سپس متغیرهای جدید انتخاب می‌شوند، که در مقایسه با متغیرهای اولیه ضریب همبستگی بیشتری با خروجی دارند. در مرحله سوم فقط متغیرهای جدیدی انتخاب می‌شوند که همبستگی آن‌ها کمتر از همبستگی بین متغیرهای اولیه است. این روش در سال ۲۰۲۰ توسط آیدین شیشه‌گران ارائه شد.
### ماشین خالق متغیر قوی‌تر (SVCM)و ماشین انتخابگر پویا (DSM)
شیشه‌گران و همکارانش روش‌های جدید مختلفی  را برای توسعه روش‌های یادگیری ماشین ایجاد کردند، مانند ماشین خالق متغیر قوی‌تر (SVCM) و ماشین انتخاب پویا (DSM) که می‌تواند به صورت پویا از بین چندین ماشین انتخاب کند که یکی از آنها برای هر مجموعه داده و متغیرهای ورودی دقیق تر است. به عبارت دیگر، او مدلی را در سال 2023 ایجاد کرد که می تواند مدل دقیق بین ماشین های مختلف را بر اساس ویژگی پارامترهای ورودی پیش بینی کند. کارشناسان معتقدند که DSM می تواند انقلابی در روش های یادگیری ماشینی باشد، زیرا این روش هوش مصنوعی می تواند ماشین های دیگر را مدیریت کند.

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

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

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

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

**جمع آوری و کار با داده‌ها :**

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

**انتخاب الگوریتم و مدل مناسب و آموزش :**

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

**اعتبارسنجی :**

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

## سخت‌افزار
از دهه ۲۰۱۰ به بعد، پیشرفت‌ها در هر دو حوزه الگوریتم‌های یادگیری ماشین و سخت‌افزار رایانه‌ای منجر به ایجاد روش‌های کارآمدتری برای آموزش شبکه‌های عصبی عمیق (زیرشاخه‌ای کوچک از یادگیری ماشین که شامل لایه‌های متعدد از واحدهای پنهان غیرخطی است) شده است. تا سال ۲۰۱۹، واحدهای پردازش گرافیکی (اغلب با افزونه‌هایی ویژه هوش مصنوعی) جایگزین پردازنده‌های مرکزی  به‌عنوان روش غالب در آموزش مدل‌های بزرگ مقیاس ابری شدند. شرکت اوپن‌ای‌آی میزان محاسبات سخت‌افزاری استفاده شده در بزرگ‌ترین پروژه‌های یادگیری عمیقT از الکس‌نت (۲۰۱۲) تا آلفا زیرو (۲۰۱۷) را برآورد کرد و افزایش ۳۰۰٬۰۰۰ برابری در حجم محاسبات مورد نیاز را مشاهده نمود؛ با روندی که هر ۳٫۴ ماه دو برابر می‌شود.

### واحدهای پردازش تنسور
واحدهای پردازشی تنسور شتاب‌دهنده‌های سخت‌افزاری تخصص‌یافته‌ای هستند که توسط گوگل برای بارِ کاری یادگیری ماشینی توسعه یافته‌اند. بر خلاف واحدهای پردازش گرافیکی و مدارهای مجتمع دیجیتال برنامه‌پذیر که برای کاربردهای عام طراحی شده‌اند، تی‌پی‌یوها برای محاسبات تنسوری بهینه‌سازی شده‌اند و در نتیجه در وظایف یادگیری عمیق مانند آموزش و استنتاج کارایی بالایی دارند. این واحدها در خدمات هوش مصنوعی ابری گوگل و مدل‌های بزرگ مانند دیپ‌مایند آلفا‌فولد به‌طور گسترده استفاده می‌شوند. تی‌پی‌یوها با بهره‌گیری از واحدهای ضرب ماتریسی و حافظه پهنای‌باند بالا، محاسبات را تسریع می‌کنند و در عین حال مصرف انرژی را کاهش می‌دهند. از معرفی نخستین تی‌پی‌یوها در سال ۲۰۱۶، این شتاب‌دهنده‌ها به جزئی کلیدی از زیرساخت هوش مصنوعی به‌ویژه در محیط‌های ابری تبدیل شده‌اند.

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

#### شبکه‌های عصبی فیزیکی
یک شبکه عصبی فیزیکی نوع ویژه‌ای از سخت‌افزار نورومورفیک است که برای شبیه‌سازی عملکرد سیناپس‌های عصبی شیمیایی، از مواد با مقاومت قابل تنظیم الکتریکی، مانند ممریستورها، استفاده می‌کند. واژه «شبکه عصبی فیزیکی» بیشتر بر استفاده از سخت‌افزار واقعی برای محاسبات تأکید دارد تا پیاده‌سازی‌های نرم‌افزاری. این اصطلاح به طور کلی به شبکه‌های عصبی مصنوعی اشاره دارد که با استفاده از مواد دارای مقاومت قابل تنظیم، عملکرد سیناپس‌ها را بازسازی می‌کنند.

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

## نرم‌افزار
مجموعه‌های نرم‌افزاری که شامل انواع گوناگونی از الگوریتم‌های یادگیری ماشین هستند، موارد زیر را در بر می‌گیرند:

### نرم‌افزارهای آزاد و متن‌باز

* آپاچی اسپارک
* ماهوت
* ام‌اکس‌نت
* اوپن‌ان‌ان
* پانداس
* تنسورفلو
* تورچ (یادگیری ماشین) / پای‌تورچ
* ثینو
* Microsoft Cognitive Toolkit
* دیپ‌لرنینگ۴جی
* سایکیت-لرن
* کراس
* وکا (یادگیری ماشین) / تحلیلگر  آنلاین کلان
* SystemML
* Caffe
* دیپ‌اسپید
* اِلکی
* گوگل JAX
* اینفر.نت
* جسپ
* جوباتوس
* کیوب‌فلو
* لایت‌جی‌بی‌ام
* Mallet
* ام‌ال.نت
* mlpack
* Orange
* ROOT (ماژول TMVA در ROOT)
* Shogun
* XGBoost
* یوریکا
### نرم‌افزارهای مالکیتی با نسخه‌های آزاد و متن‌باز

* رپیدماینر
* نایم

### نرم‌افزارهای مالکیتی
* اسپلانک
* ساس
* سرویس‌های وب آمازون
* وِرتِکس اِی‌آی از سکوی ابری گوگل
* مایکروسافت اژر
* متلب
* مثمتیک
* نیورال دیزاینر (نرم‌افزار)
* آنگوس KnowledgeSTUDIO
* Google Prediction API
* IBM Watson Studio
* مدل‌ساز KXEN
* لیون‌سالوِر
* نوروسولوشنز
* Oracle AI Platform Cloud Service
* داده‌کاوی اُراکل
* پلی‌آنالیست
* آرکیس
* سکوئنس‌ال
* IBM SPSS Modeler
* STATISTICA Data Miner
## جستارهای وابسته

* یادگیری عمیق
* یادگیری تقویتی
* علم داده‌ها
* الگوریتم فرگشتی
* الگوریتم ژنتیک
* شبکه عصبی مصنوعی
* هوش جامع مصنوعی

## یادداشت‌ها


## پانویس

## منابع
* نگاهی آماری به یادگیری ماشینی و به‌طور خاص یادگیری ماشینی با نظارت.

* , R. , Ebrahimie, E. , Niazi, A. , Afsharifar, A. (2021). Integration of meta-analysis and supervised machine learning for pattern recognition in breast cancer using epigenetic data. Informatics in Medicine Unlocked, 100629.
 ‏

* Trevor Hastie, Robert Tibshirani, and Jerome Friedman, The Elements of Statistical Learning: Data Mining, Inference, and Prediction, Springer, 2003 (ISBN 0-387-95284-5)
* Machine Learning Thomas G. Diet Erich – Department of Computer Science – Oregon State University

* مرجعی ساده و روان برای یادگیری تقویتی؛ مناسب برای یادگیری اصول اولیه:

Richard S. Sutton and Andrew G. Barto, Reinforcement Learning: An Introduction, MIT Press, 1998 (online version).
آکادمی داده‌کاوی
* این کتاب کم حجم یکی از عمده‌ترین مراجع کلاسیک در زمینه یادگیری ماشینی است:

Tom M. Mitchell, Machine Learning, McGraw-Hill Companies, Inc. , 1997. 


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