일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- skt membership
- 포토샵
- 백준
- 소수
- Gap
- spring
- stl
- grid
- Javascript
- c
- 수학
- pandas
- Prefix Sums
- Flexbox
- Codility
- 통신사할인
- dataframe
- SK바이오사이언스
- Photoshop
- 에라토스테네스의 체
- 상태
- c++
- 알고리즘
- Design Pattern
- series
- align-items
- margin
- 강화학습
- CSS
- 확률
- Today
- Total
sliver__
MDP / 벨만방정식 본문
안녕하세요~
디벨로퍼입니다~~

도서는
파이썬과 케라스로 배우는 강화학습, 2020 위키북스
를 참고하였어요.
****************************************************************************************************************
파이썬과 케라스로 배우는 강화학습(위키북스 데이터 사이언스 시리즈 4) | 이웅원 | 위키북스 - 교보문고 (kyobobook.co.kr)
파이썬과 케라스로 배우는 강화학습 - 교보문고
내 손으로 직접 구현하는 게임 인공지능 | ★ 이 책에서 다루는 내용 ★◎ 강화학습의 배경과 개념◎ 강화학습의 기초 이론: MDP, 벨만 방정식, 다이내믹 프로그래밍◎ 고전 강화학습 알고리즘:
www.kyobobook.co.kr
구매하실 분이 계시면 위 링크 참조해주세요*************************************************************************************************************
이번에는 MDP의 구성 요소를 공부해보겠습니다.
상태, 행동, 보상함수, 상태 변환 확률, 할인율
위 다섯가지로 구성되어 있습니다.
[상태]
S(State)는 에이전트가 관찰 가능한 상태의 집합입니다.
에이전트가 학습을 하기 위해서는 사용자가 상태를 정의 해줘야 합니다.
상태 공간이 존재하며 시간 t에서의 상태 s는 \(S_t = s\) 로 표기합니다
[행동]
에이전트가 상태 St에서 할 수 있는 가능한 행동의 집합은 A입니다
시간 t에서의 집합 A에서 선택항 행동은 \(A_t\) 입니다.
[보상함수]
보상은 에이전트가 학습할 수 있는 유일한 정보입니다.
시간 t에서 상태가 St=s, 행동은 At = a 일 때 에이전트가 받을 보상은 아래와 같습니다.
\(r(s,a)\) = \(E[R_{t+1}\) | \(S_t=s, A_t=t]\)
E는 기댓값으로 평균 값을 의미합니다.
특이점은 보상함에서 행동은 t 시간에 이루어지지만
보상은 t+1 시간에 받습니다.
이유는 에이전트가 알고있는 값이 아니라 환경에서 알려주는 값이기 때문입니다.
[상태변환확률]
에이전트가 어떤 상태에서 어떤 행동을 취한다면 상태는 변합니다.
하지만 어떠한 상황에 의하여 원하는 상태에 도달하지 못할 수 있습니다.
이를 수치적으로 표현한 것이 상태 변환 확률입니다.
\(P_a^{ss'}\) = \(P[S_{t+1}= s\) | \(S_t=s, A_t=a\)]
[할인율]
미래의 보상을 현재의 가치로 표현합니다.
\(\gamma\)= [0,1]
시간 k가 지난 후의 보상을 \(R_{t+k}\)라 하면
\(\gamma^{k-1}\)\(R_{t+k}\)로 환산됩니다.
[정책]
정책은 모든 상태에서 에이전트가 할 행동입니다.
\(\pi(a|s)\) = \(P\)[\(A_t=a\) | \(S_t=s\)]
이 중 가장 좋은 정책인 최적 정책을 학습해야 합니다.
[가치함수]
에이전트가 현재 상태에서
어떤 행동이 좋은 행동인지 알 수 있는 방법은
앞으로 받을 보상을 고려하는 것입니다.
위의 개념이 가치함수 입니다..
앞으로 받을 보상은 아래와 같습니다.
\(R_{t+1} + R_{t+2} + R_{t+3} ...\)
위와 같이 단순히 더한 다면 3가지 문제가 생깁니다.
1. 시간에 따른 보상 차등이 없습니다.
즉, 현재와 미래에 받는 보상의 값이 같습니다.
2. 100이라는 보상을 1번 받는 것과
20이라는 보상을 5번 받는것을 구분할 수 없습니다.
3. 시간이 무한대라면 발산하므로 같습니다.
위를 구분하기 위해 할인율을 사용합니다.
\(\gamma\)\(R_{t+1}\) +\(\gamma^2\)\(R_{t+2}\)+ \(\gamma^3\)\(R_{t+3}\) + ... + \(\gamma^{k-1}\)\(R_{t+k}\)
위 값을 반환값 \(G_t\)라고 합니다.
**
그리고 유한한 시간동안 에이전트와 환경의 상호작용을 에피소드 라고합니다.
에피소드는 끝낼 수 있는 마지막 상태가 존재합니다.
**
특정 상태의 가치는 반환값에 대한 기댓값으로 판단합니다.
\(v(s)\) = \(E[G_t | S_t=s]\)
\(G_t\) = \(\gamma\)\(R_{t+1}\)+\(\gamma^2\)\(R_{t+2}\)+ \(\gamma^3\)\(R_{t+3}\) + ... 이므로
\(v(s)\) = \(E\)[\(\gamma\)\(R_{t+1}\) +\(\gamma^2\)\(R_{t+2}\) + \(\gamma^3\)\(R_{t+3}\) + ... | \(S_t=s\)]
= \(E\)[\(\gamma\)\(R_{t+1}\) + \(\gamma\)(\(\gamma\)\(R_{t+2}\)+ \(\gamma^2\)\(R_{t+3}\) + ...) | \(S_t=s\)]
= \(E\)[\(R_{t+1}\) + \(\gamma\)\(v(S_{t+1})\) | \(S_t=s\)]
그리고 항상 정책을 고려해야하기 때문에
\(v_\pi(s)\) = \(E_\pi[R_{t+1}\) + \(\gamma\)\(v_\pi(S_{t+1}) | S_t = s]\)
수식으로 나타냅니다.
[큐함수]
큐함수는 어떤 상태에서 어떤 행동에 대해 가치를 알려주는 함수입니다.
\(q_\pi(s,a)\)로 표기하며 상태, 행동이라는 두 가지 변수를 가집니다.
큐함수는 아래의 수식으로 표현합니다.
\(v_\pi(s)\) = \(\Sigma\pi(a|s) q_\pi(s,a)\)
큐함수의 벨만 기대방정식은 아래와 같습니다
\(q_\pi(s,a) = E_\pi[R_{t+1} + \gamma q_\pi(S_{t+1},A_{t+1}) | S_t = s, A_t = a]\)
[벨만방정식]
벨만 기대 방정식은 아래와 같습니다.
\(v_\pi(s)\) = \(E_\pi[R_{t+1}\) + \(\gamma\)\(v_\pi(S_{t+1}) | S_t = s]\)
위 식에서 기대값을 구하려면 어떠한 행동을 할 확률(정책)과
그 행동을 했을 때 어떤 상태로 가게 되는 확률(상태 변환 확률)이 포함되어 있습니다..
따라서 아래와 같이 나타낼 수 있습니다.
\(v_\pi(s)\) = \(\sum_{a \in A} \pi(a|s) (r_{(s,a)} + \gamma \sum_{s` \in S} P_{ss`}^a v_\pi (s`)) \)
벨만 기대 방정식을 이용해 현재의 가치함수를 계속 업데이트하다 보면 참값을 구할 수 있습니다.
참값은 최대로 받을 보상이 아닌 현재의 정책을 따라갔을 경우에
에이전트가 실제로 얻을 보상의 값에 대한 기대 값입니다.
[벨만 최적 방정식]
\(v_\pi(s)\) = \(E_\pi[R_{t+1}\) + \(\gamma\)\(v_\pi(S_{t+1}) | S_t = s]\)
벨만 기대 방정식을 무한히 진행하면 식의 양변이 같아집니다.
그러면 현재 정책 \(\pi\)에 대한 참 가치함수를 구한 것입니다.
이는 최적 가치함수(Optimal Value Function)과는 다릅니다.
최적가치함수는 수많은 정책 중에서
가장 높은 보상으로 얻게 되는 정책을 따랐을 때의 가치함수 입니다.
\(v_*(s) = \underset{\pi}max[v_\pi(s)]\)
최적의 가치함수
\(q_*(s,a) = \underset{\pi}max[q_\pi(s,a)]\)
최적의 큐함수
최적의 큐함수를 찾는다면 최적의 가치함수를 얻을 수 있습니다.
이를 풀기 위해서는 MDP를 사용하여 문제를 풀어야 합니다.
'CS > 강화학습' 카테고리의 다른 글
근사함수 (0) | 2021.10.11 |
---|---|
살사(SARSA) / 큐러닝(Q-Learning) (0) | 2021.10.10 |
다이내믹 프로그래밍 (0) | 2021.10.09 |
강화학습 - 강화학습 문제 (0) | 2021.10.04 |
바닥부터 배우는 강화학습 : 강화학습이란 (1장) (0) | 2021.09.17 |