Methods to Prevent Overfitting

chelseey·2025년 4월 10일

Overfitting Problem

  • 과적합 (Overfitting)
    모델이 훈련 데이터의 모든 세부사항, 노이즈까지 학습하여
    실제 새로운 데이터에 대해 예측력이 떨어지는 상태

  • 과소적합 (Underfitting)
    모델이 데이터의 기본 패턴조차 포착하지 못하고 너무 단순하게 학습한 상태

과적합의 주요 원인과 해결

• 데이터 양이 부족한 경우
데이터를 추가로 수집, 데이터 증강(Data Augmentation)

• 모델의 복잡도가 너무 높은 경우

  • feature(변수)가 너무 많을 때
    모델 성능에 크게 기여하는 핵심 feature만 선택해 학습
    (variable selection)

  • 모델의 파라미터(가중치)가 과도하게 클때
    L1, L2 정규화를 통해 파라미터의 크기를 제한 (Regularization)

Model Evaluation

: 모델의 성능을 수치나 지표로 나타내는 과정

손실 함수(Loss Function)를 이용한 평가

• Sum of Squared Error (SSE)

SSE=i=1n(y^(i)y(i))2SSE = \sum_{i=1}^{n} (\hat{y}^{(i)} - y^{(i)})^2

각 예측 값과 실제 값 사이의 오차를 제곱하여 모두 더한 값
오차가 클수록 값이 커짐

• Negative Log Likelihood (NLL)

i=1nlogp(y(i)x(i),θ)-\sum_{i=1}^{n} \log p(y^{(i)} | x^{(i)}, \theta)

모델이 정답일 확률을 얼마나 높게 예측했는지를 평가
모델이 정답에 높은 확률을 부여하면 NLL 값은 낮게 나옴

SST (Sum of Squares Total)
: 전체 데이터가 평균 yˉ\bar{y}를 중심으로 얼마나 흩어져 있는지를 나타냄

SST=i=1n(y(i)yˉ)2SST = \sum_{i=1}^{n} (y^{(i)} - \bar{y})^2

SSR (Regression Sum of Squares)
모델이 예측한 값 y^(i)\hat{y}^{(i)} 이 평균 yˉ\bar{y}로부터 벗어난 정도를 측정

SSR=i=1n(y^(i)yˉ)2SSR = \sum_{i=1}^{n} (\hat{y}^{(i)} - \bar{y})^2

SSE (Sum of Squared Errors)
실제 값 y(i)y^{(i)}과 모델의 예측 값 y^(i)\hat{y}^{(i)} 사이의 차이

SSE=i=1n(y(i)y^(i))2SSE = \sum_{i=1}^{n} (y^{(i)} - \hat{y}^{(i)})^2

세 항의 관계 :

SSR=SSTSSESSR=SST−SSE

결정 계수 R2R^2

: 회귀 모델이 실제 데이터의 변화를 얼마나 잘 예측하는지 백분율로 나타내는 지표

R2=SSRSST=1SSESSTR^2 =\frac{SSR}{SST}= 1 - \frac{SSE}{SST}

R2=1R^2=1 : 모델이 데이터를 완벽하게 설명 (예측 오차가 0)
R2=0R^2=0 : 모델이 평균만큼도 설명하지 못함 (모델의 예측력이 없음)

R2R^2의 문제점

• 모델에 새로운 변수를 추가하면, 설령 그 변수가 실제 설명력이 없더라도 SSE는 줄어들 수 있음

ex. 학생들의 시험 성적 예측 모델
처음에는 학생의 공부 시간만 변수로 사용.
그런데 성적과 아무 상관 없는 학생의 생년월일 같은 변수를 추가하면, 우연히 SSE가 약간 줄어들어 R2R^2가 올라갈 수 있음.
그러나 이 생년월일 변수는 실제 성적 예측에 기여하지 않음.

→ 값은 항상 커지거나 유지되므로, 무조건 성능이 향상된 것처럼 보임

