Python으로 배우는 Deep Reinforcement Learning
Timothée Carayol
Principal Machine Learning Engineer, Komment
Q-러닝:

정책 학습:

$\pi_\theta(a_t | s_t)$:
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) self.fc3 = nn.Linear(64, action_size) def forward(self, state): x = torch.relu(self.fc1(torch.tensor(state))) x = torch.relu(self.fc2(x)) action_probs = torch.softmax(self.fc3(x), dim=-1) return action_probsaction_probs = policy_network(state) print('Action probabilities:', action_probs)
Action probabilities: tensor([0.21, 0.02, 0.74, 0.03])

action_dist = ( torch.distributions.Categorical(action_probs))action = action_dist.sample()
정책은 기대 보상을 최대화해야 함
목표 함수:
![수식: J(pi theta) = pi theta를 따르는 경로 tau에 대한 기댓값 E[R_tau], 여기서 R_tau는 에피소드 보상 합](https://assets.datacamp.com/production/repositories/6638/datasets/99d3574163f301ad7f364e79487556b4e002a3f0/3-1-objective.png)

정책은 기대 보상을 최대화해야 함
목표 함수:






Python으로 배우는 Deep Reinforcement Learning