#12 of AI and Deep Learning - Overfitting 최소화 방법

Overfitting 의 개념과 최소화 방법

개요

  • 정의
    • 어원 그대로 "과하게 학습된" 상태를 의미
    • 이슈가 되는 이유
      • 일반적으로 우리가 예측하고자 하는 결과는 새롭게 유입될 데이터
      • learning 과정에서 특정한 하나의 패턴을 찾지 못하고 효용이 없는 모델이 됨
        • training dataset 에만 fit 하게 맞춰진 모델
      • 새로 유입된 데이터에 대해 정확도 높은 예측을 하지 못함
underfitting (학습 부족) vs just right (패턴 / 일반화 도출) vs overfitting (과적합)
  • 위 그림에서 확인할 수 있듯이 머신러닝 / 딥러닝의 가장 큰 목표는
    • "패턴 도출"

Overfitting 해결법

  • training dataset 더 많이 수집
    • 단순히 개수만 늘리는 것이 아니라 되도록 실제 발생하는 양질의 데이터
  • feature 컬럼의 갯수 줄이기
    • 입력 데이터의 차원을 적절한 수준으로 줄이기
      • 다시 말해, 중요도가 높은 핵심 정보만 남기고 나머지는 제거
      • ex) 시험 성적을 예측하는 입력 데이터의 피쳐
        • 학습시간 / 수면시간 / 집중시간 등 -> 중요 정보
        • 성별 / 이전 성적 / 시험일 날씨 등 -> 부가 정보 -> 제거
    • 모델이 모든 피쳐 데이터를 무리하게 학습에 반영하는 과정에서 과적합 발생
    • 또한, 피쳐 컬럼들 간에 일정 수준 연관성을 가지느 경우도 있어 개선 가능
  • 일반화 (Regularization)
    • 그래프 상에서 데이터를 구분하는 선이 최대한 완만하도록 조치해주는 역할
      • 구부러진다 = 특정 weight 이 과도하게 큰 값으로 잡혀있는 상태 
    • 파라미터들의 값을 줄이는 방법

  • 위 식은 일반적인 cost function 의 우항에 람다 x (가중치 제곱 합산) 더한 것
    • 더해진 부분이 바로 "일반화" 개념에 의해 추가된 수식
    • 람다의 역할 (=regularization strength)
      • cost function 이 적절히 적용될 수 있도록 조절
      • 고차항의 파라미터들을 0에 가까운 값으로 만듦
        • 최종적으로 적당한 수준의 2차항 방정식으로 변경됨
      • 람다 = 0 -> 일반화 적용하지 않겠다는 의미
    • 일반화의 목적
      • 가중치를 너무 큰 값으로 설정하지 않도록 하기 위해
      • 즉, cost function 의 최소값 / weight 의 적정값을 함께 찾는 과정
  • 드롭아웃 (Dropout)
    • 특정 노드에 연산이 몰리지 않고 포괄적으로 학습하여 일반화 확보하는 방법


References




댓글