یادگیری ماشین به معنای یادگیری ماشین از روی داده ها است.یادگیری چه چیزی؟..
این که ماشین چه چیزی را از داده ها می آموزد تنها به دسته بندی ماشینهای دارای قدرت یادگیری کمک میکند. من در این بخش نمی خواهم درباره ی این موضوع صحبت کنم. در این جا تنها و تنها می خواهم کمی درباره ی مفهوم یادگیری بحث کنم.
یادگیری در ماشین و یادگیری در انسان دو مقوله ی بسیار شبیه به هم هستند. این شباهت اتفاقی نیست. دلیل این شباهت آن است که کسانی که مفاهیم یادگیری ماشین را پایه گذاری کرده اند خود انسان بوده اند و همواره نیم نگاهی به آن چه در درون انسان می گذرد داشته اند البته بعضی به صورت خودآگاه و بعضی به صورت ناخودآگاه. بنا براین، ما در این بخش، انسان و نیز ماشین یادگیرنده را عامل یادگیرنده (learning agent) می نامیم.
یادگیری، کلیت بخشی و خودمختاری
یادگیری (learning) و کلیت بخشی (generalization) دو مفهوم کاملا به هم نزدیک و تقریبا دو نام متفاوت برای یک چیز اند. در گام اول وقتی عامل یادگیرنده با انبوهی از داده ها مواجه میشود ابتدا به دنبال داده های مفید برای یادگیری میگردد. مثلا انسان همواره با انبوهی از داده های ورودی از طریق حواس پنج گانه درگیر است. حتی ذخیره ی این داده ها برای رایانه های بسیار بزرگ غیر ممکن است. بنا براین مغز انسان در میان این انبوه داده ها همواره به دنبال داده های مفید است. مفید برای چه؟ مفید برای هدف یا اهدافی که در آن لحظه برای رسیدن به آن در تلاش است. البته این فرآیند بسیار پیچیده و مهم، هنوز به طور قابل قبولی در ماشین ها پیاده سازی نشده و طراح ماشین قبل از به کار گیری ماشین ساعت ها بر روی انتخاب و پالایش داده ها فکر و برنامه ریزی می کند. هرچند با معرفی مکانیزم توجه (attention) ،گام هایی بسیار کوچک در این راه برداشته شده است.
پس از این که عامل یادگیرنده داده های خود را دریافت کرد درگام دوم سعی می کند آن را درون خود بازنمایی (represent) کند. در این جا هم از دست ماشین کار زیادی بر نمی آید و باز این طراح ماشین است که شیوه ی بازنمایی داده ها را مشخص میکند. مثلا طراح ماشین ممکن است برای بازنمایی کلمات یک متن یکی از دو روش زیر را انتخاب کند:
1- استخراج لیست کلمات منحصر به فرد درون متن و انتساب اعداد منحصر به فرد به آن ها و تبدیل متن به رشته ای از اعداد
2-استخراج لیست کلمات منحصر به فرد درون متن و انتساب اعداد منحصر به فرد به آن ها و تبدیل متن به بردار وان هات (one-hot vector)
ماشین های یادگیرنده در گام سوم خودنمایی بیشتری دارند. یک ماشین یادگیرنده پس از آن که داده ها را دریافت و در درون خود بازنمایی کرد به دنبال کشف قواعد کلی از روی داده ها است. طیف وسیع الگوریتمهای یادگیری ماشین عمدتا در این گام قرار میگیرند.**ذکر یک مثال ساده**
در همین جا می توان یک تعریف ساده از یادگیری عمیق ارائه کرد. یادگیری عمیق یعنی توانایی بیشتر در کلیت بخشی و کشف قواعد کلی تر یا به عبارتی کشف قاعده ی قاعده ها. یک عامل یادگیرنده میتواند به قواعدی که از داده ها و رابطه ی بین آن ها کشف کرده است مجددا فکر کند و قواعد سطح بالاتری استقرا کند. جالب است که ما در زندگی روزمره به افرادی که قواعد کلی تری از علوم را میدانند یا به عبارتی اشراف بیشتری بر علوم دارند صفت دارای بینش عمیق را نسبت میدهیم.
در مقابل یادگیری عمیق آن یادگیری سطحی (shallow) قرار دارد. تصور کنید دانشجویی را که درس معادلات دیفرانسیل را با به هم پیوستن مشتی خرده تئوری می آموزد که تنها برای حل سؤالات امتحانی مفید است و دانشجویی که تمام اثبات ها و چرایی های روش های حل در معادلات دیفرانسیل را میداند. قطعا دومی بینش عمیق تری نسبت به موضوع دارد.
پس جا دارد که ما یادگیری بهتر را یادگیری عمیق تر بنامیم ؛ یادگیری ای که حاصل آن عبارات جهان شمول تر و اتکاپذیرتر است و باعث می شود که عامل یادگیرنده خود را بهتر با محیط جدید سازگار (adopt) کند. این سازگاری ناشی از آن است که عامل نیازی به یک جدول به شکل اگر-آنگاه برای اعمال خود ندارد و میتواند (action) عملدرست را بر اساس قواعد کلی که آموخته استتنتاج پیداکند. به عبارت دیگر عمق زیاد دانش عامل یادگیرنده باعث میشود که طراح عامل در مورد ناشناخته بودن فضای جدید و ادراکات جدید نگرانی کم تری داشته باشد. یعنی طراح عامل نیاز کمتری به کسب اطلاعات از محیط به کارگیری عامل خواهد داشت. تصور کنید که دو ماشین یادگیرنده با انبوهی از عملیات جمع و ضرب بین اعداد متفاوت مواجه هستند. ماشین اول تنها آنها را حفظ میکند. اما ماشین دوم میتواند روابط بین آن ها را کشف کند. طبیعی است طراح ماشین اول همواره نگران است که در محیط عمل، ورودی محاسباتی جدید و قبلا دیده نشده به ماشین داده نشود. اما طراح ماشین دوم از این بابت خیالش راحت تر است.
Overfit & Underfit
پس...
به طور کلی هر چه ساختار عامل یادگیرنده مستقل از محیط به کارگیری آن باشد یعنی طراح عامل به اطلاعات کم تری از محیط به کارگیری عامل احتیاج داشته باشد آن عامل خودمختاری (autonomy) بیشتری دارد. خود مختاری نقش اساسی در هوشمندی یک عامل را دارد. در این جا شما را به توجه بین مفهوم خودکار بودن و خودمختار بودن جلب میکنم. در این جامشاهده می شود که دستگاههای خودکار که در ادبیات فارسی روزمره به اشتباه هوشمند نامیده میشوند اصلا هوشمند نیستند. یا به عبارت محترمانه تر از حداقل هوشمندی برخورداراند. از این دیدگاه "کارت هوشمند سوخت" یک نام گذاری نادرست است.