시작하기무료로 시작하기

정책 네트워크 아키텍처

나중에 policy gradient 에이전트를 학습시키는 데 사용할 정책 네트워크(Policy Network) 아키텍처를 구축하세요.

정책 네트워크는 상태를 입력으로 받아, 행동 공간에서의 확률을 출력해요. Lunar Lander 환경에서는 네 가지 이산형 행동을 사용하므로, 네트워크가 각 행동에 대한 확률을 하나씩 출력하도록 해야 해요.

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

Python으로 배우는 Deep Reinforcement Learning

강의 보기

연습 안내

  • 정책 네트워크의 출력층 크기를 지정하세요. 유연성을 위해 실제 숫자 대신 변수 이름을 사용하세요.
  • 마지막 층이 확률을 반환하도록 하세요.

실습형 인터랙티브 연습

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

class PolicyNetwork(nn.Module):
  def __init__(self, state_size, action_size):
    super(PolicyNetwork, self).__init__()
    self.fc1 = nn.Linear(state_size, 64)
    self.fc2 = nn.Linear(64, 64)
    # Give the desired size for the output layer
    self.fc3 = nn.Linear(64, ____)

  def forward(self, state):
    x = torch.relu(self.fc1(torch.tensor(state)))
    x = torch.relu(self.fc2(x))
    # Obtain the action probabilities
    action_probs = ____(self.fc3(x), dim=-1)
    return action_probs
  
policy_network = PolicyNetwork(8, 4)
action_probs = policy_network(state)
print('Action probabilities:', action_probs)
코드 편집 및 실행