Blog | Tag | Local | Guest | Login | Write |  RSS
Linear Regression
Logistic Regression은 training set으로부터 주어진 vector data를 이용하여 data들의 방향을 찾고 실제 제공하지 않은 

data들을 예측할 수 있는 algorithm이다. 이 algorithm을 구현하는 방법은 다음과 같은 방법이 있다.

1. LMS(Least Mean Square) algorithm
2. The normal equations

예를들어 주식 시장을 예측할 수 있는 algorithm을 구현하려고 하면, 주식 가격을 결정할 수 있는 factor는 여러가지가

있다. 그 factor중에서 기업 영업 실적(x1), 업종의 경기(x2), 우리나라의 경기(x3) 만을 놓고 주식 시장을 예측한다고 하자.

그럼 이 3개의 요인은 다음과 같은 수식으로 표현할 수 있다.


이 수식에서 training set x1, x2, x3가 주어지고 θ0, θ1, θ2, θ3값을 찾는다면 새로운 data값 x1, x2, x3에 대해 h(x)를 찾을

수 있다. 결국 이 값을 이용해 h(x)를 구할 수 있게 되고, 우리가 값을 예측할 수 있게 되는 것이다. (물론 더 많은 factor들과

다른 다양한 이론들이 필요하겠지만...)

결국 여기에 맞는 θ0, θ1, θ2, θ3를 찾는 것이 regression의 목표이다.

위 수식은 간단히 다음과 같이 표현할 수 있다.

( theta, x는 vector, T 는 transpose )
위 식의 vector θ를 찾기 위한 cost function은 다음과 같이 정의한다.


cost function을 가지고 우리가 원하는 값 θ를 찾기 위해서는 J(θ)값을 minimize시키면 된다.

이 알고리즘을 구현하는 방법 3가지중 LMS algorithm에 대해 소개한다.


LMS(Least Mean Square) algorithm

이 방법은 θ를 초기에 예상하는 값으로 설정한 후 이 값이 cost function의 minize값에 따라서 어떻게 변하는지 구하면 된다.

이 θ값을 update하기 위한 rule은 다음과 같다.

eq=\theta_j := \theta_j - \alpha\frac{\delta}{\delta\theta_j}J(\theta)

eq=\frac{\delta}{\delta\theta_j}J(\theta)  이 값은 위의 cost function을 differentiation한 값이다. 이 값을 이용해서 eq=\theta_j 를 update시켜 값을 구한다.

eq=\frac{\delta}{\delta\theta_j}J(\theta)  이 값은 다음과 같다.

eq=\frac{\delta}{\delta\theta_j}J(\theta) = \frac{\delta}{\delta\theta_j}\frac{1}{2}(h_\theta(x) - y)^2 
= (h_\theta(x) - y)x_j

이 값의 유도는 생략한다. 이 값을 위의 update rule에 적용하면 다음과 같다.

eq=\theta_j := \theta_j + \alpha (y^i - h_\theta(x^i) )x^i_j
이 방법을 LMS update rule이라 한다.

이 update rule을 이용해 eq=\theta 값을 찾을 수 있다.

matlab을 이용해 test해 보았다. random하게 200개의 sample을 만들었다. 우선 원래 선은 y=x이고 x는 0부터 20까지 200개의

random data에 gaussian distribution을 이용하여 noise를 추가하였다. gaussian distribution의 mean = 0, variance = 20을

이용하였다.

이를 이용해 regression한 결과는 다음과 같다.

( 그림 1 - test 1 )

( 그림 2 - test 2 )


data를 random하게 생성하였지만 구한 line은 동일하다는 것을 알 수 있다.

나머지 The normal equations 방법은 직접 찾아보길....

다음은 classifier의 고전인 perceptron에 대해서 알아보자.