Coursera ML class – week03 Logistic Regression, Regularization part I

이 포스트는 Coursera Machine Learning 강의(Andrew Ng 교수)를 요약 정리한 것 입니다. 포스트에 사용된 이미지 중 많은 내용은 동영상 강의 자료의 이미지 캡쳐임을 밝힙니다.

Course Home: Coursera Machine Learning

 

지금까지는 Supervised Learning 중 예측값의 형태가 연속형(continuous)인 선형회귀 모델을 공부했다면, 지금부터는 예측값이 이산형(discrete)일 경우에 사용하는 classification(군집화)에 대하여 알아보도록 하겠다. 앞서, 종양의 크기에 따라 종양이 악성인지(1) 아닌지(0)으로 분류되는 문제들이 classification 에 해당한다.

다른 예로는 Email이 스팸인지(1) 아닌지(0), 온라인 거래가 사기인지(1) 아닌지(0) 등이 있다.

이런 경우에는 y는 0과 1로만 이루어져 있지만, 실제로는 여러 가지로 분류가 가능하다. 우선 두 가지로 분류되는 경우만 다루도록 하겠다.

아래 그래프를 보면 x축은 종양의 크기이고 y축은 악성종양인지 아닌지 0과 1로만 이루어져 있고 실제 종양여부는 빨간색 X로 표시되어 있다.

이 그래프에서 hθ  를 어떻게 구할까? 우선 Linear regression에서 사용했던 가정 hθ(x) = θTx에서부터 시작해 보자. 아래 그래프와 보라색선으로 h를 그려보자. 같이 파란색 일직선을 기준으로 hθ(x) ≥ 0.5 인 경우는 y=1, hθ(x) 〈 0.5 인 경우는 y=0으로 나눌 수 있겠다. 적당히 보라색선이 맞는 것 처럼 보인다.

1

2

하지만 아래그림처럼 아래 빨간색 X가 하나 추가된 곳을 보면 이야기가 달라진다. 보라색 직선이였던 가정치가 파란색 직선으로 바뀌면서 악성종양이 아닌 부분의 길이가 늘어나면서 yes에 가 있는 종양 두 개가 포함되는 것을 볼 수 있다. 이는 잘못된 가정이 되는 것이다.

3

이렇듯 classification을 Linear regression을 사용하는 것은 적절하지 않습니다. 처음에 본 경우에서는 잘 맞는 가정이 되었지만 운이 좋았던 경우였을 뿐 아래처럼 저렇게 되는 경우가 더 많기 때문에 classification에서는 사용하지 않는다.

 

1) Hypothesis repression

classification 문제들을 해결하기 위한 Logistic Regression에 대해 알아보자.

우리는 hθ(x)값이 0부터 1사이 이기를 바란다.. 이것은 y값이 0과 1만을 가지기 때문에 0미만, 1을 초과할 수 없기 때문이다.

4

우리는 이미 hθ(x) = θTx 를 Linear Regression에서 배웠다. 이를 Sigmoid function g(z)안에 대입해보자. Sigmoid function은 아래와 같은 S모양을 한 함수로써 Logistic function은 Sigmoid function의 특수한 케이스 중 하나이다.

5

sigmoid function에 θTx를 대입하면 아래와 같은 식이 도출된다.

6

z축을 기준으로 오른쪽으로는 무한대로 1을 향해 나아가고 왼쪽으로는 마이너스 무한대로 0을 향해 나아간다.

그럼 가정에 대한 결과값을 해석해 보자. 입력값 x에 따른 y=1일 확률에 대해 추정해 보자. 만약 hθ(x) = 0.7이라면 y=1 즉 악성종양일 확률이 70%라는 것이다. 모든 확률의 합은 1이기 때문에 y가 0인 경우의 확률은 30%가 일 것이다.

7

 

2) Decision Boundary

아래 그림의 오른쪽 그래프를 보시면 Z=0인 곳 g(z) =0.5인곳을 기준으로 보라색 부분이 “y=1″인 곳이고 빨간색 부분이 바로 “y=0″인 곳 이다. 이 때 Z = θTx 이므로 y=1인 경우 θTx ≥ 0 , Y=0인 경우 θTx 〈 0 를 만족해야 한다.

8

이제 이것을 응용하여 Decision Boundary(결정 경계)를 구해보자. Decision Boundary란 결과 값 y들을 분류할 수 있는 기준선을 말한다.

아래의 그림으로 예를 들어보자. 일단 우리는 왼쪽의 그래프의 값들이 존재할 때

라는 식이 있다고 가정하자. 최적의 θ 값을 구하는 것은 나중에 다루도록 하고 일단은θ값이 각각 -3, 1, 1이라고 하면 Z=-3+x1+x2가 될 것이다. 이때 “y=1” 인 값을 찾으려면 위에서 설명한 Logistic regression 식에 의해 Z=-3+x1+x2≥0 이고, x1+x2≥3임을 알 수 있다. 이 때 x1+x2=3 인 경우가 바로 Decision Boundary가 된다. 이 선을 경계로 아래 부분은 “y=0″인 경우가 된다. 위의 식을 그래프에 그려보면 일 차원 함수인 보라색 선이 된다.

9

그럼 Non-linear인 경우 decision boundary가 non-linear인 경우에는 어떻게 될까? 아래 그림처럼 이것 역시 최적의 θ을 이미 구했다고 생각하고 위와 같은 방식으로 하게 되면 x12 + x22 = 1이며, 이것은 반지름이 1인 원형 함수이다. decision boundary를 경계로 x12 + x22 〈 1이면 “y=0”, x12 + x22 ≥ 1 인 경우는 “y=1″이 된다.

그 밖에도 hθ(x)가 복잡해 질수록 그래프와 같이 이상한 모양의 Decision Boundary도 구해질 수 있다.

10

 

3) Cost function

이번 시간에는 Logistic Regression에서 어떻게 최적의 θ값을 찾는 지에 대해서 알아보자.

우리가 배웠던 Logistic regression의 Training set은 아래와 같았다. 즉, 어떠한 x값이 있을 때 y는 0과 1만을 가지게 되었고, 그 때 우리의 가정 hθ(x) 값은 logistic function 이다. 그럼 어떻게 θ값을 선택하면 될까?

11

우리는 이미 Linear Regression 에서 J(θ)값을 구하는 법을 배웠다.

 

12

우리는 cost function min J(θ) 값을 찾아야 한다. Linear Regression 에서 J(θ)는 “convex” 형태의 그림이 그려졌었다.  그러나 logistic regression은  non-linear한 경우도 있기 때문에 J(θ) 값의 그래프가 “non-convex” 형태를 띌 수 있다. “non-convex” 형태 일 때는 global minimum값을 구할 수 없기 때문에 “convex”형태의 모양을 띄도록 변형해야 한다.

그럼 Logistic regression이 “non-convex”의 형태를 띄지 않으려면 cost function은 어떤 형태여야 하는지 살펴보자.

Cost function은 y=1일 때 -log(hθ(x)), y=0일 때 -log(1- hθ(x)) 형태를 띈다. 아래 그림에서  log(hθ(x)) 그래프가 표현되어 있다. hθ(x) 값이 1일 때 cost는 0이되고 hθ(x) 값이 0일때는 cost의 값이 무한대로 향하는 그래프 이다.

13

그럼 y=0일 때 cost function인 log(1- hθ(x))의 그래프를 살펴보면 아래와 같다. hθ(x)  값이 0일 때 cost는 0이되고 hθ(x) 값이1에 가까울 수록 cost값이 무한대로 가는 것을 확인 할 수 있다.

14

 

4) Simplified cost function

위에서 배웠던 cost function을 하나로 합치면 다음과 같다.

15

이제 간략해진 식을 바로 J(θ) 에 적용하면 바로 아래와 같이 정리할 수 있다. 이제 우리는 J(θ)의 최소값을 구하기 위한 적절한 θ 값을 찾아야 한다. 그리고 새로 들어온 값 x들에 대해 예측 값도 구해야 한다.

16

θ 값과 min J(θ )을 찾기 위한 Gradient Descent도 linear regression과 동일한 방식이 적용된다.

17

5) Advanced Optimization

Logistic Regression에서 최소의 J(θ)값을 빠르게 찾는 Advanced Optimization 방법에 대해 알아보자.

우리는 Cost function J(θ) 의 최소값을 구하는 것이 목적이다. θ 가 주어졌을 때  J(θ)의 편미분 값을 아래 식에 대입하여 θ 값을 업데이트 하고 최소의 J(θ) 값을 구하는 과정을 반복한다. (Linear Regression 과정과 동일하다)

우리는 지금까지 Gradient Descent만을 가지고 Cost function을 구해왔다. 하지만 Conjugate gradient, BFGS, L-BFGS같은 다른 방법도 있다. 이들의 장점으로는 α값을 선택할 필요가 없다는 것, 종종 Gradient Descent 방식보다 빠르다는 점이 있다. 하지만 이들은 Gradient Descent방식보다 훨씬 구현이 복잡하다. (Andrew Ng교수님은 아래 방식들은 러신 머닝을 더 오래 공부하면 이해하고 만들어 사용할 수 있을 거라고 한다.)

18

(Coursera ML class –week03 Logistic Regression, Regularization part II로 이어집니다.)

 

Course Home: Coursera Machine Learning

Andrew Ng 교수님 소개: https://www.coursera.org/instructor/andrewng

Advertisements

2 thoughts on “Coursera ML class – week03 Logistic Regression, Regularization part I

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.