( ) (به : ) مطالعهٔ علمی الگوریتم‌ها و مدل‌های آماری مورد استفادهٔ سیستم‌های کامپیوتری است که به‌جای استفاده از دستورالعمل‌های واضح، از الگوها و استنباط برای انجام وظایف سود می‌برند. یادگیری ماشین علمی است که باعث می‌شود رایانه‌ها بدون نیاز به یک برنامه صریح در مورد یک موضوع خاص یاد بگیرند. به عنوان زیر مجموعه‌ای از هوش مصنوعی، الگوریتم‌های یادگیری ماشین یک مدل ریاضی بر اساس داده‌های نمونه یا " " به منظور پیش‌بینی یا تصمیم‌گیری بدون برنامه‌ریزی آشکار، ایجاد می‌کنند.
 یادگیری ماشین در بسیاری زمینه‌ها از جمله مهندسی، کسب و کار، زبان‌شناسی و پزشکی کاربرد دارد. یادگیری ماشین در بسیاری جنبه‌های زندگی روزمره وارد شده‌است. برای نمونه، موتورهای جستجوی اینترنتی در یا از یادگیری ماشین استفاده می‌کنند، چرا که نرم‌افزار یادگیری ماشین آن‌ها چگونگی رتبه‌بندی برای یک را درک کرده‌است. همین‌طور یا برنامه عکس که تصاویر افراد را شناسایی می‌کند نوعی از یادگیری ماشین است. فیلتر هرزنامه‌ها (یا اسپم) در هم از کاربردهای یادگیری ماشین است.
 هدف یادگیری ماشین این است که رایانه‌ها و سامانه‌ها بتوانند به تدریج و با افزایش داده‌ها کارایی بهتری در انجام وظیفهٔ مورد نظر پیدا کند.
گسترهٔ این وظیفه می‌تواند از تشخیص خودکار چهره با دیدن چند نمونه از چهرهٔ مورد نظر تا فراگیری شیوهٔ گام‌برداری با دریافت سیگنال پاداش و تنبیه باشد.
 طیف پژوهش‌هایی که در یادگیری ماشین می‌شود گسترده‌است.
به لحاظ نظری پژوهش‌گران بر آن‌اند که روش‌های یادگیری تازه‌ای به وجود بیاورند و امکان‌پذیری و کیفیت یادگیری را برای روش‌های‌شان مطالعه کنند و در سوی دیگر عده‌ای از پژوهش‌گران سعی می‌کنند روش‌های یادگیری ماشین را بر مسایل تازه‌ای اعمال کنند. البته این طیف گسسته نیست و پژوهش‌های انجام‌شده دارای مؤلفه‌هایی از هر دو روی‌کرد هستند.
 یادگیری ماشین کمک فراوانی به صرفه جویی در هزینه‌های عملیاتی و بهبود سرعت عمل تجزیه و تحلیل داده‌ها می‌کند. به عنوان مثال در و پتروشیمی با استفاده از یادگیری ماشین، داده‌های عملیاتی تمام حفاری‌ها اندازه‌گیری شده و با تجزیه و تحلیل داده‌ها، الگوریتم‌هایی تنظیم می‌شود که در حفاری‌های بعدی استخراج پُربازده و بهینه‌تری داشته باشیم.
 یکی از تقسیم‌بندی‌های متداول در یادگیری ماشین، تقسیم‌بندی بر اساس نوع در اختیار است. به سناریوی زیر توجه کنید:
 فرض کنید به تازگی سگ‌نما خریده‌اید که می‌تواند توسط دوربینی دنیای خارج را مشاهده کند، به کمک میکروفن‌هایش صداها را بشنود، با بلندگوهایی با شما سخن بگوید (گیریم محدود) و چهارپایه‌اش را حرکت دهد. هم‌چنین در جعبهٔ این ربات دستگاه کنترل از راه دوری وجود دارد که می‌توانید انواع مختلف دستورها را به ربات بدهید. در پاراگراف‌های آینده با بعضی از نمونه‌های این دستورها آشنا خواهید شد.
 اولین کاری که می‌خواهید بکنید این است که اگر ربات شما را دید خرناسه بکشد اما اگر غریبه‌ای را مشاهده کرد با صدای بلند عوعو کند. فعلاً فرض می‌کنیم که ربات توانایی تولید آن صداها را دارد اما هنوز چهرهٔ شما را یادنگرفته‌است. پس کاری که می‌کنید این است که جلوی چشم‌های‌اش قرار می‌گیرید و به کمک کنترل از راه دورتان به او دستور می‌دهید که چهره‌ای که جلوی‌اش می‌بیند را با خرناسه‌کشیدن مربوط کند. این‌کار را برای چند زاویهٔ مختلف از صورت‌تان انجام می‌دهید تا مطمئن باشید که ربات در صورتی که شما را از مثلاً نیم‌رخ ببیند بهتان عوعو نکند. هم‌چنین شما چند چهرهٔ غریبه نیز به او نشان می‌دهید و چهرهٔ غریبه را با دستور عوعوکردن مشخص می‌کنید.
