Expected SARSA

Reinforcement Learning dengan Gymnasium di Python

Fouad Trad

Machine Learning Engineer

Expected SARSA

  • Metode TD
  • Teknik model-free
  • Memperbarui Q-table berbeda dari SARSA dan Q-learning

Diagram yang menampilkan langkah-langkah Expected SARSA termasuk inisialisasi Q-table, memilih aksi, menerima reward dari lingkungan, dan memperbarui tabel. Agen mengulang hingga konvergen setelah sejumlah episode.

Reinforcement Learning dengan Gymnasium di Python

Pembaruan Expected SARSA

SARSA

Gambar yang menampilkan rumus matematis aturan pembaruan SARSA.

Q-learning

Gambar yang menampilkan rumus matematis aturan pembaruan Q-learning.

Expected SARSA

Gambar yang menampilkan rumus matematis aturan pembaruan Expected SARSA.

Reinforcement Learning dengan Gymnasium di Python

Nilai harapan state berikutnya

Gambar yang menampilkan rumus matematis aturan pembaruan Expected SARSA.

  • Mempertimbangkan semua aksi

Gambar yang menampilkan rumus matematis nilai-harapan Q untuk state berikutnya.

  • Aksi acak → probabilitas sama

Gambar yang menampilkan rumus matematis nilai-harapan Q untuk state berikutnya saat aksi dipilih acak dengan probabilitas sama.

Reinforcement Learning dengan Gymnasium di Python

Implementasi dengan Frozen Lake

env = gym.make('FrozenLake-v1', 
               is_slippery=False)

num_states = env.observation_space.n
num_actions = env.action_space.n
Q = np.zeros((num_states, num_actions))

gamma = 0.99 alpha = 0.1 num_episodes = 1000

Gambar yang menampilkan lingkungan Frozen Lake

Reinforcement Learning dengan Gymnasium di Python

Aturan pembaruan Expected SARSA

def update_q_table(state, action, next_state, reward):

expected_q = np.mean(Q[next_state])
Q[state, action] = (1-alpha) * Q[state, action] + alpha * (reward + gamma * expected_q)

Gambar yang menampilkan rumus matematis aturan pembaruan Expected SARSA.

Reinforcement Learning dengan Gymnasium di Python

Pelatihan

for i in range(num_episodes):
    state, info = env.reset()    
    terminated = False  

while not terminated: action = env.action_space.sample()
next_state, reward, terminated, truncated, info = env.step(action)
update_q_table(state, action, next_state, reward) state = next_state
Reinforcement Learning dengan Gymnasium di Python

Kebijakan agen

policy = {state: np.argmax(Q[state]) 
          for state in range(num_states)}
print(policy)
{ 0: 1,  1: 2,  2: 1,  3: 0, 
  4: 1,  5: 0,  6: 1,  7: 0, 
  8: 2,  9: 2, 10: 1, 11: 0, 
 12: 0, 13: 2, 14: 2, 15: 0}

Gambar yang menampilkan kebijakan yang dipelajari agen, menunjukkan aksi yang dilakukan di setiap state.

Reinforcement Learning dengan Gymnasium di Python

Ayo berlatih!

Reinforcement Learning dengan Gymnasium di Python

Preparing Video For Download...