https://ohollama.tistory.com/63
[RL] 강화학습 쉽게 이해하기
강화학습에 대한 기초를 다시 한 번 간결하게 정리해보는데에 도움을 줄 수있는 글입니다. 강화학습은 특정 목적을 달성하기 위해, 순차적인 의사결정 문제를 푸는 방법을 배우는 도구입니다
ohollama.tistory.com
위의 강화학습 쉽게 이해하기 글의 후속으로
좀 더 본격적인 내용으로 들어가도록 하겠습니다.
Q-Learning 의 문제점과 Deep Q Network
Q-Learning
RL 어떤 과정이라 할지라도 최신의 알고리즘을 배우기전에 여러 전통적인 알고리즘을 설명하고 있습니다.
먼저 Q-Learning 이 무엇이었는지 상기해봅니다.
벨만 방정식을 이용하여 optimal policy 를 구하는 것인데, 다이나믹 프로그래밍으로 모든 state-action 짝에 대한 Q(s,a) 를 구해야 하는 것으로 생각해 볼 수 있습니다.
그런 경우, 무한에 가까운 모든 경우의 수를 찾아야 하는 문제점이 있고 크게 확장 가능하지 않습니다.
Deep Q Network
결국 뉴럴넷을 이용하여 Q(s,a) 를 모사하는 function approximator 를 만들어 보자는 아이디어가 나왔죠 (DQN)
$ Q(s,a;\theta) \approx Q^{*}(s,a) $
$\theta$ : function parameters (weights)
벨만 방정식으로 부터 나온 $ Q^{*} $ 가 ground truth 로써 동작. NN을 통한 학습
Atari 게임 시나리오의 예
Input : State $s_{t}, s_{t-1}, s_{t-2}, s_{t-3}$
Output : Q($s_{t}, a_{1} $ ),Q($s_{t}, a_{2} $ ),Q($s_{t}, a_{3} $ ),Q($s_{t}, a_{4} $ ),
input 의 경우 마지막 4개 프레임 이미지를 그레이스케일, 다운샘플링, 크로핑을 통해 생성
이를 뉴럴네트워크를 통해 4d output (4 가지 액션이 가능한 경우) 으로 뽑아냅니다.
Experience Replay Buffer
앞 샘플링 데이터와 그다음 데이터와의 강한 상관관계가 있으므로
데이터의 편향을 줄이고 다양한 경험을 활용하여 더 안정적으로 학습하게끔 도와주는 역할을 합니다.
사용되는 방식은 아래와 같습니다.
경험 데이터 수집:
에이전트가 환경에서 상태를 관찰하고 행동을 선택하며 경험을 쌓습니다.
Experience Replay Buffer에 저장:
수집한 경험 데이터를 Experience Replay Buffer에 저장합니다.
무작위 샘플링:
학습 시, Experience Replay Buffer에서 무작위로 일부 샘플을 추출하여 사용합니다.
Q-learning 적용:
추출한 샘플을 사용하여 Q-learning 알고리즘에 따라 Q-값을 계산하고, 네트워크를 업데이트합니다.
$\epsilon$-greedy policy
초반에는 Exploration(랜덤) 하다가 Exploit (Optimal/greedy) 시킬 수 있도록 쓰는 값 (1 - $\epsilon$ 확률 Exploit)
Fixed target network
Q-네트워크를 온라인 네트워크(계속해서 업데이트 되는 네트워크) 와 타겟 네트워크(일정한 주기로 업데이트)로 구분지어서 안정성을 높이고 수렴을 개선합니다.
'IT > AI , 로봇' 카테고리의 다른 글
chatgpt o1-mini vs 4o (0) | 2024.09.19 |
---|---|
[RL] 강화학습 쉽게 이해하기 (0) | 2023.12.26 |
[음성] 음성학적 후방문자란? (Phonetic posteriorgrams) (0) | 2023.12.14 |
python 입력시 자꾸 microsoft store 가 뜨는 문제. (0) | 2023.07.19 |
[언어] 언어 AI 기본 (0) | 2023.05.19 |