과대적합, 규제, Bias-Variance Trade-off

인화·2025년 10월 19일

기계학습

목록 보기
2/6

모델 선택과 과대적합

과소적합과 과대적합

 과소적합(underfitting)이란, 모델이 훈련 데이터를 충분히 학습할 만큼 복잡하지 않고 단순하거나, 학습이 충분히 이뤄지지 않아 데이터에 존재하는 패턴들을 제대로 학습하지 못하는 것을 의미한다. 다시 말해, 훈련 데이터의 복잡도에 비해 모델의 형태가 단순하여 발생하는 문제이다. 이러한 과소적합 문제가 발생한 경우, 모델이 학습 데이터셋(Training Dataset)과 테스트 데이터셋(Test Dataset) 모두 현저히 낮은 성능을 보인다.

 일반적으로 과소적합 문제는 모델의 복잡도가 낮거나, 학습 시간이 부족하거나, Feature Engineering이 미흡하여 발생한다. 따라서 복잡한 모델을 사용하거나, 에폭 수를 증가시켜 더 오래 학습시키거나, Feature Engineering을 보강하는 방법을 통해 해결한다.

 과대적합(overfitting)이란, 모델이 지나치게 복잡해 학습 데이터의 패턴 뿐만 아니라 노이즈까지 학습하여 훈련 데이터가 아닌 다른 데이터에 대해선 일반화 성능이 떨어지는 현상을 의미한다. 이는 훈련 데이터의 복잡도에 비해 모델의 형태가 너무 복잡하여 훈련 데이터의 패턴 뿐만 아니라 노이즈까지 학습한 경우에 발생한다. 이러한 과대적합이 발생한 경우, 모델이 학습 데이터셋(Training Dataset)에서는 성능이 매우 높지만, 테스트 데이터(Test Dataset)에 대해서는 현저히 낮은 성능을 보인다.

 일반적으로 과대적합 문제는 모델의 복잡도가 지나치거나, 데이터의 양이 적거나, 정규화가 부족할 때 발생한다. 따라서 L1, L2 등의 정규화 기법을 적용하거나, Dropout, Early Stopping, Data Augmentation, 모델 단순화 등의 방법들을 통해 해결한다.

 과소적합과 과대적합 모두 일반화 성능이 떨어진다는 점에선 공통점을 지니나, 과소적합은 모델이 너무 단순해 패턴을 제대로 학습하지 못해 발생한 문제를, 과대적합은 모델이 너무 복잡해 훈련 데이터의 패턴과 노이즈까지 모두 학습해 버린 문제를 의미한다는 차이가 있다.

 수능으로 예를 들면, 과소적합은 공부를 하지 않아 교과서 개념도 제대로 못 익혀 기출 문제도 제대로 못 푸는 경우를 의미하고, 과대적합은 모의고사 문제 등 특정 시험에만 맞춰져 새로운 유형이 나오는 실제 수능에선 시험을 잘 못 보는 경우를 의미한다.

Bias-Variance Trade-off

Bias와 Variance

 Bias는 모델의 단순함으로 인한 오차, 다시 말해 모델의 예측값이 실제 값과 얼마나 멀리 떨어져 있는지를 나타내며, Bias가 크다는 것은 모델이 틀린 가정 위에서 학습한다는 것을 의미한다. (ex) 비선형 관계를 가진 데이터를 선형 회귀로 학습하는 것

 Variance는 데이터 변화에 민감하게 반응하는 정도(같은 데이터 분포에서 다른 학습 데이터 샘플을 사용했을 때 모델이 얼마나 다르게 학습되는지)를 의미한다. 다시 말해, 훈련 데이터가 조금만 바뀌어도 모델의 예측값이 크게 변하는 정도, 즉 불안정성을 의미하며, Variance가 크다는 것은 모델이 훈련 데이터에 과하게 민감하다는 것을 의미한다. (ex) 다항식 차수가 매우 높은 모델은 학습 데이터에 대해선 성능이 좋으나, 데이터가 조금만 달라져도 정확도가 낮아지는 과적합 문제가 발생함.

 따라서 Bias가 크면 모델이 너무 단순해 패턴을 제대로 못 잡는 Underfitting 문제가 발생하고, 이로 인해 항상 일정한 방향으로 오차가 남는다. Variance가 크면 모델이 너무 복잡해져 데이터에 들어있는 작은 변화나 노이즈까지 민감하게 반응하는 현상인 Overfitting 문제가 발생하며, 데이터셋이 조금만 바뀌어도 모델의 결과가 크게 달라진다. 이러한 Bias-Variance는 Trade-off 관계에 있으며, 이는 모든 모델의 한계가 된다. 따라서 이를 해결하기 위해선, 두 요소 사이의 균형점을 찾는 것이 중요하다.

