📖 학습주제
머신러닝, Scikit-learn, 실전 머신러닝 문제 실습 (5)
선형분류 모델
선형 분류의 목표와 방법들
분류(classification)의 목표
- 입력벡터 x를 K개의 가능한 클래스 중에서 하나의 클래스로 할당하는 것
분류를 위한 결정이론
- 확률적 모델 (probabilistic model)
- 생성모델 (generative modle) : p(x∣Ck)와 p(Ck)를 모델링한 다음 베이즈 정리를 사용해서 클래스의 사후 확률 p(Ck∣x)를 구한다. 또는 결합확률 p(x,Ck)을 직접 모델링할 수도 있다.
- 식별모델 (discriminative model) : p(Ck∣x)를 직접적으로 모델링한다.
- 판별함수 (discriminant function) : 입력 x를 클래스로 할당하는 판별함수를 찾는다. 확률값은 계산하지 않는다.
판별함수 (Discriminant Functions)
입력 x를 클래스로 할당하는 판별함수를 찾는다.
두 개의 클래스
선형판별함수는 다음과 같다.
y(x)=wTx+w0
- w : 가중치 벡터
- w0 : 바이어스
y(x)≥0인 경우 이를 C1으로 판별하고 아닌 경우 C2으로 판별한다.
결정 경계(decision boundary)
- y(x)=0
- D−1 차원의 hyperplane
결정 경계면 위의 임의의 두 점 xA,xB
- y(xA)=y(xB)=0
- wTxA+w0=0,wTxB+w0=0
- wT(xA−xB)=0 -> w는 결정 경계면에 수직
원점에서 결정경계면까지의 거리
벡터 w⊥를 원점에서 결정 경계면에 대한 사영이라고 하자. 이 때, w0은 결정 경계면의 위치를 결정한다.
- w0<0이면 결정 경계면은 원점으로부터 w가 향하는 방향으로 멀어져있다.
- w0>0이면 결정 경계면은 원점으로부터 w의 반대 방향으로 멀어져있다.
또한 y(x) 값은 x와 결정 경계면 사이의 부호화된 거리와 비례한다.
- y(x)>0이면 x는 결정 경계면을 기준으로 w가 향하는 방향에 있다.
- y(x)<0이면 x는 결정 경계면을 기준으로 −w가 향하는 방향에 있다.
- y(x)의 절대값이 클수록 더 멀리 떨어져 있다.
다수의 클래스
yk(x)=wkTx+wk0(k=1,2,⋯,K)
위와 같은 판별함수는 j=k일 때, yk(x)>yj(x)를 만족하면 x를 클래스 Ck로 판별한다. 따라서 Ck와 Cj 사이의 결정 경계는 yk(x)=yj(x)으로 표현된다. 이것은
(wk−wj)Tx+(wk0−wj0)=0
으로 주어지는 초평면이다.
분류를 위한 최소제곱법
행렬 W~을 사용하여 간편하게 나타낸다.
yk(x)=W~Tx~
W~의 k번째 열은 w~k=(wk0,wkT)T
제곱합 에러 함수를 사용한 판별 함수
y(x)=W~Tx~=TT(X~+)Tx~
퍼셉트론 알고리즘(The perceptron algorithm)
y(x)=f(wTϕ(x))
여기서 f는 활성 함수로 퍼셉트론은 아래와 같은 계단형 함수를 사용한다.
f(a)={+1,a≥0−1,a<0
여기서 ϕ0(x)=1
에러함수
- 잘못 분류된 x의 개수
-> w에 대해 piecewise constant인 함수
Ep(w)=−n∈M∑wTϕntn
목표값 t∈−1,1 : 1은 C1, -1은 C2에 대응
M : 잘못 분류된 데이터들의 집합
tn=+1→wTϕn>0
tn=−1→wTϕn<0
wTϕntn>0
확률적 생성 모델 (Probabilistic Generative Models)
Logistic sigmoid의 성질 및 역함수
- σ(−a)=1−σ(a)
- a=ln(1−σσ)
K>2인 경우
p(Ck∣x)=j∑p(x∣Cj)p(Cj)p(x∣Ck)p(Ck)=j∑exp(aj)exp(ak)
ak=lnp(x∣Ck)p(Ck)
p(x∣Ck)가 가우시안 분포를 따르고 모든 클래스에 대해 공분산이 동일하다고 가정한다.
p(x∣Ck)=(2π)D/21∣Σ∣1/21exp{−21(x−μk)TΣ−1(x−μk)}
두 개의 클래스인 경우
p(C1∣x)=σ(a)
a를 전개하면
a=lnp(x∣C2)p(C2)p(x∣C1)p(C1)={(μ1T−μ2T)Σ−1}x−21μ1TΣ−1μ1+21μ2TΣ−1μ2+lnp(C2)p(C1)
따라서 a를 x에 관한 선형식으로 다음과 같이 정리할 수 있다.
p(C1∣x)=σ(wTx+w0)
w=Σ−1(μ1−μ2)
w0=−21μ1TΣ−1μ1+21μ2TΣ−1μ2+lnp(C2)p(C1)
K 개의 클래스인 경우
ak(x)=wkTx+wk0
wk=Σ−1μk
wk0=−21μkTΣ−1μk+lnp(Ck)
ak=lnZ−21(x−μk)TΣ−1(x−μk)+lnp(Ck)=lnZ−21xTΣ−1x+μkTΣ−1x−21μkTΣ−1μk+lnp(Ck)
p(Ck∣x)=j∑exp(aj)exp(ak)=j∑exp(aj)exp(lnZ−21xTΣ−1x)exp(μkTΣ−1x−21μkTΣ−1μk+lnp(Ck))
모든 j=k에 대해 p(Ck∣x)>p(Cj∣x)이면 Ck로 분류한다고 할 때,
p(Ck∣x)>p(Cj∣x)⇔exp(ak)>exp(aj)⇔ak>aj⇔(wk−wj)Tx+(wk0−wj0)>0
따라서, 두 개의 클래스 사이의 결정 경계는 선형식으로 주어진다.
확률적 식별 모델 (Probabilistic Discriminative Models)
로지스틱 회귀 (Logistic Regression)
클래스 C1의 사후 확률은 특성 벡터 ϕ의 선형함수가 logisticsigmoid를 통과하는 함수로 다음과 같이 표현된다.
p(C1∣ϕ)=y(ϕ)=σ(wTϕ)
σ(a)=1+exp(a)1
p(C2∣ϕ)=1−p(C1∣ϕ)