1 · 소개
주어진 데이터에서 어떤 특정한 패턴을 찾아내는 것은 아주 중요한 문제이다. 이 문제에 대해 인류는 오랜 시간 동안 답을 구해왔으며, 성공적으로 패턴을 찾아내곤 했다. 요하네스 케플러Johannes Kepler는 티코 브라헤Tycho Brahe가 16세기에 관찰하여 축적해 놓은 대량의 천문학 데이터에서 패턴을 찾아내어 케플러의 행성 운동 법칙을 발견했다.

1.1 다항식 곡선 피팅
- 아래와 같은 다항식을 이용한 회귀regression 문제를 생각하자.
은 이 다항식의 차수order이며, 계수 을 모아 벡터 로 표현한다.- 다항 함수
는 에 대해서는 비선형이지만, 계수 에 대해서는 선형이다. - 다항식을 훈련 집합training set 데이터에 피팅fitting하여 계수 값을 정한다.
- 표적값target
와 함숫값 의 오차를 측정하는 오차 함수error function를 정의하고, 이를 최소화한다. - 자주 쓰는 오차 함수는 각 데이터 포인트에서 예측치와 표적값의 차이를 제곱해 합산한 것이다.
- 표적값target
- 이 값은 항상 양수이며, 함숫값이 정확히 표적값을 지날 때만
이 된다.

그림 1.3 · 오차 함수는 각 데이터 포인트의 함숫값(적색 선)과 실제 표적값(청색 점) 간 오차(녹색 선)의 제곱의 합이다.
는 계수에 대한 이차 형태이므로, 미분하여 으로 두면 유일한 최소해 를 얻는다.- 남은 문제는 차수
을 정하는 것으로, 모델 선택model selection 문제에 해당한다.




그림 1.4 · 청색 점은 삼각 함수(녹색 선)에 노이즈noise가 더해진 값이며, 다양한 차수에 따른 피팅 곡선(적색 선)이 그려져 있다.
- 상수(
)·일차( )는 피팅이 잘 안 되고, 삼차( )는 적절히 표현한다. - 차수를 높이면(
) 훈련 집합을 완벽히 피팅하여 이지만, 곡선이 심하게 진동하며 삼각 함수를 표현하지 못한다. 이것이 과적합overfitting의 예다. - 과적합을 막는 대표적 기법이 정규화regularization이다. 오차 함수에 계수 크기를 억제하는 페널티항을 더한다.
- 여기서
이고( 은 종종 제외), 가 정규화항의 상대적 중요도를 정한다. - 이 방식을 수축법shrinkage method 또는 리지 회귀ridge regression라 하며, 신경망 관점에서는 가중치 감쇠weight decay라 한다.


그림 1.7 ·
실습 · 다항식 곡선 피팅과 과적합
아래 코드로 차수
import numpy as np
rng = np.random.default_rng(0)
N = 10
x = np.linspace(0, 1, N)
t = np.sin(2*np.pi*x) + 0.15*rng.standard_normal(N) # sin(2πx) + 노이즈
def fit(x, t, M, lam=0.0):
Phi = np.vander(x, M+1, increasing=True) # [1, x, ..., x^M]
return np.linalg.solve(Phi.T @ Phi + lam*np.eye(M+1), Phi.T @ t)
def rmse(x, t, w):
Phi = np.vander(x, len(w), increasing=True)
return np.sqrt(np.mean((Phi @ w - t)**2))
print("차수 M별 훈련 RMSE (정규화 없음):")
for M in [0, 1, 3, 9]:
w = fit(x, t, M)
print(f" M={M}: train RMSE={rmse(x,t,w):.4f}, ||w||={np.linalg.norm(w):.1f}")
print("\nM=9에서 정규화 λ의 효과:")
for lam in [0.0, 1e-6, 1e-2]:
w = fit(x, t, 9, lam)
print(f" λ={lam:<6g}: ||w||={np.linalg.norm(w):10.1f}, train RMSE={rmse(x,t,w):.4f}")
print("\nM=9·λ=0은 점 10개를 완벽 피팅(RMSE≈0)하지만 ||w||가 폭발 → 과적합.")
print("정규화(λ↑)가 계수 크기를 억제해 과적합을 완화한다.")1.2 확률론
확률의 기본 법칙
- 곱의 법칙과 대칭성
으로부터 베이즈 정리Bayes' theorem를 얻는다.
를 사전 확률prior probability(관찰 전), 를 사후 확률posterior probability(관찰 후)이라 한다.
1.2.1 확률 밀도
- 연속 공간에서 변수
가 구간의 값을 가질 확률이 로 주어지면, 를 의 확률 밀도probability density라 한다. 가 구간의 값을 가질 확률과 밀도의 조건은 다음과 같다.
가 에 속할 확률은 누적 분포 함수cumulative distribution function 로 표현한다. 가 이산 변수일 경우 를 확률 질량 함수probability mass function라 부르기도 한다.
1.2.2 기댓값과 공분산
- 밀도
하에서 함수 의 평균을 기댓값expectation 라 한다.
개의 데이터 포인트로는 으로 근사한다. 조건부 분포에 대한 조건부 기댓값conditional expectation도 비슷하게 정의된다. 의 분산variance과 두 변수의 공분산covariance은 다음과 같다.
- 공분산은
와 가 얼마나 함께 변동하는지의 지표이며, 두 변수가 벡터이면 공분산은 행렬 이 된다.
1.2.3 베이지안 확률
- 확률을 '반복 가능한 사건의 빈도수'로 해석하는 것을 빈도적frequentist 관점이라 한다. 이 경우 한 번도 관찰하지 못한 사건에 확률을 부여하기 어렵다.
- 확률로 불확실성을 정량화하고 증거가 주어질 때마다 수정하는 관점을 베이지안Bayesian 관점이라 한다. 데이터 관측 전
에 대한 가정을 사전 분포 로, 관측 데이터 를 로 두면
는 매개변수parameter 의 함수로 볼 때 가능도 함수likelihood function라 하며, 관측된 데이터가 얼마나 '그럴듯한지'를 나타낸다.- 빈도적 관점의 대표 추정값이 최대 가능도maximum likelihood이다. 기계학습에서는 음의 로그 가능도negative log-likelihood를 오차 함수로 쓰며, 로그가 단조 증가하므로 가능도 최대화와 오차 최소화가 동일하다.
1.2.4 가우시안 분포
- 정규 분포normal distribution(=가우시안 분포Gaussian distribution)는 단일 변수
에 대해 다음과 같다.
- 평균mean
와 분산variance 의 두 매개변수로 정해진다. 는 표준 편차standard deviation, 는 정밀도precision이다. 차원 벡터 에 대한 가우시안 분포는 다음과 같다( 는 평균, 는 공분산 행렬, 는 행렬식).
1.2.5 곡선 피팅
- 곡선 피팅의 목표는 입력
과 표적값 이 주어질 때, 새 입력 에 대한 를 예측하는 것이다. (가우시안 변수 와 구분하기 위해 로 표기.) 가 를 평균으로 갖는 가우시안을 따른다고 가정하면