• 불필요한 변수를 추가하면 모델이 복잡해지고 과적합될 위험이 있지만,
R2R^2는 이를 반영하지 못함

Adjusted R2R^2 (조정된 결정 계수)

변수의 개수를 고려해, 실제로 모델의 설명력이 향상되었는지 평가

Adjusted R2=1[n1n(p+1)](1R2)\text{Adjusted } R^2 = 1 - \left[ \frac{n - 1}{n - (p + 1)} \right] (1 - R^2)

n : 데이터 샘플의 개수
p : 모델에 포함된 입력 변수의 수

특징

  • 변수 개수에 따른 패널티
    불필요한 변수를 추가하면 n(p+1){n - (p + 1)} 부분이 작아져 패널티가 증가

  • 실제 설명력 반영:
    새로운 변수가 실제로 모델의 예측력을 향상시키지 못한다면, Adjusted R2R^2는 오히려 낮아짐

ex. Adjusted R2R^2은 변수 개수도 고려하기 때문에, 생년월일 변수를 추가해도 실제로 설명력이 늘었는지 평가하여 R2R^2 값이 오히려 낮아질 수 있음.

AIC (Akaike Information Criterion)

모델의 적합도와 복잡도를 모두 고려하여,
과도하게 많은 파라미터를 가진 모델에 패널티를 부여

AIC=2p2logLAIC = 2p - 2 \log \mathcal{L}

pp: 모델 파라미터 수
L\mathcal{L}: 모델이 데이터를 설명할 확률 (likelihood)

→ 낮은 AIC 값이 더 좋은 모델을 의미

BIC (Bayesian Information Criterion)

AIC와 유사하지만,
데이터 샘플 수를 반영하여 보다 엄격하게 변수 수에 패널티를 줌

BIC=plogn2logLBIC = p \log n - 2 \log \mathcal{L}

nn: 데이터 샘플 수
pp: 모델 파라미터 수

데이터가 많아질수록 logn\log n 항이 커지므로,
변수 추가에 대한 페널티가 AIC보다 더 크게 작용

→ 낮은 BIC 값이 더 좋은 모델을 의미

Variable Selection

: 모델의 성능과 해석력을 높이는 핵심 변수들만 남기는 것

이유

  • 모델 단순화 및 과적합 방지
    너무 많은 변수를 사용하면 모델이 학습 데이터의 노이즈까지 학습하게 되어, 새로운 데이터에서는 성능이 떨어질 수 있음. (Overfitting)

  • 해석 용이성
    핵심 변수만 남기면, 어떤 요인이 결과에 큰 영향을 주었는지 쉽게 파악

  • 계산 효율성 및 비용 절감
    변수의 수가 많으면 모델 학습 및 예측 시 계산 비용이 증가

  • 다중공선성(Multicollinearity) 문제 해소
    서로 강한 상관관계를 가진 변수들이 동시에 포함되면,
    회귀 계수의 추정이 불안정해짐

variable selection 기법

  • Forward Selection
  • Backward Elimination
  • Stepwise Method

Forward Selection

모델에 포함할 변수를 하나씩 점진적으로 추가해 나가는 절차

1. 시작: 빈 모델 (No variables)

처음에는 어떠한 독립 변수도 포함하지 않고,
오직 상수항(Intercept)만 있는 모델로 시작

2. 각 변수의 추가 효과 테스트

• 상수항만 포함된 모델에 아직 포함되지 않은 각 독립 변수를 하나씩 추가

• 후보 변수 각각에 대해 새 모델을 구성한 후,
선택한 비교 기준(AIC,BIC,AdjustedR2AIC, BIC, Adjusted R^2) 을 계산

• 이때 각 모델의 성능을 평가하여,
어떤 변수를 추가했을 때 모델의 성능이 가장 크게 개선되는지 비교

3. 가장 성능을 개선하는 변수 추가

2단계에서 평가한 결과,
모델의 성능을 가장 많이 향상시킨 변수를 선택하여 현재 모델에 추가 (ex. x1x_1)

