본문 바로가기

Programming Project/cs285 (cs294-112)

CS 285 강의 노트 Lecture 4 (at UC Berkeley) (also cs294-112)


투명한 기부를 하고싶다면 이 링크로 와보세요! 🥰 (클릭!)

바이낸스(₿) 수수료 평생 20% 할인받는 링크로 가입하기! 🔥 (클릭!)

Let's get started!

 

anatomy : 해부학

목차이다.

 

이전 강의(Lecture 2)에서 배운 내용이다.

 

Policy는 조건부 확률 분포이며 일반적으로 state가 주어지면 action이 리턴된다.

파라미터화 되어있으며 이걸 학습시키는게 RL의 목적이다.

 

 

 

Imitation learning

 

저번 강의때 배운 내용.

 

어떤 action이 더 나은지 결정하기 위해서 reward function을 도입했었다.

 

state와 action을 주면 reward를 리턴해준다.

어떤 action이 나은지 평가해주는 역할을 하며, greedy하게 결정하면 된다.

 

마르코프 체인 모델은 state랑 Trainsition operator(state A에서 state B로 가는 확률) 을 가지고 있다.

operator인 이유는

Discrete space 에서 T는 행렬이고 확률의 vector에 대해서 operator처럼 행동하기 때문.

p는 state distribution이며, 0보다 큰 값을 가짐.

 

여긴 reinforcement learning을 적용할 수는 없다.

 

 

마르코프decision process로 오게되면 적용이 가능하다.

 

우선 위 피피티의 수식을 잘 읽어보자.

우리는 Action랑 reward라는 개념을 추가할것이다.

 

그렇게 되면 그래프에 action node가 추가된다.

또한 transition operator가 있는데 이것은 이제 tensor 가 된다. precious state와 previous action에 대한 정보를 받아들여 state를 리턴하기 때문이다.

 

그렇게 되면 $\mu _{t+1,i}$ 는 오른쪽의 시그마의 합과 같게 된다.

(다시말해 t+1때 i에 있을 확률)

 

리워드 함수는 이 MDP에서 어떤 action을 하는 것에 대해 얼마나 좋은지에 대한 평가를 준다.

 

emission : 배출 , stochastic : 확률(론)적인

(화살표는 ~~로 부터 만들어졌다는 의존관계를 나타낸다고 보아도 된다)

Markov decision process에 observation일반화 하여 추가한 partially observed Markov decision process

 

지금까지는observation이라는 개념이 없었지만 이제는 추가되었다.

그리고 emission probability e를 추가한다.

 

o는 이전에 배운 observation이며, e는 상태가 주어졌을 때 어떻게 보게 될지에 대한 확률 p(o_t | s_t) 이다.

 

 

목적은 보상을 최대로 하는 policy(파이)를 표현할 수 있는 weight를 찾는 것이다.

 

우선 어떤 state에서 어떻게 act해야 하는지 알고있는 명쾌한 $\pi _{\theta}(a|s)$가 있다고 생각 해 보자.

 

우리의 목표는 좋은 모델이 될 수 있는 세타를 배우는 것이다

 

$p_{\theta}$ 의 경우 정책 세타가 있을 경우에 우리가 이전 모든 경로(궤적)을 볼 수 있었을 joint probility 에 대해 계산한 확률이다.

이는 p(시작 state) * 모든 곱 ($\pi _{\theta}(a_{t}|o_{t})$ * p(s_t+1|s_t,a_t)) 가 된다.

 

T의 경우 무한할 수도 있고 유한할 수도 있는데 T가 유한하다고 놓고 일단은 진행 해 보자.

 

경로들은 저렇게 주구절절 쓰기 힘드니까 앞으로 tau($\ tau$) 기호로 표시 할 것이다.

 

세타*은 가능한 가장 최고의 파라미터라고 할 때, 위의 모든 경로에 대한 리워드의 합인데, state와 action은 확률적이기 때문에 Expectation을 취해주어야 한다. 

저 식은 다시말해서, 정책이 $\pi _{\theta}$일때 나올 수 있는 타우들에 대해서, 그 모든 기대값을 (확률을 곱한것을) 해당 경로에 대한 리워드로 합해주면 된다는 뜻입니다...

 

 

이 분포에 대해서 할 수 있는 관찰은, 우리가 MDP (markov decision process)로 부터 얻어내지 않았음에도 불구하고 이 policy를 자세히 들여다보면 실제로 markov chain이 보인다는 것이다.

 

 

action 과 state pair을 가지고 생각 해 본다면, 우리는 마르코프 체인 모델의 형식으로 표현할 수 있게 된다.

 

이제 유한한 케이스 , 무한한 케이스에 대해 살펴보자.

그에 앞서, state-action marginal에 대해 소개한다.

 

맨 윗줄이 이전에 가지고 있던 목적 식이고 이제 사실 이 식을 action을 받아온 후에, sum 안으로 넣어도 된다. (tau를 푼것)

 

p_세타(s_t,a_t) 를 state-action marginal이라고 하자. 이것은 시간 t에 대한 state-action의 간격임.