Bias-Variance Trade-off

 편향-분산 트레이드오프(Bias-Variance Trade-off)란, 모델이 복잡해질 수록 편향은 감소하고 분산은 증가하는 경향이 있다는 것이다. 다시 말해, 복잡한 모델은 데이터의 노이즈까지 학습하려 하므로 편향은 줄지만(과소적합 감소), 데이터가 조금만 바뀌어도 예측이 크게 변동하여(분산 증가) 과대적합될 위험이 커진다는 것이다. 이러한 상황에서 일반화 성능이 좋은 모델, 다시 말해 테스트 데이터에 대해 높은 성능을 보이는 모델을 만들기 위해선 결국 가능한 작은 바이어스와 낮은 분산을 가지도록 하는 모델을 선택하는 것이 필요하다.

Bias-Variance Trade-off 수식 표현

  • Bias의 제곱은 실제값과 예측값들의 평균의 차이를 의미하며, 낮은 Bias는 평균적으로 우리가 실제값에 근사하게 예측을 수행한다는 것을 의미하며, 높은 Bias는 실제값과 예측값의 평균이 멀리 떨어져있는 poor match를 의미함. (모델의 예측값이 실제 값과 얼마나 떨어져 있는가)
  • Variance는 예측값들의 평균으로부터 특정 예측값이 어느 정도 퍼져있는가를 의미하며, 낮은 Variance는 들어오는 데이터에 따라 예측 값이 크게 바뀌지 않으나, 높은 Variance는 들어오는 데이터에 따라 예측 값이 크게 바뀌므로 poor match를 의미함. (예측 모델의 복잡도)
  • Bias-Variance는 Trade-off 관계이므로, 이 세 가지 값을 다 더한 값이 최소가 되는 모델이 일반화 성능이 좋은 가장 좋은 모델임.
Expected Error=(Bias2)+Variance+σ2Expected  Error = (Bias^2) + Variance + \sigma^2

일반화 성능이 좋은 모델이란?
→ 학습 데이터셋과 테스트 데이터셋에 대한 성능이 비슷한 모델을 의미함.

데이터셋의 구분

  • Training - 모델을 학습할 때 사용하는 데이터
  • Vaildation - 모델 학습 하이퍼파라미터 최적화와 과적합 방지, 모델 학습 중 모델 일반화 성능 검증을 위해 활용되는 데이터
    • 데이터의 양이 부족한 경우, 검증 데이터를 마련하기 어려울 수 있는데, 이 경우 k-fold CV를 활용함.
    • 이는 Training set을 k개의 fold로 나누어 k-1개의 fold를 train set, 1개의 fold를 validation set으로 설정해 모델의 성능을 검증하는 방식을 의미하며, 절차는 다음과 같다.
      1. 데이터를 k개(=fold)로 나눈 뒤, k-1개를 학습용으로 사용하고, 남은 한 개를 검증용으로 사용하여 훈련 및 평가를 진행함. (k-1개로 학습, 1개로 검증)
      2. 이 과정을 fold마다 번갈아 가며 k번 반복함. (모든 데이터가 한 번씩은 검증용으로 사용됨)
      3. 마지막에 k번의 검증 성능을 평균 내어 최종 성능으로 활용함.
  • Test - 실제 평가 시 사용되는 데이터로 최종적으로 모델 성능을 평가하는 데이터이므로 학습에 관여하지 않음.
    • 테스트 데이터는 최종 평가용으로만 활용하고, 모델 학습 과정에는 절대 관여해선 안 된다. 테스트 데이터를 검증 데이터로 활용하지 않는 이유도 이 이유에서이다. 모델 개발 과정에서 테스트 데이터를 검증 용도로 사용하면, 모델이 그 데이터를 직접적으로 학습하지 않았더라도 하이퍼파라미터 최적화나 모델 구조 선택에 간접적으로 활용되어 실제 새로운 데이터에 대한 일반화 성능을 왜곡한다.
    • 테스트 데이터는 반드시 모델이 본 적 없는 완전히 새로운 데이터를 가정하고 평가해야 한다.

