0Pricing
Learn AI with Python · Pelajaran

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 probability

Mengapa 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 adv

Beberapa 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

  1. Metode Gradien Kebijakan: REINFORCE
  2. Metode Actor-Critic (A2C)
  3. Optimasi Kebijakan Proksimal (PPO)
  4. Lingkungan Gymnasium Khusus
← Kembali ke Learn AI with Python