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

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

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

 

  • چرا یادگیری تقویتی اهمیت دارد؟

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

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

یادگیری عمیق هر سه نوع یادگیری ماشین را در بر می گیرد. یادگیری تقویتی و یادگیری عمیق متقابل نیستند. مشکلات پیچیده یادگیری تقویتی اغلب به شبکه های عصبی عمیق متکی هستند، زمینه ای که به عنوان یادگیری تقویتی عمیق شناخته می شود.

شکل 1. سه دسته کلی از یادگیری ماشین: یادگیری بدون نظارت، یادگیری تحت نظارت و یادگیری تقویتی

 

نمونه هایی از کاربردهای یادگیری تقویتی

شبکه های عصبی عمیق آموزش دیده با یادگیری تقویتی می توانند رفتارهای پیچیده را رمزگذاری کنند. این اجازه می دهد تا یک رویکرد جایگزین چالش برانگیزتر برای مقابله با روش های سنتی تر باشند. به عنوان مثال، در رانندگی خودروهای تمام اتوماتیک، یک شبکه عصبی می تواند جایگزین راننده شود و با نگاه همزمان به چندین سنسور مانند قاب دوربین و اندازه گیری LiDAR (سنسور اندازه گیری فاصله از راه دور) تصمیم بگیرد که چگونه فرمان را بچرخاند. بدون شبکه‌های عصبی، مشکل معمولاً به بخش‌های کوچک‌تری مانند استخراج ویژگی‌ها از فریم دوربین، فیلتر کردن اندازه‌های LiDAR ، ترکیب خروجی‌های سنسور ، و تصمیم‌گیری «راننده» بر اساس ورودی‌های سنسور تقسیم می‌شود.

در حالی که یادگیری تقویتی در حال حاضر به عنوان یک رویکرد ارزیابی برای سیستم های تولیدی است و برخی از کاربردهای صنعتی نامزدهای خوبی برای این فناوری هستند.

کنترل های پیشرفته: کنترل سیستم های غیرخطی یک مشکل چالش برانگیز است که اغلب با خطی کردن سیستم در نقاط عملیاتی مختلف برطرف می شود. یادگیری تقویتی را می توان مستقیماً در سیستم غیرخطی اعمال کرد.

رانندگی خودکار: تصمیم گیری در مورد رانندگی بر اساس ورودی دوربین منطقه ای است که با توجه به موفقیت شبکه های عصبی عمیق در برنامه های تصویری، یادگیری تقویتی مناسب است.

رباتیک: یادگیری تقویتی می تواند به کاربردهایی مانند گرفتن رباتیک (robotic grasping) کمک کند. از دیگر کاربردهای روباتیک می توان به همکاری انسان با ربات و ربات با ربات اشاره کرد.

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

کالیبراسیون: کاربردهایی که شامل کالیبراسیون دستی پارامترها هستند، مانند کالیبراسیون واحد کنترل الکترونیکی (ECU)، ممکن است کاندیدای خوبی برای یادگیری تقویتی باشند.

 

  • نحوه عملکرد یادگیری تقویتی

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

شکل 2. یادگیری تقویتی در تربیت سگ.

 

با استفاده از اصطلاحات یادگیری تقویتی (شکل 2)، هدف از یادگیری در این مورد، آموزش سگ (عامل) برای تکمیل یک کار در یک محیط است که شامل محیط اطراف سگ و همچنین مربی است. ابتدا مربی دستور یا نشانه ای را صادر می کند که سگ آن را مشاهده می کند (مشاهده). سپس سگ با انجام یک اقدام پاسخ می دهد. اگر عمل نزدیک به رفتار مورد نظر باشد، مربی احتمالاً پاداشی مانند غذا یا اسباب بازی ارائه می دهد. در غیر این صورت پاداشی تعلق نمی گیرد. در ابتدای آموزش، سگ احتمالاً اقدامات تصادفی تری مانند غلت زدن در زمانی که فرمان داده شده «بنشین» انجام می دهد، زیرا سعی دارد مشاهدات خاص را با اقدامات و پاداش ها مرتبط کند. این ارتباط، یا نقشه برداری، بین مشاهدات و اقدامات، سیاست (policy) نامیده می شود. از دیدگاه سگ، حالت ایده‌آل این است که به هر نشانه‌ای به درستی پاسخ دهد، به طوری که تا حد امکان به او غذا داده  شود. بنابراین، تمام معنای آموزش یادگیری تقویتی این است که خط مشی سگ را به گونه ای تنظیم کنید که رفتارهای مورد نظر را بیاموزد که پاداش را به حداکثر می رساند. پس از اتمام آموزش، سگ باید بتواند صاحبش را مشاهده کند و اقدامات مناسب را انجام دهد، به عنوان مثال، با استفاده از سیاست داخلی که ایجاد کرده است، زمانی که دستور “نشستن” داده می شود، بنشیند. در این مرحله، دادن غذا مورد استقبال قرار می گیرد.

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

