Skip to content

4 · 선형 분류 모델

분류 모델의 목표는 입력 데이터들이 주어졌을 때, 그에 해당하는 이산 클래스 변수를 예측하는 것이다. 선형 분류 모델에서는 결정 표면들이 입력 데이터에 대해 선형 함수를 사용한다.

4.1 판별 함수

  • 분류 문제에서 입력값들은 K개의 이산 클래스 Ck, k=1,,K 중 하나에 할당되며, 입력 공간은 결정 경계decision boundary 또는 결정 표면decision surface이라 불리는 경계를 바탕으로 여러 결정 구역decision region으로 나뉜다. 클래스들이 선형 결정 표면들로 정확히 나뉘는 데이터 집합을 선형 분리 가능linearly separable한 집합이라 한다.
  • 실수 표적값을 쓰는 회귀와 달리 분류에서는 원 핫 인코딩one-hot encoding된 표적값 벡터를 사용한다. K개의 클래스가 있고 Cj에 속하면 tK차원 벡터로 tj=1, 나머지는 0이다.
  • 판별 함수discriminant function는 입력 벡터 xK개의 클래스 중 하나에 배정하는 함수이며, 결정 표면이 초평면인 경우를 선형 판별linear discriminant이라 한다.

4.1.1 두 개의 클래스

  • 선형 판별 함수는 입력 벡터의 선형 함수다.
y(x)=wx+w0

w가중 벡터weight vector, w0편향bias이다. 클래스가 둘이므로 y(x)0이면 C1, 아니면 C2에 배정한다. 결정 경계는 y(x)=0이다.

그림 4.1 · 이차원 선형 판별 함수의 기하학. 적색 결정 표면은 w에 수직이며, 원점으로부터의 거리는 w0이 결정한다.

  • w는 결정 표면의 방향을, w0은 위치를 결정한다. 가변수 x0=1을 도입해 w~=(w0,w), x~=(x0,x)로 두면 y(x)=w~x~로 간단해지고, 결정 표면은 D+1차원 확장 공간에서 원점을 지나는 D차원 초평면이 된다.

4.1.2 다중 클래스

  • K>2인 경우, 클래스 Ck에 포함되는 점과 그렇지 않은 점을 구분하는 이진 분류기를 K1개 쓰는 일대다one-versus-the-rest 분류기, 또는 모든 클래스 쌍에 대해 K(K1)/2개의 이진 분류기를 쓰는 일대일one-versus-one 분류기를 생각할 수 있다. 둘 다 불확실한 영역이 생긴다.

그림 4.2 · 이진 분류기 집합으로 K클래스 판별을 구성할 때 생기는 불확실 영역(녹색). 왼쪽은 일대다, 오른쪽은 일대일 분류기.

  • K개의 선형 함수로 이루어진 하나의 K클래스 판별 함수를 쓰면 이 문제를 피할 수 있다.
yk(x)=wkx+wk0

jk인 모든 j에 대해 yk(x)>yj(x)xCk에 배정한다. CkCj 사이 결정 경계 yk(x)=yj(x)는 다음 (D1)차원 초평면이다.

(wkwj)x+(wk0wj0)=0

이런 판별의 결정 영역은 언제나 단일하게 연결되어 있으며 볼록하다.

그림 4.3 · 다중 클래스 선형 판별의 결정 경계. 결정 영역은 단일하게 연결되어 있으며 볼록하다.

4.1.3 분류를 위한 최소 제곱법

  • K개 클래스 모델을 y(x)=W~x~로 쓸 수 있다(W~k번째 열은 w~k=(wk0,wk)). n번째 행이 tnT, x~nX~를 정의하면 제곱합 오류는
(4.15)ED(W~)=12Tr{(X~W~T)(X~W~T)}
  • W~에 대한 미분을 0으로 두고 정리하면 닫힌 형태의 해와 판별 함수를 얻는다.
