인공지능/Reinforce_Learning

[PART3] CH01. 함수근사 소개

아네스 2020. 12. 25. 18:38
반응형

함수 근사란?

파라미터Θ를 조정해서 (x,y)페어를 잘 표현하는 함수를 찾고싶다.

 

왜 RL강의에서 "함수 근사" 를 배우는가 ?

크게 2가지로 함수근사를 사용하고 배우게 됨.

1. 파트4 정책 최적화에서 정책함수 π를 표현하기 위해서.

2. 파트5 심층강화학습에서 사용하기 위해서 

 

함수근사 사용 효과가 굉장히 좋음.

데이터로부터 함수 근사를 수행할 수 있음.

선형회귀같은 경우에 데이터가 선형이라는 가정을 하고 시작하기 때문에(함수에 대한 구조 가정)

실제 데이터가 선형이 아니라면 정확도가 떨어진다.

그러나 딥러닝같은 경우에는 이런 가정 없이, 충분히 데이터가 많다면 함수를 근사할 수 있다.

 데이터를 함축적으로 잘 표현하는 좋은 representation을 배울 수있음 (나중에 배워보자)

좋은 representation이란? 딥러닝에서 데이터의 크기가 크거나, 이미지 같은 것이 주어졌을 때 각각의 픽셀은 의미가 없지만 픽셀들이 모여서 이미지의 의미를 얻어 낼 수 있다. 이것이 기존 강화학습의 성능을 높혀준다.

 

단점으로는 모든 함수근사가 단점을 가지는 것은 아니고, optimal한 function approximation개념이 존재하는데

optimal하지 않으면 강화학습이 잘 안될거라고 생각했던 때가 있었는데, Deep Q-learning이 생기게 되면서 함수근사 기법이 optimal하지 않아도 잘 작동한다는 것이 실험적으로 증명됨.

 

 가치기반 강화학습 문제의 풀이 기법

강화학습 문제 MDP를 배웠었고, 풀기위한 방법으로 DP, MC/TD를 배웠음.

각각의 상태가치 함수 V, 행동가치함수 Q를 테이블(혹은 tensor)

테이블의 각각의 V,Q값이 독립적으로 추산된다.

그렇다면 실제 V,Q가 독립적일까 ? 그렇지 않음.

 

V,Q의 값들이 정말 독립적인가 ?

정말 독립적이라면 값에서 패턴을 찾을 수 없었을 것임(-4, -3, -2, -1 ...)

그래서 이런 value function을 close form 함수로 나타낼 수 있음.

만약 Q,V가 Linear하다고 한다면

 

함수 근사 기법을 활용한 가치함수 추산

초록색 데이터를 알고, Linear할 것이라고 가정을 해둔다면 파란색 데이터도 알 수 있지 않겠는가 ?

 

선형이라고 가정하면 a,b를 찾을 수 있지 않겠나.

 

선형회귀 분석

독립변수 x와 종속변수 y를 잘 매칭할 수 있게끔 해주는 w,b를 찾는 것.

 

L2 norm 관점에서 최적인 파라미터는 ?

예측치 Y hat과 실제값 y간의 거리로 파라미터 최적성을 평가.

Log likelyhood라는 방법도 존재함.

 

"Addictive losses" + "I.I.D" 가정

오차함수값을 최소화 시키는 w,b가 존재한다면 w*, b*가 된다.

가정 1. 각각의 샘플이 i.i.d를 따른다.

i.i.d? identical, independently distributed 되었다.

indentical : 모든 값들은 같은 함수에서 샘플이 됐다고 생각함

independently distributed : 샘플링 될때 각각의 값들은 서로 연관이 없다.

 

그럼 이 파라미터 w*,b*를 어떻게 찾을 수 있을까 ?

아까는 x의 차원이 1이라고 가정했지만 좀더 일반화 하기 위해서 p개의 값으로 구성 되어있다고 생각.

X : 데이터 matrix

 

최소 자승법을 활용한 선형회귀 모델의 최적 파라미터

이 경우 closed form으로 계산할 수 있다. 

항상 가능한건 아님.

X or n, p가 크다면 역행렬 계산이 쉽지 않고.

데이터 매트릭스가 안정도 조건을 가져야 inverse 계산을 할 때 numerically state계산을 할 수 있음.

직접해를 구하는 방법이 존재해도 다른방법을 사용해야 한다.

 

함수에서 최소값 찾기

극값이 무한히 존재할 수 도있음. 등등... 현실적으로 찾기 힘들 수 있음.

 

 

미분과 반복과정으로 답을 찾아보자.

함수값을 minimize하고싶으니, gradient와 반대방향으로 업데이트를 하면 최소값으로 가지 않겠나.

 

Gradient Descent

미분값에 반대방향으로 업데이트 해가면서 극점을 찾음.

 

마무리

선형회귀식 : y = wx+b

직접해도 구할 수 있지만 복잡도가 높아질수록 역행렬을 구하기 힘들어지는 계산문제가 있어서 다른 알고리즘을 통해서 구해야한다.

반응형