인공지능 개발자 수다(유튜브 바로가기) 자세히보기

Deep Learning/Deep Learning 개념

[Deep Learning] Overfitting 문제 해결

Suya_03 2021. 5. 22. 00:14

목차

    반응형

    1. 개요

    • 딥러닝 학습시 OverFitting을 해결하기 위한 다양한 방법에 대해 공부해보자

    2. Overfitting 이란

    • 모델이 데이터에 과하게 맞추게 되어, 앞으로 들어올 데이터는 맞지 않도록 학습된 형태
    • Test 데이터 셋의 Loss값은 작지만, Validation 데이터 셋의 Loss값이 커질때

    3. 해결방법

    • 개념
      • Overfitting을 해결하기 위해서는 일반적으로 모델의 복잡성을 줄이도록 해야 한다.
      • Regularization 기법

    3.1. Early Stopping

    • 학습을 중간에 중단
    • Validation과 Test의 Loss를 모니터링해서 중단 시점을 정함

    3.2. Weight decay

    3.2.1. L1 Regularization

    • 수식

    $$ E(w) = E(w) + \frac{\lambda}{2}|w| $$

    • 설명
      • E(w) 는 Lossfunction이다
      • w값들을 모두 더하는 수식을 더하기 때문에 w값들이 작아지는 방향으로 학습
      • Input 값들을 고를때 주로 사용 (0.00001와 0.9을 비교하지 않고 더해서 작아지기만 하면 됨)

    3.2.2. L2 Regularization

    • 수식

    $$ E(w) = E(w) + \frac{\lambda}{2} w^{T}w $$

    • 설명
      • E(w) 는 Lossfunction이다
      • w의 제곱들을 모두 더하는 수식을 더하기 때문에 w값들이 작아지는 방향으로 학습
      • 제곱이 들어가기 때문에 튀는 값이 있으면 차이가 커짐 (0.00001 제곱과 0.9의 제곱을 비교했을 때 0.9가 너무 커짐), 튀는 값이 없도록 학습
      • 주로 학습할때 사용
    • 결론
      • w값이 0이 된 것들은 Connection을 끊어 버린다는 뜻
      • 모델이 단순화 됨

    3.3. Dropout

    • 불균등 학습에 대한 해결을 제시함
      • 학습을 잘 되는 노드와 안되는 노드가 있기 때문
    • Test 할때의 계산 방법
      • Train 할 때는 Dropout을 하지만 Test 할 때는 모든 값을 다 사용하기 때문에 Node에 들어오는 값이 더 커지게 되는 문제가 발생
      • Test를 할 때는 Dropout으로 인해 작아진 비율만큼 곱해줘야함. 
    • 주의할 점
      • 데이터가 적을 때는 사용하지 않는 것이 좋음
      • 학습을 더 여러번 진행해야 함 (학습이 느려짐)
    • 참고
      • Weight Decay 방법과 함께 사용하면 좋음
    반응형

    'Deep Learning > Deep Learning 개념' 카테고리의 다른 글

    활성화 함수  (0) 2022.07.03
    딥러닝 옵티마이저 (Optimizer) 종류와 설명  (0) 2021.05.03