● MDP 를 알때
첫번째로 우리가 MDP 를 알때를 가정해 봅시다. 우리는 미래가 어떤 과정을 거쳐 정해지는지 알고있으니 상상 속에서 시뮬레이션을 하여 좋은 계획을 세어야 합니다. 이때 우리는 테이블 기반 방법론 이라는것을 사용합니다.
테이블 기반 방법론 : 모든 상태 s 혹은 상태와 액션의 페어(s,a) 에 대한 테이블을 만들어서 값을 기록해 놓고, 그 값을 조금씩 업데이트 하는 방식을 의미합니다.
반복적 정책 평가 : 테이블의 값들을 초기화한후, 벨만 기대 방정식을 반복적으로 사용하여 테이블에 적어놓은 값을 조금씩 업데이트해 나가는 방법론 입니다.
이제 이 반복적 정책 평가를 값이 수렴할때 까지 계속 반복시킵니다. 그 결과는 바로 해당 상태의 실제 밸류가 됩니다.
최고의 정책찾기
방금전에 반복적 정책 찾기는 값이 수렴할때 까지 무한정 돌린다는 것이였다면, 또 다른 정책 평가는 그리디 정책이 있습니다. 이 정책은 현재의 상태에서의 가치와 다음 상태에서의 가치를 비교하여 최선인 상태의 곳으로 이동합니다.
정책 이터레이션
정책 이터레이션은 총 2단계로 이루어져 있습니다.
1. 정책 평가 : 반복적 정책 평가
2. 정책 개선 : 반복적 정책 생성
1. 정책 평가 : * 처음에는 정책 π 를 임의의 정책으로 초기화
* 고정된 π 에 대한 각 상태의 밸류 구하기
2. 정책 개선 : * 새로운 정책 π* 생성 (그리디 정책)
* π* > π 성립 -> 정책 개선 발생
이렇게 하여 수렴하는 곳이 바로 최적 정책 과 최적 가치가 됩니다.
● MDP 를 모를때
두번째로 우리가 MDP 를 모를때를 가정해 봅시다. 전에 이런 상황을 모델 프리 상황이라 하였었는데, 이 방법은 기존의 MDP 를 알때의 상황보다 더 쉬울수 있습니다. 미리 환경에 대해 알고 있으면 그것을 잘이용해야 하기 때문에 어렵고 복잡하지만, 아는것이 없는 상황에서는 간단한 방법으로 접근할수 있으니까요.
몬테카를로 라는 개념은 그저 직접 측정하기 어려운 통계랑이 있을때 여러번 샘플링하여 그 값을 가늠하는 기법의 이름으로 대부분 몬테카를로가 들어갑니다. MCTS, MCMC 처럼 말이죠.
가치 함수의 정의가 리턴의 기댓값이었을때, 리턴을 여러번 계산하여 그 평균을 내고, 그 환경에 에이전트를 가져다 놓아 학습시키고, 에피소드가 끝났을때 리턴들을 기록해 놓았다가 구한 평균을 내는 반복되는 작업을 하게되는데 이 작업을 진행할수록 대수의 법칙에 의하여 상태의 밸류 예측치는 점점 정확해집니다
조금씩 업데이트 하는 버전 : 처음의 버전은 에피소드가 다끝난후 리턴의 평균을 내어 학습하는 방식이었다면, 조금씩 업데이트 하는 버전은 에피소드가 끝날때마다 테이블의 값을 조금씩 업데이트 하는 버전입니다. 이 버전을 사용하게 되면 에피소드가 다 끝난후 테이블을 업데이트 시키는것이 아닌 하나의 에피소드마다 테이블의 값을 업데이트 해줄수 있습니다.
Temporal Difference 학습 : 몬테카를로(MC)는 업데이트를 하려면 에피소드가 끝날때까지 기다려야 합니다. 그래서 종료하는 MDP 에서만 사용할수있는데, 실제세계에서는 종료조건이 따로 없는 MDP도 많습니다.
이때 Temporal Difference(TD) 학습 방법론은 추측을 추측으로 업데이트 하는 방안입니다.
벨만 기대 방정식 처럼 rt+1 +
최고의 정책찾기
MDP 를 알때의 정책 함수를 구하는 방법론중 정책 이터레이션은, 임의의 정책에서 시작하여 정책을 평가하여 밸류를 계산하고, 계산한 밸류에 대해 그리디 정책을 만드는 과정을 반복하는 방법이였습니다.
하지만 모델 - 프리 방식에서는 벨만 기대방정식 2단계에서의 MDP 를 알아야지만 채워지는 R, P 가 있습니다.
즉 액션에 따른 보상, 상태의 확률분포를 알고 있어야지만 벨만 기대 방정식을 통해 현재 상태를 업데이트 할수 있습니다. 또한 그리디 정책같은 경우 현재상태에서 각 액션을 선택했을때 다음 상태가 어디가 될지 알수 없습니다.
몬테 카를로 컨트롤 해결방법 : 1. 평가자리에 MC
2. V 대신 Q
3. greedy 대신 ε-greedy
1. 평가자리에 MC : MCTS or MCMC
2. V 대신 Q : v(s) 대신에 q(s, a) 를 이용하여 정책 개선 단계에서 그리디 정책 생성
상태 s 에서 각 액션을 선택하면 어느 상태로 도달하는지는 모르겠지만, 여튼 각 액션을 선택하는 밸류는 알겠으니, 밸류가 제일 높은 액션을 선택합니다.
3. greedy 대신ε-greedy : 탐색의 정도를 알맞게 맞춰주는 방법
ε이라는 작은 확률만큼 랜덤하게 액션을 선택하고, 1-ε 이라는 나머지 확률은 원래처럼 그리디 액션을 선택합니다.
TD 컨트롤 해결방법 : 1. SARSA
2. Q- learning
OFF-Policy 와 On-Policy
타깃정책 : 강화하고자 하는 목표가 되는 정책 (학습의 대상, 업데이트 됨에 따라 강화되는 정책)
행동정책 : 실제로 환경과 상호 작용하며 경험을 쌓고있는 정책
OFF-Policy : 타깃 정책과 행동 정책이 다른 경우(간접 경험)
On-Policy : 타깃 정책과 행동 정책이 같은 경우(직접 경험)
특징 : OFF - Policy 에서는 예로들어서 행동 정책이 - 인경우 타깃 정책이 다르게 적용할수 있지만 On - Policy 에서는 행동정책이 - 이든 + 이든 타깃 정책은 행동정책과 동일하게 행동한다
OFF-Policy 장점 : 1. 과거의 경험을 재사용할 수 있다.
2. 사람의 데이터로부터 학습할 수 있다.
3. 일대다, 다대일 학습이 가능하다
1. 과거의 경험을 재사용할 수 있다.
π0 을 업데이트 하기 위해서는 100개의 경험을 π0 을 π1 로 업데이트 했다면 π1 에서 π2 로 업데이트 하기 위해서는 다시 100개의 경험이 필요합니다. 그러나 OFF-Policy 를 사용하게 된다면 타깃 정책과 행동 정책이 달라도 되기 때문에
π0 가 형험한 샘플들을 π1 의 업데이트에 그대로 재사용 할수 있습니다.
2. 사람의 데이터로부터 학습할 수 있다.
행동 정책은 그저 환경과 상호작용하며 겅험을 쌓을수만 있다면 그 무엇이든 상관없습니다. 이 말인즉슨 다른 행동 정책의 종류에는 제약이 없습니다. 바둑을 예로 프로 바둑 기사가 뒀던 기보를 활용할수 있습니다.
이것을 통해 학습 초기의 무의미한 행동을 하는 단계를 빨리 지나 학습 속도를 끌어올릴 수 있습니다.
3. 일대다, 다대일 학습이 가능하다
off- policy 학습을 이용하면 여러개의 정책중 단 1개의 정책만 경험을 쌓게 두고, 생성된 데이터를 이용해 동시에 여러 개의 정책을 학습시킬수 있습니다. 반대로 동시에 여러 개의 정책이 겪은 데이터를 모아서 단 1개의 정책을 업데이트 할수도 있죠. 이처럼 행동 정책이 타깃 정책과 달라도 됩니다.
1. SARSA : On- policy 학습으로써 이름의 유래처럼 상태 s 에서 액션 a 를 선택하면 보상 r 을 받고 상태 st+ 1에 도착하고 상태 st+ 1 에서 다음 액션 at+ 1을 선택합니다. TD 에서 V 가 Q 로 바뀐것 말고는 똑같습니다.
2. Q- learning : Off- policy 학습으로써 SARSA + 벨만 최적 방정식
여기에서 SARSA 가 on-policy 고 Q-learning 인 이유는 Eπ 와 Es* 에 있습니다
Eπ 는 정책함수 π 를 따라가는 경로에 대해서 기댓값을 취하는 방법이고
Es* 는 정책함수 π 와 관계없이 어떠한 정책을 사용해도 상관없다는 의미입니다.
여기서 Q-learning 만 Es* 가 되는 이유는 벨만 최적 방정식이 환경에 의존적이기 때문입니다.
따라서 환경을 충분히 잘 탐험한다면 최적 정책을 찾을수 있고, 여기서 환경을 탐험하는데 사용되는 정책은 상관없습니다
SARSA | Q-learning | |
행동 정책 | Q 에 대해 ε-greedy | Q 에 대해 ε-greedy |
타깃 정책 | Q 에 대해 ε-greedy | Q 에 대해 greedy |
reference :
https://www.slideshare.net/DongMinLee32/part-2-91522217
강화학습 알고리즘의 흐름도 Part 2
안녕하세요. 강화학습 알고리즘의 흐름도를 수식 중점으로 만들어봤습니다. Part 1은 MDP, 정책, 가치함수, 다이나믹 프로그래밍으로 Part 2에서는 다이나믹 프로그래밍의 한계, 강화학습의 탄생,
www.slideshare.net
https://jyoondev.tistory.com/152
강화학습 - (19) SARSA
강화학습 SARSA SARSA란 일반화된 정책반복 (Generalized Policy Iteration)과 시간차 학습(TD)가 접목된 알고리즘이다. 일반화된 정책반복 일반화된 정책반복이란, 정책향상을 하기 위해서 굳이 정책 평가
jyoondev.tistory.com
'AI 공부 > RL 끄적' 카테고리의 다른 글
강화학습 겉햙기(6)[에이전트] (0) | 2021.05.25 |
---|---|
강화학습 겉햙기(5)[Deep RL] (0) | 2021.05.25 |
강화학습 겉햙기(3)[벨만 방정식] (0) | 2021.05.20 |
강화학습 겉햙기(2)[마르코프 결정 프로세스] (0) | 2021.05.19 |
강화학습 겉햙기(1) (0) | 2021.05.19 |