[딥러닝]

Batch Normalization_논문정리1

bestFinanceDataAnalyist 2023. 11. 2. 09:13

FAST AND ACCURATE DEEP NETWORK LEARNING BY EXPONENTIAL LINEAR UNITS (ELUS) 

논문을 참고하였으며 학부 연구생으로써 딥러닝에 대해 깊이 있는 공부를 하고자 교내 논문스터디에서 공부한 내용을 정리하였습니다. 참고자료는 출처를 남겨두었으며 부족한 부분이 있을 수 있으며 문제가 있을 시 삭제하도록 하겠습니다

 


 

Batch Normalization_논문정리1

논문스터디 개념정리

 

 

batch normalization
학습하는 과정 자체를 전체적으로 안정화"하여 학습 속도를 가속 시킬 수 있는 근본적인 방법인 "배치 정규화(Batch Normalization)" / 정규화를 하는 이유는 학습을 더 빨리 하기 위해서 or Local optimum 문제에 빠지는 가능성을 줄이기 위해서 사용
+  'Internal Covariance Shift' 라고 주장하고 있는데, 이는 네트워크의 각 레이어나 Activation 마다 입력값의 분산이 달라지는 현상을 뜻한다 >> whitening(백색 잡음) Whitening은 기본적으로 들어오는 입력값의 특징들을 uncorrelated 하게 만들어주고, 각각의 분산을 1로 만들어주는 작업이다. 이는 covariance matrix의 계산과 inverse의 계산이 필요하기 때문에 계산량이 많을 뿐더러, Whitening은 일부 파라미터들의 영향이 무시된다 >> 이를 해결이 정규 배치화
출처: https://eehoeskrap.tistory.com/430 [Enough is not enough:티스토리]


natural gradient
Natural Gradient: Loss를 minimize하는 gradient를 그냥 단순히 업데이트한다고 해서, 업데이트 된 분포가 과연 더 나은 distribution이 분포인가에 대한 의문에서 출발함. 일반적인 sgd를 사용할 경우 미니배치 샘플에 따라 매우 불안정한 학습과정을 거칠 수 있기 때문에 더욱이 문제가 됨. 그래서 natural gradient를 사용하여 분포가 안정적으로 수렴할 수 있게 해줌
 
https://newsight.tistory.com/224



Bias shift/bias gradient
원점 중심이 아니다(Not zero-centered).  따라서, 평균이 0이 아니라 0.5이며, 시그모이드 함수는 항상 양수를 출력하기 때문에 출력의 가중치 합이 입력의 가중치 합보다 커질 가능성이 높다. 이것을 편향 이동(bias shift)이라 하며, 이러한 이유로 각 레이어를 지날 때마다 분산이 계속 커져 가장 높은 레이어에서는 활성화 함수의 출력이 0이나 1로 수렴하게 되어 그래디언트 소실 문제가 일어나게 된다.
출처: https://excelsior-cjh.tistory.com/177 [EXCELSIOR:티스토리]
https://heo-seongil.tistory.com/96

Deactivation state >> 통계 용어가 아니라 그냥 비활성화

RELU RRELU PRELU 차이점(negative value. NOISE)
https://excelsior-cjh.tistory.com/177

multiview. model averaging >> 모델을 한번에 보려 한 게 아니라 여러 번 보기 / 평균값을 대체
Sparse code
Relu가 기울기 소실 해결하는 과정 , 
Sigmoid 함수의 미분 값은 입력값이 0일 때 가장 크지만 0.25에 불과하고 x 값이 크거나 작아짐에 따라 기울기는 거의 0에 수렴하는 것을 확인하실 수 있습니다. 따라서, 역전파 과정에서 Sigmoid 함수의 미분값이 거듭 곱해지면 출력층과 멀어질수록 Gradient 값이 매우 작아질 수밖에 없습니다
Relu는 입력값이 양수일 경우, 입력값에 상관 없이 항상 동일한 미분 값은 1입니다. 즉, 역전파 과정에서 기울기가 소실되는 문제를 해결할 수 있습니다.  입력값이 음수일 경우 미분값은 항상 0입니다. 즉, 입력값이 음수인 뉴런은 다시 회생시키기 어렵다는 한계가 있습니다. 이러한 문제를 '죽어가는 ReLU(Dying ReLU)'라고 부릅니다.

Gradient 라는 것이 결국 미분값 즉 변화량을 의미하는데 이 변화량이 매우 작아지거나(Vanishing) 커진다면(Exploding) 신경망을 효과적으로 학습시키지 못하고, Error rate 가 낮아지지 않고 수렴해버리는 문제가 발생하게 된다. 령 sigmoid는 실수 범위의 수를 [0, 1]로 맵핑, 매우 넓은 입력 값의 범위가 극도로 작은 범위의 결과 값으로 매핑
출처: https://eehoeskrap.tistory.com/430 [Enough is not enough:티스토리]

