(6-2) 머신러닝 기초 - 선형회귀

Yongjoo Lee·2021년 1월 12일
1
post-thumbnail

선형회귀

선형 기저 함수 모델

가장 단순한 형태의 선형모델

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2F00f7a609-28b3-407f-93b5-3256be57c8ab%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2F00f7a609-28b3-407f-93b5-3256be57c8ab%2Fimage.png)

이 모델의 파라미터는 w=(w0,,wD)T\bold w=(w_0,\dots,w_D)^T 벡터이다. 위 함수는 파라미터 w\bold w에 대해 선형일 뿐만 아니라 입력데이터 x\bold x에 대해서도 선형이다.

x\bold x에 대해 비선형인 함수를 만들고 싶다면?

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2F19fdac98-66dd-44e7-a206-a5e928756e3d%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2F19fdac98-66dd-44e7-a206-a5e928756e3d%2Fimage.png)

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2Fda876e4b-b1ed-4cab-aa9a-f602c067ec7b%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2Fda876e4b-b1ed-4cab-aa9a-f602c067ec7b%2Fimage.png)

x\bold x에 대해 비선형인 함수 ϕj(x)\phi_j(\bold x)를 기저함수(basis function)이라고 부른다.

앞에서 몇 가지 기저함수를 이미 사용한 적이 있다.

최대우도와 최소제곱법 (Maximum Likelihood and Least Squares)

에러함수가 가우시안 노이즈를 가정할 때 최대우도로부터 유도될 수 있다는 것을 살펴본 적이 있다.

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2Fe15269e3-b1aa-4617-b646-5b792fae24e3%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2Fe15269e3-b1aa-4617-b646-5b792fae24e3%2Fimage.png)

  • y(x,w)y(\bold x, \bold w)는 결정론적 함수(deterministic)
  • ϵ\epsilon는 가우시안 분포 N(ϵ0,β1)\Nu(\epsilon|0,\beta^{-1})를 따르는 노이즈 확률변수

따라서 tt의 분포는 다음과 같다.

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2F9ae25055-023d-4997-98ea-11de108a7e60%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2F9ae25055-023d-4997-98ea-11de108a7e60%2Fimage.png)

제곱합이 손실함수로 쓰이는 경우(squared loss function), 새로운 x\bold x가 주어졌을 때 tt의 최적의 예측값(optimal prediction)은 tt의 조건부 기댓값임을 앞 강의에서 알아보았다.

tt가 위의 분포를 따르는 경우 조건부 기댓값은 다음과 같다.

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2F51f7aa11-db43-41e9-a33b-8013cc2fb4cf%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2F51f7aa11-db43-41e9-a33b-8013cc2fb4cf%2Fimage.png)

이제 파라미터인 w\bold w를 찾기 위해 최대우도추정법을 사용해보자.

  • 입력값 X=x1,,xN\bold X=\bold x_1, \dots, \bold x_N
  • 출력값은 t=t1,,tN\bold t=t_1, \dots,t_N

우도 함수는

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2Fc054320a-8a2f-4c5d-b538-bf0a1561f42c%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2Fc054320a-8a2f-4c5d-b538-bf0a1561f42c%2Fimage.png)

로그 우도함수는

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2F5524704b-b878-4fe5-9a04-eb52c5f6b837%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2F5524704b-b878-4fe5-9a04-eb52c5f6b837%2Fimage.png)

👉 로그 우도함수를 최대화시키는 w\bold w값은 ED(w)E_D(\bold w)로 주어진 제곱합 에러함수를 최소화시키는 값과 동일하다는 것을 알 수 있다.

w\bold w에 대한 기울기벡터(gradient vector)는

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2F66dbc9e8-2ac4-432c-b5ff-fd87fc2a1212%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2F66dbc9e8-2ac4-432c-b5ff-fd87fc2a1212%2Fimage.png)

따라서 w\bold w의 최적값은

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2F17babf11-c5bf-4f54-bf44-2c91af359869%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2F17babf11-c5bf-4f54-bf44-2c91af359869%2Fimage.png)

⭐ Normal equations 유도하기

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2Fbc97c28a-d3f2-404c-8e82-3902c4bd74a3%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2Fbc97c28a-d3f2-404c-8e82-3902c4bd74a3%2Fimage.png)

💡 하지만 모든 경우에 ϕ\phi의 역행렬이 존재하는 것은 아님!

🔥

  • 하나의 조건을 만족하면 됨 (ϕ\phi 의 모든 열들이 선형독립이면 역행렬이 존재한다.)
  • 항상 성립하는 것은 아니지만 많은 경우에 성립하며, 성립하지 않는 경우 데이터를 조절할 수 있다.

위 식을 normal equations라고 부른다.

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2F6637da1c-3cd6-4416-a577-4888c714b802%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2F6637da1c-3cd6-4416-a577-4888c714b802%2Fimage.png)

