Skip to content

3 · 선형 회귀 모델

회귀 모델의 목표는 입력 데이터가 주어졌을 때 그에 해당하는 연속 표적값을 예측하는 것이다. 선형 회귀 모델은 조절 가능한 매개변수를 바탕으로 한 선형 함수를 사용한다.

3.1 선형 기저 함수 모델

  • 가장 단순한 선형 회귀linear regression는 입력의 선형 결합 y(x,w)=w0+w1x1++wDxD이지만, 입력에 대한 고정 비선형 함수(기저 함수basis function)의 선형 결합으로 확장한다.
y(x,w)=w0+j=1M1wjϕj(x)=j=0M1wjϕj(x)=wϕ(x)

여기서 ϕ0(x)=1(의사 기저 함수), w0편향bias 매개변수다. 기저 함수는 전처리·특징 추출로 이해할 수 있다.

  • 대표적 기저 함수로 가우시안 ϕj(x)=exp{(xμj)22s2}, 시그모이드sigmoid ϕj(x)=σ(xμjs)가 있다(σ(a)=11+ea로지스틱 시그모이드logistic sigmoid).

그림 3.1 · 다항 · 가우시안 · 시그모이드 기저 함수.

3.1.1 최대 가능도와 최소 제곱

  • 표적값이 t=y(x,w)+ϵ, ϵN(0,β1)이라 가정하면 p(tx,w,β)=N(ty(x,w),β1)이고, 제곱 오류 하에서 최적 예측은 조건부 평균 E[tx]=y(x,w)이다.
  • i.i.d. 데이터의 로그 가능도는 lnp(tw,β)=N2lnβN2ln(2π)βED(w)이고, 제곱합 오류 함수
(3.12)ED(w)=12n=1N{tnwϕ(xn)}2
  • 기울기를 0으로 두고 w에 대해 풀면 최소 제곱 문제의 정규 방정식normal equation을 얻는다.
(3.15)wML=(ΦΦ)1Φt

ΦΦnj=ϕj(xn)N×M 설계 행렬design matrix이고, Φ=(ΦΦ)1Φ무어–펜로즈 유사역행렬Moore–Penrose pseudo-inverse이다.

  • 편향을 명시하면 w0=t¯j1wjϕ¯j(t¯, ϕ¯j는 각 평균)로, 편향이 표적값 평균과 기저 함숫값 평균의 차이를 보정한다. 정밀도는 1βML=1Nn{tnwMLϕ(xn)}2이다.

실습 · 가우시안 기저 함수 회귀 (정규방정식)

설계 행렬 Φ(기저 9개 + 편향)로 w=(ΦΦ)1Φt를 풀어 sin(2πx)를 근사합니다.

python
import numpy as np
rng = np.random.default_rng(0)
N = 25
x = np.linspace(0, 1, N); t = np.sin(2*np.pi*x) + 0.1*rng.standard_normal(N)
mus = np.linspace(0, 1, 9); s = 0.1
def design(x):                                   # [1, 가우시안 기저 9개]
    return np.column_stack([np.ones(len(x)), np.exp(-(x[:,None]-mus[None,:])**2/(2*s**2))])
Phi = design(x)
w = np.linalg.solve(Phi.T@Phi + 1e-8*np.eye(Phi.shape[1]), Phi.T@t)   # 정규방정식
xt = np.linspace(0, 1, 6)
print("가우시안 기저 함수 회귀 (기저 9개 + 편향):")
for xi, yi in zip(xt, design(xt)@w):
    print(f"  x={xi:.2f}: y_pred={yi:+.3f}   sin(2πx)={np.sin(2*np.pi*xi):+.3f}")

3.1.2 최소 제곱의 기하학적 의미

  • N차원 공간(tn 축)에서 t는 벡터이고, 기저 함수 φj(Φj번째 열)들이 M차원 부분 공간 S를 이룬다. 예측 yS 위에 있으며, 제곱합 오류는 yt의 제곱 유클리드 거리이므로, 최소 제곱 해는 tS에 직교 투영한 것이다.

그림 3.2 · 최소 제곱 회귀는 표적값 벡터 t를 부분 공간 S에 투영해 얻는다.

3.1.3 순차적 학습

  • 전체 데이터를 한 번에 처리하기 어려울 때 순차적sequential 학습을 쓴다. 확률적 경사 하강법stochastic gradient descentw(τ+1)=w(τ)ηEn으로 갱신하며(η: 학습률), 제곱합 오류에 적용한 경우를 최소 제곱 평균least mean square; LMS 알고리즘이라 한다.

