Machine Learning/ReinforcementLearning

Deep Q-Network

뚜둔뚜둔 2022. 1. 16. 23:34

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 가치 함수란 무엇인가?

파이썬 기반 강화학습 알고리듬 책을 읽고, 그 책의 질문 부분에 대한 답변을 작성한것 입니다.

반응형