reference
https://wikidocs.net/165847
https://wikidocs.net/165845
https://wikidocs.net/123068
Deep reinforcement learning
Deep reinforcement learning = RL + Deep learning
Deep reinforcement learning은 reinforcement learning(RL)과 deep learning을 결합한 머신러닝의 하위 분야이다.
Update Value function and Q-function
강화학습에서 Value function과 Q-function을 어떻게 업데이트할까?
모델이 알려진 경우에는, Q-function을 사용하는 방법이 있다.
일반적으로 다음과 같은 단계로 구성된다.
1. value function $v_{0}$를 초기화한다.
2. $Q_{k+1}(s, a) ← r(s, a) + γEs'[v_{k}(s')]$를 설정하여 Q-함수를 업데이트한다.
3. $v_{k+1}(s) ← max_{a} Q_{k+1}(s, a)$를 설정하여 가치 함수를 업데이트한다.
4. k ← k + 1을 설정하고 수렴할 때까지 반복한다.
그리고, 모델이 알려지지 않은 경우에는
sampling된 data를 사용하는 Stochastic Approximation 방법을 사용한다.
이는 일반적으로 다음과 같은 단계로 구성된다.
1. value function $v_{0}$를 초기화한다.
2. 어떤 정책을 실행하여 ($s_{t}, a_{t}, s_{t+1}, r_{t}$)를 샘플링한다.
3. $Q_{k+1}(s_{t}, a_{t}) ← (1 − α)Q_{k}(s_{t}, a_{t}) + α[r_{t} + γv_{k}(s_{t}+1)]$를 설정하여 Q-함수를 업데이트한다.
4. $v_{k+1}(s) ← max_{a} Q_{k+1}(s, a)$를 설정하여 가치 함수를 업데이트한다.
5. k ← k + 1을 설정하고 수렴할 때까지 반복한다.
마지막으로, Q-learning 방법이 있다.
이는 sampling된 data를 사용하여 Q-function만을 업데이트하고 value function($v_{k}$)은 더이상 업데이트 하지 않는다.
단계는 다음과 같다.
1. Q-function $Q_{0}$를 초기화한다.
2. 어떤 정책을 실행하여 ($s_{t}, a_{t}, s_{t+1}, r_{t}$)를 샘플링한다.
3. $Q_{k+1}(s_{t}, a_{t}) ← (1 − α)Q_{k}(s_{t}, a_{t}) + α[rt + γ max_{a} Q_{k}(s_{t+1}, a)];$ 를 설정하여 Q-함수를 업데이트한다.
4. k ← k + 1을 설정하고 수렴할 때까지 반복한다.
Q-learning
Q-learning은 강화학습의 한 모델로,
상태(s)에서 행동(a)를 취할 때의 가치(value)를 추정하는 값을 출력하는 Q(s, a) 함수이다.
Q(s, a)를 학습할때 Q-function을 이용한다.
* Q-function이란, 에이전트가 특정 상태에서 특정 행동을 취했을 때의 기대되는 미래 보상을 나타내는 함수
$Q(s,a) = 0 for all s, a$
s : 상태
a : 행동
Q(s,a) : 특정 상태에서 특정 행동을 했을 때 예상되는 총 보상
처음에는 어떤 주어진 상태에서 어떤 행동을 취한다는 것에 대한 가치를 모르기 때문에,
그 가치가 전체에 걸쳐 0이라고 가정한다.
그 뒤 어떤 행동이 수행되고 보상을 받게 되면, 두 가지 작업을 진행하게 된다.
1. 현재 보상과 예상되는 미래의 보상을 기반으로 Q(s,a)의 값을 추정한다
2. 이전의 추정치와 새로운 추정치를 모두 고려하여 Q(s,a)를 업데이트 한다.
결국, 상태 s에서 행동 a를 취하고, 보상 r을 관찰할 때 마다 가치(Q(s,a))를 업데이트 할 것이고,
이를 수식으로 나타내면 다음과 같다.
$Q(s, a) ⟵ Q(s, a) + α(new value estimate - old value estimate)$
$Q(s, a) ⟵ Q(s, a) + α(new value estimate - Q(s, a))$
α : 학습률
α = 1이면 오래된 정보를 완전히 새로운 정보로 교체하겠다는 것을 의미한다.
이는 즉시 모든 정보를 업데이트하겠다는 것을 의미한다.
반면에, α = 0이면 추정치가 절대로 업데이트되지 않는다. 이는 과거의 지식을 유지하겠다는 것을 의미한다.
α 값을 조절함으로써, 새로운 추정치에 의해 이전의 지식이 얼마나 빨리 업데이트되는지를 결정할 수 있으며,
이는 빠른 학습과 안정적인 학습 사이의 균형을 맞추는 데 중요한 역할을 한다.
'new value estimate'는 보상(r)과 미래 보상 추정치의 합으로 표현될 수 있다.
$Q(s, a) ⟵ Q(s, a) + α((r + future reward estimate) - Q(s, a))$
그리고 여기서 미래 보상 추정치(future reward estimate)라는 것은 결국 Q 함수에 대한 다른 표현이 될 수 있다.
마지막 행동을 취한 후 얻은 새로운 상태를 고려하고,
이 새로운 상태에서 가장 높은 보상(최대 보상)을 가져올 것으로 예상되는 행동의 추정치를 더하게 된다.
$Q(s, a) ⟵ Q(s, a) + α((r + γmax_{a'}Q(s',a')) - Q(s, a))$
s' : 새로운 상태
a' : 새로운 상태에서 가능한 모든 행동
$max_{a'}Q(s', a')$ : 새로운 상태에서 가능한 모든 행동 중 가장 높은 Q값을 가진 행동을 선택
γ : 미래 보상을 얼마나 중요하게 여기는지를 제어하는 계수
이렇게 갱신된 Q 값은 에이전트가 앞으로 취해야 할 행동을 결정하는 데 사용된다.
결국 Q-learning은 새로운 보상을 경험할 때 마다 그 정보를 고려하여
그 행동이 얼마나 좋은지에 대한 추정치를 업데이트하는 방법론이다.
이렇게 업데이트 된 추정치는 미래에 결정을 내리는 데 기반으로 사용되며,
이는 에이전트가 더 나은 행동을 선택할 수 있게 한다.
또한, 이렇게 학습된 Q(s,a) 값은 Greedy Decision-Making 방식에 사용될 수 있다.
* Greedy Decision-Making란, 현재 상태에서 Q(s,a) 값이 가장 큰 행동을 선택하는 방식으로, 즉시 보상을 최대화하는 행동을 항상 선택하는 전략을 말한다.
'🤖 ai logbook' 카테고리의 다른 글
[RL] Deep Deterministic Policy Gradient (DDPG) (0) | 2023.08.21 |
---|---|
[paper] ChatDev - 소프트웨어 개발을 위한 통신 에이전트(Communicative Agents for Software Development) (0) | 2023.08.16 |
[RL] Actor-Critic (0) | 2023.08.10 |
[RL] DQN(Deep Q-Network) - 작성중 (0) | 2023.08.08 |
[CV] Single-stage Models (YOLO, YOLOv2/YOLO9000) (0) | 2023.07.31 |
[CV] Two-stage Models (R-CNN, SPPNet, Fast R-CNN, Faster R-CNN) (0) | 2023.07.29 |
[CV] Parts-based Models & Deformable Part Model (DPM) (0) | 2023.07.29 |
[CV] Object Detection & Statistical Template Approach(Dalal-Triggs Pedestrian Detector) (0) | 2023.07.19 |