의견.png

DQN

해시넷
leod0904 (토론 | 기여)님의 2020년 7월 28일 (화) 15:17 판 (새 문서: '''DQN'''(Deep Q-Networks)은 구글 딥마인드(DeepMind)에서 발표한 논문 Playing Atari with Deep Reinforcement Learning과 Human-level control through deep reinforcement lea...)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)
이동: 둘러보기, 검색

DQN(Deep Q-Networks)은 구글 딥마인드(DeepMind)에서 발표한 논문 Playing Atari with Deep Reinforcement Learning과 Human-level control through deep reinforcement learning에서 제시된 강화학습 알고리즘으로, 기존 큐러닝(Q-learning) 알고리즘의 Q(action-value) 함수를 딥러닝으로 근사하는 알고리즘이다.

개요

DQN은 큐러닝과 딥러닝을 합친 것을 말한다. 큐테이블(Q-table) 대신 뉴럴넷(neural net)을 사용해서, 뉴럴넷이 Q 가치를 근사해낼 수 있도록 학습시키는 것이다. 이러한 이유로 DQN은 근사기(approximator) 또는 근사 함수(approximating functioin)이라고 부르기도 한다. 아타리 2600 게임을 인간 수준으로 플레이할 수 있는 인공지능이며, 2015년 2월 네이쳐에 게재되었다. 이 인공지능의 놀라운 부분은, 인공지능에 화면을 입력하고 패드를 움직이도록 하여 '고득점을 내는 것이 목표이다' 이외에 아무 것도 알려주지 않고 마음대로 플레이하게 두었더니, 스스로 게임을 이해하고 공략법을 알아내었다는 것에 있다.[1] 이 알고리즘이 중요한 이유는 딥러닝을 강화학습에 적용하는 것을 어렵게 하는 문제를 해결했기 때문이다. 어려운 점의 대표적인 예시로는 성공적인 딥러닝을 위해선 잘 가공된 대규모의 데이터 셋이 필요한데, 강화학습은 인풋에 대응되는 정답을 명확히 알 수 없을 뿐더러 지연(delay)가 있고 노이즈가 섞인 스칼라 리워드(scalar reward)만으로 네트워크를 학습해야한다. 또한, 대부분의 딥러닝 알고리즘은 학습 데이터가 서로 독립적임을 가정하는데, 강화학습에 쓰이는 환경에서 제공하는 데이터는 연속된 행동에 대한 결과이지 때문에 서로 연관되어 있다. 심지어 에이전트가 학습함에 따라 정책(policy) 또한 달라지면서, 학습 데이터의 분산(distrubution) 자체도 시간에 따라 변화한다. 딥러닝은 데이터에 대해 고정된 기본 분산(fixed underlying distribution)을 가정하기 때문에 학습이 제대로 진행되지 않을 수 있다. DQN은 첫 번째 문제에 대해서는 특별한 해법을 제시하지 않았고, 두 번째 문제는 exprience replay라는 개념을 통해 어느 정도 해결했다. 이 개념은 들어로는 입력을 순서대로 사용하면 데이터 간 연관성이 너무 커지므로 최근 x개의 데이터를 계속해서 저장하고, 네트워크를 학습할 땐 저장한 데이터 중 몇 개를 무작위로 샘플하여 사용하는 방법이다.[2]

알고리즘

2013 NIPS

Playing Atari with Deep Reinforcement Learning 버전의 알고리즘이다. 기존의 큐러닝 알고리즘과 다른 부분을 크게 두 가지 이다.

  • Q 함수를 배열(array)이나 딕셔너리(dictionary)가 아닌 뉴럴넷으로 구현했다. 이는 'Q 함수를 딥러닝을 통해 근사했다' 정도로만 생각할 수도 있지만, 그것보단 더 의미 있는 일이다. 먼저 Q 함수를 뉴럴넷으로 근사한 덕분에 사람이 직접 특징을 정해주는 Hand-crafted feature가 아닌 이미지 픽셀 정보를 상태로 사용할 수 있게 되었다. 만약 Q 함수를 배열로 구현했다면 비슷한 상태, 예를 들어 공의 위치가 1픽셀 정도 다른 두 상태에 대해서 서로 연관성 있는 결과를 얻어내기 힘들 것이다. 하지만 딥뉴럴넷(Deep Neural Network)의 종류 중 하나인 CNN을 통해 중요한 정보를 자동으로 뽑아낸 다음 그 특징들을 기반으로 다시 각각의 Q 값을 계산하기 때문에 특징도 자동으로 뽑아내며 작은 상태 변화에 대해 로버스트한 계산을 기대할 수 있다.
  • 기존 큐러닝에서는 목표값(target value)를 정확하게 학습할 수 있었는데, 그냥 배열이나 다른 자료구조에 그 값을 대입해버리게 되기 때문이다. 하지만 Q함수를 뉴럴넷으로 구현하면 목표값을 정확하게 나타내려면 여러번의 경사 하강법(gradient descent)을 시행해야 하고, 무엇보다 기존에 학습한 결과가 바뀔수 있다. 또한 동시에 학습 데이터의 분포가 바뀌기 때문에 안정적인 학습이 이루어지기 힘들다. 이러한 문제점을 해결해 주는 것이 exprience replay이다.ref name="기린"></ref>

각주

  1. DQN 나무위키 - https://namu.wiki/w/DQN
  2. 기리이이이인, 〈Deep Q Network〉, 《기리이이이인》, 2018-03-10

참고자료

같이 보기


  의견.png 이 DQN 문서는 인공지능 기술에 관한 토막글입니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 이 문서의 내용을 채워주세요.