Moore-Penrose pseudo-inverse

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2Fb2f5f29a-50df-4c81-bbf5-8a030a49a2f2%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2Fb2f5f29a-50df-4c81-bbf5-8a030a49a2f2%2Fimage.png)

편향 파라미터 (bias parameter) w0w_0

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2F74af0d6c-32e5-486f-8364-a6ed7d02e2b2%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2F74af0d6c-32e5-486f-8364-a6ed7d02e2b2%2Fimage.png)

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2F77e49c01-ab61-4c7d-9f02-2274f15374b4%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2F77e49c01-ab61-4c7d-9f02-2274f15374b4%2Fimage.png)

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2F53d96146-32a6-44cc-bac3-b5ab356ac0bc%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2F53d96146-32a6-44cc-bac3-b5ab356ac0bc%2Fimage.png)

β\beta의 최적값은

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2F743b4ad3-3b52-4222-a87f-ecf8b241a743%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2F743b4ad3-3b52-4222-a87f-ecf8b241a743%2Fimage.png)

최대우도해의 기하학적 의미

  • 벡터의 집합 ({x1,x2,,xn}\{\bold x_1, \bold x_2, \dots, \bold x_n\})에 대한 생성(span)
span({x1,x2,,xn})={v:v=i=1naixi,aiR}\text{span}(\{\bold x_1, \bold x_2, \dots, \bold x_n\})=\Bigg\lbrace\bold v : \bold v=\sum_{i=1}^{n}a_i\bold x_i,a_i\in\R\Bigg\rbrace
  • 행렬의 치역(range)

행렬 ARm×n\bold A\in\R^{m\times n}의 치역 R(A)\bold R(\bold A)A\bold A의 모든 열들에 대한 생성(span)이다.

R(A)={vRm:v=Ax,xRn}\bold R(\bold A)=\lbrace\bold v\in\R^m:v=\bold A\bold x,\bold x\in\R^n\rbrace
  • 벡터의 사영(projection)

벡터 tRm\bold t \in\R^mspan({x1,x2,,xn})(xiRm)\text{span}(\{\bold x_1, \bold x_2, \dots, \bold x_n\})(\bold x_i\in\R^m)으로의 사영(projection)은 span({x1,x2,,xn})\text{span}(\{\bold x_1, \bold x_2, \dots, \bold x_n\})에 속한 벡터 중 t\bold t에 가장 가까운 벡터로 정의된다.

Proj(t;{x1,x2,,xn})=argminvspan({x1,x2,,xn})tv2\text{Proj}(\bold t; \{\bold x_1, \bold x_2, \dots, \bold x_n\})=\text{argmin}_{\bold v\in\text{span}(\{\bold x_1, \bold x_2, \dots, \bold x_n\})}||\bold{t-v}||_2

Proj(t;A)\text{Proj}(\bold t; \bold A)은 행렬 A\bold A의 치역으로의 사영이다. AA의 열들이 선형독립이면,

Proj(t;A)=argminvR(A)tv2=A(ATA)1ATt\text{Proj}(\bold t; \bold A)=\text{argmin}_{\bold v\in R(A)}||\bold{t-v}||_2=\bold {A(A^TA)^{-1}A^Tt}

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2Fadd8cbc1-de3d-4311-8ec0-f7580f322023%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2Fadd8cbc1-de3d-4311-8ec0-f7580f322023%2Fimage.png)

온라인 학습 (Sequential Learning)

데이터가 너무 큰 경우 계산이 힘들어짐 → 여러가지 대안 중 온라인 학습이 있음

가지고 있는 전체 데이터를 한꺼번에 사용하는 것이 아니라 조금씩 나누어서 업데이트 진행

👉 온라인 학습을 이용하면 데이터가 아무리 크더라도 학습을 진행할 수 있다.

Stochastic gradient decent

온라인 학습 방법 중 가장 많이 쓰이는 방법

에러함수가 E=nEnE=\sum_n E_n 이라고 하자.

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2Ff2863cfc-c8c9-4dac-a912-c8e07374a94f%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2Ff2863cfc-c8c9-4dac-a912-c8e07374a94f%2Fimage.png)

제곱합 에러함수인 경우

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2Fb971a730-5884-4afd-abef-a72741daf08d%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2Fb971a730-5884-4afd-abef-a72741daf08d%2Fimage.png)

ϕn=ϕ(xn)\phi_n=\phi(\bold x_n)

(실습) Stochastic gradient decent 이용하여 대규모의 선형회귀

import matplotlib.pyplot as plt
import seaborn as sns; sns.set()
import numpy as np

from sklearn.linear_model import LinearRegression
model = LinearRegression(fit_intercept=True)
N = 1000
M = 3
rng = np.random.RandomState(1)
rng.rand(N, M).shape
X = 10 * rng.rand(N, M)
np.dot(X, [1.5, -2., 1.]).shape
# (1000,)

