https://www.boostcourse.org/ai216/lecture/401734?isDesc=false
정규화
- high variance -> 제일 먼저 정규화 시도
- 비용함수에 정규화 매개변수 람다λ 추가
- L1 정규화
- L2 정규화 : L1보다 더 많이 사용. weight decay라고 불린다.
-> weight에 1보다 작은 값인 1 - a λ/m 이 곱해지기 때문이다.
왜 정규화는 과대적합을 줄일 수 있을까?
- λ값을 크게 만들어서 w을 0에 가깝게 설정할 수 있다. -> 신경망 간소화로 과대적합이 줄어든다.
- ex) tanh 함수에서 z값을 작게 만들면 선형 함수를 계산하는 것에 가까워진다. -> 복잡한 결정경계를 만들 가능성이 줄어든다.
드롭아웃 정규화
- 신경망의 각각의 층에 대해 노드를 삭제하는 확률을 설정하는 것.
- 삭제된 노드의 입력링크와 출력링크를 모두 삭제
- 역 드롭아웃: 일반적으로 쓰는 드롭아웃. 노드를 삭제 후에 얻은 활성화 값에 삭제하지 않을 확률을 나눠주는 것
드롭아웃의 이해
- 랜덤으로 노드를 삭제시키므로 하나의 특성에 의존하지 못하게 한다.
-> 가중치를 다른 곳으로 분산시킴
- 드롭아웃의 keep.prop(삭제하지 않을 확률)은 층마다 다르게 설정 가능하다.
- 컴퓨터비전에서 많이 쓰인다.
다른 정규화 방법들
- 데이터 증식(data augmentation): 이미지 학습의 경우. 더 많은 데이터를 사용하게 된다.
- 조기종료(early stopping) : 훈련중에 신경망을 멈춤. 단점은 비용 함수 최적화작업과 과대적합 방지 작업이 섞여버린다.
'머신러닝' 카테고리의 다른 글
[딥러닝] 딥러닝 2단계: 심층 신경망 성능 향상시키기 - 4. 최적화 알고리즘 (0) | 2024.05.13 |
---|---|
[딥러닝] 딥러닝 2단계: 심층 신경망 성능 향상시키기 - 3. 최적화 문제 설정 (0) | 2024.05.06 |
[딥러닝] 딥러닝 2단계: 심층 신경망 성능 향상시키기 - 1. 머신러닝 어플리케이션 설정하기 (0) | 2024.04.15 |
[딥러닝] 딥러닝 1단계: 신경망과 딥러닝 - 5. 심층 신경망 네트워크 (0) | 2024.04.08 |
[딥러닝] 딥러닝 1단계: 신경망과 딥러닝 - 4. 얕은 신경망 네트워크 (2/2) (1) | 2024.04.01 |