Setiap langkah, lingkungan mengirim satu angka bernama reward kepada agen, dan tugas agen adalah mengumpulkan jumlah reward yang besar sepanjang waktu. Topik ini memperkenalkan return sebagai jumlah reward yang terdiskon, lalu membedakan tugas episodik yang memiliki akhir alami dari tugas berkelanjutan yang tidak. Setelah membaca topik ini, rumus return terdiskon serta peran faktor gamma dapat dihitung pada satu trajektori CartPole-v1.
Hipotesis reward#
Gagasan inti reinforcement learning dirumuskan Sutton dan Barto sebagai hipotesis reward, yaitu bahwa segala tujuan yang tampaknya cerdas dapat direduksi menjadi maksimalisasi kumulatif reward skalar yang diterima dari lingkungan. Maksudnya, agen tidak diberi tahu secara eksplisit bagaimana mencapai tujuan, melainkan hanya diberi reward yang menilai kualitas tindakannya, dan agen harus menemukan sendiri urutan aksi yang memaksimalkan akumulasi reward tersebut. Hipotesis ini sederhana, tetapi ternyata luas: balapan dirumuskan sebagai reward +1 per langkah sampai finish, permainan papan dirumuskan sebagai reward +1 saat menang dan 0 sebaliknya, dan robot dirumuskan sebagai reward negatif sebanding dengan energi yang dipakai. Karena hanya satu skalar per langkah, reward berfungsi sebagai bahasa umum antara perancang dan agen.
Yang harus diingat adalah bahwa reward menyatakan apa yang ingin dicapai, bukan bagaimana mencapainya. Bila perancang memberi reward pada keadaan akhir saja, agen harus menjelajahi sendiri jalur menuju keadaan itu. Sebaliknya, bila reward diberi terlalu padat di setiap langkah, agen dapat menjadi berpandangan pendek, yaitu hanya mengejar reward langsung dan mengabaikan konsekuensi jangka panjang. Ketegangan antara reward langsung dan reward masa depan inilah yang diselesaikan oleh konsep return, yang dibahas pada bagian berikutnya.
Tugas episodik dan berkelanjutan#
Tugas reinforcement learning terbagi menjadi dua kelas berdasarkan ada tidaknya akhir alami. Tugas episodik adalah tugas yang dapat dipecah menjadi episode berurutan, di mana setiap episode berakhir pada keadaan akhir yang jelas, baik karena tujuan tercapai, kegagalan, atau batas langkah. Contohnya adalah permainan papan yang berakhir saat menang atau kalah, atau CartPole yang berakhir saat tiang jatuh. Pada tugas episodik, return dapat didefinisikan sebagai jumlah sederhana reward sepanjang episode, karena jumlahnya selalu berhingga.
Tugas berkelanjutan (continuing) adalah tugas yang tidak memiliki akhir alami, sehingga interaksi berlangsung tanpa henti dan jumlah reward mentah menjadi tak berhingga. Karena itu, return tidak dapat berupa penjumlahan biasa, melainkan harus didiskon agar reward masa depan ditimbang lebih ringan daripada reward segera. Tanpa diskon, jumlah reward pada tugas berkelanjutan divergen, sehingga tidak ada optimum yang dapat dicari. CartPole-v1 secara teknis episodik karena dipotong pada 500 langkah, tetapi konsep diskon tetap dipakai agar agen mempertimbangkan ketahanan jangka panjang, bukan hanya reward langsung.
Return terdiskon#
Return pada langkah waktu t dirumuskan sebagai jumlah reward masa depan yang ditimbang oleh pangkat faktor diskon gamma. Rumusnya adalah:
dengan , dan adalah reward yang diterima k+1 langkah setelah t. Faktor gamma menentukan seberapa jauh ke depan agen mempertimbangkan reward: bila gamma mendekati 0, agen hanya memperhatikan reward segera, sedangkan bila gamma mendekati 1, agen menimbang reward jauh ke depan hampir setara dengan reward sekarang. Pada tugas episodik, jumlah ini berhingga karena episode memiliki akhir, sedangkan pada tugas berkelanjutan, gamma yang kurang dari 1 menjamin deret tersebut konvergen.
import warnings
warnings.filterwarnings("ignore")
import numpy as np
import gymnasium as gym
np.random.seed(0)
gamma = 0.99
env = gym.make("CartPole-v1")
obs, info = env.reset(seed=0)
env.action_space.seed(0)
rewards = []
G = 0.0
t = 0
while True:
aksi = env.action_space.sample()
obs, reward, terminated, truncated, info = env.step(aksi)
rewards.append(reward)
G += (gamma ** t) * reward
t += 1
if terminated or truncated:
break
print("jumlah langkah:", t)
print("reward per langkah:", " ".join(f"{r:.4f}" for r in rewards))
print(f"return G_0 = {G:.4f}")
env.close()jumlah langkah: 18
reward per langkah: 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000
return G_0 = 16.5486Kode di atas menjalankan satu trajektori CartPole-v1 hingga berakhir, lalu menghitung return terdiskon dengan gamma = 0,99. Setiap reward bernilai 1,0000 karena CartPole memberi reward +1 per langkah, dan episode berakhir setelah 18 langkah. Karena gamma = 0,99 kurang dari 1, return akhirnya adalah 16,5486, yang lebih kecil dari jumlah reward mentah sebesar 18,0000. Selisih tersebut mencerminkan penimbangan: reward pada langkah awal berkontribusi penuh, sedangkan reward pada langkah ke-18 diboboti 0,99 pangkat 17, sehingga nilainya lebih kecil dari reward awal. Bila gamma dinaikkan mendekati 1, return akan mendekati jumlah mentah, sedangkan bila gamma diturunkan, return akan lebih dipengaruhi oleh reward awal saja.
Kesalahan umum#
Kesalahan pertama adalah menghitung return tanpa diskon pada tugas berkelanjutan. Tanpa gamma yang kurang dari 1, jumlah reward pada tugas tanpa akhir divergen menuju tak berhingga, sehingga nilai kebijakan menjadi tidak terdefinisi dan optimasi gagal. Bahkan pada tugas episodik, gamma = 1 membuat agen menimbang reward jauh ke depan sama dengan reward segera, yang sering menghasilkan pelatihan tidak stabil. Perbaikannya adalah selalu memakai gamma kurang dari 1, biasanya antara 0,9 dan 0,99, dan menyesuaikannya sesuai horizon keputusan yang diinginkan.
Kesalahan kedua adalah mencampurkan reward per langkah dengan return kumulatif. Reward adalah sinyal sesaat yang menilai satu aksi, sedangkan return adalah jumlah terdiskon seluruh reward masa depan. Mengoptimalkan reward langsung tanpa memandang return membuat agen berpandangan pendek, yaitu mengejar reward segera meskipun merugikan jangka panjang. Perbaikannya adalah selalu mengoptimasi return, bukan reward per langkah, dan merancang reward sedemikian rupa sehingga maksimalisasi return sejalan dengan tujuan sesungguhnya.
Ringkasan#
- Hipotesis reward menyatakan bahwa tujuan agen dapat direduksi menjadi maksimalisasi kumulatif reward skalar dari lingkungan.
- Tugas episodik memiliki akhir alami, sehingga return dapat berupa penjumlahan biasa, sedangkan tugas berkelanjutan memerlukan diskon agar return konvergen.
- Return terdiskon dirumuskan sebagai , dengan gamma menentukan seberapa jauh ke depan agen memandang.
- Pada CartPole-v1 dengan gamma = 0,99, return terdiskon 16,5486 lebih kecil dari jumlah reward mentah 18,0000.
Referensi#
- Env — Gymnasium
— struktur keluaran
stepyang memuat reward skalar pada Gymnasium 1.4. - Reinforcement Learning: An Introduction — Sutton & Barto — bab 3 memperkenalkan hipotesis reward, return, dan diskon gamma.