3.1.4 정규화된 최소 제곱법

  • 정규화 오류 ED(w)+λEW(w)에서 가장 단순한 형태(가중치 감쇠weight decay)는 λ2ww이며, 해는
w=(λI+ΦΦ)1Φt
  • 일반화하면 λ2j|wj|q이고, q=2는 가중치 감쇠, q=1라쏘lasso이다. 라쏘는 λ가 충분히 크면 일부 계수를 정확히 0으로 만들어 희박한sparse 모델을 준다.

그림 3.3 · 다양한 q에 따른 정규화항 j|wj|q의 윤곽선.

3.2 편향–분산 분해

  • 최적 예측은 조건부 기댓값 h(x)=E[tx]이다. 유한한 데이터 집합 D로 학습한 예측 y(x;D)의 기대 제곱 오류는 다음처럼 분해된다.
ED[{y(x;D)h(x)}2]={ED[y(x;D)]h(x)}2(편향)2+ED[{y(x;D)ED[y(x;D)]}2]분산
  • 편향bias은 전체 데이터 집합에 대한 평균 예측이 회귀 함수와 얼마나 차이 나는지, 분산variance은 각 데이터 집합의 해가 그 평균에서 얼마나 흩어지는지를 나타낸다. 기대 오류는 (편향)² + 분산 + 노이즈로 분해되며, 편향–분산 트레이드오프bias–variance tradeoff가 존재한다(유연한 모델: 낮은 편향·높은 분산, 엄격한 모델: 그 반대).

그림 3.6 · (편향)²·분산·합. 둘의 균형점에서 시험 오차가 최소가 된다.

실습 · 편향–분산 트레이드오프

같은 함수를 여러 데이터 집합으로 학습해 λ에 따른 편향²·분산을 측정합니다. λ가 커질수록 편향은 증가하고 분산은 감소합니다.

python
import numpy as np
rng = np.random.default_rng(1)
h = lambda x: np.sin(2*np.pi*x)
xtest = np.linspace(0, 1, 50)
mus = np.linspace(0, 1, 9); s = 0.1
def design(x):
    return np.column_stack([np.ones(len(x)), np.exp(-(x[:,None]-mus[None,:])**2/(2*s**2))])
def run(lam, L=300, N=25):
    preds = np.zeros((L, len(xtest)))
    for l in range(L):
        x = rng.uniform(0, 1, N); t = h(x) + 0.15*rng.standard_normal(N)
        Phi = design(x); w = np.linalg.solve(Phi.T@Phi + lam*np.eye(Phi.shape[1]), Phi.T@t)
        preds[l] = design(xtest)@w
    mean = preds.mean(0)
    return np.mean((mean-h(xtest))**2), np.mean(preds.var(0))     # bias^2, variance
print("정규화 λ에 따른 편향²·분산 (가우시안 기저 9개):")
print(f"{'λ':>8} | {'bias^2':>8} | {'variance':>9} | {'합':>8}")
for lam in [1e-3, 0.1, 1.0, 10.0]:
    b, v = run(lam)
    print(f"{lam:>8.3g} | {b:>8.4f} | {v:>9.4f} | {b+v:>8.4f}")
print("λ↑ → 편향 증가, 분산 감소 (편향–분산 트레이드오프).")

3.3 베이지안 선형 회귀

  • 최대 가능도는 기저 함수 수로 복잡도를 조절해야 해 과적합에 취약하다. 매개변수에 사전 분포를 도입하면 이를 피할 수 있다.

3.3.1 매개변수 분포

  • 가능도가 w의 이차식 지수 형태이므로 켤레 사전 분포는 가우시안 p(w)=N(wm0,S0)이다. 제곱식의 완성을 적용하면 사후 분포도 가우시안이다.
(3.49–3.51)p(wt)=N(wmN,SN),mN=SN(S01m0+βΦt),SN1=S01+βΦΦ

사후 분포가 가우시안이므로 최빈값=평균이고 최대 사후 해는 wMAP=mN이다. 순차적으로 데이터를 넣으면 각 단계의 사후가 다음 단계의 사전이 된다.

그림 3.7 · 데이터가 늘수록 w의 사후 분포가 좁아지고, 표본 함수 y(x,w)들이 데이터에 수렴한다.