파라미터와 하이퍼파라미터의 구분

  • 파라미터 : 모델이 학습하는 변수
  • 하이퍼파라미터 : 학습을 위해 초기에 설정되어야 하는 상수나 변수 (파라미터를 위한 파라미터)

규제

규제란?

 규제(Regularization)란, 모델의 복잡도를 낮추어 과적합을 방지하고 일반화 성능을 향상시키기 위해 사용되는 기법으로, 모델이 학습 데이터에만 특화되지 않고, 일반화가 가능하도록 일종의 규제를 가하는 것을 의미한다. 복잡한 모델은 작은 데이터 변화에도 쉽게 모델이 바뀔 수 있고, 이로 인해 일반화 성능이 떨어지기 때문에 규제를 적용한다. 가장 일반적인 규제 기법으로는 L1 규제(Lasso)와 L2 규제(Ridge)가 있다.

 L1, L2 규제는 모델의 과적합 방지를 위해 사용하는 기술로, 모델의 손실 함수에 각각 L1 Loss Function, L2 Loss Function을 더해 주는 것을 의미한다. 다시 말해, 손실 함수에 패널티 항을 추가하는 것이다.

E(b)new=E(b)org+penaltyE(b)_{new} = E(b)_{org} + penalty

 L1 규제는 손실 함수에 가중치의 절댓값을 더하는 형태를 지닌다. 따라서, 모델이 너무 큰 가중치를 가지면 손실이 커지게 되고, 학습 과정에서 손실을 최소화하기 위해 가중치를 줄이는 방향으로 업데이트가 이루어진다.

 즉, 가중치가 클수록 비용이 커지고, 이를 줄이기 위해 가중치가 0을 향해 수렴하도록 학습된다. 그 결과, 큰 가중치는 억제되고 중요하지 않은 가중치는 완전히 0으로 수렴하여, 과적합이 줄고 더 단순하고 안정적인 모델을 만들 수 있다. (Feature Selection → 모델이 희소(sparse)해져 해석이 쉬워짐)

  • Feature selection : 모델 예측에 불필요한 변수를 제거하는 과정
  • L1 규제에서의 기울기 범위는 [-1, 1], 즉 상수 범위로 일정하다. 따라서 w가 크면 업데이트 되는 w 값이 작아지고, w가 작으면 업데이트 되는 w 값이 커진다. 이러한 이유에 가중치들이 0 근처로 수렴하도록 규제할 수 있다.
Cost=Loss+λi=1nwi\text{Cost} = \text{Loss} + \lambda \sum_{i=1}^{n} |w_i|
w(t+1)=w(t)η(Lossw+λsign(w))w^{(t+1)} = w^{(t)} - \eta \left( \frac{\partial \text{Loss}}{\partial w} + \lambda \cdot \text{sign}(w) \right)

 L2 규제는 손실 함수에 가중치 제곱의 합을 더하는 형태로, 큰 가중치를 더 강하게 억제할 수 있고, 모든 가중치가 조금씩 줄어들어 비슷한 크기의 값으로 퍼지므로(spread out) 파라미터가 분산되는 효과를 얻을 수 있다. 하지만, 가중치의 제곱 값을 활용하기에 L1 Regulazation에 비해 이상치에 더 민감하게 반응한다는 특징이 있다.

Cost=Loss+λi=1nwi2\text{Cost} = \text{Loss} + \lambda \sum_{i=1}^{n} w_i^2
wi(t+1)=wi(t)η(Losswi+2λwi(t))w_i^{(t+1)} = w_i^{(t)} - \eta \left( \frac{\partial \text{Loss}}{\partial w_i} + 2\lambda w_i^{(t)} \right)