당연히 이건 한번에 얻어지는건 아니고, t-1까지의 모든 확률이 계산되고 난 후에 s_t가 나오고 그때 a_t까지 할 확률적인 부분을 모두 고려했을 때 결론적으로 확률이 계산되게 됨.

 

무한.

 

만약 T가 무한이 되면 어떻게 될까?

오른쪽 아래의 state-action transition operator을 통해서 next state, action으로 간다고 생각하면 operator T를 무한히 적용시켜주면 될 일이다. converge될까? 캐바캐다. 다만 일반적으로 결국에는 특정 분포에 수렴하게 될 것이다.

 

뮤는 state , action pair이다.

 

= [ p(s1,a1) ]

   [ p(s2,a2) ] 

   [ p(s3,a3) ]

        ....

   [ p(sm,am) ]

 

컨셉적인 얘긴데, 강화학습에서는 우리가 다루는 목적 함수들은 expection에 대해 항상 고려한다.

 

어떤 특정 경로(궤적)에 신경 쓰는게 아니라 우리가 모든 경로를 average했을 때 얻어지는 reward의 기댓값에 대해 고민한다.

 

우리가 도로에 있으면 +1 도로 밖이면 -1이라고 하자.

r(x)는 끊어져 있다. (연속적이지 않은 함수이다)

 

 

파이_세타(a=fall) = theta ( fall이라는 액션을 취할 확률을 theta라고 하자. 우 변의 큰 세타는 파라미터가 아니다... 노테이션을 왜 이런식으로 했을까...?)

 

Exp( ) 는 (theta) * -1 + (1-theta) * 1 이 되기 때문에 세타 안에서 smooth 하다

 

 

 

 

 

 

이제 알고리즘 설명.

reinforcement 알고리즘의 경우 우선 (오렌지) sample을 만드는 과정이 있다. ( policy를 토대로 agent가 행동 )

(초록) model을 fit 하는 것. 이것은 sample들에 대한 평가, return값을 추정하는 것, reward 계산 등의 역할을 한다.

(파랑) policy를 improve 하는 과정이다.

 

induce : 설득하다, 유도하다

예시.

trial and error 학습을 통해 저 까만 선들을 얻어냈다고 해 보자. 우리는 reward function으로 모든 궤적에 대해서

평가하고 전부 합칠 것이다. 이것은 궤적에 대한 total return을 줄 것이다.

이제 policy가 경로를 통해 분포를 유도해낼 것이다. 만약 reward가 안좋으면 확률을 낮추고 좋으면 확률을 높여 줄 것이다.

이제 저 초록 박스에 해당하는 식 J를 보면, 모든 리워드를 더해서 평균하자 라고 말 한다.

이제 policy를 위의 식으로 업데이트 한다 (추후 다룸)

 

Model based learning 

state , action 이 들어왔을 때, 다음 state를 출력으로 가지는 f를 학습한다.

리워드를 최대로 하는 정책 파이세타를 학습시키기 위해서 f와 r을 통해서 백프랍을 한다.

 

자 그럼 이부분중에 어떤 부분이 비싼 부분이고 (오래걸리거나, 노동력이 들거나 등) 어떤 부분이 싼 부분일까?

 

진짜 로봇에 대한 학습이라면 주황색 박스 부분이 엄청 비싸지겠지만

시뮬레이션을 돌리는 부분이라면 굉장히 싸진다.

 

(초록) 리워드를 계산하는것은 쉽고 빠르게 구현가능하지만, 다음 state를 예측하는 모델 f는 학습하기도 힘들고 학습도 오래 걸린다.

 

model f 나 리워드를 통해 파이_세타 를 학습하는 과정은 알고리즘에 따라 비쌀수도 아닐수도 있다.

 

대충 위에 글 리뷰

 

저기 빈 줄
위 슬라이드에 빈 줄에 있던 내용이다. 강의 피피티에 빠져있어서 영상 캡쳐

 

이제 RL 전반에 걸친 expection에 대해 다뤄 볼 것.

앞으로 RL 방법을 다룰 때 흥미로운 테크닉들도 보게 된다.

 

우리가 다뤄야할 제일 기본적인 기대값은 기대되는 리워드, 이다.

 

저 E_s1~p(s1) ... 에대한 식은 기댓값을 쭉 풀어서 표현한 것이다.

 

자 이제 만약 저 안쪽 파트(r(s1,a1) + E_s2~p(s2|s1,a1) [ ..... ) 를 이미 안다면 어떨까?

 

해당 되는 식을 Q(s1,a1)으로 바꿔보자.

 

만약 Q 함수가 무엇인지 안다면, RL object에서 학습 객체는 drastically simplify 될 것이다.

 

그렇다면 우리는 Q가 증가하는 방향으로 파이의 결과를 바꿔주면 좋은 정책을 얻을 수 있지 않을까?

(다만 여기서 Q는 파이가 바뀌면 변하는 함수라서, 다른말로는 파이 자체를 포함한 것을 예측하는 함수라서) 이것만으론 충분하지 않은데 나중에 트릭으로 해결)

 

 

자 여튼 이 function Q 함수(quality)는 이 수업에서 다양하게 활용된다.

