강화학습(RL, Reinforcement Learning)은 정리하면
Agent가 environment 안에서 action을 하면서 reward를 최대화하는 학습 방법이다.
지도학습과의 차이점
지도학습
Input --> Correct Answer
예
- 사진 --> 고양이
- 센서 --> 노면 종류
즉, 정답(label)이 있다.
강화학습
정답이 없고 AI가 직접 행동하면서 경험한다.
행동 --> 결과 --> 보상
예
- 앞으로 갔다 → 죽음 → -100
- 적 맞춤 → +10
- 목표 도착 → +1000
이런 식으로 시행착오한다.
1. MDP
Q-learning은 강화학습 문제를 다음과 같이 정의한다.
| 기호 | 의미 |
|---|---|
| 상태 공간 | |
| 행동 공간 | |
| 상태 전이 확률 | |
| 보상 함수 | |
| 할인율 |
2. State Transition
- Current States:
- Action:
3. Reward
4. Return
강화학습 목표는 미래 누적 보상 최대화
즉, dp 값의 최대화라고 생각하면 된다.
5. Action-Value Function
Q-learning은 다음과 같이 학습한다.
상태 에서 행동 를 했을 때 얻게 될 누적 보상 기대값을 계산하면 된다.
6. Bellman Optimality Equation
최적 Q-function은
Discount Factor
Discount Factor는 미래 보상의 중요도를 조절한다.
저기서 값이 미래로 갈 수록 작아지는데, 미래에 대한 가중치를 낮춘다고 생각하면 된다.
7. Q-learning Update
8. TD Error
따라서
9. Action Selection
Q-learning은 보통 epsilon-greedy policy 사용한다.
Exploration vs Exploitation
- exploration: 새로운 행동 탐험
- exploitation: 현재 최고 행동 사용
epsilon-greedy는 둘의 균형을 맞춰준다.
10. DQN
DQN은 Q-table 대신 neural network를 사용한다.
11. DQN Loss
DQN이 Q-learning보다 성능이 좋은 이유
1. Replay Buffer
기존 Q-learning에서는 현재 시점의 transition
만 사용해서 업데이트를 수행한다.
그러나 연속된 transition들은 서로 강한 상관관계를 가지므로, neural network 학습 시 데이터 분포가 비독립적(non-i.i.d.)이 되어 학습이 불안정해 질 수 있다.
이를 완화하기 위해 DQN에서는 replay buffer를 사용한다.
Replay buffer는 transition들을 메모리에 저장한 뒤, 무작위 샘플링(mini-batch sampling)을 통해 학습에 사용한다.
즉,
로 구성된 replay memory에서 mini-batch를 추출하여 학습한다.
2. Target Network
DQN에서는 TD target 계산 시 사용되는 Q-network의 파라미터가 동시에 업데이트되면 학습 목표 자체가 계속 변화하게 된다.
기존 target은 다음과 같다.
그러나 이 경우,
가 매 step마다 변화하므로 target value 또한 지속적으로 변하게 되어 학습이 불안정해진다.
이를 해결하기 위해 DQN에서는 별도의 target network,
를 사용한다.
Target network는 일정 주기마다 policy network의 파라미터를 복사하여 업데이트한다.
즉 TD target은,
로 계산된다.
3. Hard Update
Hard update는 일정 step마다:
로 target network를 한 번에 복사하는 방식이다.
본 실험에서는 hard update를 사용하였다.
4. Soft Update (추가 설명용)
Soft update는 target network를 천천히 업데이트하는 방식이다.
여기서,
이며, target network가 policy network를 천천히 추적하도록 만든다.