Q-learning 업데이트 규칙 구현하기
Q-learning은 강화학습(RL)에서 현재 상태가 주어졌을 때 취할 수 있는 최적의 행동을 찾는 off-policy 알고리즘이에요. 실제로 다음에 취한 행동을 고려하는 SARSA와 달리, Q-learning은 어떤 행동을 했는지와 무관하게 미래 보상의 최댓값을 사용해 Q-값을 업데이트해요. 이 차이 덕분에 Q-learning은 탐색적이거나 심지어 무작위 정책을 따르면서도 최적 정책을 학습할 수 있어요. 아래의 Q-learning 규칙에 따라 Q-table을 업데이트하는 함수를 구현해 보세요. 다음은 Q-learning 업데이트 규칙이며, 이 규칙을 바탕으로 Q-table을 갱신하는 함수를 작성하는 것이 과제예요.
NumPy 라이브러리는 np로 임포트되어 있어요.

이 연습은 강의의 일부입니다
Python으로 배우는 Gymnasium 기반 Reinforcement Learning
연습 안내
- 주어진 상태-행동 쌍에 대한 현재 Q-값을 가져오세요.
actions에서 가능한 모든 행동에 대해 다음 상태의 최대 Q-값을 구하세요.- Q-learning 공식을 사용해 현재 상태-행동 쌍의 Q-값을 업데이트하세요.
- 에이전트가 상태
0에서 행동0을 취하고 보상5를 받은 뒤 상태1로 이동했다고 할 때, Q-tableQ를 업데이트하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
actions = ['action1', 'action2']
def update_q_table(state, action, reward, next_state):
# Get the old value of the current state-action pair
old_value = ____
# Determine the maximum Q-value for the next state
next_max = ____
# Compute the new value of the current state-action pair
Q[state, action] = ____
alpha = 0.1
gamma = 0.95
Q = np.array([[10, 8], [20, 15]], dtype='float32')
# Update the Q-table
____
print(Q)