یادگیری دسته‌ای (Batch Learning) و یادگیری برخط (Online Learning)

مدرس: مسعود کاویانی

مبحثِ یادگیری (چه یادگیری‌ماشین و چه داده‌کاوی) را از ابعاد گوناگون می‌توان نگاه کرد. یکی از این ابعاد می‌تواند تفاوت بین یادگیریِ دسته‌ای یا همان batch Learning و در مقابلِ آن، یادگیریِ برخط یا همان online learning باشد. در واقع درک تفاوت این دو روش، می‌تواند به حل مسائلِ مختلفِ این حوزه کمک کند.

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

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

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

مدل یادگیری بر خط یا همان online learning دو مزیت اساسی دارد:

۱. با این روش می‌توان داده‌هایی با حجم بسیار بالا را آموزش داد. برای مثال داده‌هایی که به دلیل حجم بالای خود در حافظه جا نمی‌شوند.

۲. تغییراتی که ممکن است در ذات داده‌ها به وجود بیاید با این روش پوشش داده می‌شود. فرض کنید گوگل برای سیستمِ ایمیلِ خود یک الگوریتم توسعه داده باشد که ایمیل‌های هرزنامه (spam) را به صورت هوشمند با الگوریتم‌های یادگیری‌ماشین تشخیص بدهد. همان‌طور که حدس می‌زنید محتوای ایمیل‌های هرزنامه مدام در حال تغییر است و انسان‌هایی که ایمیل‌های spam میفرستند هر روز خود را در مقابل این الگوریتم‌های گوگل، بهینه می‌کنند. پس الگوریتمِ تشخیص ایمیلِ spam در گوگل می‌تواند به صورتِ برخط (online) یادگیری را انجام دهد تا بتواند ایمیل‌هایی را که در گذرِ زمان تغییر کرده‌اند و spam هستند تشخیص دهند. در واقع یادگیریِ الگوریتم، با تغییر محتوا و شکل ایمیل‌های spam، بروز شده و مدلِ یادگرفته شده را مقاومت‌تر می‌کند.

ترتیب پیشنهادی خواندن درس‌های این مجموعه به صورت زیر است:
منابع این بحث و اطلاعات بیشتر

» فصل ۱۲کتاب Mining Of Massive Datasets

در صورت تمایل به یادگیری بیشتر، منابع بالا در نظر گرفته شده است. می توانید با خواندن این منابع، به یادگیری خود در این زمینه عمق ببخشید

یک دیدگاه دربارهٔ «یادگیری دسته‌ای (Batch Learning) و یادگیری برخط (Online Learning)»

  1. سلام میخواستم چگونگی ارتباط اندازه دسته یا batch size با نرخ یادگیری یا learning rate را بدونم ممنوم میشم

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *