일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- model free
- Linear Regression
- 폴댄스
- 딥러닝
- 다이내믹 프로그래밍
- kbpf
- 애쉬브라운
- 행복
- MB
- 벨만 방정식
- Richard Socher
- 파이썬
- 딥뉴럴넷
- cost function
- 자연어처리
- ai
- 파이썬과 케라스로 배우는 강화학습
- 리처드소처
- Gradient descent
- 페미니즘
- 양성평등
- NLP
- 강화학습
- 취미
- 독서
- 머신러닝
- CS224N
- MDP
- 인공지능
- tensorflow
- Today
- Total
Ordinary day
Andrew Ng 머신러닝 기초 강의 - Logistic Regression 본문
1. Classification
예) 이메일 - 스팸분류, 온라인상거래 - 상품평의 긍/부정 분류, 종양 - 악성 분류
- y∈{0,1} : binary class (0이면 부정, 1이면 긍정)
- y∈{0,1,2,3} : multi-class
임계값이 0.5인 것을 알고 있을 때, linear regression으로 분류하게 된다면 위의 그래프와 같을 것이다.
그러나 데이터가 추가될 경우, 더 좋지 않은 그래프가 그려질 수 있다.
따라서 classification의 문제에서는 linear regression 방법은 좋지 않다.
2. Hypothesis Representation
linear regression을 사용했을 때 hθ(x)=θTx 였는데, logistic regression으로 사용하기 위해 식을 약간 수정해보자.
hθ(x)=g(θTx)
여기서 g(z)를 아래와 같이 정의하겠다.
- z는 실수 값
- g(z)=1/(1 + e-z) 이러한 함수를 sigmoid function 혹은 logistic function 이라고 한다.
따라서 hθ(x)=1/(1 + e-θTx) 와 같다.
hθ(x)의 output에 대해 해석을 해보자.
예를 들어, feature 벡터 X 에서 x0=1, x1=종양크기 일 때, hθ(x)=0.7 이라고 하자.
이 말은 환자의 70%가 악성종양이라는 뜻이고 hθ(x)=0.7=P(y=1|x;θ) 이렇게 나타낼 수 있다.
그렇다면 아래와 같은 식을 도출할 수 있다.
- P(y=1|x;θ) + P(y=0|x;θ) = 1 (y는 0 아니면 1의 값만 가지므로)
- P(y=0|x;θ) = 1 - P(y=1|x;θ)
3. Decision Boundary
예를 들어 hθ(x) >= 0.5 일때, y=1
hθ(x) < 0.5 일때, y=0 이라고 가정해보자.
hθ(x)=g(θTx) 이고, g(z)=1/(1 + e-z) 이므로,
hθ(x)=g(z) >= 0.5 이고, θTx = z >= 0 이 성립한다.
따라서 θTx >= 0 이면 y=1이고, θTx < 0 이면 y=0 이다.
hθ(x)=g(θ0+θ1x1+θ2x2) 이고, θ0=-3, θ1=1, θ2=1 일 때,
-3+x1+x2 >= 0 이면 y=1 이므로 x1+x2 >= 3 이면 y=1이다.
이 식을 그래프로 나타내면 아래와 같고 이 경계선(Decision boundary)에 따라 y 값이 나뉜다.
decision boundary가 선형이 아닌 경우도 있다.
예를 들어, hθ(x)=g(θ0+θ1x1+θ2x2+θ3x12+θ4x22) 이고 θ0=-1, θ1=0, θ2=0, θ3=1, θ4=1 일 때,
-1+x12+x22 >= 0 이면 y=1
따라서 x12+x22 >= 1 의 그래프를 그려보면 아래와 같이 원 형태의 그래프가 그려진다.
조금 더 복잡한 예제를 살펴보자.
hθ(x)=g(θ0+θ1x1+θ2x2+θ3x12x22+θ4x13x22+θ5x13x23+…)
이 때 파라미터(θ) 값에 따라 그래프가 다르게 그려지겠지만 이러한 형태의 decision boundary가 그려질 수도 있을 것이다.
4. Cost function
- Training set: {(x(1), y(1)), (x(2),y(2)), (x(3),y(3)), …, (x(m),y(m))}
- X∈{x0, x1, x2, …, xn} x0=1, y∈{0,1}
- hθ(x)=1/(1 + e-θTx)
파라미터(θ) 값은 어떻게 결정할까?
이전에 Linear regression 에서는 다음과 같은 수식으로 파라미터 값을 결정했다.
J(θ) = 1/m∑1/2(hθ(x(i))−y(i))2
위의 식에서 1/2(hθ(x(i))−y(i))2 대신에 Cost(hθ(x),y) 로 쓰겠다.
따라서 J(θ) = 1/m∑Cost(hθ(x),y) 로 표현할 수 있다.
cost function(J)는 non-convex 형태의 그래프로 그려질 수도 있는데, 이렇게 되면 경사하강법으로 cost를 최소화하는 파라미터를 찾지 못할 수 있기때문에, cost function은 convex형태의 그래프 모양이 나와야한다.
따라서 logistic regression에 대한 cost function은 다음과 같이 정의할 수 있다.
- y=1일 때, Cost(hθ(x),y) = -log(hθ(x))
- y=0일 때, Cost(hθ(x),y) = -log(1-hθ(x))
- hθ(x)=y 이면, Cost(hθ(x),y)=0
- y=1 이고 hθ(x)가 0에 가까워지면, Cost(hθ(x),y)→∞
- y=0 이고 hθ(x)가 1에 가까워지면, Cost(hθ(x),y)→∞
5. Simplified cost function And Gradient descent
- y=1일 때, Cost(hθ(x),y) = -log(hθ(x))
- y=0일 때, Cost(hθ(x),y) = -log(1-hθ(x))
이 식을 하나로 나타낸다면 아래와 같이 나타낼 수 있다.
-
Cost(hθ(x),y) = -ylog(hθ(x)) - (1-y)log(1-hθ(x))
이 식으로 cost function을 나타내면 아래와 같다.
우리의 목표는 cost function 값, 즉 J(θ) 값을 최소화해야한다.
위에서 표현한 cost function이 convex한 형태를 가지고 있으므로, Gradient descent 방식을 사용하여 J(θ) 값을 최소화하는 파라미터를 찾자!
n 개의 feature가 있다면 θ는 n+1개가 있다.
이 방정식은 linear regression 에서 했던 방식과 동일하지만, hθ(x)를 표현하는 방법이 다르다. (hθ(x)=1/(1 + e-θTx))
Gradient descent 방식으로 logistic regression을 구현할 때 모든 θ값(θ0에서 θn)을 동시에 업데이트해야한다.
벡터화 된 구현은 아래와 같다.
6. Advanced optimization
이때까지 optimization algorithm으로 Gradient descent를 사용했지만 다른 알고리즘도 있다.
- Conjugate gradient
- BFGS (Broyden-Fletcher-Goldfarb-Shanno)
- L-BFGS (Limited memory - BFGS)
위 세 알고리즘의 장점으로 learning rate를 결정할 필요가 없고, Gradient descent 보다 빠르다.
그러나 더 복잡하기 때문에 수식으로 설명하려면 힘들지만 라이브러리(Octave, MATLAB 등)를 사용한다면 쉽게 구현할 수 있다.
7. Multiclass Classification: One-vs-all
Multiclass의 예
- 이메일 태그: work(y=1), friend(y=2), family(y=3), hobby(y=4)
- 병 진단: 병이 아님(y=1), 감기(y=2), 독감(y=3)
- 날씨: 맑음(y=1), 흐림(y=2), 눈(y=3), 비(y=4)
multiclass classification은 binary classification을 여러번한 결과로 나타낼 수 있다.
따라서 hθ(i)(x) = P(y=i|x;θ) (i=1,2,3), prediction=max(hθ(i)(x))
요약하자면,
y=i를 예측하는 각 클래스 i에 대해 logistic regression classifier hθ(i)(x)를 훈련시킨다.
새로운 입력 x에 대해 예측하기 위해서 hθ(i)(x)=1 인 확률을 최대화하는 i를 찾는다.
'Study > ML 이론' 카테고리의 다른 글
모두를 위한 머신러닝(RL) - Q-learning (1) | 2017.04.10 |
---|---|
Andrew Ng 머신러닝 기초 강의 - Neural Networks: Learning (0) | 2017.03.10 |
Andrew Ng 머신러닝 기초 강의 - Linear Regression with one variable(2) (0) | 2017.01.17 |
Andrew Ng 머신러닝 기초 강의 - Linear Regression with one variable(1) (0) | 2017.01.16 |
Andrew Ng 머신러닝 기초 강의 - Introduction (0) | 2017.01.15 |