Python으로 배우는 Deep Reinforcement Learning
Timothée Carayol
Principal Machine Learning Engineer, Komment

![행동가치함수 Q_pi(s,a): 상태 s에서 행동 a를 취하고 이후 정책 pi를 따른다면 기대되는 미래 보상의 합. Q_pi(s,a) = 정책 pi를 따른 미래 궤적에 대한 기댓값 E[R_tau | s_t=s, a_t=a]](https://assets.datacamp.com/production/repositories/6638/datasets/cb1580bea60a3b94654f0c2e3f678a31a7c5df58/1-2-qvalue.png)
$Q$를 알면 최적 정책 가능: $$ \pi(s_t) = {\arg\max}_a Q(s_t, a) $$
Q-러닝의 목표: 시간에 따라 $Q$ 학습









class QNetwork(nn.Module):def __init__(self, state_size, action_size): super(QNetwork, 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)) return self.fc3(x)q_network = QNetwork(8, 4)optimizer = optim.Adam(q_network.parameters(), lr=0.0001)
출력 차원: 가능한 행동 수로 결정
이 예시:
Python으로 배우는 Deep Reinforcement Learning