rng = np.random.RandomState(1)
X = 10 * rng.rand(N, M)
y = 0.5 + np.dot(X, [1.5, -2., 1.])

model.fit(X, y)
print(model.intercept_)
print(model.coef_)
# 0.4999999999999689
# [ 1.5 -2.   1. ]

Normal Equations

import numpy.linalg as LA
normal_equation_solution = LA.inv(X.T@X)@X.T@y
normal_equation_solution
# array([ 1.52825484, -1.96886193,  1.03058857])

Small Memory Normal Equations (Online)

A = np.zeros([M, M])
b = np.zeros([M, 1])

for i in range(N):
    A = A + X[i, np.newaxis].T@X[i, np.newaxis]
    b = b + X[i, np.newaxis].T*y[i]
solution = LA.inv(A)@b
solution
# array([[ 1.52825484],
#        [-1.96886193],
#        [ 1.03058857]])

👉 장점 : 메모리를 적게 사용

SGD(Stochastic Gradient Decent)

w = np.zeros([M, 1])
eta = 0.001
n_iter = 500

for i in range(n_iter):
    i = i % N
    neg_gradient = (y[i] - w.T@X[i, np.newaxis].T) * X[i, np.newaxis].T
    w = w + eta * neg_gradient
w
# array([[ 1.51033015],
#        [-1.93792375],
#        [ 1.0123695 ]])

규제화된 최소제곱법(Regularized Least Squares)

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2Fad751bd3-2718-48a6-aa03-51239f3c3927%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2Fad751bd3-2718-48a6-aa03-51239f3c3927%2Fimage.png)

가장 단순한 형태는

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2Fddddfe3b-7bae-42c4-a594-2f66941b497b%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2Fddddfe3b-7bae-42c4-a594-2f66941b497b%2Fimage.png)

최종적인 에러함수는

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2Fe479be46-c3e0-490f-be94-bf72df61ff52%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2Fe479be46-c3e0-490f-be94-bf72df61ff52%2Fimage.png)

w\bold w의 최적값은

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2Fb65d32bf-e80d-4721-a7f5-9139837e64a0%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2Fb65d32bf-e80d-4721-a7f5-9139837e64a0%2Fimage.png)

일반화된 규제화

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2F0dfe30d8-a927-4ba4-a4f7-27351f9c0f92%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2F0dfe30d8-a927-4ba4-a4f7-27351f9c0f92%2Fimage.png)

Lasso 모델(q=1)q=1)

편향-분산 분해 (Bias-Variance Decomposition)

모델이 과적합되는 현상에 대한 이론적인 분석

제곱합 손실함수가 주어졌을 떄의 최적 예측값

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2F89955f6d-22c1-4734-896c-35b772cffe20%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2F89955f6d-22c1-4734-896c-35b772cffe20%2Fimage.png)

손실함수의 기댓값

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2Fe36fbfcf-2b73-4a15-8bcc-bb41fe982339%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2Fe36fbfcf-2b73-4a15-8bcc-bb41fe982339%2Fimage.png)

제한된 데이터셋 DD만 주어져 있기 때문에 h(x)h(\bold x)를 정확히 알 수는 없다.

대신 파라미터화 된 함수 y(x,w)y(\bold x, \bold w)를 사용하여 최대한 손실함수의 기댓값을 최소화하고자 한다.

제한된 데이터로 인해 발생하는 모델의 불확실성(uncertainty)를 어떻게든 표현해야 한다.

  • 베이시안 방법: 모델 파라미터 w\bold w의 사후확률분포를 계산한다.
  • 빈도주의 방법: 모델 파라미터 w\bold w의 점추정값을 구하고 여러 개의 데이터셋을 가정했을 때 발생하느 ㄴ평균적인 손실을 계산하는 "가상의 실험"을 통해 점추정값의 불확실성을 해석한다.

특정 데이터셋 DD에 대한 손실 L(D)L(D)

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2Fd8f141a0-d106-4d4d-91e0-2935e200d87a%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2Fd8f141a0-d106-4d4d-91e0-2935e200d87a%2Fimage.png)

손실함수의 기댓값은

E[L(D)]={y(x;D)=h(x)}2  p(x)dx+noise\mathbb E[L(D)]=\int\lbrace y(\bold x; D)=h(\bold x)\rbrace^2\;p(x)\text{d}\bold x+\text{noise}

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2F29ad38c4-a5f6-41da-8873-30e75958488c%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2F29ad38c4-a5f6-41da-8873-30e75958488c%2Fimage.png)

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2Faaae4ea4-1a52-44f8-b6d4-1dfb32d76dba%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2Faaae4ea4-1a52-44f8-b6d4-1dfb32d76dba%2Fimage.png)