W~=(X~X~)1X~T=X~T,y(x)=T(X~)x~
  • 최소 제곱법은 해를 정확히 닫힌 형태로 구할 수 있으나, 이상값에 강건하지 못하다. 또한 가우시안 조건부 분포 가정하의 최대 가능도와 연관되어 있어, 표적값이 명확히 가우시안이 아니면 제대로 작동하지 않는다.

그림 4.4 · (왼쪽) 두 클래스에 대한 최소 제곱 결정 경계(보라색). (가운데) 이상값이 추가되면 결정 경계가 크게 흔들린다. (오른쪽) 세 클래스에서 녹색 클래스가 대부분 오분류된다.

4.1.4 피셔의 선형 판별

  • 선형 분류는 차원 감소로도 해석된다. D차원 xy=wx로 일차원에 투영할 때, w를 잘 고르면 클래스 간 분리를 최대화할 수 있다. 두 클래스의 평균은
m1=1N1nC1xn,m2=1N2nC2xn
  • 투영 후 평균 차이 m2m1=w(m2m1)만 키우면 w의 크기로 임의로 값을 키울 수 있으므로, 피셔는 클래스 간 분리는 최대화하면서 각 클래스 내 분산은 최소화하는 기준을 제안했다. 클래스 내 분산 sk2=nCk(ynmk)2에 대해 피셔 기준은
J(w)=(m2m1)2s12+s22=wSBwwSWw

여기서 클래스 간between-class 공분산 SB클래스 내within-class 공분산 SW

SB=(m2m1)(m2m1),SW=nC1(xnm1)(xnm1)+nC2(xnm2)(xnm2)
  • J(w)를 미분해 정리하면 피셔의 선형 판별Fisher's linear discriminant을 얻는다.
wSW1(m2m1)

그림 4.6 · (왼쪽) 클래스 평균을 잇는 선에 투영하면 중복이 크다. (오른쪽) 피셔 판별 투영은 클래스 분리가 개선된다.

실습 · 피셔의 선형 판별

클래스 내 산포가 평균 차이 방향으로 늘어나 있어, 평균을 잇는 방향에 투영하면 두 클래스가 겹칩니다. wSW1(m2m1)가 분리 척도 J를 얼마나 키우는지 확인합니다.

python
import numpy as np
rng = np.random.default_rng(7)
N1 = N2 = 100
cov = np.array([[3.0, 0.0], [0.0, 0.25]])               # 한 방향으로 길쭉한 산포
th = np.deg2rad(-35); R = np.array([[np.cos(th),-np.sin(th)],[np.sin(th),np.cos(th)]])
cov = R @ cov @ R.T
X1 = rng.multivariate_normal([0, 0],   cov, N1)
X2 = rng.multivariate_normal([2.2, 0], cov, N2)
m1, m2 = X1.mean(0), X2.mean(0)
Sw = (X1-m1).T@(X1-m1) + (X2-m2).T@(X2-m2)              # 클래스 내 공분산
w_fisher = np.linalg.solve(Sw, m2-m1); w_fisher /= np.linalg.norm(w_fisher)
w_mean   = (m2-m1)/np.linalg.norm(m2-m1)                # 평균 연결 방향
def J(w):
    p1, p2 = X1@w, X2@w
    return (p1.mean()-p2.mean())**2 / (p1.var()+p2.var())
print(f"평균 연결 방향  J = {J(w_mean):.2f}")
print(f"피셔 판별 방향  J = {J(w_fisher):.2f}   (더 큼 = 더 잘 분리)")

4.1.5 퍼셉트론

  • 퍼셉트론perceptron은 입력을 고정된 비선형 변환으로 특징 벡터 ϕ(x)로 바꾼 뒤 일반화된 선형 모델 y(x)=f(wϕ(x))을 만든다. 비선형 활성화 함수nonlinear activation functionf(a)=+1(a0), 1(a<0)이며, 표적값은 t{1,1}을 쓴다.
  • 퍼셉트론 기준perceptron criterion EP(w)=nMwϕntn(M: 오분류 집합)에 확률적 경사 하강법을 적용하면
w(τ+1)=w(τ)+ηϕntn