그림 1.16 ·
- 최대 가능도로
와 를 구한다. 가능도 에 로그를 취하면
을 구하는 것은 뒤 두 항과 가 무관하므로, 결국 제곱합 오차 식 (1.2)를 최소화하는 것과 같다.- 정밀도의 최대 가능도 해는
이다. - 예측은 점 추정이 아니라 예측 분포predictive distribution
로 표현된다. - 나아가 계수
에 사전 분포를 도입한다(단순화를 위해 가우시안).
처럼 모델 매개변수의 분포를 제어하는 변수를 초매개변수hyperparameter라 한다.- 베이즈 정리로 사후 분포는
이며, 이를 최대화하는 방식을 최대 사후 분포maximum a posterior라 한다. - 전개하면 사후 분포 최대화는
의 최소화, 즉 정규화 매개변수 인 정규화 제곱합 오차 식 (1.3)의 최소화와 동일하다.
1.2.6 베이지안 곡선 피팅
- 최대 사후 분포도 여전히
의 점 추정이므로 완전한 베이지안은 아니다. 완전한 베이지안은 모든 에 대해 적분하여 주변화한다.
- 이 적분을 수행하면 예측 분포가 가우시안
로 주어지고, 평균과 분산은
- 여기서
이고 이다. - 식 (1.33)의 첫 항은 표적값 노이즈로 인한 불확실성, 마지막 항은
의 불확실성으로 인한 것으로 베이지안 접근의 산물이다.
1.3 모델 선택
- 훈련 집합의 좋은 성능이 좋은 예측 성능을 보장하지 않는다(과적합).
- 일부 데이터로 여러 모델·매개변수를 학습하고 독립적인 검증 집합validation set에서 비교·선택하며, 최종 성능은 별도의 시험 집합test set으로 판단한다.
- 대표 방법이 교차 검증법cross validation으로, 전체 데이터를
등분해 로 훈련하고 나머지로 검증하는 것을 -접힘S-fold 교차 검증법이라 한다.

