یادگیری تقویتی یا Reinforcement Learning زیر شاخه ای از یادگیری ماشینی است که سیستمهای مبتنی بر هوش مصنوعی را قادر میسازد تا در یک محیط پویا از طریق آزمایش و خطا اقداماتی را انجام دهند تا پاداشهای جمعی را بر اساس بازخورد تولید شده برای فعالیتهای فردی به حداکثر برسانند.
در غیاب سرپرست، عامل باید به طور مستقل اقداماتی را که پاداش را به حداکثر می رساند، کشف کند. این فرآیند کشف شبیه به جستجوی آزمایش و خطا است. کیفیت اقدامات نه تنها با پاداش فوری آنها، بلکه با پاداش تاخیری که ممکن است دریافت کنند سنجیده می شود.
یادگیری تقویتی یکی از چندین روش هایی است که توسعه دهندگان برای آموزش سیستم های یادگیری ماشینی استفاده می کنند. چیزی که این روش را مهم میکند این است که به یک عامل، قدرت میدهد تا پیچیدگیهای محیطی که برای آن ایجاد شده است را یاد بگیرد و با گذشت زمان، از طریق یک سیستم بازخورد عامل از محیط خود می آموزد و رفتارهای خود را بهینه می کند.
یادگیری تقویتی (Reinforcement learning) چگونه کار می کند؟ #
مسائل یادگیری تقویتی شامل کاوش یک عامل در محیطی ناشناخته برای رسیدن به یک هدف است. یادگیری تقویتی بر اساس این فرضیه است که همه اهداف را می توان با حداکثر کردن پاداش جمع شده مورد انتظار توصیف کرد. عامل باید بتواند قابلیت دریافت اطلاعات از محیط و تغییر وضعیت آن با انجام اقدامات به دست آورد تا حداکثر پاداش را بدست آورد. چارچوب رسمی برای یادگیری تقویتی از مسئله کنترل بهینه فرایندهای تصمیمگیری مارکوف (markov decision process) الهام گرفته شده است.
عناصر اصلی یک سیستم یادگیری تقویتی عبارتند از:
- عامل یا یادگیرنده
- محیطی که عامل با آن تعامل دارد
- سیاستی که عامل برای انجام اقدامات دنبال می کند
- سیگنال پاداشی که عامل هنگام انجام اقدامات مشاهده می کند
یک برداشت مفید از سیگنال پاداش، تابع ارزش است که “خوبی” یک حالت را نشان می دهد. در حالی که سیگنال پاداش مزیت فوری قرار گرفتن در یک وضعیت خاص را نشان میدهد، تابع ارزش مقدار پاداش تجمع شده را که انتظار میرود از آن حالت در آینده بدست آید، دریافت میکند. هدف یک الگوریتم یادگیری تقویتی کشف سیاست عملی است که میانگین مقداری را که می تواند از هر حالت سیستم استخراج کند، به حداکثر برساند.
تاریخچه یادگیری تقویتی #
تاریخچه یادگیری تقویتی به اواسط قرن بیستم باز می گردد و در اینجا برخی از نقاط عطف کلیدی وجود دارد:
- ایده های اولیه (1950-1960): پایه های یادگیری تقویتی با معرفی برنامه نویسی پویا توسط ریچارد بلمن در دهه 1950 پایه گذاری شد. کار بلمن بر حل مسائل بهینه سازی در طول زمان متمرکز شد و راه را برای فرمول یادگیری تقویتی هموار کرد.
- یادگیری تفاوت زمانی (Temporal Difference Learning) (1980): توسعه یادگیری تفاوت زمانی (TD)، تکنیکی برای پیشبینی پاداشهای آینده، یک گام مهم بود. یادگیری TD که توسط ریچارد ساتون در دهه 1980 پیشنهاد شد، به یک مفهوم اساسی در الگوریتم های یادگیری تقویتی تبدیل شد.
- یادگیری Q (Q-Learning) (1989): کریستوفر واتکینز در پایان نامه دکترای خود در سال 1989 یادگیری Q را معرفی کرد. یادگیری Q به طور گسترده ای برای تصمیم گیری در محیطی استفاده می شود که یک عامل به دنبال به حداکثر رساندن پاداش تجمعی خود است.
- روشهای سیاست گرادیان (Policy Gradient Methods) (1990): در دهه 1990، محققان شروع به بررسی روشهای سیاست گرادیان کردند، رویکردی جایگزین برای روشهای مبتنی بر ارزش مانند یادگیری Q. این روشها سیاستی را یاد میگیرند که حالتها را مستقیماً به اقدامات متصل میکند.
- شبکه دیپ Q (DQN، 2013): معرفی یادگیری عمیق به یادگیری تقویتی نقطه عطف مهمی بود. در سال 2013، شبکه دیپ Q که توسط محققان DeepMind توسعه یافت.
- OpenAI Five (2018): تیم عاملان هوش مصنوعی OpenAI، معروف به OpenAI Five، هماهنگی و تصمیم گیری پیچیده ای را در اجرای بازی ویدیویی Dota 2 نشان دادند. این نشان دهنده توانایی یادگیری تقویتی برای مدیریت محیط های چند عاملی بود.
- پیشرفتها در یادگیری تقویتی عمیق (2010-2020): پیشرفتهای مستمر در یادگیری تقویتی عمیق (DRL) آموزش عوامل را برای کارهای پیچیده، از جمله کنترل رباتیک، وسایل نقلیه خودمختار، و غیره ممکن کرده است.
- روندهای فعلی: روندهای اخیر شامل استفاده از یادگیری تقویتی در برنامه های کاربردی دنیای واقعی مانند روباتیک، مراقبت های بهداشتی، مالی و سیستم های توصیه شخصی است.
الگوریتم های یادگیری تقویتی #
الگوریتمهای یادگیری تقویتی اساساً به دو نوع تقسیم میشوند: الگوریتمهای مبتنی بر مدل و الگوریتمهای بدون مدل. با تقسیمبندی بیشتر ، الگوریتمها تحت عنوان مبتنی بر سیاست و خارج از سیاست قرار میگیرند.
در یک الگوریتم مبتنی بر مدل، یک مدل یادگیری تقویتی تعریف شده وجود دارد که از وضعیت فعلی، اقدامات و تغییرات حالت که به دلیل اعمال رخ میدهد، یاد میگیرد. بنابراین، این نوع دادههای وضعیت و عملکرد را برای مراجعات بعدی ذخیره میکنند. از سوی دیگر، الگوریتمهای بدون مدل بر روی روشهای آزمایش و خطا عمل میکنند و در نتیجه نیاز به ذخیرهسازی دادههای حالت و عملکرد در حافظه را از بین میبرند.
علاوه بر این، فرایندهای تصمیمگیری مارکوف بر وضعیت فعلی تأکید می کند، که به پیش بینی وضعیت های آینده به جای تکیه بر اطلاعات وضعیت گذشته کمک می کند. این نشان می دهد که احتمال وضعیت آینده بیشتر به وضعیت فعلی بستگی دارد تا فرآیندی که به وضعیت فعلی منتهی می شود. ویژگی مارکوف نقش مهمی در یادگیری تقویتی دارد.
بیایید اکنون به الگوریتم های حیاتی یادگیری تقویتی نگاهی بیندازیم:
1_ یادگیری Q:
یادگیری Q یک الگوریتم از نوع بدون مدل است که از اقدامات تصادفی (سیاست حریص) درس می گیرد. «Q» در یادگیری کیو به کیفیت فعالیتهایی اشاره دارد که پاداشهای ایجاد شده از طریق فرآیند الگوریتمی را به حداکثر میرسانند.
الگوریتم یادگیری Q از یک ماتریس پاداش برای ذخیره پاداش های به دست آمده استفاده می کند. به عنوان مثال، برای پاداش 50، یک ماتریس پاداش ساخته شده است که مقداری را در موقعیت 50 به پاداش 50 اختصاص می دهد.
از نظر ریاضی، یادگیری Q با فرمول نشان داده می شود:
جایی که،
- آلفا = میزان یادگیری،
- گاما = ضریب تخفیف،
- R = پاداش،
- s’ = حالت بعدی،
- Q(S’,a) = ارزش آینده
2_ SARSA (State-Action-Reward-State-Action)
الگوریتم SARSA یک روش مبتنی بر سیاست است. بنابراین، از سیاست حریص یادگیری Q تبعیت نمی کند. در عوض، SARSA از وضعیت فعلی و اقدامات برای اجرای فرآیند یادگیری تقویتی درس می گیرد.
3_ شبکه Q عمیق (Deep Q-network)
برخلاف یادگیری Q و SARSA، شبکه Q عمیق از یک شبکه عصبی استفاده می کند و به آرایه های دو بعدی وابسته نیست. الگوریتمهای یادگیری Q در پیشبینی و بهروزرسانی مقادیر حالتی که از آن بیاطلاع هستند، یعنی حالتهای ناشناخته، ناکارآمد هستند. از این رو، در شبکه Q عمیق ، آرایههای دوبعدی با شبکههای عصبی برای محاسبه مقادیر ارزش حالت و محاسبه مقادیر ی که نماینده انتقال حالت است جایگزین میشوند و در نتیجه جنبه یادگیری تقویتی را سرعت میبخشند.
کاربردها و مثال هایی از یادگیری تقویتی #
در حالی که یادگیری تقویتی موضوعی است که در زمینه هوش مصنوعی بسیار مورد توجه قرار گرفته است، پذیرش و کاربرد گسترده آن در دنیای واقعی محدود است. با توجه به این موضوع، مقالات تحقیقاتی در مورد کاربردهای نظری فراوان است و موارد استفاده موفقی نیز وجود داشته است.
کاربردهای کنونی شامل موارد زیر است اما به آنها محدود نمی شود:
- بازی های رایانه ای
- مدیریت منابع
- توصیه های شخصی
- رباتیک
بازی های رایانه ای احتمالاً رایجترین کاربرد برای یادگیری تقویتی است، زیرا میتواند به عملکرد برتر از انسان در بازیهای متعددی دست یابد.
یادگیری تقویتی می تواند در موقعیتی عمل کند تا زمانی که بتوان پاداش روشنی را اعمال کرد. در مدیریت منابع سازمانی، الگوریتمهای تقویتی منابع محدودی را به وظایف مختلف اختصاص میدهند تا زمانی که هدف کلی وجود داشته باشد. هدف در این شرایط صرفه جویی در زمان یا حفظ منابع خواهد بود.
در رباتیک، یادگیری تقویتی به تست های محدود راه پیدا کرده است. این نوع یادگیری ماشینی میتواند به رباتها توانایی یادگیری وظایفی را که معلم انسانی نمیتواند نشان دهد، انطباق یک مهارت آموختهشده با یک کار جدید و دستیابی به بهینهسازی حتی زمانی که فرمولبندی تحلیلی در دسترس نیست، ارائه دهد.
چالش های یادگیری تقویتی #
در حالی که الگوریتم های یادگیری تقویتی در حل مسائل پیچیده در محیطهای شبیهسازی شده موفق بودهاند، پذیرش آنها در دنیای واقعی کند بوده است. در اینجا برخی از چالش هایی که جذب آنها را دشوار کرده است آورده شده است:
- عامل یادگیری تقویتی به تجربه گسترده نیاز دارد. روش های یادگیری تقویتی به طور مستقل داده های آموزشی را با تعامل با محیط تولید می کنند. بنابراین، سرعت جمع آوری داده ها توسط پویایی محیط محدود می شود. محیطهایی با تأخیر بالا، سرعت یادگیری را کاهش میدهند. علاوه بر این، در محیط های پیچیده با فضاهای حالت با ابعاد بالا، قبل از یافتن یک راه حل خوب، به کاوش گسترده نیاز است.
- پاداش ها تاخیر خورده . عامل یادگیری میتواند پاداشهای کوتاهمدت را با دستاوردهای بلندمدت معاوضه کند. در حالی که این اصل بنیادی یادگیری تقویتی را مفید می کند، همچنین کشف سیاست بهینه را برای عامل دشوار می کند. این مشکل به ویژه در محیط هایی که تا زمانی که تعداد زیادی از اقدامات متوالی انجام نشود، نتیجه ناشناخته است، وجود دارد. در این سناریو، اختصاص اعتبار به یک اقدام قبلی برای نتیجه نهایی چالش برانگیز است و می تواند مغایرت زیادی را در طول آموزش ایجاد کند. بازی شطرنج یک مثال مرتبط در اینجا است، جایی که نتیجه بازی تا زمانی که هر دو بازیکن تمام حرکات خود را انجام ندهند، نامعلوم است.
- عدم تفسیر پذیری . هنگامی که یک عامل یادگیری تقویتی سیاستی بهینه را آموخته و در محیط مستقر می شود، بر اساس تجربه خود اقداماتی را انجام می دهد. برای یک ناظر خارجی، دلیل این اقدامات ممکن است واضح نباشد. این عدم تفسیرپذیری در ایجاد اعتماد بین عامل و ناظر اختلال ایجاد می کند. اگر یک ناظر بتواند اقداماتی را که عامل یادگیری تقویتی انجام می دهد توضیح دهد، به او در درک بهتر مسئله و کشف محدودیت های مدل، به ویژه در محیط های پرخطر کمک می کند.
مزایای یادگیری تقویتی #
یادگیری تقویتی برای طیف وسیعی از مشکلات پیچیده که با سایر الگوریتم های یادگیری ماشین قابل حل نیستند، قابل استفاده است. یادگیری تقویتی به هوش عمومی مصنوعی نزدیکتر است، زیرا توانایی جستجوی یک هدف بلند مدت در حالی که احتمالات مختلف را به طور مستقل بررسی میکند را دارد. برخی از مزایای یادگیری تقویتی عبارتند از :
- یادگیری تقویتی بر روی کل مشکل تمرکز میکند، پاداشهای بلند مدت را بدون تقسیم وظایف به حداکثر میرساند، وضوح، هدف و توانایی مبادله سود کوتاه مدت با منافع بلندمدت را نشان میدهد.
- در یادگیری تقویتی ، داده های آموزشی از طریق تعامل مستقیم با محیط به دست می آیند و نیاز به مرحله جمع آوری داده جداگانه را از بین می برند. این امر بار آموزشی سرپرست را به حداقل می رساند.
- یادگیری تقویتی در محیط های پویا و نامطمئن برتر است و با تغییرات سازگار است. برخلاف الگوریتمهای سنتی یادگیری ماشین، یادگیری تقویتی مدت زمانی را در نظر میگیرد و یادگیری آن را ذاتاً تطبیقی میکند.
آینده یادگیری تقویتی #
پیش بینی می شود که یادگیری تقویتی نقش بزرگتری در آینده هوش مصنوعی ایفا کند. روشهای دیگر برای آموزش الگوریتمهای یادگیری ماشین به مقادیر زیادی از دادههای آموزشی از قبل موجود نیاز دارند. از سوی دیگر، عوامل یادگیری تقویتی به زمان نیاز دارند تا به تدریج یاد بگیرند که چگونه از طریق تعامل با محیط خود عمل کنند. با وجود چالشها، انتظار میرود صنایع مختلف به بررسی پتانسیل یادگیری تقویتی ادامه دهند.
یادگیری تقویتی قبلاً در زمینه های مختلف امیدوار کننده بوده است. به عنوان مثال، شرکت های بازاریابی و تبلیغات از الگوریتم هایی استفاده می کنند که به این روش برای موتورهای توصیه آموزش داده شده اند. تولید کنندگان از یادگیری تقویتی برای آموزش سیستم های رباتیک نسل بعدی خود استفاده می کنند.