[프로그래머스] 데브코스 데이터엔지니어링 TIL Day 75

주재민·2024년 2월 2일
0
post-thumbnail

📖 학습주제

머신러닝, Scikit-learn, 실전 머신러닝 문제 실습 (5)


선형분류 모델

선형 분류의 목표와 방법들

분류(classification)의 목표

  • 입력벡터 x\textbf{x}KK개의 가능한 클래스 중에서 하나의 클래스로 할당하는 것

분류를 위한 결정이론

  • 확률적 모델 (probabilistic model)
    - 생성모델 (generative modle) : p(xCk)p(\textbf{x}|C_k)p(Ck)p(C_k)를 모델링한 다음 베이즈 정리를 사용해서 클래스의 사후 확률 p(Ckx)p(C_k|\textbf{x})를 구한다. 또는 결합확률 p(x,Ck)p(\textbf{x},C_k)을 직접 모델링할 수도 있다.
    • 식별모델 (discriminative model) : p(Ckx)p(C_k|\textbf{x})를 직접적으로 모델링한다.
  • 판별함수 (discriminant function) : 입력 x\textbf{x}를 클래스로 할당하는 판별함수를 찾는다. 확률값은 계산하지 않는다.

판별함수 (Discriminant Functions)

입력 x\textbf{x}를 클래스로 할당하는 판별함수를 찾는다.

두 개의 클래스

선형판별함수는 다음과 같다.

y(x)=wTx+w0y(\textbf{x})=\textbf{w}^T\textbf{x}+w_0
  • w\textbf{w} : 가중치 벡터
  • w0w_0 : 바이어스

y(x)0y(\textbf{x}) \geq 0인 경우 이를 C1\mathcal{C}_1으로 판별하고 아닌 경우 C2\mathcal{C}_2으로 판별한다.

결정 경계(decision boundary)

  • y(x)=0y(\textbf{x})=0
  • D1D-1 차원의 hyperplane

결정 경계면 위의 임의의 두 점 xA,xB\textbf{x}_A, \textbf{x}_B

  • y(xA)=y(xB)=0y(\textbf{x}_A)=y(\textbf{x}_B)=0
  • wTxA+w0=0,wTxB+w0=0\textbf{w}^T\textbf{x}_A+w_0=0,\textbf{w}^T\textbf{x}_B+w_0=0
  • wT(xAxB)=0\textbf{w}^T(\textbf{x}_A-\textbf{x}_B)=0 -> w\textbf{w}는 결정 경계면에 수직

원점에서 결정경계면까지의 거리
벡터 w\textbf{w}_{\perp}를 원점에서 결정 경계면에 대한 사영이라고 하자. 이 때, w0w_0은 결정 경계면의 위치를 결정한다.

  • w0<0w_0 \lt 0이면 결정 경계면은 원점으로부터 w\textbf{w}가 향하는 방향으로 멀어져있다.
  • w0>0w_0 \gt 0이면 결정 경계면은 원점으로부터 w\textbf{w}의 반대 방향으로 멀어져있다.

또한 y(x)y(\textbf{x}) 값은 x\textbf{x}와 결정 경계면 사이의 부호화된 거리와 비례한다.

  • y(x)>0y(\textbf{x}) \gt 0이면 x\textbf{x}는 결정 경계면을 기준으로 w\textbf{w}가 향하는 방향에 있다.
  • y(x)<0y(\textbf{x}) \lt 0이면 x\textbf{x}는 결정 경계면을 기준으로 w-\textbf{w}가 향하는 방향에 있다.
  • y(x)y(\textbf{x})의 절대값이 클수록 더 멀리 떨어져 있다.

다수의 클래스

yk(x)=wkTx+wk0(k=1,2,,K)y_k(\textbf{x})=\textbf{w}_k^T\textbf{x}+w_k0 \quad (k=1,2, \cdots, K)

위와 같은 판별함수는 jkj \neq k일 때, yk(x)>yj(x)y_k(\textbf{x}) \gt y_j(\textbf{x})를 만족하면 x\textbf{x}를 클래스 Ck\mathcal{C}_k로 판별한다. 따라서 Ck\mathcal{C}_kCj\mathcal{C}_j 사이의 결정 경계는 yk(x)=yj(x)y_k(\textbf{x}) = y_j(\textbf{x})으로 표현된다. 이것은

(wkwj)Tx+(wk0wj0)=0(\textbf{w}_k-\textbf{w}_j)^T\textbf{x}+(w_{k0}-w_{j0})=0

으로 주어지는 초평면이다.

분류를 위한 최소제곱법

