معرفی یادگیری تقویتی

معرفی یادگیری تقویتی 

یادگیری تقویتی چیست؟

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

ساده‌ترین مدل ذهنی‌ای که می‌تواند به درک یادگیری تقویتی کمک کند یک بازی ویدیویی است. جالب است که بدانید الگوریتم‌های یادگیری تقویتی در بازی‌های ویدیویی نقش برجسته‌ای دارند. دریک بازی ویدیویی معمولی شما عناصر زیر را دارید:

همین عناصر دقیقا سازندگان یادگیری تقویتی هم هستند(شاید یادگیری ماشین در حقیقت یک بازی است.) در یادگیری تقویتی ما یک مامور را در به‌صورت مرحله به مرحله در یک محیط راهنمایی می‌کنیم و اگر کارش را در هر مرحله درست انجام دهد به او پاداش می‌دهیم. تا به حال  اصطلاح فرآیند تصمیم‌گیری مارکوف (markov decision process) را شنیده‌اید؟ این همان چیزی است که می‌تواند به خوبی این تنظیم دقیق را توصیف کند.

برای تصویرسازی بهتر یک موش را درون یک ماز تصور کنید:

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

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

اما دقیقا چطور تصمیم می‌گیرید بهترین نتیجه کدام است؟

فرآیند تصمیم گیری در یادگیری تقویتی

دو روش عمده برای آموزش تصمیم‌گیری صحیح در محیط‌های یادگیری تقویتی وجود دارد: 

یادگیری سیاست(policy learning)

یادگیری سیاست یا خط مشی باید به‌عنوان نوعی دستورالعمل کاملا مفصل در نظر گرفته شود. خطی مشی دقیقا به مامور می‌گوید در هر وضعیت باید چه کاری انجام دهد. بخشی از سیاست ممکن است چنین چیزی باشد:‌ «اگر با دشمن روبه رو شدید و دشمن از شما قوی‌تر بود، عقب‌نشینی کنید» اگر به سیاست‌ها به‌عنوان یک تابع نگاه کنید تنها یک ورودی دارد: وضعیت‌. اما دانستن اینکه باید از چه سیاستی استفاده کنید آسان نیست و نیاز به دانش عمیق و کافی از تابع پیچیده‌ای دارد که نقشه را به سمت هدف پیش می‌برد.

تحقیقات جالبی درباره‌ی به کارگیری یادگیری عمیق برای یادگرفتن سیاست‌ها در سناریوهای یادگیری تقویتی انجام شده است. Andrej Karpathy  از یک شبکه‌ی عصبی استفاده کرده است تا بازی کلاسیک pong را به یک مامور یاد بدهد. این چندان شگفت‌آور نیست چراکه میدانیم شبکه‌های عصبی در شرایط پیچیده هم عملکرد بسیار خوبی دارند.

Q-Learning – تابع ارزش

یکی دیگر از راه‌های راهنمایی ماموری که در نظر گرفتیم این است که به جای اینکه به او بگوییم در هر مرحله دقیقا چه کاری انجام دهد به او یک چارچوب کاری بدهیم تا تصمیماتش را خودش بگیرد. برخلاف روش یادگیری سیاست، Q-Learning دو ورودی دارد: وضعیت و عمل(action). اگر در یک تقاطع قرار بگیریدQ-Learning ارزش انتظاری هر یک از کارهایی که مامور شما می‌تواند انجام دهد به شما می‌گوید(به چپ برود، به راست برود و یا هرچیز دیگری).

یکی از چیزهایی که باید درباره‌ی Q-Learning بدانید این است که این روش تنها ارزش فوری انجام یک عمل در یک وضعیت داده شده را تخمین نمی‌زند، بلکه ارزش‌های بالقوه‌ای که ممکن است بر اثر انجام کارهای فعلی ایجاد شود را نیز در نظر می‌گیرد.

برای کسانی که با امور مالی شرکت‌ها آشنا هستند Q-Learning شبیه تحلیل تخفیف جریان نقدی(discounted cash flow) است یعنی تمام ارزش بالقوه‌ی آینده را در هنگام تعیین ارزش فعلی یک عمل (دارایی) در نظر می‌گیرد. در حقیقت Q-Learning هم از یک فاکتور تخفیف کمک می‌گیرد تا نشان دهد پاداش‌ها در آینده ارزش کمتری از زمان حال دارند.

یادگیری خط مشی و Q-Learning دو روش اصلی برای هدایت مامور در یادگیری تقویتی هستند اما در حال حاضر تعدادی رویکرد جدید نیز به کمک یادگیری عمیق به وجود آمده است که می‌تواند با این دو رویکرد ترکیب شود یا راه‌حل خلاقانه‌ی دیگری به وجود بیاورد.

DeepMind مقاله‌ای درباره‌ی استفاده از شبکه‌های عصبی (که آن‌ها را deep Q-networks نامگذاری کرده است) برای تقریب توابع Q-Learning منتشر کرد و به نتایج قابل توجهی نیز رسید. چند سال بعد، یک روش پیشگام که به نام A3C شناخته می‌شود دو دیدگاه یادگیری سیاست و Q-Learning را باهم ترکیب کرد.

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