선형 분리 가능한 데이터에 대해서는 유한 번의 갱신으로 수렴함이 보장된다(퍼셉트론 수렴 정리).

실습 · 퍼셉트론 학습

선형 분리 가능한 두 클래스에 대해 오분류된 표본마다 ww+ηϕntn을 적용합니다. 에폭마다 오분류 수가 줄어 0에 도달하는 것을 확인합니다.

python
import numpy as np
rng = np.random.default_rng(4)
Np = 40
X = np.vstack([rng.normal([-1.4,-1.4], 0.85, (Np,2)),
               rng.normal([ 1.4, 1.4], 0.85, (Np,2))])
t = np.concatenate([-np.ones(Np), np.ones(Np)])          # 표적값 t ∈ {-1, +1}
Phi = np.column_stack([np.ones(len(X)), X])              # 편향 + 특징 2개
w = np.zeros(3); eta = 0.1
for epoch in range(30):
    mis = 0
    for n in rng.permutation(len(X)):
        pred = 1.0 if Phi[n]@w >= 0 else -1.0
        if pred != t[n]:
            w = w + eta*Phi[n]*t[n]; mis += 1           # w ← w + η φ_n t_n
    print(f"에폭 {epoch+1}: 오분류 {mis}개")
    if mis == 0: break
print("최종 w =", np.round(w, 3).tolist())

4.2 확률적 생성 모델

  • 생성적 접근은 클래스별 조건부 밀도 p(xCk)와 클래스 사전 분포 p(Ck)를 모델링한 뒤 베이즈 정리로 사후 확률 p(Ckx)를 계산한다. 두 클래스의 경우 사후 확률은 로지스틱 시그모이드logistic sigmoid σ로 표현된다.
p(C1x)=p(xC1)p(C1)p(xC1)p(C1)+p(xC2)p(C2)=σ(a),a=lnp(xC1)p(C1)p(xC2)p(C2)
  • 시그모이드는 대칭성 σ(a)=1σ(a)를 만족하며, 그 역함수를 로짓logit 함수 a=ln{σ/(1σ)}라 한다. K>2인 경우는 시그모이드를 일반화한 소프트맥스 함수softmax function를 쓴다.
p(Ckx)=exp(ak)jexp(aj),ak=ln(p(xCk)p(Ck))

4.2.1 연속 입력

  • 클래스별 조건부 밀도를 가우시안으로 두고 모든 클래스가 같은 공분산 Σ를 공유한다고 가정하면, 두 클래스의 사후 확률은 x에 대한 선형 함수의 시그모이드가 된다.
p(C1x)=σ(wx+w0),w=Σ1(μ1μ2)w0=12μ1Σ1μ1+12μ2Σ1μ2+lnp(C1)p(C2)

공분산 공유 가정으로 가우시안 지수부의 x 이차항이 상쇄되어, 시그모이드의 입력이 x에 대한 선형 함수가 되었다.

그림 4.10 · (왼쪽) 두 클래스의 조건부 밀도. (오른쪽) 사후 확률 p(C1x).

4.2.2 최대 가능도 해

  • 클래스 조건부 밀도의 함수 형태를 정하면 최대 가능도로 매개변수와 사전 확률을 추정할 수 있다. 두 클래스·공유 공분산·p(C1)=π 가정하에서 가능도는
p(t,Xπ,μ1,μ2,Σ)=n=1N[πN(xnμ1,Σ)]tn[(1π)N(xnμ2,Σ)]1tn
  • 각 매개변수에 대해 미분을 0으로 두면 직관적인 최대 가능도 추정값을 얻는다. 사전 확률은 클래스 비율, 평균은 각 클래스 표본 평균, 공유 공분산은 클래스별 공분산의 가중 평균이다.
π=N1N,μ1=1N1n=1Ntnxn,μ2=1N2n=1N(1tn)xnS=N1NS1+N2NS2,Sk=1NknCk(xnμk)(xnμk)

실습 · 생성적 가우시안 분류기 (공유 공분산)

