Optimasi Kebijakan Proksimal (PPO)
Objektif pengganti terpotong, estimasi keunggulan GAE, PPO dengan stable-baselines3.
Optimasi Kebijakan Proksimal (PPO) adalah pelajaran Learn AI with Python gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Learn AI with Python, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Learn AI with Python mencakup 4 pelajaran total.
Mengapa PPO?
PPO adalah algoritme RL yang kini menjadi pilihan baku: stabil, efisien dalam penggunaan sampel, dan mudah disetel. PPO mengatasi masalah utama gradien kebijakan, yaitu pembaruan yang terlalu besar dan merusak kebijakan, dengan membatasi seberapa besar kebijakan dapat berubah pada setiap pembaruan.
Bahaya Pembaruan Besar
Satu pembaruan kebijakan yang terlalu besar dapat membuat kinerja merosot, dan karena RL menggunakan kebijakan saat ini, pemulihannya sulit. PPO menjaga setiap pembaruan tetap dekat dengan kebijakan saat ini agar tetap aman.
Rasio Probabilitas
PPO melacak rasio antara probabilitas tindakan baru dan lama: ratio = pi_new(a|s) / pi_old(a|s). Rasio yang mendekati 1 berarti kebijakan hampir tidak berubah; rasio yang jauh dari 1 berarti terjadi perubahan besar.
ratio = torch.exp(new_log_prob - old_log_prob)Sasaran yang Dibatasi
Ciri khas PPO adalah sasaran pengganti yang dibatasi. Sasaran ini mengalikan rasio dengan keunggulan, tetapi membatasi rasio ke rentang [1-eps, 1+eps], sehingga dorongan untuk mengubah kebijakan terlalu jauh dihilangkan.
clipped = torch.clamp(ratio, 1 - eps, 1 + eps)
objective = torch.min(ratio * adv, clipped * adv)
loss = -objective.mean()Ambang Pembatasan epsilon
eps (biasanya 0.2) adalah ambang pembatasan. Nilai ini membatasi seberapa jauh rasio dapat bergerak dari 1. Jadi, meskipun keunggulannya besar, pembaruan kebijakan tetap terbatas dan stabil.
eps = 0.2 # allow at most +/-20% change in probabilityMengapa min() dan Pembatasan Berhasil
Mengambil min dari sasaran yang dibatasi dan yang tidak dibatasi membuat batasnya menjadi pesimistis: peningkatan yang melampaui rentang pembatasan tidak memberikan imbalan tambahan, sehingga pengoptimal tidak memiliki alasan untuk melampaui batas.
Estimasi Keunggulan Umum
PPO mengestimasi keunggulan dengan GAE, yang memadukan imbalan kumulatif dari beberapa langkah menggunakan parameter gamma dan lambda. GAE menyeimbangkan bias dan varians untuk menghasilkan estimasi keunggulan yang halus dan andal.
def gae(rewards, values, gamma=0.99, lam=0.95):
adv, gae_acc = [], 0
for t in reversed(range(len(rewards))):
delta = rewards[t] + gamma * values[t+1] - values[t]
gae_acc = delta + gamma * lam * gae_acc
adv.insert(0, gae_acc)
return advBeberapa Epoch per Batch
Tidak seperti REINFORCE, PPO menggunakan kembali setiap batch data yang dikumpulkan selama beberapa epoch optimisasi. Pembatasan membuat penggunaan ulang ini aman dan sangat meningkatkan efisiensi sampel.
for _ in range(n_epochs):
# recompute ratio and clipped loss on the same batch
optimizer.zero_grad()
loss.backward()
optimizer.step()PPO dengan Stable-Baselines3
Dalam praktiknya, Anda jarang menulis PPO secara manual. Stable-Baselines3 menyediakan implementasi yang telah diuji. Buat objek tersebut dengan jenis kebijakan, lingkungan, dan tingkat detail log, lalu panggil learn.
from stable_baselines3 import PPO
model = PPO("MlpPolicy", env, verbose=1)
model.learn(total_timesteps=100_000)Menggunakan Agent yang Telah Dilatih
Setelah pelatihan, gunakan predict untuk memperoleh tindakan dari observasi baru. Atur deterministic=True saat evaluasi agar tindakan yang paling mungkin dipilih, bukan diambil melalui pengambilan sampel.
obs, _ = env.reset()
action, _ = model.predict(obs, deterministic=True)
model.save("ppo_agent")Mengapa PPO Mendominasi
PPO menggabungkan pembaruan terbatas yang stabil, keunggulan GAE, dan penggunaan ulang data menjadi algoritme umum yang tangguh. Algoritme ini bekerja pada banyak tugas dengan penyetelan minimal, sehingga digunakan untuk berbagai hal, mulai dari robotika hingga RLHF.
Pemeriksaan Singkat
Uji pemahaman Anda tentang PPO.
Rangkuman: PPO
Anda telah mempelajari sasaran pengganti yang dibatasi milik PPO, yang menggunakan rasio probabilitas dan ambang pembatasan eps untuk membatasi pembaruan, GAE untuk mengestimasi keunggulan, serta penggunaan ulang data selama beberapa epoch. Anda menjalankannya dengan mudah menggunakan PPO("MlpPolicy", env, verbose=1) dalam Stable-Baselines3.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Optimasi Kebijakan Proksimal (PPO)” gratis?
Ya — teks lengkap “Optimasi Kebijakan Proksimal (PPO)” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Learn AI with Python, upgrade ke CoddyKit PRO. Kursus Learn AI with Python mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Optimasi Kebijakan Proksimal (PPO)”?
Objektif pengganti terpotong, estimasi keunggulan GAE, PPO dengan stable-baselines3. Kamu berlatih Learn AI with Python dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Learn AI with Python?
Tidak diperlukan pengalaman sebelumnya. Learn AI with Python di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.
Berapa lama pelajaran “Optimasi Kebijakan Proksimal (PPO)” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Learn AI with Python ini?
Ya. Setiap pelajaran Learn AI with Python menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Metode Gradien Kebijakan: REINFORCE
- Metode Actor-Critic (A2C)
- Optimasi Kebijakan Proksimal (PPO)
- Lingkungan Gymnasium Khusus