벨만 방정식
둘러보기로 이동
검색으로 이동
벨만 방정식
- 이제 이것도 좀 외울때 되지 않았냐
배경
- 시간 t에서의 상태 s, 그 때의 행동 a를 취했을 때 가치를 알고 싶다.
- 그럼 시간 t 이후의 모든 상황에 대한 보상을 다 알아야 하는데 어렵다.
- Q(s, a) = E[R|s, a]
벨만 방정식
- 재귀 형태로 변형하는게 아이디어
- (시간 t에서의 가치)는 (딱 t에서의 보상)+(t+1부터 그 이후의 가치로 변형)
- Q(s, a) = E[r(s, a) + E[Q(s', a')]]
- 결정적 정책이라고 가정하면 -> 즉 off-policy로 바꿀 수 있다.
- Q(s, a) = E[r(s, a) + Q(s', a')]
DDPG
- 액터크리틱, 오프폴리시
- (Q함수)랑 (정책함수) 만듦
- Q함수를 복제한 (타겟 Q함수)랑 (타겟 정책함수) 만듦
- 학습
- Q함수의 오차
- y = r + γQ'(s', a) 구함 (보상이랑 타겟q로 계산한 가치 더함)
- Q(s, a) 구함
- 오차 = y - Q(s, a)의 평균
- 즉, 현재 상태의 가치랑 다음 상태의 가치랑 차이가 없어야됨
- 즉, 현재 상태가 이미 최고 가치여야됨
- 즉, 다음 상태는 가치가 없어야 함 (이미 달성했으므로)
- 오차 최소화로 최적화
- 정책 업데이트
- Q(s, a)가 작아지는 방향으로 업데이트 (그러다언트)
- Q함수의 오차