DQN알고리즘
3가지 주요 부분으로 구성
- 데이터 수집과 저장 : 데이터는 행동 폴리시 behavior에 의해 수집한다.
- 신경망 최적화(버퍼에서 샘플링한 미니 배치에 대해 SGD를 수행한다.)
- 타깃 업데이트
DQN 구현
DQN코드안 네가지 주요 구성 요소
- DNN
- 경험 버퍼
- 계산 그래프
- 훈련 및 평가 루프
Q-러닝과 결합해 심층 신경망을 사용할 수 있었던 최초의 알고리즘은 DQN이다.
이 알고리즘은 두가지 핵심 요소를 통합해 학습 안정화와 아타리 2600게임 같은 복잡한 작업을 제어할 수 있었다.
사용한 두 가지 핵심 요소는 기존 경험을 저장하는데 사용한 리플레이 버퍼replay buffer와 온라인 네트워크 online network 보다 업데이트 빈도가 낮은 별도의 타깃 네트워크 target network다.
리플레이 버퍼는 서로 다른 폴리시(이전 폴리시) 경험에서 배울수 있도록 Q-러닝의 오프 폴리시 기능을 사용한다
또한 큰 데이터 풀pool로 부터 많은 i,i,d미니 배치를 샘플링해 확률적으로 그래디언트 하강 SGD(Stochastic Gradient Descent)을 실행한다.
타깃 네트워크는 타깃 가치를 안정시키고 비정상문제 non-stationarity problem을 줄이는데 사용한다.
여러 개선 알고리즘 중 세가지 방법 Double DQN, Dueling DQN, n-step DQN
- Double DQN
DQN알고리즘에서 언급한 과대 추정 문제를 해결한 알고리즘
- Dueling DQN
Q값 함수 Q-value function를 상태 가치 함수 state value fuction와 행동-상태 어드밴티지 가치함수 action-state advantage value function로 분리하는 decouple 알고리즘
- n-step DQN
시간차 temporal difference 알고리즘에서 사용한 아이디어로 원-스템 러닝과 mc 러닝 사이의 스텝 길이를 구분하는 알고리즘.
- 치명적인 세가지 문제의 원인은 무엇인가?
- 1. 계산 비용이나 데이터 효율성에 영향을 미치지 않으면서 부트스트레핑을 사용하지 않을 수 없다.
- 2. 더 지능적이고 강력한 에이전트를 만들기 위해 오프-폴리시 학습이 필요하다.
- 3. 심층 신경망을 사용하지 않고 상태와 행동이 많은 문제를 해결하기 어렵다.
- DQN은 불안정성을 어떻게 극복했는가?
- 1. 리플레이 버퍼 replay buffer를 이용해 데이터 상관성 data correlation 문제를 해결
- 2. 비정상성non-stationarity 문제를 극복하기 위해 별도로 타깃 네트워크 target network를 이용
- 움직이는 타깃 문제moving Target Problem란 무엇인가?
- 훈련 중에 신경망을 지속적으로 업데이트해 타깃 값을 수정하기 때문에 발생하는 현상
- 타깃이 움직이는 문제에도 불구하고 최상의 상태-행동state-action 값을 제공하려면 신경망을 업데이트 해야한다.
- DQN에서는 움직이는 타깃 문제를 어떻게 완화시켰는가?
- 두개의 신경망을 사용해서 해결하려 함.
- 1. 온라인네트워크 online network로 끊임 없이 업데이트하는 신경망
- 2.타킷네트워크 target network로 매 n회 이터레이션 마다 업데이트 하는 신경망
- 온라인 네트워크는 환경과 상호작용하는데 사용하며 타깃 네트워크는 대상값을 예측하는데 사용한다.
- DQN에서 사용된 최적화 과정은 무엇인가?
- 상태-행동 어드벤티지 state-action advantage 가치 함수란 무엇인가?
'Machine Learning > ReinforcementLearning' 카테고리의 다른 글
확률 기반 PG최적화 학습 (0) | 2022.01.17 |
---|---|
확률 기반 PG최적화 학습 (0) | 2022.01.17 |
Q-러닝과 SARSA 애플리케이션 (0) | 2022.01.16 |
동적 프로그래밍으로 문제 해결하기 (0) | 2022.01.16 |
강화학습 사이클과 openAI Gym 구현하기 (0) | 2022.01.16 |