Q함수는 Q^파이라고도 표현되는데, 얘는 파이에 연관된 함수라서 그렇고, 이걸 표시하기 위해 파이를 올린다.

함수의 정의는 (s_t , a_t)에서 얻을 수 있는 total reward이다.

 

 

value function은 어떤 상태 s일때 얻을 수 있는 total reward이다.

 

역시 파이에 연관되어 있어서 윗첨자로 파이를 붙인다.

이는 Q function으로 표현하면 간단해진다.

 

RL의 목표는 V^파이(s1)을 maximize하는게 될 것이다 결국.

 

Q 함수랑 value 함수를 쓸수있는 예시.

Idea1: Q를 안다면 policy 향상 가능.

 

Idea2: 좋은 행동 a의 확률 증가하기 위한 gradient 계산

 

이제 이 수업에서 배우는 reinforcement algorithm 에 대해 좀 더 알아보자.

 

high level 에서 보면 알고리즘들은 이런 basic three parts를 가지고 있다.

그치만 그 세 부분을 다르게 구성하는 다양한 방법들이 있다.

 

synthetic : 합성한, 인조의 / 종합적인

 

RL 알고리즘 종류

Policy gradient : 위의 목적함수를 직접적으로 미분.

Value-based : 정확한 policy없이 optimal한 policy의 value function이나 Q-function을 측정한다. 파이_세타(a|s) 를 통하지 않고 그냥 v (total reward)랑 q(expected reward)만 계산한다.

Actor-critic : 기본적으로 위의 두가지를 같이 한다. value function이나 Q-function을 추정하고, policy gradients 와 비슷한 방법으로 policy를 향상시킨다.

Model-based RL : transition model을 추정한다. P( s' | s,a ) 그리고 이 모델을 다양한 방법으로 사용한다.

 - planning을 위해 모델 사용 (no explicit policy)

 - policy 향상을 위해 사용

 - something else

 

model fitting step(초록)을 포함하는 model based algorithm은 p(s_t+1|s_t,a_t)를 학습한다.

 

이것은 다양한 방법으로 학습되고 표현될 수 있다.

 

그리고 파랑 박스(policy를 개선시키는)에는 다양한 옵션들이 있다.

 

1. plan하기 위해서만 모델 사용 (no policy)

 - trajectory 최적화 / 최적 제어 (우선적으로 continuous spaces) - action을 최적화하기 위한 backpropagation이 필수적으로 필요

 - discrete action space에서 discrete planning - 예를 들어 몬테카를로 서치

2. policy에 backpropagete gradient 흘려넣기

 - 동작하기 위해 몇가지 트릭 필요.

3. Value function을 학습하기 위해 모델 사용

 - DP

 - 모델-free learner을 위해 시뮬레이션 제작(? 머지)

 

 

Value function based algorithms

 

초록박스는 V or Q 를 fit 한다.

blue box에서,  new policy는 그저 파이(s) = argmax_a Q(s,a) 이다.

 

 

Direct policy gradients methods

 

파란 박스는 gradient ascent 이다. 리워드 기댓값 목적 함수를 높이기 위해 단 한번의 gradient ascent를 수행한다.

초록 박스는 리워드의 총 합이다.

 

 

 

Actor-critic algorithm은 짬뽕이다.

 

fit V or Q 하기 위해 backpropagation하는거.

 

Tradeoffs

 

왜이렇게 다양한 RL 알고리즘이 있을까?

 

샘플 효율성 

안정성 , 사용이 쉬운가?

 

다른 추정 방법.

 

세팅에 따라서 policy가 힘들때도, model이 힘들때도 있다.

 

 

sample effiency => 좋은 정책을 위해 얼마나 많은 sample 이 필요한가?

 

effiency를 말할때 off policy 알고리즘인지 아닌지를 많이 본다.

off policy : 이전 policy로부터 만들어진 sample또한 다음에 사용 가능한 것.

on policy : 매번 policy가 바뀌면 새로운 샘플을 생성해야 한다.

 

 

왜 덜 효과적인 알고리즘을 쓸까?

더 efficient 한 방법이 항상 더 좋은것은 아니다. simulation 비용이 많이 들지 않는다면, less efficient하더라도 더 나은 성능을 위해 많은 sample을 얻어서 학습하는 것이 효율적일 수 있다.

 

- 수렴하는가?

- 어디로 수렴하는가?

- 항상 수렴하는가?

 

supervised learning에서는 gradient descent를 사용하기 때문에 대개 수렴 하지만 RL은 대체로 gradient descent를 사용하지 않는다.

Q- learning : fixed point iteration이다. converge가 보장되지 않음.

Model based RL : 모델이 리워드에 최적화되는것이 아니다. 그저 다음 state를 예측하기 위해 학습. 더 나은 model이 더 나은 policy를 만들어주는지 모른다.

Policy gradient : local optima에 수렴 가능.

mitigate : 완화시키다 / delineat : 기술하다

assumption 1 : observation or state 에 따라 고려할 것 많음.

 

assumption 2 : episodic learning 

- learning process가 명백하개 기술된 프로세스로 나뉘어 잇는 것

 

assumption 3 : 연속성 , 미분가능성