참고 )
선형 회귀 모델에서 L1 규제를 주는 것을 Lasso, L2 규제를 주는 것을 Ridge라고 한다.

명시적 규제

 명시적 규제란, 모델에 직접적으로 부하를 주는 기법들을 의미한다.

가중치 감쇠 (Weight Decay)

  • 가중치를 강제로 축소하는 방법 (위에서 말한 L1, L2 와 같규제 항을 추가하는 것)
  • 가중치를 작게 유지함으로써 일반화 능력을 향상시킴.

암시적 규제

 암시적 규제란, 모델에 직접적으로 부하를 주는 것이 아닌, 모델을 조기에 종료하거나, 모델을 여러 개 사용하는 등의 방법들을 의미한다. 모델을 직접적으로 변형시키거나, 부하를 주진 않는 방법, 다시 말해 손실 함수에 명시적인 제약항을 추가하지 않고 모델의 학습 과정이나 구조적 특성으로 일반화를 유도하는 기법이다.

드롭아웃 (Dropout)

 드롭아웃이란, 학습 단계마다 무작위로 일부 뉴런을 비활성화하여 신경망이 특정 뉴런에만 과하게 의존하는 것을 방지하기 위한 기법을 의미한다. 이는 과적합을 줄이고 일반화 성능을 향상시키는 효과가 있는데, 그 이유는 학습 과정에서 특정 가중치/뉴런에 과하게 의존하지 않고, 다양한 경로를 학습할 수 있게 하기 때문이다.

 다시 말해, Dropout은 co-adaptation(신경망에서 특정 뉴런들이 서로 강하게 의존되는 현상)을 방지하는 효과가 있다. 특정 뉴런이 특정 feature만 잘 잡아내서 다른 뉴런이 그 feature를 잡아내지 않고, 다른 역할만 하면 뉴런들이 독립적으로 일반화된 표현을 학습하지 못 하는 현상이 발생할 수 있는데, Dropout은 이를 방지할 수 있고, 이를 통해, 각 뉴런이 다른 뉴런에 과도하게 의존하지 않고 자신만의 독립적 표현을 학습할 수 있다.

Early Stopping

  • 모델이 과적합되기 전 훈련을 멈추는 정규화 기법으로, 모델 훈련 중 검증 데이터의 성능을 모니터링하고, 검증 데이터의 손실이 일정 횟수 동안 개선되지 않으면 학습을 중단함.
  • 다시 말해, 검증 데이터의 오류가 최저인 지점을 만나면 조기에 학습을 종료하는 기법을 의미함. 이를 통해 모델이 훈련 데이터에 과적합되기 전에 일반화 성능이 가장 좋은 지점에서 종료 가능함.

Data Augmentation

  • 학습을 위한 정보의 양을 늘리기 위해/더 많은 특징을 뽑아내기 위해 Data Augmentation 기법을 활용할 수 있으며, 이는 기존의 데이터를 변형하여 새로운 데이터를 생성하는 기법임.

Ensemble

 앙상블 학습의 핵심은 여러 개의 Weak Classifier를 결합해 Strong Classifier를 만드는 것이며, 이를 위해 Bagging이나 Boosting 등의 방법을 활용할 수 있다.

  • Bagging : 샘플을 여러 번 뽑아 각 모델을 학습시켜 결과물을 집계하는 방법, 다시 말해 같은 모델 구조를 여러 번 학습시키되, 데이터를 무작위로 다르게 샘플링해 학습시키는 방
  • Boosting : 가중치를 활용해 Weak Classifier를 Strong Classifier를 만드는 것으로, 모델의 예측 결과에 따라 가중치를 부여하여 다음 모델에 영향을 줌.

  • Voting : 서로 다른 여러 모델의 결과를 결합하는 방법
    • hard Voting : 각 분류기가 뽑은 최종 클래스에 대해 다수결 투표로 결정하는 것
    • Soft Voting : 각 분류기가 예측한 확률을 평균 내고, 그 중 가장 확률이 높은 클래스를 선택하는 것

profile
얼렁뚱땅 바보 학부생...

0개의 댓글