두 클래스의 평균·공유 공분산을 최대 가능도로 추정한 뒤 w=S1(μ1μ2), w0을 계산하고, 사후 확률 σ(wx+w0)로 분류합니다.

python
import numpy as np
def sig(a): return 1/(1+np.exp(-a))
rng = np.random.default_rng(3)
Nc = 80
C1 = rng.multivariate_normal([ 1,  1],   [[1,0.3],[0.3,1]], Nc)
C2 = rng.multivariate_normal([-1, -1.5], [[1,0.3],[0.3,1]], Nc)
mu1, mu2 = C1.mean(0), C2.mean(0)
pi = Nc/(2*Nc)
S1 = (C1-mu1).T@(C1-mu1)/Nc; S2 = (C2-mu2).T@(C2-mu2)/Nc
S  = pi*S1 + (1-pi)*S2                                   # 공유 공분산
Sinv = np.linalg.inv(S)
w  = Sinv@(mu1-mu2)
w0 = -0.5*mu1@Sinv@mu1 + 0.5*mu2@Sinv@mu2 + np.log(pi/(1-pi))
print("w  =", np.round(w, 3).tolist(), "  w0 =", round(float(w0), 3))
for x in [mu1, mu2, (mu1+mu2)/2]:
    print(f"  x={np.round(x,2).tolist()}: p(C1|x)={sig(w@x+w0):.3f}")
Xall = np.vstack([C1, C2]); tall = np.concatenate([np.ones(Nc), np.zeros(Nc)])
acc = np.mean((sig(Xall@w + w0) > 0.5) == tall)
print("분류 정확도 =", f"{acc:.1%}")

4.3 확률적 판별 모델

  • 판별적 접근은 일반화된 선형 모델의 함수 형태를 명시적으로 쓰고 최대 가능도로 매개변수를 직접 구한다. 생성적 모델링과 달리 조절할 매개변수가 대체로 더 적고, 클래스 조건부 밀도 가정이 실제 분포와 어긋날 때 더 나은 성능을 보인다. 이 해를 구하는 효율적 알고리즘이 반복 재가중 최소 제곱법iterative reweighted least squares; IRLS이다.

그림 4.12 · 비선형 기저 함수의 역할. (왼쪽) 원 입력 공간 (x1,x2)에서 겹쳐 있는 두 클래스. (오른쪽) 가우시안 기저 함수로 변환한 특징 공간 (ϕ1,ϕ2)에서는 선형 결정 경계로 분리된다.

4.3.1 고정된 기저 함수

  • 앞의 알고리즘들은 원 입력 x뿐 아니라 기저 함수 벡터 ϕ(x)에 대해서도 그대로 적용된다. 결정 경계는 특징 공간 ϕ에서 선형이지만 x 공간에서는 비선형일 수 있다. 적절한 비선형 변환은 클래스 조건부 밀도가 크게 겹치는 경우에도 사후 확률 모델링을 쉽게 만든다.

4.3.2 로지스틱 회귀

  • 두 클래스 문제에서 C1의 사후 확률을 특징 벡터의 선형 함수에 대한 시그모이드로 쓴 모델을 로지스틱 회귀logistic regression라 한다.
p(C1ϕ)=y(ϕ)=σ(wϕ)

M차원 특징 공간에서 로지스틱 회귀는 M개의 매개변수를 가진다. 생성적 방법이 평균에 2M개, 공분산에 M(M+1)/2개로 M에 대해 이차로 증가하는 것과 달리, 로지스틱 회귀는 선형으로 증가한다.

  • 데이터 {ϕn,tn}(tn{0,1})에 대한 가능도 p(tw)=nyntn(1yn)1tn의 음의 로그값이 교차 엔트로피cross-entropy 오류 함수다.
E(w)=lnp(tw)=n=1N{tnlnyn+(1tn)ln(1yn)},yn=σ(wϕn)
  • 시그모이드의 미분 dσda=σ(1σ)를 이용하면 기울기가 회귀와 같은 간단한 형태가 된다.
E(w)=n=1N(yntn)ϕn

