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