4. 반복: 더 이상의 개선이 불가능할 때까지

• 새로 추가된 변수를 포함한 모델을 기준으로,
다시 현재 모델에 포함되지 않은 나머지 변수들을 하나씩 추가해 보며,
모델 성능이 개선되는지 확인

• 만약 어떤 변수도 추가했을 때 성능 개선이 나타나지 않는다면,
변수 추가 선택 과정을 종료

Backward Elimination

1. 시작: 전체 변수 모델

처음에는 모든 후보 변수들이 포함된 모델을 사용

2. 각 변수의 제거 효과 테스트

현재 모델에 포함된 각 변수에 대해,
해당 변수를 제거했을 때 모델 성능이 어떻게 변화하는지를 평가

3. 가장 개선 효과가 큰 변수 제거

평가 결과, 특정 변수를 제거했을 때 모델의 성능이 크게 개선된다면,
그 변수를 최종 모델에서 삭제

4. 반복: 더 이상의 개선이 불가능할 때까지

제거 후 남은 변수들을 대상으로 다시 각 변수의 제거 효과를 평가하여
모델 성능이 더 이상 개선되지 않거나,
오히려 나빠지는 경우에는 변수 제거 과정을 중단

Stepwise Selection

Forward Selection과 Backward Elimination의 장점을 결합한 변수 선택 기법

1. 초기 모델 설정

빈 모델(아무 변수도 없는 모델) 또는 모든 변수를 포함한 모델에서 시작

2. 변수 추가 (Forward Step)

모델에 아직 포함되지 않은 변수들 중,
추가했을 때 모델 성능을 가장 개선시키는 변수를 추가

3. 변수 제거 (Backward Step)

변수 추가 후, 현재 모델에 포함된 변수들을 다시 평가하여
특정 변수를 제거했을 때 모델 성능이 개선된다면, 해당 변수를 제거

4. 반복

변수 추가와 제거를 동시에 고려하여, 모델의 예측력이 향상되는 방향으로 진행

5. 종료

더 이상 추가해도 성능 개선이 없고, 제거해도 성능에 악영향을 주는 경우,
변수 선택을 종료

Overfitting Problem

결정 경계와 파라미터 스케일의 관계

결정 경계 w1x1+w2x2+b=0w_1x_1 + w_2x_2 + b = 0
2w1x1+2w2x2+2b=02w_1x_1 + 2w_2x_2 + 2b = 0로 표현해도, 결정 경계는 변하지 않음

→ 결정 경계는 파라미터의 크기에 의존하지 않음

파라미터 크기와 모델의 민감도

결정 경계는 같더라도,
2w1x1+2w2x2+2b=02w_1x_1 + 2w_2x_2 + 2b = 0은 가중치가 두 배로 크기 때문에,
입력값에 작은 변화가 있어도 모델의 출력이 크게 달라질 수 있음

→ Regularization으로 가중치의 크기를 제한하여 모델의 overfitting 방지

Regularization

모델의 파라미터(가중치)가 너무 커지지 않도록 억제하여,
모델이 훈련 데이터의 잡음이나 우연한 패턴까지 학습하지 않도록 함

모델의 최종 손실 함수

L(W)=i=1nL(f(x(i),W),y(i))데이터 손실,+λR(W)RegularizationL(W) = \underbrace{\sum_{i=1}^{n} L(f(x^{(i)}, W), y^{(i)})}_{\text{데이터 손실}}, + \underbrace{\lambda R(W)}_{\text{Regularization}}

λλ : 규제 강도를 조절하는 하이퍼파라미터,
값이 클수록 규제 효과가 강해져 모델이 더 단순해지며,
값이 작으면 규제 효과가 약해져 모델이 복잡해질 수 있음

데이터 손실 항과 Regularization 항이 각각 모델의 성능과 일반화 능력을 결정

L2 Regularization

가중치 제곱의 합을 손실 함수에 추가하여 큰 값의 가중치에 패널티를 부여