4.3.3 반복 재가중 최소 제곱법

  • 로지스틱 회귀는 시그모이드의 비선형성 때문에 해가 닫힌 형태가 아니지만, 오류 함수가 볼록해 유일한 최솟값을 가진다. 뉴턴–라프슨Newton–Raphson 갱신 w(new)=w(old)H1E(w)을 적용한다. 교차 엔트로피에 대한 기울기와 헤시안은
E(w)=Φ(yt),H=ΦRΦ,Rnn=yn(1yn)
  • 헤시안이 R을 통해 w에 종속되므로 갱신을 반복해야 한다. 갱신식은 가중 최소 제곱의 정규 방정식 형태를 띤다.
(4.99)w(new)=(ΦRΦ)1ΦRz,z=Φw(old)R1(yt)

매 반복마다 새 w로 가중 행렬 R을 다시 구하므로 반복 재가중 최소 제곱법이라 부른다.

실습 · 로지스틱 회귀 (IRLS/뉴턴–라프슨)

H=ΦRΦ, E=Φ(yt)로 뉴턴–라프슨 갱신을 반복합니다. 교차 엔트로피가 빠르게(이차 수렴) 줄어드는 것을 확인합니다.

python
import numpy as np
def sig(a): return 1/(1+np.exp(-a))
rng = np.random.default_rng(2)
Na = 60
X = np.vstack([rng.normal([-1,-1], 1.3, (Na,2)),
               rng.normal([1.2,1.2], 1.3, (Na,2))])
t = np.concatenate([np.zeros(Na), np.ones(Na)])
Phi = np.column_stack([np.ones(len(X)), X])             # 편향 + 특징 2개
w = np.zeros(3)
for it in range(8):
    y = sig(Phi@w); R = y*(1-y)                          # R_nn = y_n(1-y_n)
    H = (Phi*R[:,None]).T@Phi + 1e-8*np.eye(3)          # 헤시안 ΦᵀRΦ
    w_new = w - np.linalg.solve(H, Phi.T@(y-t))         # 뉴턴–라프슨 갱신
    step = np.linalg.norm(w_new-w); w = w_new
    ce = -np.sum(t*np.log(y+1e-12) + (1-t)*np.log(1-y+1e-12))
    print(f"반복 {it+1}: 교차엔트로피={ce:7.3f}  |Δw|={step:.2e}")
    if step < 1e-6: break
print("수렴 w =", np.round(w,3).tolist(),
      "  정확도 =", f"{np.mean((sig(Phi@w)>0.5)==t):.1%}")

4.4 라플라스 근사

  • 라플라스 근사Laplace approximation는 연속 변수 집합에 대한 확률 밀도의 가우시안 근사를 찾는 방법이다.

라플라스 근사법

단일 연속 변수 z에 대해 p(z)=1Zf(z), Z=f(z)dz인 분포를 가정한다. 정규화 계수 Z를 모를 때, 최빈값을 중심으로 한 가우시안 근사 q(z)를 다음 단계로 찾는다.

  1. 최빈값 z0을 구한다: df(z)dz|z=z0=0.

  2. z0 주변에서 lnf(z)를 테일러 전개한다: lnf(z)lnf(z0)12A(zz0)2, A=d2dz2lnf(z)|z=z0.

  3. z0이 지역적 최댓값이라 일차항이 사라지고, 지수를 취하면 f(z)f(z0)exp{A2(zz0)2}.

  4. 정규화하면 q(z)=(A2π)1/2exp{A2(zz0)2}.

그림 4.14 · 분포 p(z)exp(z2/2)σ(20z+4)의 라플라스 근사. (왼쪽) 황색은 정규화 분포 p(z), 적색은 최빈값 중심 라플라스 근사. (오른쪽) 각 곡선의 음의 로그값.

  • M차원 z로 확장하면 임계점 f(z0)=0에서 전개해 다변량 가우시안 근사를 얻는다.
q(z)=|A|1/2(2π)M/2exp{12(zz0)A(zz0)}=N(zz0,A1),A=lnf(z)|z=z0

