Recent Posts
Recent Comments
Archives
반응형
250x250
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Today
Yesterday

Total
05-19 00:00
관리 메뉴

Hey Tech

과대적합(overfitting) 및 과소적합(underfitting) 개념(+Early Stopping) 본문

AI & 빅데이터/머신러닝·딥러닝

과대적합(overfitting) 및 과소적합(underfitting) 개념(+Early Stopping)

Tony Park 2021. 8. 9. 18:14
728x90
반응형

📚 목차

1.  개념
    1.1.  과대적합(Overfitting)이란?
    1.2.  과소적합(Underfitting)이란?
2.  탐지
    2.1.  분산과 편향 기반 탐지
    2.2.  산점도 그래프 기반 탐지
    2.3.  모델 복잡도 및 손실함수 기반 탐지
        2.3.1.  과소적합 발생 구간
        2.3.2.  과대적합 발생 구간
        2.3.3.  최적의 모델 적합 포인트
3.  과대적합 방지방법: 학습 조기종료(Early Stopping)

1.  개념

1.1.  과대적합(overfitting)이란?

과대적합(overfitting)이란 머신러닝 모델을 학습할 때 학습 데이터셋에 지나치게 최적화하여 발생하는 문제입니다. 즉, 모델을 지나치게 복잡하게 학습하여 학습 데이터셋에서는 모델 성능이 높게 나타나지만 정작 새로운 데이터가 주어졌을 때 정확한 예측/분류를 수행하지 못합니다.

 

아래 그림 1 내 좌측 그림 과 같이 어떤 지식/데이터가 주어졌다고 가정해 보겠습니다. 그림  1 내 가운데 그림 과 같이 경험적으로 어떤 관계/구조가 있다고 할 수 있습니다. 하지만, 만일 그림  1 내 우측 그림 과 같이 주어진 데이터를 특정한 조건/구조를 지나치게 반영하면 고양이나 강아지 그림이라고 창의적으로(creatively) 판단할 수도 있게 만듭니다. 이처럼 데이터셋의 특정 조건이나 구조를 과도하게 최적화하면 과대적합이 발생하게 됩니다.

 

그림 1. 과대적합 예시 그림 출처: https://c11.kr/r696

 

1.2.  과소적합(underfitting)이란?

과소적합(underfitting)이란 과대적합의 반대 개념으로서 머신러닝 모델이 충분히 복잡하지 않아(최적화가 제대로 수행되지 않아) 학습 데이터의 구조/패턴을 정확히 반영하지 못하는 문제입니다.

2.  탐지

이번 절에서는 과대적합과 과소적합의 발생여부를 탐지하는 방법 3가지를 각각 소개해 드립니다.

2.1.  분산과 편향 기반 탐지

아래 그림 2 를 통해 과대적합과 과소적합을 더욱 직관적으로 이해해 보죠. 분산(variance)✅ 편향(bias)에 따라, 즉 2X2개의 둥근 과녁이 있습니다. 과녁마다 빨간색 원이 target이고 파란색 작은 점이 하나의 데이터를 의미합니다.

 

분산이란?

더보기

분산(variance)은 데이터셋 내 데이터가 얼마나 퍼져 있는지를 나타내는 척도입니다.

 

편향이란?

더보기

편향(bias)은 데이터가 target으로부터 떨어져 있는 정도를 나타냅니다.

 

4개의 과녁은 분산의 크기에 따라 좌우로 구분할 수 있고 편향의 크기에 따라 위아래로 구분할 수 있습니다. 먼저, 우측 상단의 과녁은 데이터가 target 근처에 잘 모여서 분포해 있다는 점에서 최적의(optimal) 솔루션이겠죠? 다음으로, 좌측 상단의 과녁은 데이터가 target에 어느정도 모여 있어 편향이 낮지만 데이터가 많이 흩어져 있어 분산이 높은 경우로, 과대적합(Overfitting)이라고 합니다. 반면, 우측 하단 청녹색 박스는 데이터가 잘 모여있어 분산은 낮지만 데이터들이 target과는 거리가 멀어 편향이 높은 경우로, 과소적합(Underfitting)이 발생했다고 합니다.

그림 2. 데이터 분산과 편향에 따른 과대적합 및 과소적합 구분 원본 출처: https://c11.kr/r695

 

2.2.  산점도 그래프 기반 구분

아래 그림 3 과 같이 X와 O를 구분하는 이진 분류 문제를 예시로 들어보겠습니다. 먼저 그림 3 내 좌측의 경우와 같이 분류 모델이 지나치게 단순하면 데이터 간의 특성을 구분하기가 어려워 과소적합이 발생합니다. 반대로 그림 3 내 우측의 경우에는 주어진 학습 데이터를 과도할 정도로 정확하게 구분하는 복잡한 모델을 적합한 것으로, 결정 경계선(decision boundary) 근처에 새로운 데이터가 주어지면 오분류의 가능성이 높아지게 되는 과대적합이 발생하는 경우입니다. 

 

