머신러닝

[딥러닝] 딥러닝 2단계: 심층 신경망 성능 향상시키기 - 2. 신경망 네트워크의 정규화

sa_woll 2024. 4. 15. 23:27

https://www.boostcourse.org/ai216/lecture/401734?isDesc=false

 

딥러닝 2단계: 심층 신경망 성능 향상시키기

부스트코스 무료 강의

www.boostcourse.org

정규화

- high variance -> 제일 먼저 정규화 시도

- 비용함수에 정규화 매개변수 람다λ 추가

- L1 정규화

- L2 정규화 : L1보다 더 많이 사용. weight decay라고 불린다.

-> weight에 1보다 작은 값인 1 - a λ/m 이 곱해지기 때문이다.

왜 정규화는 과대적합을 줄일 수 있을까?

- λ값을 크게 만들어서 w을 0에 가깝게 설정할 수 있다. -> 신경망 간소화로 과대적합이 줄어든다.

- ex) tanh 함수에서 z값을 작게 만들면 선형 함수를 계산하는 것에 가까워진다. -> 복잡한 결정경계를 만들 가능성이 줄어든다.

드롭아웃 정규화

- 신경망의 각각의 층에 대해 노드를 삭제하는 확률을 설정하는 것.

- 삭제된 노드의 입력링크와 출력링크를 모두 삭제

- 역 드롭아웃: 일반적으로 쓰는 드롭아웃. 노드를 삭제 후에 얻은 활성화 값에 삭제하지 않을 확률을 나눠주는 것 

드롭아웃의 이해

-  랜덤으로 노드를 삭제시키므로 하나의 특성에 의존하지 못하게 한다.

-> 가중치를 다른 곳으로 분산시킴

- 드롭아웃의 keep.prop(삭제하지 않을 확률)은 층마다 다르게 설정 가능하다.

- 컴퓨터비전에서 많이 쓰인다.

다른 정규화 방법들

- 데이터 증식(data augmentation): 이미지 학습의 경우. 더 많은 데이터를 사용하게 된다.

- 조기종료(early stopping) : 훈련중에 신경망을 멈춤. 단점은 비용 함수 최적화작업과 과대적합 방지 작업이 섞여버린다.