정리하면

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2Fa7ca6971-2650-4fcb-8025-9a74e814e026%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2Fa7ca6971-2650-4fcb-8025-9a74e814e026%2Fimage.png)

(예제)

h(x)=sin(2πx)h(x)=sin(2\pi x)

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2F9818390f-ebfe-44f4-a0fc-8cb9a9a1596f%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2F9818390f-ebfe-44f4-a0fc-8cb9a9a1596f%2Fimage.png)

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2F3736925d-6222-483b-a22f-0630a01dcfa1%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2F3736925d-6222-483b-a22f-0630a01dcfa1%2Fimage.png)

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2F873a1885-2f18-421f-b466-16c405ff11ef%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2F873a1885-2f18-421f-b466-16c405ff11ef%2Fimage.png)

  • 왼쪽은 여러 데이터 학습 결과
  • 오른쪽에서 빨간선은 yˉ\bar y, 초록선은 h(x)h(x)

👉 λ\lambda 값이 작아질수록 규제화가 적어져 모델의 자유도가 증가함

별개의 테스트 데이터 셋에 대한 결과

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2F4d1b5b05-f419-4fa6-b154-3d7717b2bf46%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2F4d1b5b05-f419-4fa6-b154-3d7717b2bf46%2Fimage.png)

👉

  • 값이 작아질수록(왼쪽으로 갈수록) 편향은 줄어들고, 분산값은 늘어난다.
  • 그리고 이 두개를 합한 값은 적절한 λ\lambda 값에서 최소값을 가지게 된다 → 테스트 에러에 대해서 동일한 지점에서 최소값을 가진다.

🔥 적절한 모델의 자유도를 가질수 있게(적절한 λ\lambda값을 선택) 해야 새로운 데이터에 과적합되지 않는 좋은 모델을 만들 수 있다.

베이시안 선형회귀 (Bayesian Linear Regression)

빈도주의 방법으로 접근하게되면
모델의 불확실성을 나타내기 힘들다 (부자연스럽고 깔끔하지 못하다)

베이시안 방법을 이용하면 좀 더 깔끔하게 나타낼 수 있다.

  • 파라미터 w\bold w의 사전확률을 다음과 같은 가우시안 분포라고 하자.

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2F508a049c-5f51-4938-8d30-64a83619c080%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2F508a049c-5f51-4938-8d30-64a83619c080%2Fimage.png)

📌 복습 (가우시안 분포를 위한 베이즈 정리)

p(x)p(\bold x)p(yx)p(\bold y|\bold x)가 다음과 같이 주어진다고 하자.

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2F570ef642-af69-4a31-ba2c-f396751a49a7%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2F570ef642-af69-4a31-ba2c-f396751a49a7%2Fimage.png)

조건부 확률 p(xy)p(\bold x|\bold y)의 평균과 공분산은 다음과 같다.

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2F3f51906c-2751-4c1a-99cc-43b1fb10c53c%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2F3f51906c-2751-4c1a-99cc-43b1fb10c53c%2Fimage.png)

  • 우도

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2F8e0d2027-1059-4acf-b19f-f38468823152%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2F8e0d2027-1059-4acf-b19f-f38468823152%2Fimage.png)

다음과 같은 사전확률을 사용하면 식이 단순화된다.

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2F729011eb-b20c-42b4-8569-f65d680ac2fd%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2F729011eb-b20c-42b4-8569-f65d680ac2fd%2Fimage.png)

이 경우에 사후확률은

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2F329d0a98-05d4-4977-9e3b-3d1211ee0979%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2F329d0a98-05d4-4977-9e3b-3d1211ee0979%2Fimage.png)

사후확률의 로그값은 다음과 같다.

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2F31974f32-2145-4f15-9b2d-7f08ae886be2%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2F31974f32-2145-4f15-9b2d-7f08ae886be2%2Fimage.png)

👉 사후확률을 최대화시키는 w\bold w 의 값은 규제화가 포함되었을 때 에러를 최소화시키는 값과 같다.

🔥 베이시안 방법이 빈도주의 방법보다 일반적이고 강력한 방법론이다.

예측분포 (Predictive Distribution)

새로운 입력 x\bold x가 주어졌을 때 t\bold t를 예측

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2Fcfec9d52-e941-430d-a4d5-461dc4a95357%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2Fcfec9d52-e941-430d-a4d5-461dc4a95357%2Fimage.png)

![https://velog.velcdn.com/images%2Fleeyongjoo%2Fpost%2F71e87fbb-511f-4417-b3cd-08a5d331062f%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fleeyongjoo%2Fpost%2F71e87fbb-511f-4417-b3cd-08a5d331062f%2Fimage.png)

profile
하나씩 정리하는 개발공부로그입니다.

0개의 댓글