Reward shaping berbasis potensial
Tambahkan reward shaping berbasis potensial ke reward asli:
r′=r+γΦ(s′)(1−done)−Φ(s)Φ adalah fungsi “seberapa menjanjikan” sebuah state, misalnya minus jarak ke target. Semua argumen kecuali γ berbentuk (N,).
Φ(s) = −5 → Φ(s') = −4 (mendekat 1 m), r = 0, γ = 1 → +1
Φ(s) = −4 → Φ(s') = −5 (menjauh), r = 0, γ = 1 → −1
Reward yang jarang
Jika reward hanya diberikan saat tujuan tercapai, agen yang acak hampir tidak pernah menerimanya, sehingga tidak ada yang bisa dipelajari. Menambah petunjuk (“semakin dekat semakin baik”) mempercepat belajar, tetapi berbahaya: agen bisa mengoptimalkan petunjuknya, bukan tujuannya (reward hacking). Misalnya, ia berputar-putar di dekat target untuk mengumpulkan bonus “mendekat” berkali-kali.
Kenapa bentuk potensial aman
Jika bonusnya berbentuk selisih potensial γΦ(s′)−Φ(s), jumlahnya sepanjang episode saling menghapus (teleskopik): hanya potensial awal yang tersisa. Akibatnya kebijakan optimal tidak berubah (Ng, Harada & Russell, 1999). Berputar-putar tidak menguntungkan, karena setiap kali mendekat, sebelumnya agen sudah dihukum saat menjauh.
Bandingkan dengan reward dekat di lab Bola di pelat: itu bukan potensial (reward per langkah, bukan selisih), dan lihat apa efeknya di preset “bola tenang”.
Penjelasan
Yang diminta. Array (N,).
Langkah di kode: satu baris yang di-vektorkan: r + gamma * phi_s2 * (1 - done) - phi_s.
Cek case 1 dan 2. Mendekat 1 m memberi +1, menjauh 1 m memberi −1. Bolak-balik total 0: tidak ada untung dari berputar-putar.
Case done. Di case 3, env pertama selesai, sehingga Φ(s′) diabaikan: r′=1+0−(−1)=2. Agen mendapat kembali “utang” potensial awalnya saat episode berakhir.
Yang dikembalikan: array (N,).
Topik
Petunjuk 1
F = γ·Φ(s') − Φ(s): bonus jika pindah ke state berpotensi lebih tinggi, penalti jika turun.
Petunjuk 2
Jika done, Φ(s') dianggap 0. Kalikan dengan (1 − done).
Nilai ditulis sebagai JSON. Output yang diharapkan dihitung dari solusi referensi.