PPO توضیح داد و محدودیت های آن: معرفی PDPPO به عنوان یک جایگزین


نویسنده (ها): لئوناردو کانشیرو فلیزاردو

در ابتدا منتشر شده در به سمت هوش مصنوعیبشر

PPO چیست و چرا محبوب است؟

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

توضیح PPO

PPO محدودیت های روشهای RL قبلی مانند شیب سیاست وانیل و TRPO (بهینه سازی خط مشی منطقه اعتماد) را با تعادل اکتشاف و بهره برداری از طریق به روزرسانی های کنترل شده خط مشی می پردازد. PPO به طور خاص با هدف پیشگیری از به روزرسانی های بیش از حد سیاست ، می تواند آموزش را تثبیت کند ، که می تواند منجر به فراموشی فاجعه بار یا واگرایی شود.

بازیگر-انتقادی و نقش تخمین مزیت

PPO متعلق به خانواده است بازیگر الگوریتم ها ، که در آن دو مدل با هم کار می کنند:

  • در بازیگر خط مشی را به روز می کند π (θ ، a | s) با انتخاب اقدامات مبتنی بر ایالات.
  • در منتقد تصمیمات بازیگر را با برآورد عملکرد ارزش ارزیابی می کند v (π ،س)بشر

این معماری برای اولین بار توسط Konda و Tsitsiklis در کارهای اصلی آنها رسمیت یافت الگوریتم های انتقادی بازیگر، همانطور که در Konda ET در. [1]، جایی که آنها خصوصیات همگرایی را نشان دادند و پایه و اساس ریاضی را برای ترکیب روشهای شیب سیاست با برآورد عملکرد ارزش قرار دادند.

در تابع مزیت یک مفهوم مهم در این تنظیم است ، تعریف شده به عنوان:

این یک نمونه حداقل و تمیز از نحوه اجرای معماری بازیگر-انتقادی در Pytorch است:

import torch
import torch.nn as nn
import torch.optim as optim
class ActorCritic(nn.Module):
def __init__(self, state_dim, action_dim):
super().__init__()
self.shared = nn.Sequential(nn.Linear(state_dim, 128), nn.ReLU())
self.actor = nn.Linear(128, action_dim)
self.critic = nn.Linear(128, 1)
def forward(self, x):
x = self.shared(x)
return self.actor(x), self.critic(x)
# Example usage
state_dim = 4
action_dim = 2
model = ActorCritic(state_dim, action_dim)
optimizer = optim.Adam(model.parameters(), lr=3e-4)
state = torch.rand((1, state_dim))
logits, value = model(state)
dist = torch.distributions.Categorical(logits=logits)
action = dist.sample()
log_prob = dist.log_prob(action)
# Mock advantage and return
advantage = torch.tensor([1.0])
return_ = torch.tensor([[1.5]])
# Actor-Critic loss
actor_loss = -log_prob * advantage
critic_loss = (value - return_).pow(2).mean()
loss = actor_loss + critic_loss
# Backpropagation
optimizer.zero_grad()
loss.backward()
optimizer.step()

هدف و ریاضیات PPO

ایده اصلی PPO بهینه سازی شبکه خط مشی از طریق یک عملکرد هدف خرد شده است:

در اینجا:

  • θ پارامترهای خط مشی را نشان می دهد.
  • ε یک هیپرپارامتر است که به طور معمول کوچک (به عنوان مثال ، 0.2) کنترل می کند که در هر مرحله می تواند این سیاست را تغییر دهد.
  • بوها عملکرد مزیت است ، که نشان دهنده بهبود نسبی انجام یک عمل خاص در مقایسه با میانگین عمل است.

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

این نسبت تعیین می کند که احتمال انتخاب یک عمل از خط مشی قدیمی به برنامه جدید تغییر کرده است.

کد Pytorch مثال: هسته PPO

import torch
import torch.nn as nn
import torch.optim as optim
# Assume we already have: states, actions, old_log_probs, returns, values
# And a model with .actor and .critic modules
clip_epsilon = 0.2
gamma = 0.99
# Compute advantages
advantages = returns - values
discounted_advantages = (advantages - advantages.mean()) / (advantages.std() + 1e-8)
# Get new log probabilities and state values
log_probs = model.actor.get_log_probs(states, actions)
ratios = torch.exp(log_probs - old_log_probs.detach())
# Clipped surrogate objective
surr1 = ratios * discounted_advantages
surr2 = torch.clamp(ratios, 1.0 - clip_epsilon, 1.0 + clip_epsilon) * discounted_advantages
policy_loss = -torch.min(surr1, surr2).mean()
# Critic loss (value function)
value_estimates = model.critic(states)
critic_loss = nn.MSELoss()(value_estimates, returns)
# Total loss
total_loss = policy_loss + 0.5 * critic_loss
# Backpropagation
optimizer.zero_grad()
total_loss.backward()
torch.nn.utils.clip_grad_norm_(model.parameters(), max_norm=0.5)
optimizer.step()

