본문 바로가기
  • 適者生存
WorkOut/LG Aimers

LG Aimers | Overfitting & Underfitting (머신러닝 과대적합 & 과소적합)

by lcrvvxln 2024. 7. 23.

📌 Bias & Variance (편향과 분산)

 

기계학습의 정의

 

학습 Data 개수 N개

 

$ S = {(x_i,y_i)}^N_{i=1}$,               $x \in \mathbb{R}^D, y \in$ {-1,+1}

 

▶ x는 input, y는 Desired Output

▶ x는 Multi Dimension인 Vector 형태

▶ y는 Binary Classification (-1/+1)

 

 

Model Class(=Hyper Class) 정의 필요 

 

$h(x|w,b) = w^T x + b$ (Linear model)

 

모델 형식에 따라 내부에 Parameter 존재

 

🔎 Parameter

값이 결정되지 않고 Training Data의 학습을 통해 결정되는 것 

 

 

🔎  Parameter Estimation

학습 Data S에 대해 적합한 w와 b를 찾는 과정

 

 

 

🔎 Loss Function (손실 함수)

 

▶ Model 예측 값과 정답 값이 다를수록 큰 값을 주는 함수 

 

e.g.

The squared loss for regression (회귀문제) : $L(a, b) = (a - b)^2$

0/1 loss for classification (분류문제) : $L(a, b) = 1_{[a \ne b]}$ or $1_{[sign(a) \ne sign(b)]}$ 

▶ 예측 Class가 맞으면 Loss 0, 틀리면 Loss 1

 

 

 

🔎 Optimization (최적화)

 

$argmin_{w, b} = \sum^N_{i=1} L(y_i, h(x_i | w, b))$

 

▶ $x_i$ : 학습데이터 

▶ w, b : Model이 학습 데이터에 대해 예측한 값 

▶ $y_i$ : $x_i$ 에 대한 정답 값 

 

∴ Loss를 Minimize하는 w & b를 찾는 과정 

 

 

Generalization (일반화)

 

학습 데이터로부터 패턴을 배워서 새로운 데이터에 일반화하는 것

 

 

기계학습의 일반화

 

기계학습 알고리즘이 학습한 Data에 대해 New unseen data에 좋은 성능을 보이는 능력

 

학습 데이터의 최적화 과정은 Overfitting(과적합)과 연관되어 있음 

 

기계학습 알고리즘 Fitting 시, 세세하게 설계 한다면 함수적 표현이 복잡해짐

▶ Overfitting 위험성 높음 

 

사소한 것보다 전체적 패턴을 파악한다면 Fitting 함수가 간단함 

▶ 새로운 영역에 대해서도 부드럽게 파악

정확도를 희생하여 일반화 능력을 향상하는 방식

 

 

학습 오차 관점과 일반화 모두를 고려한 설계가 필요

 

 

 

Training Data vs. Test Data

 

  • Universal set : 모든 데이터셋 (= 관측 불가)
  • Training set : Universal set에서 Sampling 된 데이터 (= 관측 가능)
  • Test set : Universal set에서 Sampling 되었지만 Training Set과 다른 Sample 데이터 (= 학습 과정에서 관측 불가)

▶ Training set 과 Test set 간의 Overlap은 없음 

 

 

 

Generalization Error (일반화 오류)

 

 

🔎 True distribution : $P (x, y)$

 

Universal set을 분포로 표현한 것, Data x와 Label y의 모든 상관관계를 표현하고 있는 분포

 

▶ 모든 가능한 경우를 포함하고 있으나 관측이 불가능 

▶ 학습 데이터와 테스트 데이터가 true distribution에서 샘플링됨

 

Assumption : IID (Independent and Identically Distributed)

▶ 데이터 획득 과정이 서로 독립

▶ Sampling 과정상 분포 변화 X (=Stationary)

 

 

학습 데이터 : P(x, y) 로부터 N개의 데이터 Sample

 

 

 

🔎 Generalization Error

 

$\mathcal{L}_p(h) = E_{P(x,y)} [\mathcal{L}(y, h(x))]$

 

 

▶ x, y가 True Distribution($p(x,y)$)을 따를 때, Loss의 평균값 / 기댓값 

 

 

 

🔎 Overfitting 

 

Training Error < Generalization Error

 

▶ 학습 Data에 과하게 적합된 경우 

 

 

 

🔎 Underfitting 

 

Training Error > Generalization Error

 

 

 

Q. Overfitting 과 Underfitting 中 더 안 좋은 것은 무엇인가?

A. Underfitting.

 

Underfitting은 절대 발생하지 않아야 함

▶ 학습을 제대로 못 시킨 경우

 

 

 

 

머신러닝을 잘 학습시키는 방법

 

1. Overfitting을 내는 것 ( = 학습데이터에 대한 오류를 낮추기)

▶학습 데이터에 대해 언제 제일 오류가 적은 지 알아보는 것도 중요

 

2. 과도한 Overfitting을 줄이는 것 

Training Error는 작은데 Validation Error와의 차이가 큰 경우 

Regularization 등을 통해 Training / Validation / Test Error 간의 격차를 줄이기

 

 

 

Model's Capacity (모델 용량)

출처 : 네이버 블로그 _ 예비개발자님

 

 

e.g.

Fitting 과정

Under-fitting : 선형 함수

직선 표현만 가능하며 굴곡을 표현할 수 있는 능력/용량이 없음

▶ Model의 Capacity가 낮아 data의 Curvature 표현 불가

 

Appropriate capacity : 2차 함수

