프로그래밍 공부
카테고리
작성일
2024. 6. 26. 02:19
작성자
WDmil
728x90

내가 어떠한 상태에서 취할 수 있는 행동의 확률을 구하는 것을 행동가치 라고 하는데, 이걸 구하는 함수를 추정하는 방식을 알아보자.

 

행동가치함수 는 어떤 상태에서 취한 행동의 좋고 나쁨을 평가한다.

 

상태가치 함수를 추정하는 대표적인 알고리즘은 다음과 같다.

 

  1. MC(Monte-Carlo) Method
  2. SARSA
  3. Q-Learning

 


MC(Monte-Carlo) Method

 

MC알고리즘은 실제 에피소드가 끝날 때 까지 한번의 경험을 수집한 뒤 해당 값으로 Q값을 갱신하는 추정 알고리즘이다.

 

$ Q_{\pi}(s, a) = R_{t+1} + \gamma R_{t+2} + \gamma ^{2}R_{t+3} + ... $

 

MC Method알고리즘의 단점은 한번의 Q값을 갱신하기 위해 에피소드가 끝날 때 까지 기다려야한다는 점이다.

 


SARSA

 

SARSA (State-Action-Reward-State-Action) 알고리즘은 행동으로 인한 리워드와 다음 상태의 추정 Q값을 이용해서 행동가치함수 $ Q(s_{t}, a_{t}) $ 을 개선하는 알고리즘이다.

 

$ Q(s_{t}, a_{t}) = R_{t+1} + \gamma Q(S_{t+1}, a_{t+1}) $

 

현재 State에서 한번의 Action을 취하고 그로 인해 얻은 다음 state에서 취한 action의 Q값을 이용해서 학습을 진행한다.

$ < s_{t}, a_{t}, R_{t+1}, s_{t1}, a_{t+1} > $ 따라서 갱신에 사용하는 데이터의 형상을 따라서 SARSA알고리즘 이라고 부른다.

 

한번의 경험만으로 갱신이 된다. 모든 갱신을 하지 않아도 되기 때문에, MC보다 더 효율적이다.


Q-Learning

 

Q-Learning은 적절한 행동 가치 함수값을 알아내기위한 알고리즘이다. Q-Learning에서 $ Q(s_{t}, a_{t}) $ 는 현재 상태에서 취한 행동에 대한 행동 가치 함수값을 나타낸다.

 

Q-Learning은 $ Q(s_{t}, a_{t}) $ 를 임의의 값으로 초기화 한 후, 학습이 진행됨에 따라 아래수식 으로 값이 반복해서 업데이트되어 나간다.

 

$ Q(s_{t}, a_{t}) = R_{t+1} + \gamma \underset{a + 1}{ max } Q(S_{t+1}, a_{t+1}) $

 

여기서 $ R_{t+1} $ 은 현재 상태에서 다음 상태로 넘어갈 때 얻은 보상, $ \gamma $ 은 Discount Factor, $ \underset{a+1}{max} Q(S_{t+1}, a_{t+1}) $ 은 다음 상태에서 얻을 수 있는 행동 가치 함수들 중에서 가장 큰 값을 의미한다.

 

위 수식을 통해 반복적으로 $ Q(s_{t}, a_{t}) $ 를 업데이트 할 경우 $ Q(s_{t}, a_{t}) $ 가 최적의 행동 가치 함수에 수렴한다는 사실이 수학적으로 증명되었다.

 

최적의 값 Q를 구하는 알고리즘(Q-Learning)은 위 수식을 최적의 상태값을 구할 때 까지 반복적으로 업데이트 해주면된다.

 

상태와 행동에 대한 Q-Table을 만들고 이 테이블을 지속적으로 업데이트 하는 방식을 사용한다.

728x90

'알고리즘' 카테고리의 다른 글

Discrete Action Space & Continuous Action Space  (0) 2024.06.26
On-Policy & Off-Policy  (0) 2024.06.26
Grid-World  (0) 2024.06.24
MRP(Markov Reward Process) & MDP(Markov Decision Process)  (0) 2024.06.24
강화학습 알고리즘 기초개요  (0) 2024.06.24