CV/밑바닥부터 시작하는 딥러닝

6장 학습 관련 기술들

알맹리 2021. 2. 13. 20:41

SGD

 

 

비등방성 함수(방향에 따라 성질(기울기)가 달라지는 함수)에서 탐색 경로가 비효율적

 

 

모멘텀 Momentum

 

속도 v, av는 물체가 아무런 힘을 받지 않을 때 하강시키는 역할

 

 

 

AdaGrad

 

 

동그라미: 행렬의 원소별 곱셈

 

1/h로 학습률 조정 > 학습률 감소가 매개변수의 원소마다 다르게 적용

 

개별 매개변수에 적응적으로 학습률을 조정하면서 학습 진행

 

Adam (Momentum + AdaGrad)

 

 

 

## 가중치 초깃값에 따른 은닉층 활성화값(활성화함수 출력값)의 변화

# sigmoid

각 층의 값이 0, 1에 치우쳐져 있고 역전파의 기울기 값이 점점 줄어들다가 사라짐 > 기울기 소실

 

다수의 뉴런이 거의 같은 값을 출력하고 있어서 뉴런을 여러개 만든 의미가 없음 > 표현력 제한

 

Xavier 초깃값의 표준편차가 1/sqrt(n) 되도록 설정 > 모양 어그러져도 앞에 2개보다는 값이 넓게 분포됨

 

# ReLU

아주 작은 값이 흐름 > 역전파때 가중치 기울기 작음 > 학습 거의 x 

 

층이 깊어질수록 값이 치우침 > 기울기 소실

 

He 초깃값의 표준편차가 2/sqrt(n) 인 정규분포 > 굿굿굿

 

# 정리

ReLU > He 초깃값

sigmoid, tanh 등 s자 모양 > Xavier 초깃값

 

MNIST (ReLU 사용)

시작이 반이다.... 초깃값 중요하다잉..

 

배치 정규화

- 학습 속도 개선

- 초깃값 의존 x

- 오버피팅 억제

 

## 오버피팅 억제 

가중치 감소

- 큰 가중치에 큰 페널티 부여

- 손실함수의 값을 줄임

 

Drop out

- 뉴런을 임의로 삭제하면서 학습

- test할 때는 각 뉴런의 출력에 train때 삭제 안 한 비율을 곱해서 출력

 

## 하이퍼파라미터 최적화

검증 데이터

- 하이퍼파라미터 확인 전용 

train 매개변수 학습 validation 하이퍼파라미터 성능 평가 test 신경망 범용 성능 평가

 

하이퍼파라미터 최적화

- 범위 설정 > 10의 거듭제곱 단위로 (로그 스케일로 지정)

- 설정된 범위에서 값 무작위 추출

- 샘플링한 하이퍼파라미터로 학습 > validation data로 정확도 평가

- 앞의 두개 100회 등 특정횟수로 반복하고 정확도를 봐서 범위 좁힘

'CV > 밑바닥부터 시작하는 딥러닝' 카테고리의 다른 글

8장 딥러닝  (2) 2021.02.20
7장 합성곱 신경망 CNN  (0) 2021.02.18
4장 신경망 학습  (1) 2021.01.23