3.3.2 예측 분포

  • x에 대한 예측 분포predictive distributionw에 대해 주변화하여 얻는다.
p(tx,t,α,β)=N(tmNϕ(x), σN2(x)),σN2(x)=1β+ϕ(x)SNϕ(x)

분산의 첫 항은 노이즈, 둘째 항은 w의 불확실성이며, 데이터가 늘수록 둘째 항이 줄어든다.

실습 · 예측 분포의 불확실성

데이터 수 N이 늘수록 x=0.5에서의 예측 표준편차 σN(x)가 감소함을 확인합니다.

python
import numpy as np
rng = np.random.default_rng(2)
alpha, beta = 2.0, 25.0                          # 사전 정밀도, 노이즈 정밀도
mus = np.linspace(0, 1, 9); s = 0.1
def design(x):
    return np.column_stack([np.ones(len(x)), np.exp(-(x[:,None]-mus[None,:])**2/(2*s**2))])
xt = np.array([0.5])
print("데이터 수 N에 따른 x=0.5의 예측 분포 (베이지안 선형 회귀):")
for N in [1, 5, 25, 100]:
    x = rng.uniform(0, 1, N); t = np.sin(2*np.pi*x) + 0.1*rng.standard_normal(N)
    Phi = design(x)
    SN = np.linalg.inv(alpha*np.eye(Phi.shape[1]) + beta*Phi.T@Phi)   # S_N
    mN = beta * SN @ Phi.T @ t                                        # m_N
    phit = design(xt)
    mean = (phit@mN)[0]
    var = 1/beta + (phit@SN*phit).sum(1)[0]                           # σ_N^2(x)
    print(f"  N={N:3d}: 예측 평균={mean:+.3f}, 예측 표준편차={np.sqrt(var):.3f}")
print("데이터가 늘수록 예측 불확실성(표준편차)이 감소한다.")

3.4 베이지안 모델 비교

  • 매개변수를 주변화하면 과적합을 피할 수 있고, 모델 선택의 불확실성도 확률로 다룬다. L개의 모델 {Mi}에 대해 p(MiD)p(Mi)p(DMi)이다.
  • 모델 증거model evidence p(DMi)=p(Dw,Mi)p(wMi)dw주변 가능도marginal likelihood라고도 하며, 두 모델 증거의 비 p(DMi)/p(DMj)베이즈 요인Bayes factor이라 한다.
  • 예측 분포 p(tx,D)=ip(tx,Mi,D)p(MiD)는 모델들의 사후 확률로 가중 평균한 혼합 분포mixture distribution다. 가장 확률 높은 하나만 쓰는 근사가 모델 선택model selection이다. 모델 증거는 사후 분포 계산 시 베이즈 정리의 분모(정규화항)에 해당한다.

연습문제

문제 3.1 · 최소 제곱 해의 직교 투영

행렬 P=Φ(ΦΦ)1Φ가 임의의 벡터를 Φ의 열공간(부분 공간 S)에 투영함을 보이고, 식 (3.15)의 최소 제곱 해가 tS에 직교 투영하는 것임을 증명하라.

풀이.P투영 행렬이다. 임의의 v에 대해 Pv=Φa (단 a=(ΦΦ)1Φv)이므로 PvS이다. 또

P2=Φ(ΦΦ)1ΦΦ(ΦΦ)1=IΦ=P,P=P

P는 멱등·대칭이므로 S로의 직교 투영이다.

② 예측 y=ΦwML=Φ(ΦΦ)1Φt=Pt이다. 잔차는 ty=(IP)t이고, Φ(ty)=ΦtΦΦwML=0이므로 잔차가 S에 직교한다. 따라서 최소 제곱 해는 tS 직교 투영이다.

문제 3.2 · 사후 분포 (3.49)의 제곱식 완성

가능도 p(tw)exp{β2(tΦw)(tΦw)}와 사전 p(w)=N(wm0,S0)을 곱한 사후 분포의 지수부를 w에 대해 정리한다.

12w(S01+βΦΦ)SN1w+w(S01m0+βΦt)SN1mN+const

가우시안 지수부의 표준형 12(wmN)SN1(wmN)과 이차항·일차항을 비교하면

SN1=S01+βΦΦ,mN=SN(S01m0+βΦt)

를 얻어 식 (3.49)–(3.51)이 증명된다.

PDF