L(W)=i=1nL(f(x(i),W),y(i))데이터 손실+λW22RegularizationL(W) = \underbrace{\sum_{i=1}^{n} L(f(x^{(i)}, W), y^{(i)})}_{\text{데이터 손실}} + \underbrace{\lambda \|W\|_2^2}_{\text{Regularization}}

λW22\lambda \|W\|_2^2 : 모든 가중치 제곱의 합에 λ를 곱한 것, 큰 가중치에 패널티를 부여

Ridge Regression

일반 선형 회귀의 손실 함수에 L2 정규화 항을 추가한 형태

Wridge=argminWi=1n(y(i)w0k=1pwkxk(i))2SSE+λk=1pwk2W^{\text{ridge}} = \underset{W}{\arg \min} \underbrace{\sum_{i=1}^{n} \left( y^{(i)} - w_0 - \sum_{k=1}^{p} w_k x_k^{(i)} \right)^2}_{\text{SSE}} + \lambda \sum_{k=1}^{p} w_k^2

L1 Regularization

모델의 모든 가중치의 절댓값을 더한 값을 손실 함수에 추가하여
모델의 불필요한 가중치를 줄이고 일부는 0으로 만드는 기법

L(W)=i=1nL(f(x(i),W),y(i))데이터 손실+λW1RegularizationL(W) = \underbrace{\sum_{i=1}^{n} L(f(x^{(i)}, W), y^{(i)})}_{\text{데이터 손실}} + \underbrace{\lambda \|W\|_1}_{\text{Regularization}}

Lasso (Least Absolute Shrinkage and Selection Operator)

선형 회귀 모델에 L1 정규화를 추가하여,
불필요한 변수의 가중치를 0으로 만들어 자동으로 변수 선택 효과를 가져옴

Wlasso=argminWi=1n(y(i)w0k=1pwkxk(i))2SSE+λk=1pwkW^{\text{lasso}} = \underset{W}{\arg \min} \underbrace{\sum_{i=1}^{n} \left( y^{(i)} - w_0 - \sum_{k=1}^{p} w_k x_k^{(i)} \right)^2}_{\text{SSE}} + \lambda \sum_{k=1}^{p} |w_k|

Ridge vs. Lasso

• RSS (Residual Sum of Squares)
: 실제 값 y(i)y^{(i)}와 모델의 예측 값 y^(i)\hat{y}^{(i)} 사이의 차이를 제곱하여 모두 더한 값

RSS=i=1n(y(i)y^(i))2RSS = \sum_{i=1}^{n} (y^{(i)} - \hat{y}^{(i)})^2

• RSS 등고선(contour)
: 동일한 RSS 값을 가지는 점들의 선
→ 중심에 가까울수록 RSS 값이 작고, 멀어질수록 값이 커짐

• 최적해
데이터에 대한 예측 오차(RSS)가 최소가 되는 모델 계수(파라미터 벡터)의 조합,
제약 조건 영역과 RSS 등고선이 만나는 지점

• 제약 조건 영역 (Constraint Region)
Regularization) 기법을 적용할 때,
파라미터 값들이 가질 수 있는 범위를 제한하는 영역을 의미

  • L2 정규화 (Ridge Regression)
    β12+β22s\beta_1^2 + \beta_2^2 \le s

  • L1 정규화 (Lasso Regression)
    β1+β2s|\beta_1| + |\beta_2| \le s

→ Lasso의 마름모 모양 제약 조건 영역은 뾰족한 꼭짓점을 가지고 있기 때문에,
RSS 등고선이 제약 영역의 경계와 만날 때 최적해가 이러한 꼭짓점,
즉 한 계수가 정확히 0인 위치에서 발생할 가능성이 높음

공통점: 가중치 축소 (Shrinkage)

손실 함수에 추가 패널티 항을 넣어 가중치의 크기를 줄임

차이점

Lasso 회귀는 모델의 일부 계수를 정확히 0으로 만듦.
→ 모델이 sparse 해지며, 중요하지 않은 변수들은 자동으로 제거됨