مزایا و محبوبیت PPO

محبوبیت PPO از آن ناشی می شود:

  • سادگی: در مقایسه با سایر روشهای پیشرفته مانند TRPO ، اجرای و تنظیم آسان تر.
  • کارایی: همگرایی سریعتر به دلیل هدف جانشین بریده شده ، نیاز به تنظیم دقیق Hyperparameter را کاهش می دهد.
  • تطبیق پذیری: عملکرد قوی در طیف گسترده ای از کارها از جمله روباتیک ، بازی ها و مشکلات مدیریت عملیاتی.

نقص و محدودیت PPO

با وجود موفقیت های PPO ، با محدودیت های مختلفی روبرو است:

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

PDPPO را وارد کنید: یک پیشرفت جدید

برای غلبه بر این محدودیت ها ، بهینه سازی سیاست پروگزیمال پس از تصمیم (PDPPO) با استفاده از شبکه های منتقد دوگانه و حالات پس از تصمیم ، یک رویکرد جدید را معرفی می کند.

درک حالات پس از تصمیم

کشورهای پس از تصمیم ، معرفی شده توسط وارن ب. پاول [2]، یک انتزاع قدرتمند در یادگیری تقویت ارائه دهید. یک حالت پس از تصمیم ، بلافاصله پس از انجام یک عامل ، محیط را نشان می دهد اما قبل از اینکه پاسخ تصادفی محیط زیست رخ دهد.

این به الگوریتم یادگیری اجازه می دهد تا دینامیک انتقال را به دو بخش تجزیه کند:

  1. مرحله قطعی (تصمیم):

این نشان دهنده دولت بلافاصله پس از وقوع اثرات تعیین کننده است.

  1. مرحله تصادفی (پاسخ طبیعت):

به محض اینکه اثرات تعیین کننده را مشاهده می کنیم ، متغیرهای تصادفی را که وضعیت را تغییر می دهند نیز به خود اختصاص می دهیم.

کجا:

  • ج عملکرد تعیین کننده نقشه برداری وضعیت فعلی و عمل به حالت پس از تصمیم را نشان می دهد حرفˣ
  • η متغیر تصادفی ضبط تصادفی محیط.
  • جف تعریف می کند که چگونه این مؤلفه تصادفی بر وضعیت بعدی تأثیر می گذارد.
  • S ‘کشور بعدی است

مثال: دریاچه یخ زده

تصور کنید دریاچه یخ زده محیط نماینده تصمیم به جابجایی می کند حق از یک کاشی داده شده عمل است قطعی – قصد حرکت به راست روشن است. این به ما می دهد حالت پس از تصمیم حرفˣ: “سعی در حرکت به راست”.

با این حال ، زیرا یخ است لغزنده، نماینده ممکن است روی کاشی مورد نظر قرار نگیردبشر ممکن است اسلاید شود راست ، پایین ، یا در جای خود بمانید، با یک احتمال خاص برای هر یک. آن موقعیت نهایی – که پس از لغزش تعیین می شود – است حالت بعدی واقعی s ‘بشر

این تجزیه اجازه می دهد تا توابع ارزش بهتر تخمین زده شود:

  • عملکرد ارزش قبل از تصمیم:
  • عملکرد ارزش پس از تصمیم:

این فرمولاسیون به جدا کردن تصمیم از اثرات تصادفی ، کاهش واریانس در تخمین ارزش و بهبود کارایی نمونه کمک می کند.

محاسبه مزیت پس از تصمیم

با توجه به هر دو منتقدان ، PDPPO این مزیت را محاسبه می کند:

و آموزنده ترین مزیت را در هر مرحله انتخاب می کند:

این استراتژی “حداکثر مزیت” به بازیگر اجازه می دهد تا از امیدوار کننده ترین برآورد ارزش در هنگام یادگیری حمایت کند.

به روزرسانی منتقدین و خط مشی

عملکردهای از دست دادن منتقد:

از دست دادن بازیگر-انتقاد:

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

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

PDPPO از دو منتقد استفاده می کند:

  • منتقد دولتی: عملکرد ارزش را بر اساس حالت های قبل از تصمیم تخمین می زند.
  • منتقد پس از تصمیم: عملکرد ارزش را بر اساس حالتهای پس از تصمیم تخمین می زند.

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

