مشکل stable نبودن و روشهای یادگیری عمیق تقویتی


مشکل stable نبودن و روشهای یادگیری عمیق تقویتی

یکی از مواردی که باعث شد یادگیری تقویتی تا همین اواخر رشد چندانی نداشته باشد، این موضوع بود که روشهای تقویتی با مدلهای غیر خطی خوب کار نمی کنند. به همین علت است که تا قبل از سال 2013 اکثر مقالات به دنبال استفاده از مدلهای بسیار ساده برای یادگیری بودند. سالها پیش اگر به یک متخصص بینایی ماشین می گفتید که تصویر را به صورت مستقیم و بدون هیچ feature extraction ای به شبکه عصبی می دهیم تا خودش یاد بگیرد، قطعا نظرتان طرد می شد، ولی امروزه شاهد این موضوع هستیم که شبکه ها به صورت مستقیم و بدون هیچ استخراج ویژگی از قبل تعیین شده ای کار می کنند. این پدیده در شبکه هایی که برای deep reinforcement هم استفاده می شوند، به نحوی وجود دارد. در ادامه سعی می کنیم نیازها را ذکر کنیم که چرا به شبکه عصبی در یادگیری تقویتی نیاز داریم.

مفهوم ناپایداری در تقویتی عمیق به این معنی است که شما تعداد لایه ها، مدل، نرخ یادگیری و ... را خوب تعیین کرده اید و آموزش به نحو مناسبی پیش می رود ولی به یک باره خطا زیاد می شود و این بد شدن ادامه پیدا می کند بدون اینکه شما چیزی را تغییر داده باشید. دقت کنید که ما بدلیل پیچیدگی تابع هزینه، همچنان به اکسترمم سراسری نمی رسیم. بحثی که وجود دارد این است که در طول فرآیند یادگیری، برای رسیدن به یک اکسترممی در حال حرکت با طول گام یکسان هستیم، ولی به یک باره نتیجه بد می شود و به جاهایی می رویم که هزینه بالایی دارند.

در روشهای پایه ای برای یادگیری تقویتی، به این شکل کار می کنیم که یک جدولی تشکیل می دهیم و به صورت ساده انگارانه، سطرها وضعیت یا state و ستون ها action هایی هستند که در آن state می توان انجام داد. به صورت کلی این روشها قابلیت تعمیم ندارند. از سویی دیگر، در جاهایی که فضای حالت خیلی بزرگ است، تعداد state ها خیلی زیاد می شوند و خیلی از ورودی های جدول تشکیل شده یا Q table، خالی می مانند. یک راه حل جایگزین استفاده از شبکه های عصبی است. به این صورت که به عنوان ورودی به شبکه state را بدهیم و شبکه به دلیل قدرت تعمیمی که می تواند داشته باشد، می تواند بهتر از حالت جدولی کار کند که برای داده های ندیده، حرفی برای گفتن نداشت. با این حال یکسری چالش باقی است که باعث می شوند با احتیاط به سمت شبکه های عصبی برویم. در مقالات قبلی ذکر کرده بودیم که شبکه ها نیاز به داده ها iid دارند، این در حالی است که داده های مسائلی که با تقویتی حل می شوند، ذات وابستگی دارند. راه کارهای زیادی ارایه شده اند که سعی می کنیم به کلیت این کارها اشاره کنیم.

در تقویتی برچسب وجود ندارد و تنها راه برای اینکه بفهمیم مدلی خوب کار کرده یا نه این است که سیگنال پاداش یا reward را تجمیع کنیم. اگر این تجمیع را با پاداش کنونی و حدسی که برای آینده داریم تخمین بزنیم و این تخمین به این شکل باشد که تا حدودی پایدار باشد و با آموزش شبکه برای iteration های آموزشی نسبتا طولانی چندان تغییر نکند، می توانیم چیزی مانند برچسب بسازیم.

مورد بعدی که نیاز است چالشش را حل کنیم، داده های آموزشی هستند که هر کدام دنباله ای از state, action و reward ها هستند. در literature به صورت کلی سه راه حل وجود دارد، یکی روشهای value based یا ارزش محور، دیگری روشهای policy based و در انتها روشهایی که با نام actor-critic شناخته می شوند و از ادغام دو روش قبل بدست می آیند. البته گونه دیگری نیز وجود دارد با نام model based که بدلیل تفاوت ماهوی با روشهای ذکر شده، به آن نمی پردازیم.

در روشهای مبتنی بر value، دادگان راه حل های متفاوت را در کنار هم قرار می دهیم و به هم میریزیم. این موضوع برای هر ('s, a, r, s) صادق است. یعنی گامهای متفاوت بازیهای متفاوت به هم ریخته می شوند. در ادامه این دادگان را در صفی قرار می دهیم که امکان اضافه کردن و جدا کردن دادگان جدید و قدیم را دارد. به این شکل خاصیت iid را به نحوی به دست می آوریم. برچسبها را هم با روشی که ذکر شد می توان ساخت. با اینکارها روشهای مبتنی بر تابع ارزش، پایداری نسبتا مناسبی دارند.

در روشهای مبتنی بر policy به صورت کلی و به صورت ساده انگارانه به دنبال برچسب نیستیم و تنها می خواهیم action ای که در state ای reward خوبی گرفته را تقویت کنیم و حرکتی که پاداش کم گرفته را تضعیف کنیم. روشهای مبتنی بر تابع سیاست، دادگانشان لازم است بسته به نوع روش هر چند وقت یکبار کلا تغییر کنند. با این حال مزیت این روش در قیاس با روشهای مبتنی به تابع ارزش این است که می توان یکسری باند بدست آورد که حالت ناپایداری به وجود نیاید.

در انتها، در روشهای مبتنی بر actor-critic یا AC به دنبال این هستیم که از نقاط قوت policy based و value based استفاده کنیم.



نوشته شده بوسیله: محمد ابراهیم
محمد ابراهیم

سردبیر بخش هوش مصنوعی وبسایت هستم. زمینه های فعالیت من عبارت است از یادگیری عمیق، یادگیری تقویتی، بازیابی اطلاعات و بینایی ماشین. به ریاضیات، جبر و بهینه سازی علاقه فراوانی دارم. تجربیات بسیاری در برنامه نویسی دارم و فریمورکهای مورد علاقه من عبارتند از django ،pytorch و tensorflow. از دانشگاه …

مطالب مشابه