📌 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는 오히려 안 좋아짐
위의 예와 동일한 상황으로 9차 모델을 사용할 경우,
- $\lambda$ ▲ = Regularization ▲ = 선형 함수처럼 학습됨
- Medium $\lambda$ = 모든 데이터에 적절한 Fitting & Smmoth한 함수
- $\lambda$ ▼ = Regularization ▼ = 9차 함수 Fitting과 같이 과적합 발생
💡 좋은 머신러닝
1. 최적의 Capacity Model 찾기
2. 적절한 Regularization 적용
Bias / Variance Decomposition
최적의 기계학습 모델 설계 과정 중 가장 중요한 개념
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는 데이터 수와 상관 없음 (더 많은 데이터를 줘도 나아지지 않음)
'WorkOut > LG Aimers' 카테고리의 다른 글
LG Aimers | Supervised Learning (지도학습) (11) | 2024.07.24 |
---|---|
LG Aimers | LLM (Large Language Models; 초거대 언어모델) (0) | 2024.07.24 |
LG Aimers | Machine Learning 개론 (9) | 2024.07.22 |
LG Aimers | Convex Optimization (볼록 최적화) (6) | 2024.07.22 |
LG Aimers | Matrix Decomposition (행렬 분해) (1) | 2024.07.19 |