مثال کد Pytorch: هسته PDPPO

import torch
import torch.nn as nn
import torch.optim as optim
# Assume: states, actions, old_log_probs, returns, post_returns, 
# model with actor, critic, post_decision_critic
clip_epsilon = 0.2# --- 1. Compute advantages from both critics ---
values = model.critic(states)
post_values = model.post_decision_critic(post_states)
adv_pre = returns - values
adv_post = post_returns - post_values
# Use the max advantage (PDPPO twist)
advantages = torch.max(adv_pre, adv_post)
advantages = (advantages - advantages.mean()) / (advantages.std() + 1e-8)
# --- 2. Policy loss: same PPO-style clip ---
log_probs = model.actor.get_log_probs(states, actions)
ratios = torch.exp(log_probs - old_log_probs.detach())
surr1 = ratios * advantages
surr2 = torch.clamp(ratios, 1.0 - clip_epsilon, 1.0 + clip_epsilon) * advantages
policy_loss = -torch.min(surr1, surr2).mean()
# --- 3. Dual critic loss ---
critic_loss = nn.MSELoss()(values, returns)
post_critic_loss = nn.MSELoss()(post_values, post_returns)
# Total loss with dual critic
total_loss = policy_loss + 0.5 * (critic_loss + post_critic_loss)
# --- 4. Backpropagation ---
optimizer.zero_grad()
total_loss.backward()
torch.nn.utils.clip_grad_norm_(model.parameters(), max_norm=0.5)
optimizer.step()

PDPPO در مقابل PPO در عمل

آزمایشات در محیط هایی مانند دریاچه یخ زده و اندازه های تصادفی با اندازه گیری قابل توجه PDPPO را برجسته می کند ، همانطور که در Felizardo و همکاران وجود دارد. [3]:

  1. ثبات بهبود یافته در بین دانه ها
    PDPPO نشان داد واریانس پایین در هر دو پاداش تجمعی و حداکثر در دانه های تصادفی مختلف ، به ویژه در محیط های تصادفی مانند دریاچه یخ زده. این نشان می دهد استحکام بیشتر برای اولیه سازی در مقایسه با PPO ، که اغلب از یادگیری ناپایدار در چنین تنظیماتی رنج می برند.
  2. همگرایی سریعتر و نرم تر
    منحنی های یادگیری PDPPO به ویژه صاف تر و به طور مداوم روند رو به بالا هستند ، در حالی که PPO اغلب راکد یا نوسان می کند. این نشان می دهد که PDPPO ساختار دوگانه تخمین های ارزش دقیق تری را ارائه می دهد و به روزرسانی های قابل اطمینان تر خط مشی را امکان پذیر می کند.
  3. مقیاس بهتر با ابعاد
    در اندازه قرعه کشی تصادفی وظایف ، شکاف عملکرد PDPPO با افزایش ابعاد مشکل (به عنوان مثال ، 25 مورد و 15 دستگاه) گسترش یافت. این نشان می دهد که PDPPO در تنظیمات پیچیده مقیاس بهتری دارد و از تجزیه پویایی آن به قسمت های قطعی و تصادفی بهره می برد.
  4. برآورد مزیت آموزنده تر
    PDPPO با استفاده از حداکثر مزایای قبل و بعد از تصمیم گیری ، به طور موثری خوش بین ترین سیگنال یادگیری را در هر مرحله ضبط می کند- منجر به بهره برداری بهتر از استراتژی های امیدوارکننده بدون نادیده گرفتن ماهیت تصادفی محیط می شود.
  5. راندمان نمونه بهتر
    نتایج تجربی نشان داد که PDPPO با استفاده از پاداش های بالاتر به دست آورد قسمتهای آموزشی کمتری، ساختن آن با نمونه بیشتر-یک ویژگی اساسی برای برنامه های دنیای واقعی که در آن جمع آوری داده ها گران است.

مقایسه تجربی (20-30 اجرا)

PDPPO به طور قابل توجهی از PPO در سه پیکربندی محیط زیست استفاده می کند مشکل اندازه گیری تصادفی. مناطق سایه دار فاصله 95 ٪ اطمینان را نشان می دهد.
  • همگرایی سریعتر
  • عملکرد اوج بالاتروت
  • گروههای واریانس محکم تر برای PDPPO.

چند گزینه دیگر

