본문 바로가기
딥러닝(Deep Learning)/D&A Deep Session

[D&A Deep Session] 3차시 - 6. 정규화와 오버피팅 억제

by rahites 2022. 3. 29.

 

# Internal Covariate Shift ( 내부 공변량 변화 )

: 학습 과정에서 계층 별로 입력 데이터의 분포가 달라 나타나는 문제로 학습 속도가 느려지며 Gradient Vanishing에 영향을 준다.

 

이를 극복하기 위해 정규화를 적용할 필요가 있다!! 

 

정규화의 장점 :

- 학습 속도 감소

- 오버피팅 억제 ( 드롭아웃 등의 필요성 감소 )

- 가중치 초기값에 대한 의존성감소 ( 하이퍼파라미터의 설정이 자유로움 )

 

1. Batch Normalization ( 배치 정규화 )

: 학습시 미니배치 단위로 매 순간의 input을 N(0,1)로 정규화

 

장점 :

- 오차 역전파법 시 파라미터의 크기에 영향을 받지 않아 학습률을 크게 잡을 수 있어 빠른 학습이 가능하다

- 자체 regularization효과가 있어 L1, L2, 드롭아웃 등의 과정을 생략할 수 있다. 

 

한계 : 미니 배치 크기에 의존적이고 RNN에 적용하기 어렵다.

 

2. Layer Normalization ( 총 정규화 )

: Batch의 모든 feaure를 정규화하는 방법으로 Batch size = 1일때나 배치 정규화가 불가능한 경우 사용이 가능하다.

 

 

# 오버피팅

: 신경망이 훈련 데이터에만 지나치게 적응하여 다른 데이터에 제대로 대응하지 못하는 상태로 매개변수가 많고 표현력이 높은 모델이나 훈련 데이터가 적은 경우에 오버피팅이 주로 일어난다. 

 

* 오버피팅 억제

1. 가중치 감소 ( weight decay )

: 학습과정에서 큰 가중치에 대해서는 그에 상응하는 큰 페널티를 부과하여 오버피팅을 억제하는 방법 ( ex. L2 norm )

 

2. 드롭아웃 ( Dropout ): 뉴런을 임의로 삭제하여 모델을 학습시키고 test때는 모든 뉴런에 신호를 전달하는 방법. 단, test 때는 각 뉴런의 출력에 훈련 때 삭제한 비율을 곱하여 출력한다. 무작위로 선택된 뉴런으로 학습 시킨 모델은 매번 다른 모델을 학습시킨 것과 같기 때문에 앙상블 효과를 얻을 수 있다. ( 순전파 때 통과시키지 않은 뉴런은 역전파 때에도 신호를 차단한다 )

 

 

# 하이퍼파라미터 최적화 : 하이퍼파라미터에는 각 층의 뉴런 수, 배치 크기, 학습률, 가중치 감소 등이 존재하는데 하이퍼파라미터의 값을 적절히 설정하지 못한다면 모델의 성능이 크게 떨어진다. 

 

* 하이퍼파라미터 최적화 방법

 

1. 검증 데이터 사용하기 - 훈련 데이터 : 매개변수 학습- 검증 데이터 : 하이퍼파라미터 성능 평가- 테스트 데이터 : 신경망 성능 평가

 

2. 대략적인 범위를 설정하여 최적화 값까지 범위를 좁히기- 하이퍼파라미터 값의 범위 설정 -> 범위 내 값 무작위 추출 -> 추출한 값으로 학습하여 검증 데이터로 평가- 위 과정을 특정 횟수만큼 반복하며 범위 좁히기- 베이지안 최적화, 랜덤 서치, 그리드 서치 등의 방법 사용

 

 

 

**********3차시 요약**********

- 매개변수 갱신 방법 : SGD, 모멘텀, AdaGrad, Adam

- 가중치 초기화 방법 : LeCun, Xavier, He

- 배치 정규화 사용시 학습을 빠르게 진행할 수 있고 초깃값에 영향을 덜 받게된다

- 오버피팅을 억제하는 정규화 방법 : 가중치 감소, 드롭아웃

- 하이퍼파라미터 값 탐색은 최적값이 존재할만한 범위를 점차 좁히면서 찾는 것이 효율적이다

 

댓글