▶ 적절한 Capacity Model

▶ data 없는 부분도 smooth한 표현 가능

 

Overfitting : 9차 함수

▶ 필요 이상의 복잡한 모델 

▶ Model Capacity가 올라갈수록 Training Error는 작아지지만 data 없는 구간의 굴곡이 심해짐

 

 

 

 

Occam's Razor (A Principle of Parsimony)

 

현상을 설명할 수 있는 Model이 여러 개라면 가장 간단한 설명이 맞을 확률이 높다

 

정답에 대한 이야기가 아닌 경험에 의한 설명

▶복잡한 설명이 맞기 위해서는 여러 조건 필요 

 

 

 

Typical Relation between Capacity and Error

 

 

Model Capacity를 높일수록 무조건 Training Error는 감소

But, 목표는 Training Error가 아닌 Generalization Error를 줄이는 것

 

Generalization Error를 모르기 때문에 사용하는 것이 Validation Set, 일반화 오류 예측

 

e.g. Cross-Validation ...

 

Generalization Error는 최적의 Capacity를 기점으로 올라감 

▶ Optimal Capacity 기점 왼쪽은 Underfitting, 오른쪽은 Overfitting 

 

 

 

Regularization (정규화)

 

목적 함수 

$\mathcal{J}(w) = (error) + \lambda w^Tw$

 

학습 데이터에 대해 Loss Function을 정의하고 Loss가 Minimize되도록 정의

 

Training Loss가 최소화되는 w 찾기 

학습 Loss만 쓸 경우, 과적합 위험성이 있으므로 보상을 위한 Term 추가 (Regularization Term)

 

 

$\lambda w^Tw$

차수가 낮을수록 좋음 = 정답이 아닌 확률적 이론

 

Model Capacity가 증가할수록 값이 커지는 Term 사용

Loss & Model Capacity 최소화

 

 

✅ Parameter : 학습을 통해 배우는 변수들

 

✅ Hyperparameter (Tuning Parameter) : 우리가 줘야 하는 parameter

Cross Validation(교차검증) 과정을 통해 결정

 

$\lambda$ parameter의 역할

목적함수가 2가지 Component로 구성되어 있으므로 상대 중요성을 주는 것

▶ $\lambda$가 작으면 1번째 Term에 중요성 부여
▶ $\lambda$를 크게 주면 2번째 Term에 중요성 부여

 

 

정규화의 목적

term을 추가하여 일반화 오류를 낮추는 것 (training error X)

 

다른 항이 추가되었기 때문에 training error는 오히려 안 좋아짐

 

출처 : https://towardsdatascience.com/regularization-what-why-when-and-how-d4a329b6b27f

 

 

위의 예와 동일한 상황으로 9차 모델을 사용할 경우,

 

  • $\lambda$ ▲ = Regularization ▲ =  선형 함수처럼 학습됨
  • Medium $\lambda$ = 모든 데이터에 적절한 Fitting & Smmoth한 함수
  • $\lambda$ ▼ = Regularization = 9차 함수 Fitting과 같이 과적합 발생 

 

💡 좋은 머신러닝 

1. 최적의 Capacity Model 찾기
2. 적절한 Regularization 적용

 

 

 

Bias / Variance Decomposition

 

최적의 기계학습 모델 설계 과정 중 가장 중요한 개념

 

출처 : https://towardsdatascience.com/bias-and-variance-in-linear-models-e772546e0c30

 

 

e.g. 과녁 예제

 

양궁을 잘하기 위해서는 2가지가 필요

 

1) 영점 조절

2) 안정적인 슈팅

 

안정적이지만 영점 조절이 안되는 경우 & 영점은 맞으나 안정적이지 못 한 경우 둘 다 성적 ▼

 

 

🔎  Bias

 

예측에 대한 평균값과 True 값의 차이 

 

 

🔎 Variance

 

예측 평균값과 각각의 예제들간의 거리 제곱에 대한 평균 

 

$E[(x-\mu)^]$

 

▶ x : Random Variable

▶ $\mu$ : x에 대한 평균 

 

 

∴ 화살을 잘 쏘기 위해서는 Bias도 낮고 Variance도 낮아야 함 

 

 

 

 

Trade-off between Bias and Vaiance 

 

(Test Error) = (Bias) + (Variance)

 

테스트 에러를 낮추려면 Bias & Variance 둘 다 낮춰야 함

 

⚠️ Bias 와 Variance 간의 Trade-off 관계

Model의 Bias가 낮으면 Variance가 올라감
반대로, Variance를 낮추면 Bias가 올라감

 

 

Solution.

둘을 동시에 낮추기 위해 사용하는 방식 

 

Ensemble Learning 

 

 

 


 

📌 요약 정리 

 

Overfitting (= High variance)

  • Training Data에 과하게 적합된 상태 (noise까지 적합)
  • Model Unstable
  • Variance 값이 올라감 (= 모델 복잡도가 높음)
  • Variance 감소에 가장 좋은 것은 더 많은 학습 데이터 수집 (= 모든 경우에 대한 data 수집)

▶ Regularization 사용 이유 : 데이터가 충분하지 않아 Preference를 주는 것

 

 

Underfitting (= High bias)

  • 정확하지 않은 모델
  • 모델의 복잡도가 너무 낮아 데이터가 필요로 하는 Curvature(곡률)를 감당하지 못한 경우 
  • Bias를 줄이기 위해서는 Model Complexity를 높이는 것이 좋음
  • Bias는 데이터 수와 상관 없음 (더 많은 데이터를 줘도 나아지지 않음)