چند گزینه دیگر برای پرداختن به محدودیت های PPO شامل موارد زیر است:

  • ماژول اکتشافی ذاتی (IEM)
    پیشنهاد شده توسط ژانگ و همکاران. [8]، این رویکرد با درج برآورد عدم اطمینان در PPO ، اکتشاف را تقویت می کند. این به سیگنال اکتشاف ضعیف PPO با پاداش دادن به تازگی ، به ویژه در تنظیمات پاداش پراکنده ، می پردازد.
  • عدم اطمینان-آگاه TRPO (UA-trpo)
    معرفی شده توسط کوکی و همکاران. [7]، UA-TRPO با هدف تثبیت به روزرسانی های خط مشی در حضور خطاهای برآورد نمونه محدود با حسابداری برای عدم اطمینان در خط مشی شیب – ارائه یک فرایند یادگیری قوی تر از PPO استاندارد.
  • انواع مختلف انتقاد
    روش های قبلی ، مانند SAC [4] و TD3 [5]، از منتقدان دوگانه عمدتاً برای فضاهای اقدام مداوم برای کاهش تعصب بیش از حد استفاده کنید. با این حال ، آنها به طور معمول شامل نمی شوند حالتهای پس از تصمیم همچنین برای محیط هایی با پویایی قطعی و تصادفی طراحی نشده است.
  • معماری های پس از تصمیم در یا
    کار قبلی در تحقیقات عملیات (به عنوان مثال ، پاول [2]، بدنه [6]) حالتهای پس از تصمیم برای مدیریت نفرین ابعاد در برنامه نویسی تقریبی پویا. PDPPO با استفاده از توابع ارزش پس از تصمیم به طور مستقیم در فرایند یادگیری ، این بینش را به RL عمیق می بخشد.

هر یک از این روشها دارای معاملات خود هستند و PDPPO با مقابله مستقیم با چالش از آن استفاده می کند انتقال تصادفی از طریق تجزیه و منتقدان دوگانه-آن را به ویژه در تنظیمات پر سر و صدا و در دنیای واقعی موثر می کند.

استناد

[1] Konda ، VR ، & Tsitsiklis ، JN (2000). الگوریتم های انتقادی بازیگربشر در SA Solla ، Tk Leen ، & K.-R. مولر (ویرایش.) ، پیشرفت در سیستم های پردازش اطلاعات عصبی، جلد 12. MIT Press.

[2] پاول ، WB (2007). برنامه نویسی تقریبی پویا: حل لعنت های ابعاد (چاپ دوم). jاوه ویلی و پسرانبشر

[3] Felizardo ، LK ، Fadda ، E. ، Nascimento ، MCV ، Brandimarte ، P. ، & Del-Moral-Hernandez ، E. (2024). یک روش یادگیری تقویت برای محیط هایی با متغیرهای تصادفی: بهینه سازی سیاست نزدیکی پس از تصمیم با شبکه های منتقد دوگانهبشر arxiv preprint arxiv: 2504.05150. https://arxiv.org/pdf/2504.05150

[4] Haarnoja ، T. ، Zhou ، A. ، Abbeel ، P. ، & Levine ، S. (2018). بازیگر نرم-انتقادی: حداکثر خارج از سیاست آنتروپی یادگیری تقویت عمیق با یک بازیگر تصادفیبشر در مجموعه مقالات سی و پنجمین کنفرانس بین المللی در یادگیری ماشین (ICML).

[5] Fujimoto ، S. ، Van Hoof ، H. ، & Meger ، D. (2018). پرداختن به خطای تقریب عملکرد در روش های انتقادی بازیگربشر در مجموعه مقالات سی و پنجمین کنفرانس بین المللی در یادگیری ماشین (ICML).

[6] هال ، I. (2015). برنامه نویسی تقریبی پویا با حالتهای پس از تصمیم به عنوان یک روش راه حل برای مدلهای اقتصادی پویابشر مجله پویایی و کنترل اقتصادی، 55 ، 57-70.

[7] Queeney ، J. ، Paschalidis ، IC ، & Cassandras ، CG (2021). بهینه سازی سیاست عدم اطمینان: یک رویکرد قوی و تطبیقی ​​منطقه اعتمادبشر در مجموعه مقالات کنفرانس AAAI در مورد هوش مصنوعی، 35 (9) ، 9377-9385.

[8] Zhang ، J. ، Zhang ، Z. ، Han ، S. ، & Lü ، S. (2022). بهینه سازی سیاست پروگزیمال از طریق راندمان اکتشاف پیشرفتهبشر علوم اطلاعاتی، 609 ، 750-765.

منتشر شده از طریق به سمت هوش مصنوعی



منبع: https://towardsai.net/p/machine-learning/ppo-explained-and-its-constraints-introducing-pdppo-as-an-alternative