딥러닝의 문제점과 해결 방안 - leemik3/tensorflow-2.0 GitHub Wiki
과적합 문제 (over-fitting)
- 데이터 양 늘리기
- 드롭아웃
- 신경망 학습 시에만 사용하고, 예측 시에는 사용하지 않는 것이 일반적
- 서로 다른 신경망들을 앙상블하여 사용하는 것 같은 효과
- 모델의 복잡도 줄이기
- 모델의 수용력 (capacity) : 모델에 있는 매개변수들의 수
- 가중치 규제 (Regularization) * 정규화가 아님
- L1 규제 / L1 Norm
- 가중치 w들의 절대값 합계를 비용 함수에 추가
- 어떤 특성들이 모델에 영향을 주고 있는지 정확히 판단할 때 유용
- L2 규제 / L2 Norm (weight decay)
- 가중치 w들의 제곱합을 비용 함수에 추가
- 어떤 특성이 모델에 영향을 주고 있는지 판단하는 것이 필요없다면 경험적으로 L1 규제보다 더 잘 작동함
- 비용 함수를 최소화하려면, 가중치 값이 작아져야 한다.
- L1 규제 / L1 Norm
기울기 소멸 문제
- 시그모이드나 하이퍼볼릭 탄젠트 대신 ReLU 함수를 사용
성능이 나빠지는 문제
-
확률적 경사 하강법, 미니 배치 경사 하강법으로 해결
- 배치 경사 하강법 : 전체 훈련 데이터셋에 대한 오류를 구한 뒤 업데이트
- 확률적 경사 하강법 : 임의로 선택한 데이터에 대해 기울기 계산, 속도가 빠름, 정확도가 낮을 수 있음
- 미니 배치 경사 하강법 : 전체 데이터셋을 미니 배치로 나누고 미니 배치 하나마다 기울기 계산, 업데이트, 확률적 경사 하강법보다 안정적
- 옵티마이저 : 확률적 경사 하강법의 파라미터 변경 폭이 불안정한 문제를 해결하기 위해 학습 속도와 운동량을 조정한다 : 모멘텀, 네스테로프 모멘텀, 아다그라드, 알엠에스프롭, 아다델타, 아담