시작하기무료로 시작하기

REINFORCE에서의 행동 선택

REINFORCE 에이전트가 매 스텝에서 행동을 고를 때 사용할 select_action 함수를 작성하세요.

DQN에서는 네트워크의 순전파가 Q-값을 반환했지만, REINFORCE에서는 행동 확률을 반환하며, 이 확률에서 바로 행동을 샘플링할 수 있어요.

정책 네트워크와 상태가 이미 환경에 로드되어 있어요.

torch.distributions.CategoricalCategorical로 임포트되어 있어요.

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

Python으로 배우는 Deep Reinforcement Learning

강의 보기

연습 안내

  • 행동 확률을 torch 텐서로 구하세요.
  • 해당 행동 확률에 대응하는 torch Distribution을 구하세요.
  • 그 분포에서 행동을 샘플링하세요.

실습형 인터랙티브 연습

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

def select_action(policy_network, state):
  # Obtain the action probabilities
  action_probs = ____
  print('Action probabilities:', action_probs)
  # Instantiate the action distribution
  action_dist = Categorical(____)
  # Sample an action from the distribution
  action = ____
  log_prob = action_dist.log_prob(action)
  return action.item(), log_prob.reshape(1)

state = torch.rand(8)
action, log_prob = select_action(policy_network, state)
print('Sampled action index:', action)
print(f'Log probability of sampled action: {log_prob.item():.2f}')
코드 편집 및 실행