آشنایی با یادگیری ماشین آنلاین و یادگیری تقویتی عمیق
یادگیری ماشین آنلاین حوزهای از یادگیری ماشین است که شامل یک خانواده مهم از تکنیکهای یادگیری است که برای یادگیری مدلها بر روی دادههای لحظه ای طراحی شدهاست.
یادگیری ماشین آنلاین، نقاط ضعف یادگیری ماشین را برطرف میکند که در آن پارامترهای یادگیری مدل میتواند فوراً و بهطور مؤثر توسط یک یادگیرنده برخط
هنگامی که دادههای آموزشی جدید وارد میشوند، به روزرسانی شود. علاوه بر این، الگوریتمهای یادگیری ماشین برخط به دلیل فهم آسان به راحتی قابل پیادهسازی میباشند.
یادگیری ماشین آنلاین
یادگیریماشین آنلاینیکی از زیرمجموعههای اصلی حوزه یادگیری ماشین است. بهطور معمول، بیشتر مدلهای یادگیری ماشین، از دادههای از قبل گردآوری شده که درون بانکهای اطلاعات و انبارههای داده ذخیرهسازی شدهاند به عنوان ورودی استفاده میکنند. این مدلها پس از آنکه ورودی موردنظر را دریافت کردند در ادامه به شکل مستمر روی این مجموعه دادهها پردازشهایی انجام میدهند. این مدل سنتی یادگیری ماشین است، با اینحال روشن دیگری نیز وجود دارد که یادگیری آنلاین نام دارد و ماشین به شیوه دیگری دادههای ورودی خود را دریافت میکند. در یادگیری ماشین دادههای ورودی باید قالب مشخصی داشته باشند و از قبل گردآوری شده باشند تا بتوان مدل مورد نظر را روی این مجموعه دادهها آموزش داد. این روش ساخت مدلها در بیشتر حوزهها استفاده میشوند، با این حال مشکلی که روش فوق دارد این است که قابلیت آموزش لحظهای مدل فراهم نیست و باید تا انتهای زمانی که دادهها گرفته میشوند صبر شود و پس از جمعآوری کامل دادهها فرآیند آموزش مدل را آغاز کرد که به لحاظ زمانی فرآیندی طولانی است. برای حل این مشکل فرضیه یادگیری ماشین آنلاین ارائه شد که توانایی آموزش لحظهای مدل در تعامل با دادههای لحظهای را دارد.
توضیح کوتاهی در ارتباط با یادگیری ماشین
یادگیری ماشین نقش مهمی در تجزیه و تحلیل دادههای مدرن و برنامههایهوش مصنوعیدارد. الگوهای یادگیری ماشین اغلب در یک یادگیری گروهی کار میکنند
که در آن یک مدل توسط برخی از الگوریتمهای یادگیری بر روی کل دادهها یک بار آموزش داده میشوند و سپس مدل آموزش داده شده بر روی دادههای جدید مورد
ارزیابی قرار میگیرد. امروزه با افزایش حجم دادهها، کاربرد یادگیری ماشین به دلیل محدودیت در حافظه پردازشی محدودتر میشوند، به ویژه هنگامی که دادههای به
صورت برخط رشد و توسعه مییابند. ایجاد یادگیری ماشین مقیاس پذیر برای دادههای حجیم و همچنین یادگیری برای دادههای لحظه ای در هوش مصنوعی تبدیل
به یک چالش بزرگ شدهاست. یادگیری ماشین آنلاین در زمینههای مختلف از جمله ی داده کاوی، آمار، بهینهسازی، ریاضی کاربردی، هوش مصنوعی و علوم داده استفاده میشود.
تفاوت یادگیری دستهای و آنلاین
تفاوت این دو دسته یادگیری را میتوان با یک مثال ساده توضیح داد. فرض کنید یک دانش آموز میخواهد آمار و احتمالات را فرا بگیرد. در نوع اول یادگیری، این دانشآموز میتواند یک مجموعه کتابِ آمار و احتمالات را تهیه کند، چند بار بخواند و یاد بگیرد. بعد از اینکه از این مجموعه کتابِ آمار، یادگیریِ خود را انجام داد، دیگر مطلبِ جدیدی یادنگیرد و از این به بعد فقط از دانستههای خود استفاده کند. این نوعی یادگیری، یادگیریِ دستهای(Batch Learning) است. اما یادگیریِ دوم یا همان یادگیریِ آنلاین(Online Learning) مانندِ این است که این دانشآموز ابتدا کتابهای خود را مطالعه کند و از آنها یاد بگیرد و سپس در حین استفاده از دانستههای خود، هر گاه کتاب جدیدی در حوزهٔآمارواحتمالاتمشاهدهکرد،تهیهکردهوباخواندنِآن،یادگیریِخودراتجدیدکندوبهبودببخشد.
دادههایی که معمولاً در دوره دادهکاوی، دوره طبقهبندی و دوره خوشهبندی، دادههایی از نوع دسته ای(Batch) بودند به این معنی که در زمانِ یادگیری(Train)، تمامی دادهها در اختیار الگوریتم بودند و الگوریتم به هر نحوی میتوانست بر روی دادهها عملیاتِ یادگیری را انجام دهد. اما نوع دیگری از یادگیری نیز وجود دارد. برخی اوقات دادهها به صورت جریانداده میآیند یا اینکه نیاز دارند به صورت مرتب یادگرفته شوند. همانطور که گفتیم یادگیریِ دستهای مانند این است که شما یک کتاب دارید و باید این کتاب را یاد بگیرید چون فردا امتحان دارید. تمام منبع شما همین کتاب است و در واقع تمامیِ دادهها را در اختیار دارید (یعنی یادگیری دستهای یا همانBatch Learning دارید). اما فرض کنید در مسیر زندگی قرار دارید و روزانه با اطلاعات جدیدی که به شما داده میشود میبایستی هر روز چیزهای جدید را یادگرفته و به دانش قبلیِ خود اضافه کنید. این موردِ دوم یادگیریِ برخط یا همانOnline Learning است، یعنی هنگامی که تمامی دادهها در حالِ حاضر موجود نیستند. در یادگیریِ برخط یک مدل ساخته میشود و بعد با رسیدن دادههای جدیدتر، این مدل بهروزرسانی میشود.
مدل یادگیری بر خط یا همانOnline Learning دو مزیت اساسی دارد:
۱. با این روش میتوان دادههایی با حجم بسیار بالا را آموزش داد. برای مثال دادههایی که به دلیل حجم بالای خود در حافظه جا نمیشوند.
۲. تغییراتی که ممکن است در ذات دادهها به وجود بیاید با این روش پوشش داده میشود. فرض کنید گوگل برای سیستمِ ایمیلِ خود یک الگوریتم توسعه داده باشد که ایمیلهای هرزنامهرا به صورت هوشمند با الگوریتمهای یادگیریماشین تشخیص بدهد. همانطور که حدس میزنید محتوای ایمیلهای هرزنامه مدام در حال تغییر است و انسانهایی که ایمیلهای هرزنامه میفرستند هر روز خود را در مقابل این الگوریتمهای گوگل، بهینه میکنند. پس الگوریتمِ تشخیص ایمیلِ هرزنامه در گوگل میتواند به شکل آنلاین یادگیری را انجام دهد تا بتواند ایمیلهایی را در گذرِ زمان تغییر کردهاند و هرزنامه هستند یاد بگیرد. در واقع یادگیریِ الگوریتم، با تغییر محتوا و شکل ایمیلهای هرزنامه، بروز میشود.
بردار پشتیبان برخط
همانند روشهای یادگیری ماشین، تکنیکهای یادگیری برخط میتواند برای حل وظایف مختلف در طیف گستردهای از دامنههای کاربردی در دنیای واقعی استفاده
شود. مثالهایی از وظایف یادگیری برخط عبارتند از: نظارت بر وظایف یادگیری: الگوریتمهای یادگیری برخط را برای وظایف یادگیری تحت نظارت توسعه داده
شدهاست. یکی از شایعترین وظایف، طبقهبندی است که هدف آن پیشبینی گروهی برای یک نمونه داده جدید است که بر اساس مشاهدات نمونههای آموزش داده
شدهاست که برچسبهای دستهبندی شده آنها ارائه میشود. به عنوان مثال، یک کار متداول مطالعه شده در یادگیری برخط، طبقهبندی دوتایی برخط است (به عنوان
مثال، فیلتر کردن ایمیلهای هرزنامه) که تنها شامل دو دسته میشود (“ایمیلهای هرزنامه” و “غیرهرزنامه”)؛ سایر انواع وظایف طبقهبندی نظارت شده عبارتند از
طبقهبندی چند کلاس، طبقهبندی چند لایه و طبقهبندی چند نمونه ای و غیره.
یادگیری تقویتی
یادگیری تقویت عمیق Deep reinforcement learning زیرمجموعه ای از یادگیری ماشین است که یادگیری تقویت(RL) و یادگیری عمیق را ترکیب
میکند. RL مشکل یادگیری یک عامل محاسباتی را در نظر میگیرد تا با استفاده از آزمون و خطا تصمیم بگیرد. Deep RL یادگیری عمیق در راه حل را در بر
میگیرد، به نمایندگان اجازه میدهد تا از دادههای ورودی بدون ساختار، بدون مهندسی دستی فضاهای حالت تصمیم بگیرند. الگوریتمهایDeep RL میتوانند
ورودیهای بسیار بزرگی (مثلاً هر پیکسل ارائه شده روی صفحه در یک بازی ویدیویی) را بگیرند و تصمیم بگیرند که برای بهینهسازی یک هدف چه کارهایی انجام
دهند (مثلاً به حداکثر رساندن امتیاز بازی). یادگیری تقویت عمیق برای مجموعه متنوعی از برنامهها از جمله رباتیک، بازیهای ویدیویی، پردازش زبان طبیعی، بینایی
رایانه ای، آموزش، حمل و نقل، امور مالی و مراقبتهای بهداشتی مورد استفاده قرار گرفتهاست اما محدود به آنها نمیشود
یادگیری عمیق
یادگیری عمیق نوعی یادگیری ماشینی است که با به کارگیری یک شبکه عصبی مجموعه ای از ورودیها را از طریق شبکه عصبی مصنوعی به مجموعه ای از
خروجیها تبدیل می کند. نشان داده شدهاست که روشهای یادگیری عمیق، اغلب با استفاده از یادگیری نظارت شده با مجموعه دادههای برچسب دار، وظایفی را حل
میکنند که شامل پردازش دادههای ورودی خام پیچیده و با ابعاد بالا مانند تصاویر، با مهندسی ویژگی دستی کمتر نسبت به روشهای قبلی است، و توانایی پیشرفت
قابل توجهی در چندین زمینه از جمله کامپیوتر بینایی و پردازش زبان طبیعی دارد. در سویی دیگری یادگیری تقویتی قرار دارد که فرآیندی است که در آن یک عامل
یاد میگیرد از طریق آزمون و خطا تصمیمگیری کند. این مشکل اغلب از نظر ریاضی به عنوان یک فرایند تصمیمگیری مارکوف(MDP) مدلسازی میشود،
الگوریتمها
تکنیکهای مختلفی جهت آموزش سیاستها برای حل وظایف با الگوریتمهای یادگیری تقویت عمیق وجود دارد که هرکدام مزایای خاص خود را دارند. در بالاترین
سطح، تمایزی بین یادگیری تقویتی مبتنی بر مدل و بدون مدل وجود دارد که به این موضوع اشاره دارد که آیا الگوریتم سعی در یادگیری یک مدل پیش رو از پویایی
محیط دارد. در الگوریتمهای یادگیری تقویت عمیق مبتنی بر مدل، یک مدل پیش رو از پویایی محیط، معمولاً با یادگیری نظارت شده با استفاده از یک شبکه عصبی
تخمین زده میشود. سپس، اقدامات با استفاده از کنترل پیشبینی مدل با استفاده از مدل آموخته شده بدست میآیند. از آنجا که پویایی واقعی محیط معمولاً از
پویایی آموخته شده جدا میشود، نماینده هنگام انجام اقدامات در محیط، غالباً دوباره برنامهریزی میکند. اقدامات انتخاب شده ممکن است با استفاده از روشهای مونت
کارلو مانند روش آنتروپی متقابل یا ترکیبی از یادگیری مدل با روشهای بدون مدل بهینه شود.
در الگوریتمهای یادگیری تقویت عمیق بدون مدل، یادگیری بدون مدلسازی صریح پویایی انجام میشود. یک خط مشی را میتوان برای به حداکثر رساندن بازده با
برآورد مستقیم شیب خط مشی بهینهسازی کرد اما از واریانس بالایی رنج میبرد، و استفاده از آن را با تقریب عملکرد درRL عمیق غیر عملی میکند. الگوریتمهای
بعدی برای یادگیری با ثبات تر ساخته شدهاند و بهطور گسترده استفاده میشوند. کلاس دیگری از الگوریتمهای یادگیری تقویت عمیق بدون مدل، متکی به
برنامهنویسی پویا، الهام گرفته از یادگیری تفاوت زمانی و یادگیریQ است.