본문 바로가기
딥러닝

DQN (Deep Q-Networks)

by 그린켐 2020. 12. 1.

DQN (Deep Q-Networks)

DQN이 나오기전 Neural network 를 사용하기 어려웠던 이유

1. Correlations 

수많은 data중 sampling data를 통해 접근하였을 때, sampling data간 correlation이 있으면 나머지 data와의 관련성이 나오지 않기 때문에 제대로된 학습을 할 수가 없다. 

2. Non-stationary targets

Q러닝 알고리즘은 cost function(MSE)를 최소화하는 방향으로 학습을 한다.  cost function를 보면 min(예측값 - 정답값)^2 식으로 나타내고 있는데 Q_learning 에서 예측값을 실제값과 가까와 지기 위해 θ을 조정하면 실제값의 θ 값 또한 변하게 된다. 즉, 부트스트랩을 진행하면 정답값도 같이 업데이트가 되면서 target이 변하게 되는 문제가 생긴다. 

  • Solution

1. 미니배치(Minibatch)

[Playing Atari with Deep Reinforcement Learning ] 논문에서 소개된 DQN을 통해 Q learning에서 가지고 있던 문제를 해결할 수 있다. 미니배치란 많은 데이터 중 random하게(무작위) 샘플을 뽑아 학습시키는 것을 의미한다. 중요한 점은 timestep마다 buffet단에 리플레이 메모리를 저장하고 buffer에서 가져온 data를 미니배치 기법을 활용하여 연속적인 샘플들(samples) 간의 강한 상관관계를 제거할 수 있게 된 것이다.

D(buffer)에다가 현재상태, 액션,reward, 다음 상태등을 저장한다. 그리고  D(buffer)로 부터 random으로 minibatch구성하여 학습을 진행시킨다. 

 2. Targe network

[Human-level control through deep reinforcement learning]에서 소개된 내용이다. 

초기에 예측하는 네트워크 Q함수의 weight θ와 타겟네트워크 Q hat함수의 θ-를 가지고 각각의 네트워크를 만든다. 

minibatch 기법으로 학습을 진행하고 타겟네트워크와 예측값을 비교하여 예측한 값에서 가져온 θ만 업데이트(gradient)한다. 어느 정도 시간이 지나면 θ-도 업데이트를 하여 Q hat = Q 값을 같게 복사한다. 

 

 

 

'딥러닝' 카테고리의 다른 글

Deep Learning(딥러닝) 개요  (0) 2020.11.21

댓글