강화학습에서 DQN (Deep Q-Network) 이론과 예제
강화학습(Reinforcement Learning)은 에이전트가 환경과 상호작용하면서 보상(reward)을 최대화하는 행동을 학습하는 방식입니다. DQN(Deep Q-Network)은 이러한 강화학습을 심층 신경망(Deep Neural Network)을 활용하여 더 복잡한 문제를 해결하는 방법 중 하나입니다. 특히 Q-러닝(Q-learning) 알고리즘에 심층 신경망을 결합한 형태로, 복잡한 환경에서 최적의 정책을 찾는 데 효과적입니다.
Ⅰ. Q-러닝 (Q-learning) 기본 이론
Q-러닝은 모델 프리 강화학습 알고리즘으로, 에이전트가 환경에서 각 상태(state)에서 어떤 행동(action)을 취할 때 얻을 보상(reward)을 추정하는 방식입니다. 핵심 아이디어는 각 상태-행동 쌍에 대해 Q 값을 학습하는 것입니다.
Q 값 (Q-value)
Q 값은 특정 상태에서 특정 행동을 취했을 때, 예상되는 누적 보상을 의미합니다. 상태 \(s\)와 행동 \(a\)에 대한 Q 값은 다음과 같이 정의됩니다:
$$ Q(s, a) = \mathbb{E}\left[ \sum_{t=0}^{\infty} \gamma^t r_t \right] $$
여기서:
s
: 상태a
: 행동γ
: 할인율 (0과 1 사이의 값으로 미래 보상의 중요도를 결정)r_t
: 시간t
에서 받은 보상ℰ
: 기댓값
Q 값 업데이트 공식
Q-러닝에서 Q 값은 다음과 같은 방식으로 업데이트됩니다:
$$ Q(s_t, a_t) \leftarrow Q(s_t, a_t) + \alpha \left[ r_{t+1} + \gamma \max_a Q(s_{t+1}, a) - Q(s_t, a_t) \right] $$
여기서:
α
: 학습률 (새로운 정보가 기존 정보에 얼마나 반영될지 결정)γ
: 할인율max_a Q(s_{t+1}, a)
: 다음 상태에서 가능한 모든 행동에 대한 Q 값 중 가장 큰 값을 선택
Ⅱ. DQN (Deep Q-Network)
Q-러닝은 단순한 상태-행동 공간에서는 잘 작동하지만, 상태와 행동 공간이 거대하거나 연속적인 경우에는 Q 테이블을 저장하고 관리하는 데 한계가 있습니다. 이를 해결하기 위해 딥러닝을 활용한 DQN이 등장했습니다.
DQN의 주요 구성 요소
- Q 네트워크 (Q-network): 딥러닝을 활용해 상태
s
를 입력받아, 각 행동a
에 대한 Q 값을 출력하는 신경망입니다. - 경험 리플레이 (Experience Replay): DQN은 에이전트가 경험한 상태, 행동, 보상, 다음 상태를 메모리에 저장하고, 무작위로 샘플을 추출하여 학습에 활용합니다.
- 타겟 네트워크 (Target Network): 두 개의 Q 네트워크를 사용하며, 타겟 네트워크는 일정 주기로 온라인 네트워크의 파라미터를 복사하여 사용합니다.
Ⅲ. DQN 예제: 고전적인 CartPole 문제
DQN을 적용한 고전적인 예제는 CartPole 문제입니다. 이 문제는 물리적인 시스템으로, 기둥을 수직으로 세우는 것이 목표입니다. 에이전트는 기둥이 넘어지지 않도록 카트를 왼쪽이나 오른쪽으로 이동시키는 방식으로 제어합니다.
문제 설정
- 상태 공간: 카트의 위치, 속도, 기둥의 각도, 각속도 (4차원)
- 행동 공간: 카트를 왼쪽으로 또는 오른쪽으로 이동 (2가지 행동)
- 목표: 기둥이 넘어지지 않게 하여 최대한 오래 유지하는 것
DQN 적용 과정
- 상태 입력: 카트의 상태를 신경망의 입력으로 사용합니다.
- Q-값 예측: 신경망은 각 상태에 대해 각 행동에 대한 Q 값을 예측합니다.
- 행동 선택:
ε-greedy
방식으로 행동을 선택합니다. 대부분은 Q 값이 높은 행동을 선택하고, 가끔은 무작위로 행동을 선택하여 탐색합니다. - 보상 계산: 카트가 기둥을 넘어뜨리면 보상이 0이고, 그렇지 않으면 보상이 1이 주어집니다.
- Q-값 업데이트: 경험 리플레이와 타겟 네트워크를 사용하여 Q 값을 업데이트합니다.
Ⅳ. 결론
DQN은 강화학습에서 Q-러닝을 심층 신경망과 결합한 방법으로, 고차원적이고 복잡한 환경에서도 효과적으로 최적의 정책을 학습할 수 있는 강력한 도구입니다. 경험 리플레이와 타겟 네트워크는 DQN의 안정성을 높이는 중요한 요소로 작용합니다.
DQN은 CartPole과 같은 간단한 예제부터 ATARI 게임, 로봇 제어, 자율 주행 등 다양한 분야에서 활용될 수 있습니다. 딥러닝과 강화학습의 결합으로, 에이전트는 인간처럼 복잡한 환경을 학습하고, 그에 맞는 최적의 행동을 선택할 수 있습니다.
댓글 없음:
댓글 쓰기