중심 극한 정리에 따라 데이터가 많을수록 사후 분포가 가우시안에 가까워지므로, 데이터가 많을 때 라플라스 근사가 더 유용하다.

실습 · 라플라스 근사 (그림 4.14 재현)

f(z)=exp(z2/2)σ(20z+4)의 최빈값 z0과 곡률 A=d2dz2lnf|z0을 구해 근사 분산 A1과 정규화 상수 Z를 추정하고, 수치 적분값과 비교합니다.

python
import numpy as np
def sig(a): return 1/(1+np.exp(-a))
def lnf(z): return -0.5*z*z + np.log(sig(20*z+4))       # ln f(z)
zs = np.linspace(-3, 3, 60001); dz = zs[1]-zs[0]
z0 = zs[np.argmax(lnf(zs))]                              # 최빈값
u = 20*z0 + 4; s = sig(u)
A = 1 + 400*s*(1-s)                                     # 곡률 A = -d²/dz² ln f
print(f"최빈값 z0 = {z0:.4f},  곡률 A = {A:.3f},  근사 분산 A⁻¹ = {1/A:.5f}")
fz = np.exp(lnf(zs))
Z_num = float(np.sum(fz)*dz)                             # 수치 적분
Z_lap = float(np.exp(lnf(z0)) * np.sqrt(2*np.pi/A))     # 라플라스 근사
print(f"Z(수치 적분) = {Z_num:.4f}   Z(라플라스) = {Z_lap:.4f}")

4.4.1 모델 비교와 베이지안 정보 기준

  • 라플라스 근사로 정규화 상수 Zf(z0)(2π)M/2|A|1/2를 얻는다. 이를 모델 증거 p(D)=p(Dθ)p(θ)dθ에 적용하면
(4.137)lnp(D)lnp(DθMAP)+lnp(θMAP)+M2ln(2π)12ln|A|

첫 항은 최적 매개변수의 로그 가능도, 나머지는 모델 복잡도에 벌점을 주는 오컴 인자Occam factor다.

  • 사전 분포가 넓게 퍼지고 헤시안이 최대 계수라 가정하면 위 식은 다음으로 근사되며, 이를 베이지안 정보 기준Bayesian information criterion; BIC 또는 슈바르츠 기준Schwarz criterion이라 한다(N: 데이터 수, M: 매개변수 수).
lnp(D)lnp(DθMAP)12MlnN

4.5 베이지안 로지스틱 회귀

4.5.1 사후 분포 계산

  • 베이지안 로지스틱 회귀의 사후 분포는 가능도가 각 데이터 포인트의 시그모이드를 곱한 형태라 정확한 계산이 어렵다. 라플라스 근사로 비교적 쉽게 다룬다. 가우시안 사전 분포 p(w)=N(wm0,S0)을 두면 로그 사후 분포는
lnp(wt)=12(wm0)S01(wm0)+n=1N{tnlnyn+(1tn)ln(1yn)}+const
  • 이를 최대화해 wMAP를 구하고, 공분산은 음의 로그 사후 분포의 헤시안의 역으로 얻는다.
SN1=lnp(wt)=S01+n=1Nyn(1yn)ϕnϕn

따라서 사후 분포의 가우시안 근사는 q(w)=N(wwMAP,SN)이다.

4.5.2 예측 분포

  • 새 특징 벡터 ϕ에 대한 예측 분포는 q(w)에 대해 주변화해 구한다. a=wϕ가 가우시안 N(aμa,σa2)을 따르므로
μa=wMAPϕ,σa2=ϕSNϕp(C1ϕ,t)=σ(a)p(a)da=σ(a)N(aμa,σa2)da

이 일차원 적분은 사후 분포의 불확실성을 반영해, 결정 경계에서 멀어질수록 예측이 더 완만해진다.

연습문제

문제 4.1

로지스틱 시그모이드 함수가 σ(a)=1σ(a)를 만족함을 증명하고, 그 역함수를 구하라.

풀이

대칭성 — 정의 σ(a)=11+ea에서

σ(a)=11+ea=eaea+1=1+ea11+ea=111+ea=1σ(a)

