Metode Gradien Kebijakan: REINFORCE
Teorema gradien kebijakan, algoritme REINFORCE, pengurangan baseline, pengurangan varians.
Metode Gradien Kebijakan: REINFORCE adalah pelajaran Learn AI with Python gratis di CoddyKit. Ini adalah pelajaran 1 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.
RL Berbasis Nilai vs Berbasis Policy
Beberapa metode RL mempelajari nilai tindakan, lalu bertindak secara rakus. Metode gradien Policy justru mempelajari Policy secara langsung: sebuah fungsi yang menghasilkan probabilitas tindakan. Metode ini secara alami menangani tindakan kontinu dan Policy stokastik.
Policy pi(a|s)
Policy berparameter pi(a|s, theta) memetakan keadaan ke distribusi probabilitas atas berbagai tindakan, dengan parameter theta (sebuah jaringan neural). Pelatihan menyesuaikan theta agar lebih memilih tindakan yang menghasilkan imbalan lebih besar.
class Policy(nn.Module):
def __init__(self, obs_dim, n_actions):
super().__init__()
self.net = nn.Sequential(
nn.Linear(obs_dim, 128), nn.ReLU(),
nn.Linear(128, n_actions)
)
def forward(self, s):
return torch.softmax(self.net(s), dim=-1)Mengambil Sampel Tindakan
Karena Policy merupakan sebuah distribusi, Anda mengambil sampel tindakan alih-alih memilih nilai maksimum. Pengambilan sampel menyediakan eksplorasi dan membuat Policy bersifat stokastik.
probs = policy(state)
dist = torch.distributions.Categorical(probs)
action = dist.sample()
log_prob = dist.log_prob(action)Menjalankan Lintasan
Sebuah episode (lintasan) adalah urutan keadaan, tindakan, dan imbalan dari awal hingga akhir. Anda mengumpulkan lintasan lengkap dengan bertindak di lingkungan hingga episode tersebut berakhir.
states, actions, rewards, log_probs = [], [], [], []
state, _ = env.reset()
done = False
while not done:
probs = policy(torch.tensor(state).float())
dist = torch.distributions.Categorical(probs)
a = dist.sample()
state, r, term, trunc, _ = env.step(a.item())
rewards.append(r); log_probs.append(dist.log_prob(a))
done = term or truncImbalan Terdiskonto G_t
Imbalan G_t adalah total imbalan masa depan sejak waktu t, yang didiskontokan oleh gamma sehingga imbalan yang lebih dekat memiliki bobot lebih besar. Nilai ini menunjukkan seberapa baik hasil tindakan yang diambil sejak langkah t dan seterusnya.
def returns(rewards, gamma=0.99):
G, out = 0, []
for r in reversed(rewards):
G = r + gamma * G
out.insert(0, G)
return torch.tensor(out)Sasaran REINFORCE
REINFORCE melakukan pendakian gradien pada imbalan kumulatif yang diharapkan. Secara intuitif, probabilitas tindakan yang menghasilkan imbalan kumulatif tinggi ditingkatkan, sedangkan probabilitas tindakan yang menghasilkan imbalan kumulatif rendah dikurangi. Setiap tindakan diberi bobot berdasarkan G_t.
Gradien Kebijakan
Fungsi kerugiannya adalah -sum(log_prob * G_t). Tanda negatif mengubah pendakian gradien menjadi penurunan gradien agar pengoptimal memaksimalkan imbalan kumulatif. Probabilitas log tindakan dengan imbalan kumulatif tinggi akan ditingkatkan.
G = returns(rewards)
loss = -torch.sum(torch.stack(log_probs) * G)Memperbarui Kebijakan
Lakukan propagasi balik dan jalankan pembaruan seperti biasa. Satu pembaruan menggunakan seluruh lintasan, kemudian lintasan tersebut dibuang (REINFORCE menggunakan kebijakan saat ini: hanya data dari kebijakan yang sedang digunakan).
optimizer.zero_grad()
loss.backward()
optimizer.step()Masalah Varians Tinggi
REINFORCE murni terkenal tidak stabil dan memiliki varians tinggi: imbalan kumulatif dapat sangat berbeda antar-episode, sehingga estimasi gradien menjadi penuh derau dan pembelajaran berlangsung lambat serta tidak menentu.
Nilai Acuan untuk Mengurangi Varians
Mengurangkan nilai acuan (misalnya imbalan kumulatif rata-rata) dari G_t mengurangi varians tanpa membuat gradien menjadi bias. Tindakan diberi imbalan karena lebih baik daripada yang diharapkan, bukan hanya karena menghasilkan imbalan kumulatif positif.
baseline = G.mean()
advantage = G - baseline
loss = -torch.sum(torch.stack(log_probs) * advantage)Mengapa REINFORCE Penting
REINFORCE adalah dasar bagi semua metode gradien kebijakan. Kelemahannya, yaitu varians tinggi dan ketidakefisienan sampel, mendorong penggunaan metode aktor-kritik dan PPO yang akan Anda pelajari berikutnya.
Pemeriksaan Singkat
Uji pemahaman Anda tentang gradien kebijakan.
Rangkuman: REINFORCE
Anda telah mempelajari cara memberi parameter pada kebijakan pi(a|s,theta), menjalankan lintasan, menghitung imbalan kumulatif terdiskonto G_t, dan melakukan pendakian gradien dengan fungsi kerugian -sum(log_prob * G_t). Anda juga melihat varians tinggi REINFORCE serta cara nilai acuan menguranginya.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Metode Gradien Kebijakan: REINFORCE” gratis?
Ya — teks lengkap “Metode Gradien Kebijakan: REINFORCE” 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 “Metode Gradien Kebijakan: REINFORCE”?
Teorema gradien kebijakan, algoritme REINFORCE, pengurangan baseline, pengurangan varians. 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 1 dari 4.
Berapa lama pelajaran “Metode Gradien Kebijakan: REINFORCE” 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