Fisher matrix 대각선

PRONG
whitening(4번째줄) >> 백색소음 앞에서 나옴
http://andrew.gibiansky.com/blog/machine-learning/gauss-newton-matrix/
http://cs229.stanford.edu/proj2010/Iyengar-HessianFreeDeepLearning.pdf 

 

Exponential linear unit 
net inputs >> a값으로 컨트롤 하는 인수 집어넣기
Saturation means a small derivative which decreases the variation and the information that is propagated to the next layer.
>>한 곳에 많이 몰려있으니까 분산이 낮아진다는 것 같음
Therefore the representation is both noise-robust and low-complex
>> noise(잡음에 강하고) 복합성낮음>> 앞 페이지에 나온 내용
ELUs code the degree of presence of input concepts, while they neither quantify the degree of their absence nor distinguish the causes of their absence. 
>> 모르겠다.. 앞에서 나온 내용과 동일
This property of non-informative deactivation states is also present at
ReLUs and allowed to detect biclusters corresponding to biological modules in gene expression datasets (Clevert et al., 2015) and to identify toxicophores in toxicity prediction
>>Bicluster (행=열 같은 클러스터링. 데이터 마이닝 기법)
 
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=dic1224&logNo=220144047466

#4. Experiments using ELU
Comparisons are done with and without batch normalization
>>비교할때는 batch normalization이 다 수행되지 않음

#4-1. MINST(숫자 이미지 분류)
>> 실험: ELU가 다른 단위보다 정말 평균 활성화를 0에 가깝게 유지하는가. 실험횟수 총 5회(랜덤) 막대는 표준 편차를 표시함. 왼쪽 그래프는 평균 단위 활성화 정도의 중위수, 오른쪽은 epoch에 따른 loss함수값. 모두다 epoch 25이후 유지됨. 은닉층 8개, 학습속도 0.01 크기 54개, SGD, 300 EPOCH. 가중치는 초기화시킴. ELU는 훈련 과정 내내 작은 중위수, 다른 네트워크보다 오류도 빨리 감소함. 여기서 중위수가 뭐지..?

#4-1-2
다양한 활성화 함수/학습 속도 + epoch >> 훈련 데이터 및 테스트 데이터 오류에 대한 내용
The results are medians over several runs with different random initializations
>> 결과는 서로 다른 랜덤 초기화를 가진 여러 중위수 >> 여기도 중위수의 개념 잘 이해 못함.
7P >> 고정 학습 속도/500개 epoch/64개 샘플/SGE >> elu 오류 감소하는데 다른 활성화 함수 기능 능가

#4-2
>>ELU 다른 함수보다 좋음. CHIFAR-100 CNN 아키텍쳐를 사용해 계산을 유지하기 위해 비교적 간단함. 밑에 그림은 순서대로 test error(검증 오류), 패널 테스트 오류(정확히 맞는지 모르겠음), 
>>결론은 10번 수행했을 때  ELU가 가장 낮은 테스트 오류 및 트레이닝 손실을 갖는다고 함.

The CNN for these CIFAR-100 experiments consists of 11 convolutional layers arranged in stacks of >> CNN이 STACK으로 이루어져 있다고 함. LAYER 수라고 이해해야 할 듯
Layers × units × receptive fields.
>> receptive field?? 출력 레이어의 뉴런 하나에 영향을 미치는 입력 뉴런들의 공간 크기라고 함.
  https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=sogangori&logNo=220952339643
>> 추가적인 조건 설정 (공정한 비교를 위해) > 이전 실험에서 이 값은 relu에 최저고하되되었지만 elu가 더 빨리 수렴되면서 조정된 계획의 이점을 얻음.
The momentum term learning rate was fixed to 0.9.
>>모멘텀
 SGD 는 아래의 왼쪽 그림처럼 최적의 지점인 한가운데까지 가지 못하고 그전에 수렴을 해버린다. 이것이 바로 local minimum 에 빠지는 모습이다. 하지만 오른쪽의 그림과 같이 momentum과  함께라면 local minimum 을 지나 global minimum 에 더 가깝게 갈 수 있다. 즉, 성능이 더 좋아지게 된다. Momentum은 SGD가 중구난방으로 최적점을 찾아가는 것에 대해서 그 진동을 줄이고, 최적점에 연관된 방향으로 더 가속을 해주는 방법. omentum 을 적용하여 weight 를 업데이트하는 과정을 살펴보자.  
https://data-science-hi.tistory.com/165