그림 1.18 ·
1.4 차원의 저주
- 실제 문제는 입력이 하나가 아니라 여러 변수로 이루어진 고차원 공간을 다룬다.
개의 입력에 대해 3차 다항식은
가 커질수록 계수 수가 에 비례해 증가하고, 차 다항식은 에 비례한다.- 고차원에서 발생하는 문제를 차원의 저주curse of dimensionality라 한다. 다만 실제 고차원 데이터는 유의미한 차원 수가 제한적이고, (적어도 지역적으로) '매끈한' 특성을 가져 효과적인 학습이 가능하다.
1.5 결정 이론
- 불확실성이 존재하는 상황에서 최적의 의사 결정을 위해 결정 이론decision theory을 사용한다. 엑스레이 이미지
로 암 여부 를 판단하는 진단 문제를 생각하자(암이면 , 아니면 ). - 베이즈 정리로 각 클래스의 사후 확률을 구한다.
는 이미지 확인 전의 사전 확률, 는 이미지 정보를 반영한 사후 확률이다.
1.5.1 오분류 비율의 최소화
- 잘못된 분류의 수를 줄이려면 입력 공간을 결정 구역decision region
로 나누는 규칙이 필요하다. 구역 사이 경계를 결정 경계decision boundary라 한다. - 두 클래스에서 오류 확률은
- 이를 최소화하려면 각
를 결합 확률이 더 큰 클래스, 즉 사후 확률 가 최대인 클래스에 할당하면 된다.

그림 1.24 · 결정 경계에 따른 두 클래스의 결합 확률. 최적 경계
1.5.2 기대 손실의 최소화
- 오분류 수를 줄이는 것보다 복잡한 경우가 많다(암 환자를 정상으로 오진하는 실수가 그 반대보다 훨씬 심각).
- 손실 함수loss function(=비용 함수cost function)
를 도입한다(클래스 를 로 오분류할 때의 페널티). 목표는 평균 손실 최소화이다.
- 구역
를 적절히 선택해 식 (1.38)을 최소화한다.
1.5.3 거부 옵션
- 사후 확률들이 비슷해 확신이 낮은 구역에서는 결정을 피하는 것이 적절할 수 있으며, 이를 거부 옵션reject option이라 한다. 임계값
를 두어, 최대 사후 확률이 이하이면 결정을 거부한다.
1.5.4 추론과 결정
- 분류 문제는 두 단계로 나뉜다: 추론 단계inference stage(사후 확률
학습)와 결정 단계decision stage(사후 확률로 최적 클래스 할당). 에서 결정값을 직접 돌려주는 함수를 판별 함수discriminant function라 한다. - 결정 문제의 세 가지 접근:
- 생성 모델generative model — 조건부 밀도
와 사전 를 구해 베이즈 정리로 사후 확률을 얻는다. 주변 밀도 도 얻지만 자원 요구가 크다. - 판별 모델discriminative model — 사후 확률
를 직접 모델링한다. 결정만이 목표일 때 더 효율적이다. - 판별 함수 — 확률 없이 입력을 클래스로 직접 사상한다. 가장 간단하지만 사후 확률의 장점을 잃는다.
- 생성 모델generative model — 조건부 밀도
1.6 정보 이론
- 이산 변수
가 갖는 정보량은 '놀라움의 정도'로, 일어나기 힘든 사건일수록 정보량이 크다. 정보량 함수는
- 독립인 두 사건이 함께 일어날 때 정보량은 합, 확률은 곱이므로 정보량은 확률의 로그에 해당한다.
- 전송에 필요한 평균 정보량이 확률 변수
의 엔트로피entropy이다.
대신 을 쓰면 단위가 비트bit 대신 내트nat가 된다. 개의 물체를 통에 넣는 총 가짓수를 다중도multiplicity 라 한다. 엔트로피는 다중도의 로그로, 스털링 근사Stirling's approximation 을 적용하면
- 통 안 물체의 순서를 미시 상태microstate, 통별 물체 수 비율을 거시 상태macrostate라 하며,
를 거시 상태의 가중치weight라 한다.
연습문제
문제 1.1 · 제곱합 오차의 정규방정식
식 (1.2)의 제곱합 오차 함수에 식 (1.1)의
풀이.
전개하면
이 되어 주어진 정규방정식을 얻는다. (
문제 1.2 · 상자와 과일 (베이즈 정리)
세 상자 r, b, g가 있다. r에는 사과 3·오렌지 4·라임 3, b에는 사과 1·오렌지 1, g에는 사과 3·오렌지 3·라임 4가 들어 있다. 상자 선택 확률은
풀이. 합의 법칙
베이즈 정리로
p_box = {'r': 0.2, 'b': 0.2, 'g': 0.6}
counts = {'r': (3, 4, 3), 'b': (1, 1, 0), 'g': (3, 3, 4)} # (사과, 오렌지, 라임)
def p_fruit(box, idx):
c = counts[box]
return c[idx] / sum(c)
p_apple = sum(p_box[b]*p_fruit(b, 0) for b in p_box) # 사과
p_orange = sum(p_box[b]*p_fruit(b, 1) for b in p_box) # 오렌지
p_g_orange = p_box['g']*p_fruit('g', 1) / p_orange # 베이즈 정리
print(f"P(사과) = {p_apple:.3f}")
print(f"P(오렌지) = {p_orange:.3f}")
print(f"P(상자=g | 오렌지) = {p_g_orange:.3f}")문제 1.3 · 가우시안 적분과 정규화
풀이. 제곱을 이중적분으로 쓰고 극좌표
따라서
문제 1.4 · 감마 함수
풀이. 부분적분
경계항은