본문 바로가기
전공/딥러닝

[DL] 과적합과 규제 (Overfitting, Regularization)

by mhiiii 2024. 12. 12.
728x90

과적합이란?

 

모델이 학습 데이터에 지나치게 최적화되어, 새로운 데이터(일반화)에 대한 예측 성능이 떨어지는 현상

 

  • 모델이 너무 복잡한 상황
  • 데이터가 적을 경우

 

과적합을 극복하기 위해 다양한 규제 기법을 사용 


규제

일반화 오류를 줄이려는 의도를 가지고 학습 알고리즘을 수정하는 방법

 

티호노프의 규제 기법

 

$$ J_{regularized}(\theta) = J(\theta) + \lambda R(\theta)$$

 

$ J_{regularized}(\theta) $ : 규제를 적용한 목적함수

$J(\theta)$ : 목적함수

$\lambda$ : 규제를 얼마나 유지할 것인가

$R(\theta) $ : 규제항

 

  • 명시적 규제 : 가중치 벌칙, 드롭아웃
    $\to $ 목적함수나 신경망 구조를 직접 수정
  • 암시적 규제 : Early Stopping, Augmentation, 잡음 추가, 앙상블 

1. 가중치 벌칙

 

패널티를 주어 더이상 fitting 금지

 

$J_{regularized}(\theta) = J(\theta) + \lambda R(\theta)$

 

규제항을 두어 loss가 남아있게 함

 

큰 가중치에 벌칙을 가해 작은 가중치를 유지하려고 주로 L2놈이나 L1놈을 사용 

 

  • L2 놈
    모든 가중치 w들의 제곱합을 비용 함수에 추가

    $ J_{regularized}(\theta) = J(\theta) + \lambda \left\| \theta\right\|^2_2$

    $\bigtriangledown J_{regularized}(\theta) = \bigtriangledown J(\theta) + 2\lambda \theta $ 

    매개변수 갱신시, 
    $\theta = \theta - p \bigtriangledown J_{regularized}(\theta) $
    $\theta = \theta -p( \bigtriangledown J(\theta) + 2\lambda \theta) $
    $\theta = (1-2p\lambda )\theta -p \bigtriangledown J(\theta)  $

    예를 들어, (1−2pλ)=0.95라면, 는 5%만큼 줄어듬 
    $\to $ 가중치의 크기를 감쇠시키는 효과
  • L1 놈
    가중치 w들의 절대값 합계를 비용 함수에 추가

    $J_{regularized}(\theta) = J(\theta) + \lambda  \left\| \theta\right\|^1_1$

    $ \bigtriangledown J_{regularized}(\theta) = \bigtriangledown J(\theta)  + \lambda sign(\theta)$
    $\to$ \theta는 상수이기 때문에 미분하게 되면 부호만 남게 됨 

    매개변수 갱신시, 
    $\theta = \theta - p \bigtriangledown J_{regularized}(\theta) $
    $\theta = \theta -p( \bigtriangledown J(\theta) + \lambda sign(\theta)) $
    $\theta = \theta -p \bigtriangledown J(\theta) -p\lambda sign(\theta) $

2. 드롭아웃

 

입력층과 은닉층의 노드 중, 일정 비율을 임의로 선택해 제거 $\to$ 남은 부분만 학습 

 

test 단계에서는 사용하지 않음 

 

 

불린 배열을 사용해 제거 여부 결정 

 

입력층 제거 비율 : 0.2

은닉층 제거 비율 : 0.5 

 

3. Early Stopping

 

검증 집합의 오류가 최저인 점에서 학습을 멈춤

 

 

4. Data Augmentation

 

데이터를 인위적으로 변형하여 확대 

 

728x90