티스토리 뷰


[Logistic Regression] 굉장히 인기있고, 널리 쓰이는 모델


[Classification and Representation]

1. Classficiation

 - Classification은 binary / multiclass 가 가능한데, 지금은 {0, 1} 로 표현할 수 있는 binary classficiation을 다룸

 - linear regression에 threshold classifier output을 적용하는 예를 생각해보자. 만약 h(x) 가 있을 때, 어떤 값 a를 기준으로 그 이상이면 1 아니면, 0으로 구분하여 classification을 할 수 있다. 하지만, 만약 example data가 추가된다면 linear regression의 h(x)가 변화할 수 있고 이러한 변화는 threshold값을 계속해서 변화시킬 수 있다. 단 하나의 exceptional example로도 전체 결과가 크게 영향받을 수 있다. 따라서, classficiation에 linear regression을 적용하는 것은 좋은 아이디어가 아니다.

 - 또한, binary classification의 결과값은 보통 0, 1의 값을 나타나는데 linear regression의 output range가 모두 1보다 크거나, 0보다 작을 경우 이상할 수 있다. 이러한 값에 feature scaling을 적용하는 것도 좋은 아이디어가 아니다.

 - 따라서 h(x) 값을 0과 1사이로 놓고 classification을 해주는 Logistic Regression에 대해서 배워봄


2. Hypothesis Representation

 - 0 <= h(x) <= 1로 정하는 것을 필요로 하는데, 먼저 h(x) = θ^T x = z 로 하고, g라는 Sigmoid function의 인자로 z를 넣는다고 하자. g(z) = 1/(1+e^(-z))

 - Sigmoid는 정확히 Logistic과 일치하는 말이다. arbitrary하게 사용해도 된다. Sigmoid function의 형태는 전체 output이 0과 1사이로 나타난다. 이러한 형태에서 위 아래 간격을 조정할 수 있는 θ parameter값을 찾아보자.

 - 예를 들어, y가 1이 될 확률이 0.7이라고 하자. 그렇다면 반대로 y가 0이 될 확률은 0.3이 된다. y가 1이 될 확률을 수식으로 표현하면 다음과 같다.

h(x) = P(y=1 | x;θ) 그렇다면, 어떤 일에 대해 일어날 모든 확률의 합은 1이므로 P(y=0|x;θ) + P(y=1|x;θ) = 1이며, P(y=0|x;θ) = 1 - P(y=1|x;θ)로 쓸 수 있다.


3. Decision Boundary

 - h(x) 값이 0.5 이상이면 1, 0.5 이하면 0으로 판단하는데 이 때의 h(x) = g(z)이며, z = θ^T x 이므로, z가 양수일 경우 1, 음수일 경우 0 으로 생각할 수 있다.

 - 데이터 셋을 나누는 경계선을 Decision Boundary라고 하며, Decision Boundary는 data set의 특성이 아니라, parameter의 특성을 나타낸다.

 - 트레이닝 데이터는 fit한 θ값을 찾는 용도이지, 트레이닝 데이터로 전체 decision boundary가 결정되는 것은 아니다.

- non-linear한 경우에도 적용된다. auto-polynominal function의 경우 더 복잡한 decision boundary를 계산해낼 수 있다.



[Logistic Regression Model]

1. Cost function

- Logistic regression에서  J(θ)를 위와 같이 정의하여  Cost(h(x), y) = 1/2(h(x) - y)^2로 생각해보자. 

만약 cost function이 저렇게 제곱된 형태로 나타난다면 왼쪽 하단의 그래프 처럼 많은 local minimum을 가진 non-convex 그래프를 보이는데 이 떄 gradient descent를 통해서 global minimum을 얻는 다는 보장이 없다. 대신 우리는 오른쪽 처럼 convex 형태로 cost function을 만들어서 global minimum을 확정적으로 보장할 수 있도록 변형하고자 한다.

- 그래서 위와 같이 Cost function을 둔다. y = 0, 1에 따라서 서로 다른 꼴이고, 0, 1사이에서 코스트는 항상 0이상이며, 증가함수 혹은 감소함수를 그린다.