역함수y=σ(a)로 두면 y=11+ea이므로 1+ea=1y, ea=1yy. 양변에 로그를 취하면

a=lny1y

이것이 로짓 함수다.

문제 4.2

데이터 집합 {xn}최소 볼록 집합convex hullx=nαnxn (αn0, nαn=1)인 모든 점 x로 정의한다. 두 집합 {xn}, {yn}의 최소 볼록 집합이 교차하면 두 집합은 선형 분리 불가능함을, 선형 분리 가능하면 두 볼록 집합이 교차하지 않음을 증명하라.

풀이

정의 — 선형 분리 가능이란 모든 xn에 대해 w^xn+w0>0, 모든 yn에 대해 w^yn+w0<0(w^,w0)이 존재함을 뜻한다.

볼록 집합이 교차하면 분리 불가능 — 두 볼록 집합이 공통점 z를 가진다고 하자. 그러면 z=nαnxn=mβmym (αn,βm0, αn=βm=1). 선형 분리 가능하다고 가정하면 {xn} 쪽 표현에서

w^z+w0=nαn(w^xn+w0)>0

(각 항이 양수이고 αn=1이므로). 동시에 {ym} 쪽 표현에서

w^z+w0=mβm(w^ym+w0)<0

같은 값이 양수이면서 음수일 수는 없으므로 모순이다. 따라서 볼록 집합이 교차하면 선형 분리가 불가능하다.

대우 — 위 명제의 대우가 곧 "선형 분리 가능하면 두 볼록 집합은 교차하지 않는다"이므로 함께 증명된다.

문제 4.3

식 (4.15)의 제곱합 오류 최소화를 고려하자. 훈련 집합의 모든 표적값 벡터가 선형 제약 atn+b=0(tnTn번째 행)을 만족하면, 모델의 예측도 ay(x)+b=0을 만족함을 증명하라. (기저 함수 중 ϕ0(x)=1이고 w0이 편향 역할을 한다고 가정한다.)

풀이

최소 제곱 해는 W~=(X~X~)1X~T이고 예측은 y(x)=W~x~이다. 제약 조건을 모든 n에 모으면 행렬 형태로 Ta+b1=0, 즉

Ta=b1

여기서 1은 모든 성분이 1N차원 벡터다. 예측에 a를 곱하면

ay(x)=aT(X~)x~=(Ta)(X~)x~=b1(X~)x~

X~=(X~X~)1X~이므로 1(X~)x~=1X~(X~X~)1x~이다. 가변수 ϕ0=1 가정에서 X~의 첫 열은 1이므로 X~1=(X~X~):,0, 결국 1X~(X~X~)1=e0(첫 성분만 1)이 되어 1(X~)x~=x~0=1. 따라서

ay(x)=bay(x)+b=0

즉 표적값에 걸린 선형 제약이 예측값에서도 그대로 성립한다.

문제 4.4

사전 클래스 확률 p(Ck)=πk와 클래스 조건부 밀도 p(ϕCk)로 정의된 K클래스 생성 모델을 고려하자(표적값은 원 핫 인코딩). 데이터가 독립적으로 추출될 때 사전 확률의 최대 가능도 해가 πk=NkN(Nk: Ck에 할당된 데이터 수)임을 증명하라.

풀이

데이터 {ϕn,tn}에서 tnk를 원 핫 표적값의 k번째 성분이라 하자. 로그 가능도 중 {πk}에 종속된 부분은

n=1Nk=1Ktnklnπk=k=1KNklnπk,Nk=n=1Ntnk

제약 kπk=1을 라그랑주 승수 λ로 넣어

L=k=1KNklnπk+λ(k=1Kπk1)

πk로 미분해 0으로 두면 Nkπk+λ=0, 즉 πk=Nkλ. 제약에 대입하면 kπk=1λkNk=Nλ=1이므로 λ=N. 따라서

πk=NkN

각 클래스의 사전 확률 최대 가능도 추정값은 그 클래스에 속한 데이터의 비율이다.

PDF