시작하기무료로 시작하기

SARSA 업데이트 규칙 구현하기

SARSA는 on-policy 알고리즘으로, 현재 취한 행동과 다음 상태에서 선택된 행동에 기반해 action-value 함수를 업데이트해요. 이 방법은 현재 상태-행동 쌍뿐만 아니라 그다음 쌍의 가치까지 학습하도록 도와주어, 미래의 행동을 고려하는 정책을 학습하게 합니다. 아래의 SARSA 업데이트 규칙을 참고하여, 이 규칙에 따라 Q-table을 업데이트하는 함수를 구현해 보세요.

NumPy 라이브러리는 np로 임포트되어 있어요.

Image showing the mathematical formula of the SARSA update rule.

이 연습은 강의의 일부입니다

Python으로 배우는 Gymnasium 기반 Reinforcement Learning

강의 보기

연습 안내

  • 주어진 상태-행동 쌍에 대한 현재 Q-값을 가져오세요.
  • 다음 상태-행동 쌍의 Q-값을 찾으세요.
  • SARSA 공식을 사용해 현재 상태-행동 쌍의 Q-값을 업데이트하세요.
  • 에이전트가 상태 0에서 행동 0을 수행하고 보상 5를 받은 뒤 상태 1로 이동하여 행동 1을 수행했다고 할 때, Q-table Q를 업데이트하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

def update_q_table(state, action, reward, next_state, next_action):
  	# Get the old value of the current state-action pair
    old_value = ____
    # Get the value of the next state-action pair
    next_value = ____
    # Compute the new value of the current state-action pair
    Q[(state, action)] = ____

alpha = 0.1
gamma  = 0.8
Q = np.array([[10,0],[0,20]], dtype='float32')
# Update the Q-table for the ('state1', 'action1') pair
____
print(Q)
코드 편집 및 실행