그림 3. 산점도 그래프 기반 과대적합 및 과소적합 구분 그림 출처: https://c11.kr/r6ej

 

따라서 모델의 최적 성능을 보장하기 위해서는 그림 3 내 가운데의 경우처럼, 일부 오분류된 클래스의 데이터를(그림 3 내 클래스 'X' 데이터) 잡음(noise)으로 간주하되 나머지 데이터를 정확하게 분류할 수 있어야 합니다. 더불어, 과대적합 및 과소적합을 방지하기 위해 모델을 지나치게 복잡/단순하지 않도록 적합하는 것이 중요합니다.

2.3.  모델 복잡도 및 손실함수 기반 탐지

그림 4. 모델 복잡도와 모델 성능 에러에 따른 과대/과소적합 구분 그림 출처: https://c11.kr/r6da

 

위의 그림 4 와 같이 모델 복잡도와 손실함수에 따라 과소적합과 과대적합이 발생하는 구간을 확인할 수 있습니다. 여기서 Error는 모델 학습에 있어서 궁극적인 목푯값인 손실함수를 의미합니다. 여기서 x축은 모델의 복잡도이며 단순히 epoch 수가 아니라는 점 기억해 주세요!

 

손실함수란?

더보기

데이터의 실젯값과 학습한 모델을 기반으로 추정한 예측값 간의 오차를 의미합니다.

2.3.1.  과소적합 발생 구간

먼저 모델이 단순할 때부터 살펴보겠습니다. 모델이 지나치게 단순하면 학습을 진행해도 학습 데이터의 특성을 제대로 반영하기 어렵기 때문에 train loss는 높게 나타납니다. 모델의 학습이 잘 수행된다는 가정 하에 일정 수준 전까지는 모델이 점차 복잡해질수록 train loss와 validation loss가 함께 감소하지만 연구자가 원하는 모델의 성능에 도달하기 전까지는 과소적합이 발생했다고 말합니다.

2.3.2.  과대적합 발생 구간

이처럼 모델이 점차 복잡해지면 train dataset에 따라 Gradient Descent 기법을 중심으로 모델이 학습되기 때문에 train loss는 꾸준히 감소합니다. 하지만 모델 복잡도가 일정 수준을 넘어감에 따라 모델이 training dataset에 overfitting 되면 오히려 validation loss가 증가하게 됩니다. 즉, validation loss가 감소하다가 증가하는 구간에서 과대적합이 발생했다고 말합니다.

2.3.3.  최적의 모델 적합 포인트

그렇다면 모델 적합의 최적점(optimum)은 어디일까요? 바로 과소적합과 과대적합이 발생하기 전후의 사이 구간에 최적의 포인트가 존재합니다. 쉽게 말해, validation loss가 감소하다가 증가하기 시작하기 직전의 포인트가 모델의 성능이 가장 우수할 가능성(i.e., best fit)이 높다고 말할 수 있습니다.

3.  과대적합 방지방법: 학습 조기종료(Early Stopping)

과대적합을 방지하는 여러 가지 방법 중 이번 포스팅에서는 학습 조기종료(Early stopping) 방법에 대해 소개해 드립니다. Early stopping은 특정 Epoch 내 validation loss가 감소하지 않으면 과대적합이 발생했다고 간주하고 학습을 종료함으로써 validation loss가 가장 낮은 지점인 최적(optimal) epoch에서의 모델을 저장해 주는 기법입니다(그림 5 참고). 여기서 epoch은 하이퍼라미터(hyperparameter, 초매개변수)로서 한 두 번의 epoch에서는 validation loss가 감소하지 않는 경우가 종종 발생하기 때문에 최소 3 이상의 값으로 설정해야 합니다.

그림 5. Early stopping 예시 그림 원본: https://c11.kr/r6g5

📚참고할 만한 포스팅

1. [Deep Learning] 퍼셉트론(Perceptron) 개념 이해
2. [Deep Learning] 퍼셉트론(Perceptron) 학습방법 및 절차
3. [Deep Learning] 활성화 함수의 개념 및 종류: sign, tanh, sigmoid, softmax, ReLU
4. [Deep Learning] 손실함수(Loss Function) 개념
5. [Deep Learning] 평균제곱오차(MSE) 개념 및 특징
6. [Deep Learning] 평균절대오차(MAE) 개념 및 특징
7. [Deep Learning] 최적화 개념과 경사 하강법(Gradient Descent)
8. [Deep Learning] 최적화 기법: (1) Momentum
9. [Deep Learning] 최적화 기법: (2) AdaGrad
10. [Deep Learning] 최적화 기법: (3) RMSProp
11. [Deep Learning] 최적화 기법: (4) Adam


오늘은 과소/과대적합의 개념과 과소/과대적합을 탐지하고 방지하는 방법까지 알아보았습니다.

포스팅 내용에 오류가 있을 경우 댓글 남겨주시면 감사드리겠습니다.

그럼 오늘도 즐거운 하루 보내시길 바랍니다 :)

고맙습니다😊

728x90
반응형
Comments