딥러닝 성능개선

강민정·2023년 7월 18일

Deep Learning

목록 보기
4/8
post-thumbnail

모델의 성능 - 일반화, 과대적합, 과소적합

일반화(Generalization)

  • 훈련된 모델이 학습시 사용하지 않은 데이터(검증/평가 데이터셋, 서비스시 추론할 새로운 데이터등) 에 대해 잘 추론할 수 있는 상태

과대적합(Overfitting)

  • 검증 결과 Train set에 대한 성능은 좋은데 Validation set에 대한 성능은 안좋은 상태로 모델이 train dataset에 대한 학습을 과하게(overfitting)한 상태
  • 개선 방법
    • 더 많은 data 수집
    • 모델의 복잡도를 낮춰 단순한 모델을 만든다
    • Epoch(또는 step) 수를 줄인다

과소적합(Underfitting)

  • 검증 결과 Train set과 Validation set 모두 성능이 안좋은 상태로 모델의 학습이 덜(underfitting)된 상태
  • 개선 방법
    • 모델의 복잡도를 높인다 = Layer나 Unit 개수를 늘린다
    • Epoch (또는 Step) 수를 늘린다

* Validation set의 성능이 나빠지기 전의 반복 횟수를 모델의 최적의 Epoch으로 선택


DNN 모델 크기 변경

  • 모델의 layer나 unit 수가 많을 수록 복잡한 모델
  • 큰 모델에서 시작하여 layer나 unit수를 줄여가며 validation loss의 감소 추세를 관찰
  • 데이터에 비해 작은 모델의 특징
    • Train/Validation 성능 개선의 속도가 느림
    • Underfitting이 발생할 가능성
  • 데이터에 비해 큰 모델의 특징
    • Validation 이 성능이 학습 초반부터 나빠짐
    • Train에 대한 성능 빠르게 개선
    • Overfitting 발생할 가능성이 큼

Dropout Layer 추가를 통한 Overfitting 규제

  • Dropout Node
    • 학습시 일부 Unit(노드, 뉴런)들을 Random하게 빼고 학습
    • 이때 빠지는 노드들 = Dropout Node
    • 선택된 노드들의 weight들을 모두 0으로 학습 → 이 노드들은 추론/업데이트할 때 아무런 영향X
    • 매 Step 마다 Dropout Node들은 random하게 바뀜
  • Dropout rate
    • 얼마나 Dropout을 시킬건지 비율적으로 지정
    • Dropout이 적용되는 Layer에서 Dropout Node의 비율로 보통 0.2~0.5 지정
    • 너무 크면 학습이 잘 안되기 때문에 underfitting 발생 가능
  • Dropout은 overfitting의 원인인 co-adaptation 현상을 감소/방지하는 효과
    • co-adaptation 현상 = 발생한 오차에 대한 공동책임으로 생기는 문제점
    • 각 노드들의 역할이 공동화되어 쓸데없는 패턴까지 학습하게 되는 것 → Dropout으로 노드들을 학습으로 제외하면 이런 현상 줄일 수 있음
  • Dropout은 학습시에만 적용하고 검증, 테스트, 새로운 데이터 추론시에는 적용되지 않음

Batch Normalization (배치정규화)

  • 각 Layer 에서 출력된 값을 평균=0, 표준편차=1로 정규화 하여 각 Layer의 입력분포를 균일하게 만들어줌
  • 배치 정규화는 미니 배치 내의 통계적 정보에 의존하기 때문에, 작은 미니 배치 크기에서는 효과가 제한될 수 있음
  • 테스트 단계에서는 단일 입력에 대한 정규화를 수행
  • 랜덤하게 생성되는 초기 가중치에 대한 영향력을 줄일 수 있음
  • 학습하는 동안 과대적합에 대한 규제의 효과
  • Gradient Vanishing, Gradient exploding을 막아줌

Optimizer의 Learning rate(학습율) 조정을 통한 성능향상

Learning Rate Decay

  • 특정 step 마다 일정한 비율로 Learning rate 변경
  • 초반에는 크게 설정하고 갈수록 줄여주는 방향

Callback 이용한 조정

  • 일정 step동안 검증 성능지표가 향상되지 않으면 그때 learning rate를 조정

1개의 댓글

comment-user-thumbnail
2023년 7월 18일

항상 좋은 글 감사합니다.

답글 달기