2. Simplified Cost Function and Gradient Descent

- 위에서 가정했던 Cost function을 y + (1-y) 형태를 통해 하나의 함수로 표현할 수 있다.

 - Gradient Descent를 통해 최소값을 구할 때, 위의 Gradient Descent 값을 구해서 업데이트 할 수 있는데 이 식은 우리가 linear regression을 풀 때와 동일한 식으로 보인다. 서로 identical 하다고 설명하고 있다. 해당 h(x)값은 Sigmoid function임을 유의

 - θ를 0부터 n까지 for loop을 돌면서 update하여 h(x)에 fit한 parameter값들을 도출해낼 수 있다.

 - linear regression에 적용한 feature scaling을 logistic regression에도 적용할 수 있다.


3. Advanced Optimization

 - Optimization을 위한 알고리즘들이 있다. Conjugate gradient, BFGS, L-BFGS 등이 있는데, 상세는 생략하고 강점, 약점을 짚고 넘어간다.

강점으로는+ learning rate를 설정할 필요없으며, gradient descent보다 거의 빠르다는 점이다. 그러나 복잡한 구조를 가지는 것이 흠이다.

 - 라이브러리로 제공하기에 내부 구조를 모두 이해하지 못해도 사용할 수 있다. 알고리즘을 구현한 스킴에 따라 성능이 좌우될 수 있다.

 - Octave implementation에 대한 비교적 상세한 안내, advanced algorithm을 어떻게 사용하는가?



[Multiclass Classification]

1. Multiclass Classification One-vs-all

 - y가 0, 1인 binary classification 문제와 달리 3개 이상이면, 1~3, 0~2, 1~4 이런식으로 범위를 잡을 수 있다.

 - one-vs-all classification은 하나의 파트를 positive 그리고 나머지를 모두 묶어 negative로 두 분류로 생각하며 linear한 decision boundary를 잡는 것이다.

만약 n개의 class가 있다면 총 n개의 decision boundary가 나온다. 이를 통해서 y = i (하나의 class) 일 때 h(x)값을 구할 수 있다. 그렇다면 h(x)값을 가장 큰 경우의 값이 classification이 잘 되었다고 할 수 있으므로 max h(x) 값을 찾는다.





[Regularization]

[Solving the Problem of Overfitting]

1. The Problem of Overfitting

 - underfit과 overfit, overfit은 high variance라고 부르기도 하는데, 너무 많은 feature가 있어서 아주 해당 set에 잘 맞게 할 수는 있겠지만, generalize하기는 어렵게 되버리는 현상을 의미 

 - 이러한 overfit 을 해결하기 위한 옵션이 다음과 같이 있다

 - Regularization을 general하게 사용할 수 있는 방법에 대해서 고려해보겠다.


2. Cost Function

 - overfit 문제를 해결하기 위해서 cost function에 줄여야 하는 parameter를 추가한 다음 전체의 최소값을 구하는 식으로 penalize 한다.

 - Regularization은 파라미터의 value를 작게 함으로써 hypothesis를 비교적 간단하게 만들어주고, overfitting이 상대적으로 적게 발생하도록 함

 - 이 부분을 generalize 하여 표현하면 다음과 같음

- 만약 여기서 λ(regularization parameter)를 너무 크게 잡아버리면, 전체 θ값이 너무 작아지고 최종적으로는 하나의 horizontal line이 되버릴 수 있음 (under fitting)


3. Regularized Linear Regression

 - Gradient Descent for Linear Regression

 - j에 대해서 묶으면 아래의 식처럼 사용할 수 있는데 1 - ⍺(λ/m) 은 항상 1 이하이다. 이 경우, θ 값을 직접적으로 작게 조절하는 모습을 볼 수 있음


 - Normal equation for Linear Regression

 

- λ에 diagonal matrix(n+1 by n+1)를 곱하여 inverse 전의 값에 더하는 식으로 조정한다.


4. Regularized Logistic Regression

 - linear regression의 gradient descent 와 비슷하게 특정 값을 더함으로써 조정할 수 있음

댓글