DQN 손실은 어떻게 Bellman 방정식에서 파생 (또는 이론적으로 동기가 부여됨)하며 Q- 학습 업데이트와 어떤 관련이 있습니까?
강화 학습에 관한 프로젝트를하고 있습니다. DDQN을 사용하는 에이전트를 프로그래밍했습니다. 그것에 대한 많은 튜토리얼이 있으므로 코드 구현은 그렇게 어렵지 않았습니다.
그러나 나는 Bellman 방정식에서 시작하여 이런 종류의 알고리즘을 어떻게 생각해 내야하는지 이해하는 데 문제가 있으며,이 추론의 유도 / 경로를 다루는 좋은 이해 가능한 설명을 찾지 못했습니다.
그래서 내 질문은 다음과 같습니다.
- DQN 훈련에 대한 손실은 어떻게 Bellman 방정식에서 파생됩니까 (또는 이론적으로 동기가 부여됩니까?)?
- 일반적인 Q-learning 업데이트와 어떤 관련이 있습니까?
내 현재 메모에 따르면 Bellman 방정식은 다음과 같습니다.
$$Q_{\pi} (s,a) = \sum_{s'} P_{ss'}^a (r_{s,a} + \gamma \sum_{a'} \pi(a'|s') Q_{\pi} (s',a')) \label{1}\tag{1} $$
내 이해로는 다음과 같은 재귀 표현이 있습니다. 상태-액션 쌍은 가능한 모든 상태에 대한 합계와 동일한 보상을 제공합니다. $s'$ 조치를 취한 후이 상태에 도달 할 확률 $a$ (로 표시 $P_{ss'}^a$, 즉 환경이 에이전트에 작용 함을 의미) 에이전트가 조치를 취함으로써 얻은 보상 $a$ 주에서 $s$ + 다른 가능한 행동 확률의 할인 된 합계 $a'$ 주, 행동 쌍의 보상 $s',a'$.
Q-Learning 반복 (중급 단계)은 종종 다음과 같이 표시됩니다.
$$Q^{new}(s,a) \leftarrow Q(s,a) + \alpha (r + \gamma \max_a Q(s',a') - Q(s,a)) \label{2}\tag{2}$$
즉, 새로운 상태, 행동 보상은 이전 Q 값 + 학습률, $\alpha$, 시간차의 곱, $(r + \gamma \max_a Q(s',a') - Q(s,a))$, 에이전트가받은 실제 보상 + 할인 계수 x이 새로운 상태-액션 쌍의 Q 함수에서 이전 Q 함수를 뺀 값으로 구성됩니다.
이 답변 에서 알 수 있듯이 해당 업데이트 규칙을 사용하는 알고리즘이 수렴하기 때문에 Bellman 방정식을 업데이트 규칙으로 변환 할 수 있습니다 .
(D) DQN의 경우 $Q(s,a)$ 행동으로 이어지는 NN에 의해 추정됩니다. $a$ 그리고 우리는 $r$ 과 $s'$.
그런 다음 우리는 $s$ 만큼 잘 $s'$(Double DQN을 사용하여 다른 NN에 공급합니다). 그만큼$\max_a Q(s',a')$대상 네트워크의 출력에서 수행됩니다. 이 q- 값은 다음으로 곱해집니다.$\gamma$ 과 $r$제품에 추가됩니다. 그런 다음이 합계는 다른 NN의 q- 값을 대체합니다. 이 기본 NN이 출력되었으므로$Q(s,a)$ 하지만 출력해야 $r + \gamma \max_a Q(s',a')$ 가중치를 변경하도록 기본 NN을 훈련시켜이 시간적 목표 차이에 더 가깝게 출력하도록합니다.
답변
RL의 Bellman 방정식은 일반적으로 정의됩니다. $$v_\pi(s) = \sum_a \pi(a|s) \sum_{s', r} p(s', r|s, a)\left[r + v_\pi(s')\right] = \mathbb{E}_{s' \sim p, a \sim \pi}\left[r(s, a) + v_\pi(s')\right] \; .$$당신이 쓴 방식은 맞지만, 나는 이것을 지적 할 것이라고 생각했습니다. 그럼에도 불구하고 현재 상태의 가치와 같은 재귀 적 관계를 표현한다는 점에서 직관은 정확합니다.$s$ 이 상태에서 예상되는 보상의 합과 전환되는 상태의 예상 가치를 더한 것과 같습니다.
실제로 Deep Q-Learning에서 Q-learning 업데이트를 구현합니다. DQN에서 최소화하는 손실 함수는 다음과 같습니다.$$ L(\theta) = \mathbb{E}_{(s,a,r,s')\sim U(D)}\left[\left( r + \gamma \max_{a'}Q(s', a'; \theta^-) - Q(s, a; \theta)\right)^2 \right]\;$$ 어디 $U(D)$ 리플레이 버퍼에서 무작위로 균일하게 표시 $D$ 과 $\theta$ 네트워크 매개 변수 (네트워크가 Q 함수를 매개 변수화 함)이고 $\theta^-$ 매번 업데이트되는 매개 변수의 이전 반복입니다. $c$ 네트워크 수렴에 도움이되는 에피소드.
보시다시피 손실 함수는 방정식 2의 'Bellman 오류'오류를 최소화하고 있습니다. 왜 그런지 생각해 보겠습니다.
제공하는 TD 업데이트는 Q 값을 점진적으로 이동합니다. $(s, a)$ ...쪽으로 $r + \max_a Q(s', a)$ -이것은 결국 최적의 Q- 함수로 수렴하기 때문에 결국 우리가 원하는 것입니다.
이제 Deep Q-learning 사례에 대해 생각해 보겠습니다. 우리는 네트워크가$Q(s, a)$ 따라서 MSE 손실을 사용하여 네트워크를 훈련하면 $r + \max_a Q(s', a)$ 우리의 목표로 우리의 네트워크는 점진적으로 $r + \max_aQ(s', a)$ TD 업데이트와 마찬가지로 (상태-액션 쌍에 대한 최적의 Q- 값을 다시 제공합니다.)
이것은 당신이 신경망의 훈련이 어떻게 작동하는지 알고 있다고 가정하는 것이므로, 그렇지 않다면 이것을 설명하는 관련 질문을 묻거나 검색하는 것이 좋습니다.