날이갈수록 기초가 없고 아는게 없다는걸 느낌ㅋ

http://cs229.stanford.edu/materials.html

앤드류 응 선생님 자료 참고


Linear Regression 

y = ΘT * x + e (e는 Gaussian distribution)

P(y | x ; Θ)  

Given은 random variable, parameter는 고정된 값.

이 분포는 parameter와 given x가 있을 때 y의 분포를 나타내며, noise가 Gaussian 인 경우 당연히 Gaussian function 형태로 나타난다.

Likelihood란? 이 분포의 식(y, x, Θ 에 관한)을 Θ의 함수로 나타내고 싶을 때 쓰는 함수. 

결국 동일한 분포이나, Θ에 대한 함수로 나타내서 최적의 parameter를 찾는 등에 사용됨.


Bayesian Linear Regression

P(y | x , Θ)

x와 Θ 둘 다 random variable (확률로서 존재한다)

P(Θ) ~ N( ... ) : prior distribution을 정의하고 시작

새로운 input x* 와 output y* 에 대한 posterior 식은 다음과 같다

P(y* | x*, S)    : S는 모든 training data x, y를 의미

복잡한 전개를 통하고 나면 이 posterior 분포는 Gaussian 분포를 따름을 증명할 수 있다.


Classical linear regression (parameter가 고정된) 과는 다르게, 

Confidence region이 (data가 많은) 가운데부분이 좁고 바깥쪽이 두꺼운 것을 볼 수 있다.

-> 이것은 추정한 parameter Θ에도 오차가 존재할 수도 있다는 것이 반영된 결과이다.


Classical linear regression은 training data로부터 parameter를 fix된 값으로 추정해버리기 때문에, parameter의 신뢰도를 추정할 수 없다.



Gaussian Process


함수의 확률적 분포.

정의역(domain)의 dimension이 유한한 경우, 함수의 확률적 분포는 multivariate Gaussian으로 나타낼 수 있다. (Gaussian prior를 갖을 때)

Infinite domain에서의 함수의 확률 분포를 나타낸다면? Gaussian Process

Stochastic process의 random variable sub-collection이 multivariate Gaussian 분포를 가지는 process를 Gaussian process로 정의한다.



Covariance Matrix K는 kernel function k(·, ·)으로 정의된다. K는 positive semidefinete (항상? 더읽어봐야할듯)


kernel을 Gaussian kernel을 사용하면? 

입력 x_i, x_j의 거리가 가까울 수록 높은 covariance를 갖는다. 반대로 x_i, x_j의 거리가 멀 수록 낮은 covariance를 갖는다.


kernel을 design함으로써 Gaussian process의 특성을 조절해줄 수 있다.


Gaussian Process Regression


앞서 말했듯이 Gaussian process는 함수의 확률적 분포를 modeling할 수 있게 해준다.

'함수의 확률적 분포'가 Bayesian regression의 framework에서 어떻게 적용되는 지 살펴보자.


Training set S는 x_i, y_i (i=1, .,., m) 이고 각 sample은 알려지지않은 분포로부터 i.i.d. 관계를 갖는다.



e는 i.i.d. Gaussian noise, 함수 f 는 Gaussian process prior를 갖는다고 가정 (Bayesian regression에서 Θ를 그렇게 가정했듯이)


함수 f의 Gaussian process 특성을 이용하면 다음과 같은 결과를 얻는다. 

(Gaussian process의 random variable의 sub-collection은 multivariate Gaussian 분포이다)

Annotation *은 새로운 test sample을 의미.


최종적으로 구하고자하는 y* | y, X, X*  는 다음과 같이 나타난다.

X : training input

y : training output

X* : testing input

y* : testing output (regression 결과)

(강의노트가 갑임...)


최종적으로 Gaussian 분포로 유도하는 방법은 Bayesian regression과 유사하다. 


1. Regression 결과 또한 parameter의 불확실성을 반영하는 것을 볼 수있다. 

2. non-parametric

3. Regression framework에 kernel을 도입.

4. 컨셉은 어렵지만 간단하고(?) straightforward한 선형 대수학으로 전개가 가능하다.











Posted by 헬벨