شکل 3. یادگیری تقویتی در پارکینگ مستقل.

 

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

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

 

گردش کار یادگیری تقویتی

گردش کار کلی برای آموزش یک عامل با استفاده از یادگیری تقویتی شامل مراحل زیر است (شکل 4):

شکل 4. گردش کار یادگیری تقویتی.

 

1- محیط را ایجاد کنید

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

 

2- پاداش را تعریف کنید

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

 

3-  عامل ایجاد کنید

سپس عاملی را ایجاد می کنید که از خط مشی و الگوریتم آموزش یادگیری تقویتی تشکیل شده است. بنابراین شما باید:

الف) راهی را برای نمایش خط مشی انتخاب کنید (مانند استفاده از شبکه های عصبی یا جداول جستجو).

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

 

4) عامل را آموزش دهید و تأیید کنید

گزینه های آموزشی (مانند معیارهای توقف) را تنظیم کنید و به عامل آموزش دهید تا خط مشی را تنظیم کند. مطمئن شوید که سیاست آموزش دیده را پس از پایان آموزش تأیید کنید. در صورت لزوم، انتخاب های طراحی مانند سیگنال پاداش و معماری خط مشی را دوباره بررسی کنید و دوباره آموزش دهید.

یادگیری تقویتی عموماً به عنوان نمونه ناکارآمد شناخته می شود. بسته به برنامه آموزش می تواند از چند دقیقه تا چند روز طول بکشد. برای کاربردهای پیچیده، موازی کردن آموزش بر روی چندین CPU، GPU  و خوشه های کامپیوتری کارها را سرعت می بخشد (شکل 5).

شکل 5. نمونه آموزشی مسئله یادگیری ناکارآمد با محاسبات موازی.

 

5) سیاست را اجرا کنید

برای مثال، نمایش سیاست آموزش دیده با استفاده از کد C/C++ یا CUDA  ایجاد شده را اجرا کنید. در این مرحله، سیاست یک سیستم تصمیم گیری مستقل است.

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

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

 

یادگیری تقویتی با متلب (MATLAB) و سیمولینک (Simulink)

MATLAB®  و Reinforcement Learning Toolbox™ وظایف یادگیری تقویتی را ساده می کنند. شما می توانید کنترل کننده ها و الگوریتم های تصمیم گیری را برای سیستم های پیچیده مانند ربات ها و سیستم های مستقل با کار در هر مرحله از جریان کار یادگیری تقویتی پیاده سازی کنید. به طور خاص، شما می توانید:

  1. 1. محیط و توابع پاداش را با استفاده از MATLAB و Simulink® ایجاد کنید.
  2. 2. از شبکه های عصبی عمیق، چند جمله ای ها و جداول جستجو برای تعریف سیاست های یادگیری تقویتی استفاده کنید.
  3. 3. الگوریتم‌های رایج یادگیری تقویتی مانند DQN، DDPG، PPO و SAC را با تغییرات جزئی کد تغییر دهید، ارزیابی کنید، و مقایسه کنید یا الگوریتم سفارشی خود را ایجاد کنید.
  4. 4. از جعبه ابزار محاسبات موازی و سرور موازی MATLAB برای آموزش سریعتر خط مشی های یادگیری تقویتی از چندین پردازنده گرافیکی، چندین CPU، خوشه های کامپیوتری و منابع ابری استفاده کنید.
  5. 5. کد و استقرار سیاست‌های یادگیری تقویتی در دستگاه‌های جاسازی شده را با استفاده از MATLAB Coder™ و GPU Coder™ ایجاد کنید

6. یادگیری تقویتی را با استفاده از مثال های مرجع شروع کنید.

نمونه ای از یادگیری تقویتی

اشتراک گذاری در facebook
اشتراک گذاری در twitter
اشتراک گذاری در linkedin
اشتراک گذاری در telegram
اشتراک گذاری در whatsapp
نوشته های مرتبط

یک پاسخ

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *