Kebijakan dan fungsi nilai-negara

Reinforcement Learning dengan Gymnasium di Python

Fouad Trad

Machine Learning Engineer

Kebijakan

  • Tujuan RL → merumuskan kebijakan yang efektif
  • Tentukan aksi di tiap negara untuk memaksimalkan retur

Gambar menunjukkan peta jalan besar.

Reinforcement Learning dengan Gymnasium di Python

Contoh grid world

  • Agen menargetkan berlian sambil menghindari gunung
  • Sembilan negara
  • Pergerakan deterministik

action_numbers_green.png

Gambar yang menunjukkan lingkungan kustom dengan 9 sel grid, 2 gunung, dan satu berlian.

Reinforcement Learning dengan Gymnasium di Python

Contoh grid world - reward

  • Diberikan per negara:
    • Berlian: +10

Gambar yang menunjukkan bahwa perpindahan dari sel tetangga ke berlian memberi reward +10.

Reinforcement Learning dengan Gymnasium di Python

Contoh grid world - reward

  • Diberikan per negara:
    • Berlian: +10
    • Gunung: -2

Gambar yang menunjukkan bahwa aksi menuju gunung memberi reward -2.

Reinforcement Learning dengan Gymnasium di Python

Contoh grid world - reward

  • Diberikan per negara:
    • Berlian: +10
    • Gunung: -2
    • Negara lain: -1

Gambar yang menunjukkan bahwa pergerakan lain memberi reward -1.

Reinforcement Learning dengan Gymnasium di Python

Contoh grid world: kebijakan

# 0: left, 1: down, 2: right, 3: up
policy = {
    0:1, 1:2, 2:1, 
    3:1, 4:3, 5:1,
    6:2, 7:3
}

state, info = env.reset() terminated = False while not terminated: action = policy[state] state, reward, terminated, _, _ = env.step(action)

Gambar yang menunjukkan kebijakan dengan panah yang merepresentasikan perpindahan antar negara.

Reinforcement Learning dengan Gymnasium di Python

Fungsi nilai-negara

  • Estimasi nilai negara
  • Ekspektasi retur mulai dari suatu negara, mengikuti kebijakan

Gambar yang menunjukkan rumus fungsi nilai-negara sebagai retur terdiskonto saat mulai di negara s dan mengikuti kebijakan.

Reinforcement Learning dengan Gymnasium di Python

Contoh grid world: nilai-negara

Gambar yang menunjukkan kebijakan dengan panah yang merepresentasikan perpindahan antar negara.

  • Sembilan negara → sembilan nilai-negara
  • Faktor diskonto: $\gamma = 1$
Reinforcement Learning dengan Gymnasium di Python

Nilai negara tujuan

Gambar yang menunjukkan agen di negara tujuan.

  • Mulai di negara tujuan, agen tidak bergerak
  • $V(negara \, tujuan) = 0$

Gambar yang menunjukkan nilai negara tujuan adalah 0

Reinforcement Learning dengan Gymnasium di Python

Nilai negara 5

Gambar yang menunjukkan agen di negara 5.

  • Mulai di 5, agen bergerak ke tujuan
  • $V(5) = 10$

Gambar yang menunjukkan nilai negara 5 adalah 10

Reinforcement Learning dengan Gymnasium di Python

Nilai negara 2

Gambar yang menunjukkan agen di negara 2.

  • Mulai di 2, reward: $-1, 10$
  • $ V(2) = (1 \times -1) + (1 \times 10) = 9$

Gambar yang menunjukkan nilai negara 2 adalah 9.

Reinforcement Learning dengan Gymnasium di Python

Semua nilai-negara

Gambar yang menunjukkan semua nilai-negara untuk 9 negara dalam lingkungan.

Reinforcement Learning dengan Gymnasium di Python

Persamaan Bellman

  • Rumus rekursif
  • Menghitung nilai-negara

Gambar yang menunjukkan persamaan Bellman sebagai jumlah reward langsung negara saat ini dan nilai terdiskonto negara berikutnya.

Reinforcement Learning dengan Gymnasium di Python

Menghitung nilai-negara

def compute_state_value(state):

if state == terminal_state: return 0
action = policy[state]
_, next_state, reward, _ = env.unwrapped.P[state][action][0]
return reward + gamma * compute_state_value(next_state)

Gambar yang menunjukkan persamaan Bellman sebagai jumlah reward langsung negara saat ini dan nilai terdiskonto negara berikutnya.

Reinforcement Learning dengan Gymnasium di Python

Menghitung nilai-negara

terminal_state = 8
gamma = 1

V = {state: compute_state_value(state) for state in range(num_states)}
print(V)
{0: 1, 1: 8, 2: 9, 
 3: 2, 4: 7, 5: 10, 
 6: 3, 7: 5, 8: 0}

Gambar yang menunjukkan semua nilai-negara untuk 9 negara dalam lingkungan.

Reinforcement Learning dengan Gymnasium di Python

Mengubah kebijakan

# 0: left, 1: down, 2: right, 3: up
policy_two = {
    0:2, 1:2, 2:1,
    3:2, 4:2, 5:1,
    6:2, 7:2
}

V_2 = {state: compute_state_value(state) for state in range(num_states)} print(V_2)

Gambar yang menunjukkan kebijakan dengan panah yang merepresentasikan perpindahan antar negara.

Reinforcement Learning dengan Gymnasium di Python

Membandingkan kebijakan

Nilai-negara untuk kebijakan 1

{0: 1, 1: 8, 2: 9, 
 3: 2, 4: 7, 5: 10, 
 6: 3, 7: 5, 8: 0}

Gambar yang menunjukkan nilai-negara kebijakan 1.

Nilai-negara untuk kebijakan 2

{0: 7, 1: 8, 2: 9, 
 3: 7, 4: 9, 5: 10, 
 6: 8, 7: 10, 8: 0}

Gambar yang menunjukkan nilai-negara kebijakan 2.

Reinforcement Learning dengan Gymnasium di Python

Ayo berlatih!

Reinforcement Learning dengan Gymnasium di Python

Preparing Video For Download...