let us not love with words or tongue but actions and truth.

IT/머신러닝(수업)

배치 정규화

sarah0518 2021. 11. 15. 17:15

오늘은 배치정규화와

배치정규화를 함으로써 얻을 수 있는 장점 3가지를 정리하고자 한다.

 

목적: 

우선 배치 정규화란 은닉층을 거쳐 나온 값들의 분포가

적당히 골고루 분포되게 강제화 해주는 것이다.

(가중치 초기화의 목적과 같다.)

 

이유: 

배치정규화를 통해 vanishing gradient문제를 해결 할 수 있다. 

 

예를 들어, 아래와 같은 sigmoid 함수를 보면 

sigmoid를 미분한 값은 점선의 곡선처럼 나타나는데,

 

이는 양 끝단에서, vanishing gradient가 발생할 수 있다는 걸 알수있다. 

https://towardsdatascience.com/intuit-and-implement-batch-normalization-c05480333c5b

 

 

 

이 해결책으로 제시된 것이 아래와 같은 그림의

batch normalization이다.

 

https://towardsdatascience.com/intuit-and-implement-batch-normalization-c05480333c5b

 

위의 그림이 보여주는 것은 

activation의 input 즉, wx+b의 많은 값들을 

sigmoid함수에서 기울기가 큰 부분인 0값 근처로 이동시켜 준 뒤,

은닉층을 통과하게 하는 것이다. 

 

그렇게 되면 역전파시 미분값이 0이 되는 문제점이 사라지게 할 수 있다. 

 

이것을 수식으로 표현하면 아래와 같다.

 

마지막으로 정규배치화의 장점은 아래와 같다. 

 

장점: 

1. 학습을 빨리 진행할 수 있다.

2. 초기값에 크게 의존하지 않는다.

3. over fitting이 감소된다.  (Dropout등의 필요성을 감소시킴)

 

 

배치정규화에서 주의할 점은,

 

training시킬 때는 각 배치별 평균과 표준편차를 구해서 적용시키면 되지만,

test할 때는, 각 배치별 평균관 표준편차나온 값들의 평균과 표준편차를

다시 계산하여 적용시킨 다는 것을 기억해야 할 것이다.