کاربردهای یادگیری تقویتی

گرچه در طول دهه‌های گذشته مفاهیم از یادگیری تقویتی حمایت و پشتیبانی کرده‌اند اما متاسفانه تا به امروز کمتر از آن به صورت عملی استفاده شده است. چند دلیل برای این مسئله وجود دارد اما همه‌ی آن تابع یک چیز هستند:

یادگیری تقویتی تلاش می‌کند تا الگوریتم های دیگر را برای انجام وظایف خوش-تعریف به طور موثری تغییر دهد.

به همین دلیل هنگامی که محیط یادگیری ماشین نامشخص و پیچیده است بهترین کار استفاده از یادگیری تقویتی است.

بیشترین کاربرد عملی یادگیری تقویتی در دهه‌های گذشته بازی‌های ویدیویی بوده است. الگوریتم‌های یادگیری تقویتی‌ای که با نام cutting edge شناخته می‌شوند نتایج موثری در بازی‌های مدرن و کلاسیک به دست آورده‌اند که توانسته است رقبای انسانی را به شکل قابل توجهی کنار بزند. بازی‌های ویدیویی مجموعه‌های پیچیده‌ی بسیار جذابی برای الگوریتم‌های یادگیری تقویتی هستند.

این نمودار در یکی از مقالات DeepMind  منتشر شده است. برای بیش از نیمی از بازیهایی که امتحان شده‌اند بازیکن توانسته است معیارهای انسانی را اجرا کند و حتی سطح مهارتی دوبرابر بالاتر نشان داده است. البته برای بعضی از بازی‌ها نیز الگوریتم‌ها حتی به عملکرد انسانی نزدیک هم نبوده‌اند.

حوزه‌ی دیگری که یادگیری تقویتی موفقیت‌های عملی‌ای در آن به دست آورده اتوماسیون صنعتی و رباتیک است. روبات‌ها به سادگی می‌توانند مانند مامور یا بازیکن در محیط در نظر گرفته شوند و یادگیری تقویتی نشان داده است یک راه حل عملی برای آموزش است.

گوگل به کمک یادگیی تقویتی توانسته است در کاهش هزینه‌های مراکز داده‌ی خود پیشرفت‌ کند. آن‌ها از یادگیری تقویتی برای کاهش انرژي مورد استفاده برای خنک کننده‌ها و در نتیجه کل انرژي مصرفی استفاده کرده‌اند.

بهداشت و آموزش نیز زمینه‌های دیگری هستند که یادگیری تقویتی در آنها استفاده شده است. البته بیشتر کارهایی که د تا این لحظه ر این زمینه‌ها انجام شده است تحقیقات دانشگاهی بوده‌اند. این روش یادگیری ماشین می‌تواند به انتخاب بهترین درمان و بهترین دارو برای بیماران کمک کند و مربی جذابی هم باشد. یادگیری ماشینی پیشرفت‌های جالبی در سال‌های گذشته داشته است. 

چالش‌های کار با یادگیری تقویتی  

هرچند یادگیری تقویتی پیشرفت‌های بسیار امیدوارکننده‌ای داشته است اما کار با آن همچنان بسیار دشوار است.

 مسئله‌ی اول داده‌ها است. یادگیری تقویتی برای رسیدن به دقت کافی نیازمند حجم زیادی داده برای آموزش است درحالی‌که سایر الگوریتم‌ها سریع‌تر به این سطح از دقت می‌رسند. برای مثال RainbowDQN به ۱۸ میلیون فریم از بازی‌های آتاری یا ۸۳ ساعت بازی برای آموزش نیاز دارد. انسان خیلی سریعتر می‌تواند این کار را انجام دهد.

چالش دیگری که در کار با یادگیری تقویتی وجود دارد مشکل دامنه اختصاصی است. یادگیری تقویتی یک الگوریتم عمومی است که از دیدگاه نظری باید بتواند برای تمام مسائل راه‌حل پیدا کند. اما همه‌ی این مسائل راه‌حلهای خاصی دارند که بهتر از یادگیری تقویتی کار می‌کنند مثلا بهینه‌سازی آنلاین مسیر برای ربات‌های MuJuCo. 

و در آخر مهم‌ترین مسئله‌ای که درباره‌ی یادگیری تقویتی وجود دارد طراحی تابع پاداش است. اگر طراحان الگوریتم کسانی هستند که پاداش‌ها را تعیین می‌کنند بنابراین نتایج مدل به شدت تحت تاثیر طراحان خواهد بود.

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

انتظار می‌رود تحقیقات در حال انجام بتوانند در طول زمان موانعی که سر راه یادگیری تقویتی وجود دارد را بردارند و امکان استفاده‌ی بهتر و بیشتر از این فناوری را فراهم کنند. 




#reinforcement-learning #یادگیری-تقویتی
نویسنده
نویسنده

تیم روابط عمومی دیجی‌نکست