본문 바로가기
딥러닝

밑바닥부터 시작하는 딥러닝 Chapter6 - 배치 정규화

by 오렌지마끼야또 2022. 6. 27.
728x90
반응형

 

 

 

 

 

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

 

https://nobsai.tistory.com/66

 

 

 

 

 

728x90
반응형

댓글