강화학습에 뉴럴넷을 접목시키는 방법은 3가지가 있습니다
1. 가치함수 vπ(s) 와 qπ(s, a)를 뉴럴넷으로 표현하는 방법
2. 정책함수 π( a | s )를 뉴럴넷으로 표현하는 방법
3. 액터-크리틱 : 가치함수 + 정책함수
가치기반 에이전트 :
가치 함수에 근거하여 액션 선택 -액션 가치 함수 (q(s, a))의 값을 보고 액션 선택
가치함수는 엄밀히 말하면 밸류만 평가만 함수인데 이를 마치 정책함수처럼 사용(내재된 정책)
ex ) Q- learning, SARSA
딥 Q 러닝 : Q러닝 + 뉴럴넷
기존 Q러닝 방식 :
뉴럴넷 방식
딥 Q러닝 pseudo code : 1. Qθ 의 파라미터 θ를 초기화
2. 에이전트의 상태 s를 초기화(s <- s0)
3. 에피소드가 끝날 때까지 다음(A ~ E)를 반복
A. Qθ 에 대한 ε-greedy 를 이용하여 액션 a 를 선택
B. a를 실행하여 r과s`을 관측
C. s`에서 Qθ에 대한 greedy를 이용하여 액션 a`를 선택
D. θ 업데이트
E. s <- s`
4. 에피소드가 끝나면 다시 2번으로 돌아가서 θ가 수렴할 때까지 반복
DQN : 딥 Q 러닝 + Experience Replay + Target Network
Experience Replay : 말 그대로 겪었던 경험을 재사용 하는것 (리플레이 버퍼)
버퍼안에 최신에 데이터 1000개가 들어있다 하면 이 데이터를 미니배치로 하여 사용하게 한다.
이때 각 데이터는 랜덤으로 뽑히기 때문에 하나의 데이터가 여러번 재사용하여 데이터 효율성을 높여준다
그리고 데이터가 랜덤하게 넣어지다 보니까 다양한 데이터로 학습하게 되어 데이터 상관성이 작아서 더 효율적으로 학습하게 된다. # 주의 Off-Policy 만 가능
Target Network : 별도의 타겟 네트워크
손실함수는 정답과 추측사이의 차를 줄이는 방안으로 업데이트 됩니다.
이때 정답은 θ 에 의존적이고, θ는 손실함수에 따라 업데이트 됩니다.
그렇다면 정답은 θ에 의존적이므로 업데이트마다 정답이 바뀌게 되집니다.
이것을 해결하기 위해서 학습을 하는 Q 네트워크, 정답만 있는 Target 네트워크가 나누어집니다.
일정 주기마다 정답을 교체하는 대신,그동안 하나의 정답으로 Q네트워크가 학습하기 때문에,
학습을 안정화 시킬수 있습니다.
정책기반 에이전트 :
정책 함수를 보고 액션 선택(확률적 정책)
액션 공간이 연속적일 경우 Q(s,a)이 최대인 문제를 풀수 없습니다. 반면 정책기반 에이전트(π)는
바로 액션을 뽑아줄수있다. 이에 더해 가치 기반 방법론에 비해 환경에 숨겨진 정보, 환경 자체가 변하는 경우에도 더 유연하게 대처할 수 있다.
목적 함수 정하기
밸류를 학습할때는 MC or TD 기법으로 구했지만 정책함수는의 정답을 구하는 방법은 망막합니다.
이로인해 손실함수를 줄이는 방법이 아니라 정책을 평가하는 기준을 세워 그 값을 증가시키는 방향으로 그라디언트 업데이트를 하면 됩니다.
이에 기댓값 연산자는 J(θ)이고 s0의 밸류입니다. 이 말은 다른 시작상태가 존재한다면 시작상태 s 와 그 s 에서 시작할 확률을 d(s)가 정의되어야 합니다.
1-Step MDP : 한 스텝만 진행후 에피소드 종료
리턴이 곧 보상, 샘플 기반 방법론 사용
REINFROCE : 액션 가치 함수 대신 샘플의 리턴
경험을 통해 좋았던 액션 더하고, 안좋았던 액션 덜하고
액터 - 크리틱 :
Q- 엑터- 크리딕
액션 가치 함수를 리턴으로 대체하지 않고 그대로 사용하는것
액션 가치함수(Q)에 뉴럴넷을 도입하여 Qw 로 학습
그리하여 θ 로 파라미터화한 πθ와 w로 파라미터화한 Qw로 학습
πθ 는 실행할 액션 a 를 선택하는 액터,
Qw 는 선택한 액션 a 의 밸류를 평가하는 크리틱의 역할을 한다
어드벤티지- 엑터- 크리틱
상태 s에 있는 것보다 액션 a를 실행함의로써 추가로 얼마의 가치를 더 얻게 되느냐 를 어드벤티지(Aπ(s, a))라 한다
Aπ(s, a) = Qπ(s, a) - Vπ(s)
πθ, Vπ,Qw 3쌍의 뉴럴넷 필요
TD - 엑터- 크리틱
어드벤티지_엑터_크리딕 - Qw
reference :
http://incompleteideas.net/book/first/ebook/node65.html
6.5 Q-Learning: Off-Policy TD Control
Next: 6.6 Actor-Critic Methods Up: 6. Temporal-Difference Learning Previous: 6.4 Sarsa: On-Policy TD Contents One of the most important breakthroughs in reinforcement learning was the development of an off-policy TD control algorithm known as Q-learning
incompleteideas.net
https://arxiv.org/pdf/1312.5602v1.pdf
https://keon.github.io/deep-q-learning/
Deep Q-Learning with Keras and Gym · Keon's Blog
This blog post will demonstrate how deep reinforcement learning (deep Q-learning) can be implemented and applied to play a CartPole game using Keras and Gym, in less than 100 lines of code! I’ll explain everything without requiring any prerequisite knowl
keon.github.io
https://jay.tech.blog/2017/01/04/policy-gradient-methods-part-2/
'AI 공부 > RL 끄적' 카테고리의 다른 글
강화학습 겉햙기(7)[알파고와 MCTS] (0) | 2021.05.30 |
---|---|
강화학습 겉햙기(5)[Deep RL] (0) | 2021.05.25 |
강화학습 겉햙기(4)[MDP 접근법] (0) | 2021.05.22 |
강화학습 겉햙기(3)[벨만 방정식] (0) | 2021.05.20 |
강화학습 겉햙기(2)[마르코프 결정 프로세스] (0) | 2021.05.19 |