오사카 대학 Nishida Geio군이 Normalization 관련기술 을 정리한 자료입니다.
Normalization이 왜 필요한지부터 시작해서
Batch, Weight, Layer Normalization별로 수식에 대한 설명과 함께
마지막으로 3방법의 비교를 잘 정리하였고
학습의 진행방법에 대한 설명을 Fisher Information Matrix를 이용했는데, 깊이 공부하실 분들에게만 필요할 듯 합니다.
2. • Layer Normalization 논문개요
• 배경
• Batch Normalization
• Weight Normalization
• Layer Normalization
• 이상 3가지의 비교
목차
3. • 목적
State-of-the-art한 DNN의 학습시간을 단축시키고 싶다 !
중간층의 출력을 정규화함으로써 실현
• 아이디어
Batch Normalization을 바꿔서 만들어봄.
1. Batch size에 의존하지 않음(온라인 학습 및 작은 mini-batch도 OK)
2. 학습과 Test의 계산방법이 동일
3. 그대로 RNN에 적용 가능
• 그외 타관련 연구와의 비교
Layer Normalization 개요
4. 배경 : DNN연구의 Bottle -neck
엄청난 학습시간
• VGG net(Karen Simonyan et al. ICLR 2015)
16/19층CNN+FC
GPU: Titan Black 4개
학습시간 :2~3주
図 https://arxiv.org/pdf/1509.07627v1.pdf
• Google’s Neural Machine Translation system (Yonghui Wu et al. 2016)
8층 LSTM RNN
GPU: Tesla k80 96개
학습시간:1주 미만
5. 배경 : 학습시간을 줄이기 위해서
머쉰에 우겨 넣기
• DNN연산의 병렬화(Jeffrey Dean et al. NIPS 2012)
데이터 및 DNN 자체를 분할해서 계산
통신지연 및 SW의 복잡화가 과제
6. 학습의 효율을 높이자
•구배법자체를개선
2차 미분을 다루게 된다면 계산 cost가 엄청남
배경 : 학습시간을 줄이기 위해서
Ill-conditioned problem
어디로 튈지 예측 불가
7. 学習の効率を上げる
• Parameter 의 공간기하를 수정한다.
Batch Normalization(Sergey Ioffe et al. NIPS 2015)으로 학습시간 단축에 성공
구배손실의 문제가 해결 (Saturation Actuation함수도 사용 가능)
배경 : 학습시간을 줄이기 위해서
학습의 효율을 높이자
뒤에서 설명
Well-conditioned problem
잘 정돈된 문제
8. 배경 : 구배손실 문제란 ?
활성화함수의 포화영역
• 활성화 함수(Activation Function)에 있어서 포화영역
(Saturation
Region)의 미분값은 거의 “0” 이다.
• 오차의 역전파가 감소하여 입력층에서의 구배가 “0”이 될 우려
데
이
터
의
흐
름
오
차
의
역
전
파
포화영역
포화영역
9. • 포화영역을 없애자 !
ReLU(x) = max(x,0)
• 초기화에 대한 연구
• 작은 학습률을 사용
학습에 의해 포화영역으로 가는 것을 방지
해결책
학습에 시간이 걸리는
이유 중에 하나
Q. 도대체 왜、DNN은 최적화하면서 포화상태로 네트웍이 빠지는 것일까 ?
A. 학습할 때마다 각층의 출력분포가 바뀐다.(internal) covariate shift가 생기기 때문
배경 : 구배손실 문제란 ?
10. • 공변량의 변화가 발생하는 경우의 학습은 도메인 학습으로서 잘 처리됨.
• 논문에서는 DNN의 각층마다에서 일어나는 공변량의 변화에 대하여 고찰
배경 : covariate shift (공변량 변화)
훈련시와 Test시의 입력분포의 변화
입출력 규칙(주어진 입력에 대하여 출력의 생성규칙)은 훈련시
와 test시에 다르지 않지만,입력(공변량)의 분포가 훈련시
와 Test시에 다른 상황을 공변량 변화라고 부른다.
공변량의 변화 하에서의 학습지도 杉山 将 日本神経回路学会誌, vol.13, no3, pp.111-118, 20
06
11. • 중간층으로의 입력분포 :
정해진 입력분포를 각층에서 유지하지 못함
밑층의 parameter에 의존
DNN에서 각층마다의 입력분포
• 입력층으로의 입력분포 :
평균0 분산1
로 선형변환하면 잘 됨
입력분포
평균0,분산1로 규격화
중간층 입력분포
밑층 parameter에 의존
학습을 할 때마다 중간층으로의 입력분포
가 변화한다.(Internal Covariate Shift)
배경 : covariate shift (공변량 변화)
12. (Internal)공변량 변화가 DNN에 생기면
입력분포
평균0, 분산1로 규격화
평균0, 분산1
입력분포 축
입력분포p(μ=0,σ=1)
입력분포 q(p)
입력분포 r(q)
배경 : covariate shift (공변량 변화)
• 각 입력층에서 학습 시에 가정했던 입력분포가 변화
parameter가 결과적으로 엉뚱한 방향으로 업데이드 될 우려
네트웍이 포화상태로 빠지기 쉬운 상태가 된다
층이 깊어질 수록 영향이 큼
13. (内的)共変量シフトがDNNで起きると
입력분포q(p)를 전제로 학습
배경 : covariate shift (공변량 변화)
• 각 입력층에서 학습시에 가정했던 입력분포가 변화
parameter가 결과적으로 엉뚱한 방향으로 업데이드 될 우
려
네트웍이 포화상태로 빠지기 쉬운 상태가 됨
층이 깊어질 수록 영향이 큼
입력분포
평균0, 분산1로 규격화
평균0, 분산1
입력분포 축
입력분포p(μ=0,σ=1)
입력분포 q(p)
입력분포 r(q)
(Internal)공변량 변화가 DNN에 생기면
14. 입력분포p를 전제하여 학습
(이쪽은 문제없음)
(内的)共変量シフトがDNNで起きると
배경 : covariate shift (공변량 변화)
• 각 입력층에서 학습시에 가정했던 입력분포가 변화
parameter가 결과적으로 엉뚱한 방향으로 업데이드 될 우려
네트웍이 포화상태로 빠지기 쉬운 상태가 됨
층이 깊어질 수록 영향이 큼
(Internal)공변량 변화가 DNN에 생기면
입력분포
평균0, 분산1로 규격화
평균0, 분산1
입력분포 축
입력분포p(μ=0,σ=1)
입력분포 q(p)
입력분포 r(q)
입력분포q(p)를 전제로 학습
15. 입력분포
q(p)⇒q’(p)
입력분포
r(q)⇒r’(q’)
학습후
입력분포
p(μ=0,σ=1)⇒p학습후의 입력분포는 q’(p)!
⇒내적공변량 변화
출력이 이상해지는 원인
(内的)共変量シフトがDNNで起きると
배경 : covariate shift (공변량 변화)
• 각 입력층에서 학습시에 가정했던 입력분포가 변화
parameter가 결과적으로 엉뚱한 방향으로 업데이드 될 우려
네트웍이 포화상태로 빠지기 쉬운 상태가 됨
층이 깊어질 수록 영향이 큼
(Internal)공변량 변화가 DNN에 생기면
입력분포
평균0, 분산1로 규격화
평균0, 분산1
입력분포 축
입력분포q(p)를 전제로 학습
16. 입력분포
q(p)⇒q’(p)
입력분포
r(q)⇒r’(q’)
학습후
입력분포
p(μ=0,σ=1)⇒p학습후의 입력분포는 q’(p)!
⇒내적공변량 변화
출력이 이상해지는 원인
(内的)共変量シフトがDNNで起きると
배경 : covariate shift (공변량 변화)
• 각 입력층에서 학습시에 가정했던 입력분포가 변화
parameter가 결과적으로 엉뚱한 방향으로 업데이드 될 우려
네트웍이 포화상태로 빠지기 쉬운 상태가 됨
층이 깊어질 수록 영향이 큼
(Internal)공변량 변화가 DNN에 생기면
입력분포
평균0, 분산1로 규격화
평균0, 분산1
입력분포 축
입력분포q(p)를 전제로 학습
17. 배경 : 은익층의 정규화
정규화 층의 도입
• 각 중간층에서 출력을 정규화한다
각 중간층의 입력분포를 일정하게
큰 학습률의 사용이 가능
학습의 효율을 개선시킴
• 다양한 approach
Batch Normalization(Sergey Ioffe et al. NIPS 2015)
Weight Normalization(Tim Salimans et al. NIPS 2016)
Layer Normalization(Jimmy Lei Ba et al. NIPS 2016)
norm
norm
norm
입력분포
평균0, 분산1로 규격화
평균0, 분산1
입력분포 축
25. WN :
Weight Normalization
• 가중치를 정규화
• mini-batch sample간 의존관계가 없음
• 온라인 및 RNN으로 확장 가능
• CNN과 같이 가중치 수가 작은 것에 대해 효과적
• 데이터에 의존한 가중치 초기화가 가능
• 대략적으로는 BN의 low-cost적인 근사계산
32. LN : LN과 WN의 LSTM 성능비교
DRAW (MNIST의 생성)
• BN논문과 LN논문에서 Baseline 결과가 다르다
• LN쪽이 성능이 좋은가 ?
• 논문은 이러한 것에 대하여 코멘트가 없다.
(Tim Salimans et al. 2016) (Jimmy Lei Ba et al. 2016)
33. BN과 WN과 LN
무엇이 다른가 ?
• 각각출력을정규화한다
정규화의 성질은 ?
• 가중치및데이터에정수를곱하거나바이어스를
더해보면
출력이 변하지 않을까 ? 변할까 ?
• 학습은어떻게진행될까?
Capture the curvature of the manifold structure implicitly
from the fisher information volume.
norm
norm
norm
36. 학습의 진행방법?
• If we consider that learning moves around manifolds,
the curvature is implicitly captured by Fisher information
quantity matrix
Approximate curvature quadratic form ds2 with Fisher information
quantity matrix
The network model is approximated by Generalized Linear Model
(GLM)
• 결론
LN의 정규화 parameter σ는 학습이 진행됨에 따라 커져서
학습률을 낮춤으로서 학습을 안정화 시켜줌
BN과 WN과 LN
37. GLM에 의한 해석준비
• Generalized Linear Model (GLM)에 의하여 근사
•F(θ)에 주목
BN과 WN과 LN
39. •정규화하지 않은 경우의 F(θ)
• LN의 F(θ
)
곡률이 입력데이터의 크기에 의존
입력데이터의 크기는 반영되기 어렵다
(정규화되어 있기 때문)
BN과 WN과 LN
GLM에 의한 해석
40. • LN의 F(θ
)
•정규화하지 않은 경우의 F(θ)
Wi 방향: wi가2배→σi도 약2배
⇒ wi 방향의 곡률은1/2로
⇒ 학습률의 저하로 볼 수 있다.
BN과 WN과 LN
GLM에 의한 해석
41. Gain에 의한 비교~BN,LN~
출력을 결정하는 중요한 parameter
• 입력의 크기에 영향을 받지 않는(BN) 덜 받는(LN)
Gain의 update는 예측오차 정도의 크기
정규화 됨
BN과 WN과 LN
42. ゲインによる比較~WN~
출력을 결정하는 중요한 parameter
• 입력의 크기에 영향을 받는(WN)
Gain의 updat는 예측오차 정도의 크기와 입력(ai)의 크기에 의존
BN과 LN에 비해 학습이 안정적이지 못할 가능성이 있음
Gain에 의한 비교 - WN
BN과 WN과 LN
43. 정리하면
Batch Norm
(Sergey Ioffe et al. NIPS 2015)
Weight Norm
(Tim Salimans et al. NIPS 2016)
Layer Norm
(Jimmy Lei Ba et al. NIPS 2016)
Pros
B at c h s i z e 가 커 도 안 정
입력 데이터의 scale과 sift에
대하여 robust(학습 시)
가중치 벡터의 scale에
대하여 robust
학습이 진행되면서 자연히
updated scale이 작아짐
CNN에서 효과적
가중치의 초기화가 중요
쉽게 구현
가중치 벡터의 scale에
대하여 robust
작은 mini-batch의
RNN에서 성과
입력 데이터의 scale에 대해
robust
가중치 행렬의 scale 및
Sift에 대해 robust
학습이 진행되면서
자연적으로 updated
scale이 작아짐
Cons
온라인 학습 △
RNN,LSTM △
학습시와 test시에 계산이
바뀜
학습이 다른 방법에 비해
불안정?
입력 데이터 의존성이 높다
CNN과의 조합은 좋지않다
? (BN쪽이 좋은 경우가
있다)
BN과 WN과 LN