input normalization
- 전체 input 1000개에 대해서 -1 ~ 1 사이의 값을 갖게 하기 위해 N(0, 1) 로 정규화 한다.
batch normalization
- input normalization 후 50개씩 묶어서 20개의 배치를 만들었다고 했을 때 한 배치 안의 50개의 데이터의 평균과 분산이 N(0, 1) 이 아닐것이기 때문에 다시 정규화해주는 것이다.
배치 정규화를 사용하는 이유
- 각 층에서의 활성화값이 적당히 분포되도록 하기위해.
장점
- 학습 속도가 빠르다 : 적은 epoch 만으로도 LOSS 를 빠르게 줄일 수 있다.
- 가중치 초깃값에 크게 의존하지 않는다.
- 오버피팅을 억제한다.(드롭아웃 등의 필요성 감소)
w 가 곱해지고 b가 더해지면 분포가 바뀌기 때문에 활성화 함수 앞 또는 뒤에 batch norm 계층(배치 정규화 계층)을 삽입한다.
오버피팅을 줄이는 방법
- 가중치 감소
- 드롭아웃
노름(Norm)
벡터의 노름 ||x|| 은 일반적으로 벡터의 길이라고 불린다. 통상적으로 길이라고 불리는 노름은 공직적으로 L2 노름이라고 불리며 다음과 같이 정의된다.
각 원소의 제곱의 합
행렬에서도 정의할 수 있다. 그 예시인 프로베니우스 노름(Frobenius Norm) 이다.
각 원소의 제곱의 합
가중치 감소(Weight Decay)
LOSS 의 값을 수정한다. 가중치의 제곱 노름을 더한다.
LOSS' = LOSS + 1/2*λ*||W||^2
λ는 정규화의 세기를 조절하는 하이퍼파라미터
W 가 클수록 그에 상응하는 큰 패널티를 부여하여 오버피팅을 억제한다.
LOSS 프라임을 작게하는 방향으로 train 을 시켰더니 오버피팅이 줄어들었다.
드롭아웃
뉴런을 임의로 삭제하며 학습하는 방법으로 훈련과정에서 은닉층의 뉴런을 무작위로 골라 삭제한다.
사진 출처
https://koreanfoodie.me/218?category=848327
'딥러닝' 카테고리의 다른 글
밑바닥부터 시작하는 딥러닝 Chapter8 - 딥러닝 (0) | 2022.06.29 |
---|---|
밑바닥부터 시작하는 딥러닝 Chapter7 - CNN 합성곱신경망 (0) | 2022.06.28 |
밑바닥부터 시작하는 딥러닝 Chapter6 - 가중치의 초깃값 (0) | 2022.06.26 |
밑바닥부터 시작하는 딥러닝 Chapter6 - 학습 관련 기술들 (0) | 2022.06.26 |
밑바닥부터 시작하는 딥러닝 Chapter5 - 오차역전파법 (0) | 2022.06.25 |
댓글