[RL] DQN(Deep Q-Network) - 작성중

2023. 8. 8. 22:07·🤖 ai logbook
728x90
반응형

 

 

reference

https://wikidocs.net/book/7888

 

Approximate Q-Learning

large-sale problem들은 일반적인 Q-learning 방법을 적용하기 어려워,

이를 해결하기 위한 한가지 방법으로 Q-function을 파라미터화 하는 것이 있다.

 

일반적인 Q-learning 업데이트 방법

$Q(s, a) ← Q(s, a) + α[r + γ max Q(s', a') - Q(s, a)]$

 

여기서 말하는 파라미터화(parameterization)는 Q-function을, 상태(state)와 행동(action)을 입력으로 받고,

해당 상태에서 특정 행동을 선택했을 때의 예상되는 미래 보상을 출력으로 내는 함수로 표현하는 것을 말한다.

이 함수는 일반적으로 뉴럴 네트워크로 표현되며, 이 함수의 파라미터(즉, 뉴럴 네트워크의 가중치)를 ϕ로 표현한다.

 

파라미터 ϕ 업데이트 방법

파라미터 ϕ는 실제 Q-값과 추정된 Q-값 사이의 차이, 즉 TD 오류 (Q_{ϕ}(s, a) - y_{i})를 최소화하는 방향으로 업데이트된다

 

$ϕ ← ϕ - α∇ϕ (Q_{ϕ}(s, a) - y_{i})$

$y_{i} ← r_{i} + γ max Q_{ϕ}(s', a)$

 

$y_{i}$ : target (추정하려는 실제 Q-값에 가장 가깝다고 생각하는 값)

$r_{i} + γ max Q_{ϕ}(s', a)$ : new estimate

 

$ϕ ← ϕ - α∇ϕ(Q_{ϕ}(s, a) - y_{i})$

 

α : stepsize

$∇ϕ(Q_{ϕ}(s, a) - y_{i})$ : stochastic gradient (TD 오류에 대한 ϕ의 확률적 기울기(stochastic gradient))

*TD Error : 현재의 보상 예측치와 실제로 받은 보상 간의 차이

 

DQN(Deep Q-Network)

DQN = Q-Learning + Deep Learning

Q-learning은 강화학습에서 좋은 방법론이며, 많은 문제를 효과적으로 풀 수 있다.
특히, 상태 공간 & 행동 공간이 작은 경우에는 더 잘 작동한다.
하지만, 상태 공간 & 행동 공간이 크거나, 연속적인 경우에는 Q-learning이 문제를 효과적으로 해결하는데 어려움이 있다.
이러한 문제를 해결하기 위한 방법으로 Q value를 근사하는 방법을 사용하는데, 

이 방법 중 하나가 DQN(Deep Q-Network)이다.

Deep Learning을 사용하여 Q function(Q value)를 근사하며, 

이를 통해 크고 복잡한 상태 공간 & 행동 공간을 가진 문제에서도 Q-learning을 효과적으로 사용할 수 있게 된다.

 

DQN Architecture

DQN 아키텍처에는 Q Nerual Network(Q_{ϕ})와 Target Neural Network(Q_{ϕ-})라는 두 개의 신경망과 Experience Replay라는 구성 요소가 존재한다.

 

 

 

Experience Replay

Experience Replay는 강화학습 과정에서 에이전트가 환경과 상호작용하며 얻은 경험을 저장하고 재사용하는 방법이다.

과정은 다음과 같다.

 

먼저 Experience Replay는 현재 상태(current state)에서 ε-greedy action을 선택하여 환경(environment)에서 실행하고,

보상(reward)과 다음 상태(next state)를 반환한다.

그리고 이 Transition data (s, a, s', r)를 Replay Buffer에 저장한다.

학습 과정에서는 Replay Buffer에 저장된 일정 개수의 Transition data를 무작위로 샘플링해 Q-function을 업데이트 한다.
Experience Replay을 통해 샘플들 사이의 correlation(상관성)을 감소시킬 수 있다 (bias를 줄일 수 있다)

 

Two Neural Nets

DQN의 학습 목표는 실제 Q-value와 예측된 Q-value의 차이를 최소화하는 것으로,
결국 DQN은 이 손실함수를 최소화하는 방향으로 신경망의 파라미터를 업데이트하게 된다. 이 과정은 경사하강법(gradient descent)을 사용하여 수행된다.
즉, DQN의 학습 과정은 회귀문제(regression problem)로 볼 수 있다.

 

DQN에서는 분리된 target network에서 N step 마다 Target Neural Network의 파라미터 $ϕ^{−}$는 Q Nerual Network의 파라미터 $Q_{ϕ}$로 동기화되어, $ϕ^{−} = ϕ$ 가 된다. 

이렇게하면 학습 과정에서 target network의 출력값을 고정된 target으로 사용하여 회귀 문제를 해결함으로써 ϕ를 업데이트할 수 있게 된다.

이 과정은 학습이 일관성 있고 안정적으로 이루어질 수 있도록 도와준다.
만약 타겟 네트워크가 없다면, 학습 도중에 타겟 값이 계속 변하게 되어 학습이 불안정해질 수 있다.

 



728x90
반응형

'🤖 ai logbook' 카테고리의 다른 글

[RL] 간단한 OpenAI Gym 튜토리얼 (CartPole)  (0) 2023.08.28
[RL] Deep Deterministic Policy Gradient (DDPG)  (0) 2023.08.21
[paper] ChatDev - 소프트웨어 개발을 위한 통신 에이전트(Communicative Agents for Software Development)  (0) 2023.08.16
[RL] Actor-Critic  (0) 2023.08.10
[RL] Q 러닝(Q-learning)  (0) 2023.08.07
[CV] Single-stage Models (YOLO, YOLOv2/YOLO9000)  (0) 2023.07.31
[CV] Two-stage Models (R-CNN, SPPNet, Fast R-CNN, Faster R-CNN)  (0) 2023.07.29
[CV] Parts-based Models & Deformable Part Model (DPM)  (0) 2023.07.29
'🤖 ai logbook' 카테고리의 다른 글
  • [paper] ChatDev - 소프트웨어 개발을 위한 통신 에이전트(Communicative Agents for Software Development)
  • [RL] Actor-Critic
  • [RL] Q 러닝(Q-learning)
  • [CV] Single-stage Models (YOLO, YOLOv2/YOLO9000)
이소야
이소야
✔ 공부 기록 ٩(๑•̀o•́๑)و
  • 이소야
    I study SO
    이소야
    ✔ 공부 기록 ٩(๑•̀o•́๑)و
  • 전체
    오늘
    어제
    • 분류 전체보기 (217)
      • 🤖 ai logbook (39)
      • 💻 developers logbook (1)
      • 🥇 certification logbook (67)
      • ⚖️ legal logbook (108)
      • ⚡ electronics logbook (1)
      • 🌍 english logbook (0)
      • 🎁 etc (1)
  • 최근 글

  • 인기 글

  • 태그

    deeplearning
    certificate
    인공지능 입문
    ADsP
    데이터분석준전문가
    온라인 강의 추천
    법학과
    Coursera
    자격증
    근로기준법
    방통대
    빅데이터분석기사
    데이터사이언스 입문
    datascience
    형법
    Python
    IBM
    민법
    머신러닝
    기본권의기초이론
  • hELLO· Designed By정상우.v4.10.3
이소야
[RL] DQN(Deep Q-Network) - 작성중
상단으로

티스토리툴바