행렬 W~\tilde{W}을 사용하여 간편하게 나타낸다.

yk(x)=W~Tx~y_k(\textbf{x})=\tilde{W}^T \tilde{\textbf{x}}

W~\tilde{W}kk번째 열은 w~k=(wk0,wkT)T\tilde{w}_k=(w_{k0},\textbf{w}_k^T)^T

제곱합 에러 함수를 사용한 판별 함수

y(x)=W~Tx~=TT(X~+)Tx~y(\textbf{x})=\tilde{W}^T \tilde{\textbf{x}}=T^T(\tilde{X}^+)^T\tilde{\textbf{x}}

퍼셉트론 알고리즘(The perceptron algorithm)

y(x)=f(wTϕ(x))y(\textbf{x})=f(\textbf{w}^T \phi(\textbf{x}))

여기서 ff는 활성 함수로 퍼셉트론은 아래와 같은 계단형 함수를 사용한다.

f(a)={+1,  a01,  a<0f(a)= \begin{cases} +1,\;a\geq0\\ -1,\;a<0 \end{cases}

여기서 ϕ0(x)=1\phi_0(\textbf{x})=1

에러함수

  • 잘못 분류된 x\textbf{x}의 개수
    -> w\textbf{w}에 대해 piecewise constant인 함수
Ep(w)=nMwTϕntnE_p(\textbf{w})=-\displaystyle\sum_{n \in \mathcal{M}}^{}\textbf{w}^T\phi_nt_n

목표값 t1,1t \in {-1,1} : 1은 C1\mathcal{C}_1, -1은 C2\mathcal{C}_2에 대응

M\mathcal{M} : 잘못 분류된 데이터들의 집합

tn=+1wTϕn>0t_n=+1 \rarr \textbf{w}^T\phi_n > 0
tn=1wTϕn<0t_n=-1 \rarr \textbf{w}^T\phi_n < 0
wTϕntn>0\textbf{w}^T\phi_nt_n > 0

확률적 생성 모델 (Probabilistic Generative Models)

Logistic sigmoid의 성질 및 역함수

  • σ(a)=1σ(a)\sigma(-a)=1-\sigma(a)
  • a=ln(σ1σ)a=ln({\sigma \over {1-\sigma}})

K>2K>2인 경우

p(Ckx)=p(xCk)p(Ck)jp(xCj)p(Cj)=exp(ak)jexp(aj)p(\mathcal{C}_k|\textbf{x})={p(\textbf{x}|\mathcal{C}_k)p(\mathcal{C}_k) \over \displaystyle\sum_j^{}p(\textbf{x}|\mathcal{C}_j)p(\mathcal{C}_j)}={exp(a_k) \over \displaystyle\sum_j^{}exp(a_j)}
ak=ln  p(xCk)p(Ck)a_k=ln\;p(\textbf{x}|\mathcal{C}_k)p(\mathcal{C}_k)

연속적 입력(continous inputs)

p(xCk)p(\textbf{x}|\mathcal{C}_k)가 가우시안 분포를 따르고 모든 클래스에 대해 공분산이 동일하다고 가정한다.

p(xCk)=1(2π)D/21Σ1/2exp{12(xμk)TΣ1(xμk)}p(\textbf{x}|\mathcal{C}_k)={1 \over (2\pi)^{D/2}}{1 \over |\Sigma|^{1/2}}exp\lbrace {-{1 \over 2}(\textbf{x}-\bm{\mu}_k)^T\Sigma^{-1}(\textbf{x}-\bm{\mu}_k)} \rbrace

두 개의 클래스인 경우

p(C1x)=σ(a)p(\mathcal{C}_1|\textbf{x})=\sigma(a)

aa를 전개하면

a=lnp(xC1)p(C1)p(xC2)p(C2)      ={(μ1Tμ2T)Σ1}x12μ1TΣ1μ1+12μ2TΣ1μ2+ln  p(C1)p(C2)a=ln{p(\textbf{x}|\mathcal{C}_1)p(\mathcal{C}_1) \over p(\textbf{x}|\mathcal{C}_2)p(\mathcal{C}_2)}\\{}\\ \; \; \;=\lbrace(\bm{\mu}_1^T-\bm{\mu}_2^T)\Sigma^{-1}\rbrace \textbf{x}-{1 \over 2}\bm{\mu}_1^T\Sigma^{-1}\bm{\mu}_1+{1 \over 2}\bm{\mu}_2^T\Sigma^{-1}\bm{\mu}_2+ln \; {p(\mathcal{C}_1) \over p(\mathcal{C}_2)}

따라서 aax\textbf{x}에 관한 선형식으로 다음과 같이 정리할 수 있다.

p(C1x)=σ(wTx+w0)p(\mathcal{C}_1|\textbf{x})=\sigma(\textbf{w}^T\textbf{x}+w_0)

w=Σ1(μ1μ2)\textbf{w}=\Sigma^{-1}(\bm{\mu}_1-\bm{\mu}_2)
w0=12μ1TΣ1μ1+12μ2TΣ1μ2+ln  p(C1)p(C2)w_0=-{1 \over 2}\bm{\mu}_1^T\Sigma^{-1}\bm{\mu}_1+{1 \over 2}\bm{\mu}_2^T\Sigma^{-1}\bm{\mu}_2+ln \; {p(\mathcal{C}_1) \over p(\mathcal{C}_2)}

KK 개의 클래스인 경우
ak(x)=wkTx+wk0a_k(\textbf{x})=\textbf{w}_k^T\textbf{x}+w_{k0}
wk=Σ1μk\textbf{w}_k=\Sigma^{-1}\bm{\mu}_k
wk0=12μkTΣ1μk+ln  p(Ck)w_{k0}=-{1 \over 2}\bm{\mu}_k^T\Sigma^{-1}\bm{\mu}_k+ln \; p(\mathcal{C}_k)

ak=ln  Z12(xμk)TΣ1(xμk)+ln  p(Ck)  =ln  Z12xTΣ1x+μkTΣ1x12μkTΣ1μk+ln  p(Ck)a_k=ln \; Z-{1 \over 2}(\textbf{x}-\bm{\mu}_k)^T\Sigma^{-1}(\textbf{x}-\bm{\mu}_k)+ln \; p(\mathcal{C}_k)\\\quad\;=ln \; Z -{1 \over 2}\textbf{x}^T\Sigma^{-1}\textbf{x}+\bm{\mu}_k^T\Sigma^{-1}\textbf{x}-{1 \over 2}\bm{\mu}_k^T\Sigma^{-1}\bm{\mu}_k+ln \; p(\mathcal{C}_k)

p(Ckx)=exp(ak)jexp(aj)=exp(ln  Z12xTΣ1x)exp(μkTΣ1x12μkTΣ1μk+ln  p(Ck))jexp(aj)p(\mathcal{C}_k|\textbf{x})={exp(a_k) \over \displaystyle\sum_j^{}exp(a_j)}\\{}\\={exp(ln \; Z -{1 \over 2}\textbf{x}^T\Sigma^{-1}\textbf{x}) exp(\bm{\mu}_k^T\Sigma^{-1}\textbf{x}-{1 \over 2}\bm{\mu}_k^T\Sigma^{-1}\bm{\mu}_k+ln \; p(\mathcal{C}_k)) \over \displaystyle\sum_j^{}exp(a_j)}

모든 jkj \neq k에 대해 p(Ckx)>p(Cjx)p(\mathcal{C}_k|\textbf{x}) > p(\mathcal{C}_j|\textbf{x})이면 Ck\mathcal{C}_k로 분류한다고 할 때,
p(Ckx)>p(Cjx)exp(ak)>exp(aj)    ak>aj    (wkwj)Tx+(wk0wj0)>0p(\mathcal{C}_k|\textbf{x}) > p(\mathcal{C}_j|\textbf{x}) \Lrarr exp(a_k)>exp(a_j)\\\quad\quad\quad\quad\quad\quad\quad\;\;\,\,\Lrarr a_k>a_j\\\quad\quad\quad\quad\quad\quad\quad\;\;\,\,\Lrarr(\textbf{w}_k-\textbf{w}_j)^T\textbf{x}+(w_{k0}-w_{j0})>0

따라서, 두 개의 클래스 사이의 결정 경계는 선형식으로 주어진다.

확률적 식별 모델 (Probabilistic Discriminative Models)

로지스틱 회귀 (Logistic Regression)

클래스 C1\mathcal{C}_1의 사후 확률은 특성 벡터 ϕ\phi의 선형함수가 logistic  sigmoidlogistic\;sigmoid를 통과하는 함수로 다음과 같이 표현된다.

p(C1ϕ)=y(ϕ)=σ(wTϕ)p(\mathcal{C}_1|\phi)=y(\phi)=\sigma(\textbf{w}^T\phi)
σ(a)=11+exp(a)\sigma(a)={1 \over 1+exp(a)}
p(C2ϕ)=1p(C1ϕ)p(\mathcal{C}_2|\phi)=1-p(\mathcal{C}_1|\phi)

0개의 댓글