6. 딥러닝에서 과적합(Overfitting)을 막는 방법
1. 가중치 규제 (Weight Regularization)
복잡한 모델을 적합(fit)하거나 특정 가중치의 매개변수 값이 클 때 과적합이 발생할 수 있다. 이때, 학습 과정에서 큰 가중치에 대해서는 그에 상응하는 큰 패널티를 부여해 과적합을 억제할 수 있다.
신경망 학습의 목적은 손실 함수의 값을 작게 만드는 좋은 모델을 찾는 것이기 때문에, 새로 갱신되는 손실함수에 패널티를 주어 과도하게 큰 파라미터를 갖게 되는 것을 막는 것이다.
2. 배치 정규화 (Batch Nomalization)
배치 정규화는 각 배치의 입력 데이터 평균과 분산을 구해 입력 데이터가 평균이 0, 분산이 1이 되도록 정규화한다. 배치 정규화는 과적합을 해결할 수 있다는 장점 뿐만 아니라 학습 속도를 개선할 수 있다는 장점과 초깃값에 모델 적합이 크게 의존하지 않게 된다는 장점이 있다.
배치 정규화 과정은 Linear 단계와 activation function 단계 사이에 주로 실행된다.
※ 보통 미니배치 정규화 과정은 활성화 함수 앞에 삽입되지만, 배치 정규화를 활성화 함수의 앞이나 뒤, 어느 쪽에 삽입할지에 대한 논의와 실험은 계속 진행되고 있다.
3. 드롭아웃 (Dropout)
신경망 모델이 복잡해지면 가주치 감소만으로 대응하기 어려워지는데, 이때 드롭아웃을 사용할 수 있다.
드롭아웃은 훈련 시 은닉층의 뉴런을 무작위로 골라 삭제하면서 학습하는 방법이다. 드롭아웃 비율은 일반적으로 0.2에서 0.5 사이를 사용하며, 이는 학습 과정에서 무작위로 선택된 뉴런의 비율을 의미한다. 삭제된 뉴런은 신호를 전달하지 않게 된다. 훈련(train) 때는 무작위로 뉴런을 선택해 삭제하지만, 시험(test) 때는 모든 뉴런에 신호를 전달한다. 단, 시험(test) 단계에서는 각 뉴런의 출력에 훈련 때 삭제하지 않은 비율을 곱하여 출력한다.