Bayesian Probabilities

빈도주의(Frequentist) 관점

: 확률을 어떤 사건이 반복되는 trials에서 특정 결과가 발생하는 비율(빈도)로 해석

반복된 실험에서 얻은 결과(빈도)에 지나치게 의존하여,
데이터가 가지는 우연적 특징(노이즈)에 overfitting)할 위험 존재

실제로 반복하기 어려운 상황이나 샘플 수가 적은 상황에서는 빈도주의 해석이 직관적으로 맞지 않을 수 있음

베이즈(Bayesian) 관점

: 확률을 어떤 사건(가설)에 대한 불확실성(uncertainty)의 정도로 해석

사건이 실제로 일어날 가능성을 숫자로 표현
prior knowledge를 확률 모델에 반영할 수 있음
새로운 정보(데이터)가 들어올 때마다 사후확률(posterior)을 업데이트 가능

: 사후확률(posterior)은 likelihood와 사전확률(prior)의 곱에 비례

Curve Fitting Problem

p(wD)=p(Dw)p(w)p(D)p(w∣D) = \frac{p(D∣w) \cdot p(w)}{p(D)}

p(w) : w에 대해 미리 가지고 있는 가정 (ex.곡선의 특정 형태)
p(D∣w) : w로 인해 만들어진 곡선이 데이터를 얼마나 잘 설명하는지 → MAP
p(w∣D): 실제 관측된 데이터를 본 뒤, w에 대한 가정을 갱신한 결과 → MLE

Maximum A Posteriori Estimation (MAP)

베이즈 정리의 관점에서,
주어진 데이터에 대해 파라미터 θ의 사후 확률
p(θ∣x,y)를 최대화하는 값을 찾는 방법

• 오차 가정

e=(y(i)fθ(x(i)))N(0,σ12)e = (y^{(i)} - f_\theta(x^{(i)})) \sim \mathcal{N}(0, \sigma_1^2)

데이터 x(i)x^{(i)}를 모델 fθf_\theta에 넣었을 때 예측값과 실제 값 y(i)y^{(i)}의 차이는
정규분포(평균 0, 분산 σ12\sigma_1^2)를 따른다고 가정

• Likelihood (우도)

p(yx,θ)=i=1n12πσ12exp((y(i)fθ(x(i)))22σ12)p(y|x, \theta) = \prod_{i=1}^{n} \frac{1}{\sqrt{2\pi\sigma_1^2}} \exp \left( -\frac{(y^{(i)} - f_\theta(x^{(i)}))^2}{2\sigma_1^2} \right)

• Prior (사전 확률)

p(θ)=j=1m12πσ22exp(θj22σ22)p(\theta) = \prod_{j=1}^{m} \frac{1}{\sqrt{2\pi\sigma_2^2}} \exp \left( -\frac{\theta_j^2}{2\sigma_2^2} \right)

• Bayes 정리로 사후 확률 표현

p(θx,y)=p(yx,θ)p(θ)p(x,y)p(yx,θ)p(θ)p(\theta|x, y) = \frac{p(y|x, \theta)p(\theta)}{p(x, y)} \propto p(y|x, \theta)p(\theta)

: p(x,y)는 θ에 의존하지 않으므로 상수 취급

•p(θ∣x,y)를 최대화하는 θ

θ^MAP=argmaxθlog(p(yx,θ)p(θ))\hat{\theta}^{MAP} = \underset{\theta}{\arg \max} \log (p(y|x, \theta) p(\theta))

MAP,Ridge 회귀의 동일한 수식적 형태

→ MAP 추정에서 사전 분포를 정규분포로 가정하면,
그 결과로 나온 최적화 문제는 Ridge 회귀의 손실 함수와 동일
: 오차의 분산과 파라미터 분산의 비율이 정규화 계수 λλ로 작용
이때 λ=σ12σ22\lambda = \frac{\sigma_1^2}{\sigma_2^2}

0개의 댓글