کودکان نوپا در مورد محیط خود با انجام کار یاد میگیرند. آنها شروع به تعامل با محیط خود میکنند، اقدامات مختلفی را انجام میدهند و اطلاعات زیادی را از طریق حواس خود دریافت میکنند. اقدامات خودشان اگر عمل به نتیجه خوبی منجر شود، کودک نوپا تمایل دارد آن عمل را بیشتر انجام دهد، اما اگر عمل نتیجه بدی داشته باشد، ممکن است کودک نوپا اینگونه رفتار نکند.
روشی که انسانها یاد میگیرند الهامبخش حوزهای در هوشمصنوعی به نام یادگیری تقویتی بود. شبکههای عصبی Q-Learning و Deep Q دو الگوریتمی هستند که در این زمینه محبوب شدهاند و در این مقاله به توضیح آنها خواهم پرداخت!
یادگیری تقویتی
ابتدا باید زیرساختهای اساسی یادگیری تقویتی را درک کنیم. پنج جزء اصلی برای الگوریتمهای یادگیری تقویتی وجود دارد.
۱) عامل: بازیکن/رباتی که با محیط در تعامل است و تصمیم می گیرد
۲) محیطها: محیطی که عامل با آن تعامل دارد
۳) اقدام: عملی که عامل انجام میدهد
۴) مشاهدات: حالتهای جدید پس از انجام اقدامات
۵) پاداش: ارزشی که عامل سعی میکند در طول آموزش عامل به حداکثر برساند
این مؤلفهها همه در حلقهای مانند زیر برای آموزش عامل کار میکنند:
عامل اقدامی را در محیط انجام میدهد که نتیجه آن حالت جدیدی است. این اقدام منجر به پاداش میشود و به عامل داده میشود. این اطلاعات برای تصمیمگیری در مورد اقدامات جدید استفاده میشود و این حلقه به عامل اجازه میدهد تا در انتخاب اقدامات بهتر شود.
به عنوان مثال، فرض کنید در حال یادگیری بازی محبوب آرکید، Pac-Man هستید. محیط بازی Pac-Man است و شما عامل هستید. شما برای چهار اقدام انتخاب دارید. بالا، پایین، چپ یا راست. شما واقعاً نمیدانید چه کاری باید انجام دهید و جوی استیک را در جهت خاصی حرکت دهید. عجب! شما فقط یک Pac-Dot خوردید و برای آن جایزه گرفتید! شاید بهترین کار این است که تمام نقاط را امتحان کنید و بخورید؟ شما بر اساس این اطلاعات تصمیمگیری میکنید و سعی میکنید تمام نقاط را جمعآوری کنید. الان یه روح میبینی بیایید سعی کنیم با آن تعامل داشته باشیم. اوه نه! شما فقط روح را لمس کردید و مردید. اکنون سطح دوباره راهاندازی شده است و شما یاد گرفتهاید که باید از ارواح فرار کنید. با گذشت زمان شما شروع به استفاده از آن میکنید و از طریق فرآیند یادگیری تقویتی در بازی واقعاً خوب میشوید!
Deep Q-Learning
Deep Q-Learning (DQL) نوعی الگوریتم است که از قدرت شبکههای عصبی استفاده میکند (اگر نمیدانید چیست، مقاله من را در مورد آن بررسی کنید!). این شبکههای عصبی به عامل کمک میکنند تا در مورد اقدام بعدی تصمیم بگیرد. این کار با انتخاب اقدام با بالاترین مقدار Q انجام میشود. Q-value پاداش مورد انتظار آینده از انجام یک اقدام خاص در یک وضعیت خاص است. DQL یک الگوریتم مبتنی بر ارزش است، به این معنی که اقدامات را بر اساس بالاترین مقدار انجام میدهد.
الگوریتم DQL به این صورت است (محیط یک بازی ویدیویی است):
۱) حالت قاب باید در مقیاس خاکستری و کوچک باشد. این قاب وضعیت فعلی بازی است، اما برای کاهش ابعاد باید در مقیاس خاکستری تغییر یابد. تصاویر رنگی سه بعدی هستند زیرا دارای مقادیر قرمز، سبز و آبی هستند. آنها همچنین کوچک میشوند تا اطلاعات بیفایده حذف شوند.
۲) سپس یک پشته از پیشپردازش شده از قابها ساخته میشود. پشته یک نوع داده است که لیستی از دادهها را ذخیره میکند و جدیدترین موارد را در حین حذف قدیمیترین موارد اضافه میکند. پشته فریمهای پیشپردازش شده برای درک حالتها در طول زمان استفاده میشود. اگر تصویر ثابتی از حرکت یک توپ داشته باشید، ممکن است درک جهت آن دشوار باشد، اما اگر چندین فریم داشته باشید، درک آن بسیار آسانتر خواهد بود.
۳) این دادهها سپس به یک شبکه عصبی کانولوشن تغذیه میشوند. این شبکه عصبی برای درک دادههای تصویر با برداشت ویژگیها و کاهش مقدار داده طراحی شده است، این فرآیند از طریق فرآیند مسطح کردن (بردار شدن دادهها) و سپس اتصال کامل (لایههای شبکه عصبی کاملاً متصل) انجام میشود.
۴) شبکه عصبی بر اساس اطلاعات دریافتی از پشته فریمها، از بین تمامی اقدامات ممکن، بهترین اقدام را انتخاب میکند.
این یادگیری به یک عامل اجازه میدهد تا در بازی ویدیویی که انجام میدهد واقعاً خوب شود و پس از ساعتها آموزش عملکرد بسیار خوبی داشته باشد.
Q-Learning اساساً یک نسخه سادهتر از Deep Q-Learning است، اما برای سناریوهایی که در آن حالتهای کمی وجود دارد استفاده میشود. هیچ شبکه عصبی استفاده نمیشود، اما از معادلهای به نام معادله بلمن برای به روز رسانی مقادیر Q خود استفاده میکند. این الگوریتم اساساً یک برگه تقلب را با محاسبه مقادیر Q انجام هر اقدام در هر حالت ایجاد میکند و بر اساس این برگه تقلب تصمیمگیری میکند. این معادله بلمن در زیر است:
معادله بلمن نحوه به روز رسانی مقادیر Q است.
NewQ عبارت است از Q-value + Learning Rate [پاداش + نرخ تخفیف (پاداش برخی از اقدامات خاص را تخفیف میدهد) حداکثر پاداش آینده مورد انتظار - Q-value فعلی]
پیشرفت در یادگیری تقویتی
در زمینه یادگیری تقویتی، پیشرفتهای بسیار زیادی صورت گرفته است.
AlphaGo یک عامل یادگیری تقویتی عمیق بود که بازی Go را یاد گرفت و توانست قهرمان جهان لی سدول را شکست دهد. OpenAI همچنین رباتی را توسعه داد که بازی ویدیویی محبوب Dota 2 را یاد گرفت و توانست بهترین بازیکن جهان را در مسابقه 1v1 شکست دهد. هر دو بازی Go و Dota2 بازیهای بسیار پیچیدهای هستند و تقریباً دارای امکانات و اکشنهای بینهایت هستند.
یکی از کاربردهایی که بیشتر مردم در مورد آن شنیدهاند ماشینهای خودران است. خودروهای خودران از یادگیری تقویتی برای یادگیری نحوه کارکردن استفاده میکنند و برای رانندگی ایمن در جادهها آموزش دیدهاند. OpenAI همچنین سعی کرده است با استفاده از این نوع یادگیری مهارت بازوی رباتیک را آموزش دهد!
یادگیری تقویتی کاربردهای زیادی دارد زیرا بر اساس نحوه یادگیری انسان است. اگر با انجام کار یاد بگیریم، یادگیری تقویتی میتواند کاری را که در زندگی خود انجام میدهیم تقلید کند. همانطور که یوشوا بنجیو[1] و ریچارد ساتون[2] که متخصصان برتر یادگیری عمیق هستند، DRL در حال حاضر در خط مقدم حوزه هوشمصنوعی قرار دارد. با پیشرفت های بسیار زیاد در این زمینه، این یکی از مواردی است که به سرعت رشد میکند و تأثیر زیادی بر سیاره ما خواهد داشت.