در این حالت شما به کامپیوتر ربات گفته‌اید که چه ورودی را به چه خروجی مربوط کند. دقت کنید که هم ورودی و هم خروجی مشخص است و در اصطلاح خروجی برچسب‌دار است. به این شیوهٔ یادگیری، می‌گویند.
 اینک حالت دیگری را فرض کنید. برخلاف دفعهٔ پیشین که به ربات‌تان می‌گفتید چه محرکه‌ای را به چه خروجی ربط دهد، این‌بار می‌خواهید ربات خودش چنین چیزی را یاد بگیرد. به این صورت که اگر شما را دید و خرناسه کشید به نحوی به او پاداش دهید (مثلاً به کمک همان کنترل از راه دورتان) و اگر به اشتباه به شما عوعو کرد، او را تنبیه کنید (باز هم با همان کنترل از راه دورتان). در این حالت به ربات نمی‌گویید به ازای هر شرایطی چه کاری مناسب است، بلکه اجازه می‌دهید ربات خود کاوش کند و تنها شما نتیجهٔ نهایی را تشویق یا تنبیه می‌کنید. به این شیوهٔ یادگیری، می‌گویند.
 در دو حالت پیش قرار بود ربات ورودی را به خروجی مرتبط کند. اما گاهی وقت‌ها تنها می‌خواهیم ربات بتواند تشخیص دهد که آنچه می‌بیند (یا می‌شنود و…) را به نوعی به آنچه پیش‌تر دیده‌است ربط دهد بدون این‌که به‌طور مشخص بداند آن‌چیزی که دیده شده‌است چه چیزی است یا این‌که چه کاری در موقع دیدنش باید انجام دهد. ربات هوش‌مند شما باید بتواند بین صندلی و انسان تفاوت قایل شود بی‌آنکه به او بگوییم این نمونه‌ها صندلی‌اند و آن نمونه‌های دیگر انسان. در این‌جا برخلاف یادگیری با نظارت هدف ارتباط ورودی و خروجی نیست، بلکه تنها دسته‌بندی‌ی آن‌ها است. این نوع یادگیری که به آن می‌گویند بسیار مهم است چون دنیای ربات پُر از ورودی‌هایی است که کسی برچسبی به آن‌ها اختصاص نداده اما به وضوح جزئی از یک دسته هستند.
 یادگیری بی‌نظارت را می‌توان به صورت عمل در نظر گرفت.
 از آن‌جا که شما سرتان شلوغ است، در نتیجه در روز فقط می‌توانید مدت محدودی با رباتتان بازی کنید و به او چیزها را نشان دهید و نام‌شان را بگویید (برچسب‌گذاری کنید). اما ربات در طول روز روشن است و داده‌های بسیاری را دریافت می‌کند. در این‌جا ربات می‌تواند هم به خودی خود و بدون نظارت یاد بگیرد و هم این‌که هنگامی که شما او را راهنمایی می‌کنید، سعی کند از آن تجارب شخصی‌اش استفاده کند و از آموزش شما بهرهٔ بیش‌تری ببرد. ترکیبی که عامل هوشمند هم از داده‌های بدون برچسب و هم از داده‌های با برچسب استفاده می‌کند به می‌گویند.
 مقالهٔ اصلی: ، یک روش عمومی در یادگیری ماشین است که در آن به یک سیستم، مجموعه‌ای از جفت‌های ورودی – خروجی ارائه شده و سیستم تلاش می‌کند تا تابعی از ورودی به خروجی را فرا گیرد. یادگیری تحت نظارت نیازمند تعدادی داده ورودی به منظور آموزش سیستم است. یادگیری تحت نظارت خود به دو دسته تقسیم می‌شود: و . رگرسیون آن دسته از مسائل هستند که خروجی یک عدد پیوسته یا یک سری اعداد پیوسته هستند مانند پیش‌بینی قیمت خانه بر اساس اطلاعاتی مانند مساحت، تعداد اتاق خواب‌ها، و غیره و دسته به آن دسته از مسائل گفته می‌شود که خروجی یک عضو از یک مجموعه باشد مانند پیش‌بینی اینکه یک ایمیل هرزنامه هست یا خیر یا پیش‌بینی نوع بیماری یک فرد از میان ۱۰ بیماری از پیش تعریف شده. با این حال رده‌ای از مسائل وجود دارند که خروجی مناسب که یک سیستم یادگیری تحت نظارت نیازمند آن است، برای آن‌ها موجود نیست. این نوع از مسائل چندان قابل جوابگویی با استفاده از یادگیری تحت نظارت نیستند. یادگیری تقویتی مدلی برای مسائلی از این قبیل فراهم می‌آورد. در یادگیری تقویتی، سیستم تلاش می‌کند تا تقابلات خود با یک محیط پویا را از طریق آزمون و خطا بهینه نماید. یادگیری تقویتی مسئله‌ای است که یک عامل که می‌بایست رفتار خود را از طریق تعاملات آزمون و خطا با یک محیط پویا فرا گیرد، با آن مواجه است. در یادگیری تقویتی هیچ نوع زوج ورودی – خروجی ارائه نمی‌شود. به جای آن، پس از اتخاذ یک عمل، حالت بعدی و پاداش بلافصل به عامل ارائه می‌شود. هدف اولیه برنامه‌ریزی عامل‌ها با استفاده از تنبیه و تشویق است بدون آنکه ذکری از چگونگی انجام وظیفه آن‌ها شود.
 در آمار احتمال خروجی بر حسب ورودی محاسبه می‌شود. اگر ورودی باشد و خروجی ، از داده‌ها یادگرفته می‌شود، به عبارت دیگر یادگیری در واقع پیدا کردن تابع است. دو روش کلی برای پیدا کردن تابع وجود دارد: روش تولیدی (Generative) و روش تشخیصی (Discriminative). به بیان بسیار ساده، در روش تشخیصی، ماشین مرز بین طبقه‌های مختلف را یادمی‌گیرد، اما در روش تولیدی، ماشین نحوهٔ تولید نمونه‌های یک طبقه را یادمی‌گیرد. به بیان ریاضی، در روش تشخیصی مستقیماً یادگرفته می‌شود، ولی در روش تولیدی ابتدا و از داده‌ها برآورد می‌شوند و بعد با استفاده از قانون بیز (Bayes) محاسبه می‌شود. 
 در ، مثال‌های آموزشی به صورت جفت‌های ( ) که در آن هر نمونه به همراه بر چسب آن داده شده‌اند و اندیس هر مثال در مجموعه مثال‌های آموزشی است. هدف در این یادگیری بدست آوردن تابع است که بتواند برای نمونه‌های ورودی دیده نشده بر چسب مناسب را برگرداند یعنی را. نمونه و برچسب هر دو می‌توانند یک بردار باشند. اگر برچسب یک باشد مسئله پیش روی ما « » (Regression) نامیده می‌شود. اگر برچسب یک باشد به مسئله « » (Classification) گفته می‌شود.
 یا ( : Unsupervised Learning، در مقابل )، یکی از انواع یادگیری در است. اگر یادگیری بر روی داده‌های بدون برچسب و برای یافتن الگوهای پنهان در این داده‌ها انجام شود، یادگیری، بدون نظارت خواهد بود. از انواع یادگیری بدون نظارت می‌توان به الگوریتم‌های (Clustering)، (LDA) و جاسازی لغات (Word Embedding) اشاره کرد.
 از یادگیری نظارت نشده در دنیای امروز می‌توان مثال‌های متعددی زد. یکی از پُرکاربردترین آن‌ها پیشنهادهایی است که به کاربران در شبکه‌های اجتماعی داده می‌شود. به عنوان مثال در اینستاگرام داده‌های زیادی از هر کاربر از جمله علایق شخصی، کسانی که دنبال می‌کند، دنبال‌کنندگان او وجود دارد. اینستاگرام براساس این داده‌ها، ویژگی‌های کابران را تعیین کرده و آن‌ها را خوشه‌بندی می‌کند. در نهایت با توجه به خوشه‌ای که کاربر درون آن قرار گرفته‌است، پیشنهادهای متعددی به وی در جهت درگیر کردن بیشتر او با این شبکه اجتماعی می‌دهد. 
 هدف بخشی که از یادگیری ماشین است این است که چگونه عامل‌های نرم‌افزاری، باید یک عمل را مناسب محیط انتخاب کنند تا پاداش بهینه بیشینه شود. این رشته به دلیل کلی بودن، در بسیاری از رشته‌های دیگر از جمله ، تئوری کنترل، ، ، بهینه‌سازی مبتنی بر شبیه‌سازی، سیستم‌های چند عامل، هوشمند جمعی، آمار و الگوریتم‌های ژنتیکی مورد مطالعه قرار می‌گیرد. در یادگیری ماشین، محیط به‌طور معمول به عنوان یک فرایند تصمیم‌گیری مارکوف (MDP) معرفی می‌شود. بسیاری از الگوریتم‌های یادگیری تقویتی از تکنیک‌های برنامه‌نویسی پویا استفاده می‌کنند. در الگوریتم‌های یادگیری تقویتی، فرضیه مبتنی بر دانش یک مدل دقیق ریاضی از MDP نیست، و هنگامی که مدل‌های دقیق غیرقابل دسترسی هستند مورد استفاده قرار می‌گیرد. الگوریتم‌های یادگیری تقویتی در وسایل نقلیه خودران یا در یادگیری بازی در برابر حریف انسانی استفاده می‌شود.
 یادگیری دیکشنری پراکنده یا فرهنگ لغت پراکنده یک روش یادگیری ویژگی است که در آن یک مثال آموزشی به عنوان ترکیبی خطی از توابع پایه ارائه می‌شود، و فرض بر این است که یک ماتریس پراکنده‌است. این مسئله از نوع به شدت سخت NP-hard است و حل تقریبی آن دشوار است. الگوریتم K-SVD یک روش اکتشافی معمول برای یادگیری دیکشنری پراکنده‌است. یادگیری دیکشنری پراکنده در چندین زمینه استفاده شده‌است. در دسته‌بندی، مسئله مشخص کردن کلاس‌هایی است که قبلاً دیده نشده‌اند متعلق به نمونه آموزشی اند. برای دیکشنری که در آن هر کلاس از قبل ساخته شده‌است، یک مثال آموزشی جدید با کلاس همراه است که به بهترین شکل توسط دیکشنری مربوطه نمایش داده می‌شود؛ مثلاً یادگیری دیکشنری پراکنده در تشخیص و جداسازی نویز تصویر استفاده شده‌است. ایده اصلی این است که تکه‌های تصویر تمیز و بدون نویز می‌تواند جداگانه توسط یک دیکشنری تصویری نشان داده شود، اما قسمت نویز نمی‌تواند.
 این الگوریتم یک مدل ترکیبی جدید برای بهبود مدلهای رگرسیون و مدلهای شبکه عصبی مصنوعی برای پیش‌بینی پدیده‌ها و عملکرد مواد است. ماشین سازنده متغیر همبسته بالا (HCVCM) سعی دارد متغیرهای جدیدی را به جای متغیرهای اولیه ایجاد کند که در بهبود دقت مدل‌ها موثرتر هستند. این متغیرها از متغیرهای اولیه با استفاده از توابع ریاضی متغیرهای جدیدی ایجاد می‌کند، به گونه ای که ارتباط بیشتری با خروجی و همبستگی کمتری با ورودی‌های دیگر دارند. در HCVCM سه مرحله وجود دارد. اول، با استفاده از چندین توابع ریاضی متغیرهای جدیدی ایجاد می‌کنند. سپس متغیرهای جدید انتخاب می‌شوند، که در مقایسه با متغیرهای اولیه ضریب همبستگی بیشتری با خروجی دارند. در مرحله سوم فقط متغیرهای جدیدی انتخاب می‌شوند که همبستگی آن‌ها کمتر از همبستگی بین متغیرهای اولیه است. این روش در سال ۲۰۲۰ توسط آیدین شیشه‌گران ارائه شد. 
 امروزه با توجه به گستردگی زبان‌های برنامه‌نویسی، علاقه‌مندان به این بخش از هوش مصنوعی از زبان‌های مختلفی استفاده می‌کنند. پُراستفاده‌ترین این زبان‌ها عبارتند از:
 
 
 
 
 
 
 نکته‌ای که باید در نظر داشت این است که بهترین زبان برنامه‌نویسی برای هوش مصنوعی و یادگیری ماشین وجود ندارد. چرا که این مسئله کاملاً وابسته به موردی است که برنامه‌نویس می‌خواهد برای آن موضوع کدنویسی کند. بعنوان مثال فردی تنها می‌خواهد مفاهیم اولیه یادگیری ماشین را فراگیرد. برای چنین شخصی استفاده از یک زبان برنامه‌نویسی با محیط قابل فهم و آسان کفایت می‌کند.
 ممکن است فرد دیگری در فرایند یادگیری ماشین نیاز به پردازش تصویر داشته باشد. در چنین حالتی زبان‌های متلب و پایتون بهترین گزینه هستند. چرا که کتابخانه‌های قوی برای پردازش تصویر دارند. در حالتی که افراد بخواهند در تئوری‌های مربوط به یادگیری ماشین عمیق شده و از روش‌های آماری خاص استفاده کنند گزینه مناسب R خواهد بود.
البته که به تازگی با ارائه عمومی مدل بیلدر وارد این مبحث شده (قبل از این هم از مدل بیلدر در برخی فناوری‌های خود مانند bing استفاده کرده بود) قطعاً حرف‌های زیادی در این زمینه خواهد داشت. همچنین با توجه به سادگی استفاده از آن و تنها با تسلط به زبان #C و حتی با دانش اندک ریاضی محبوبیت خود را به دست می‌آورد.
 
 
 
 
 نرم‌افزارهایی که عموماً در یادگیری ماشین کاربردی هستند.
 , , , , , Theano , BVLC/cafe, scikit-learn, pybrain, pylearn
 
 
 ‏
 
 
 
 
 آکادمی داده‌کاوی
{"title": "یادگیری ماشین", "link": "https://fa.wikipedia.org//w/index.php?title=%DB%8C%D8%A7%D8%AF%DA%AF%DB%8C%D8%B1%DB%8C_%D9%85%D8%A7%D8%B4%DB%8C%D9%86&oldid=34996217", "language": "fa"}