SGD(Stochastic Gradient Descent) 장점과 단점에 대해 설명
→ SGD는 loss를 최소화하기 위해 네트워크의 매개변수를 최적화함.
→ 딥러닝 모델을 학습할 때 매우 효과적인 성능을 보여주며 미니 배치를 사용할 때 배치 사이즈가 클수록 정교해짐.
→ 컴퓨터의 발전으로 인해 미니 배치를 사용하면 더 빠른 속도로 연산이 가능해짐.
하지만 SGD는 정교한 하이퍼 파라미터 튜닝을 요구함.
→ 이전 레이어의 출력이 다음 레이어에 계속 영향을 주는 딥러닝 네트워크의 특성으로 인해 작은 변화가 레이어를 많이 거칠수록 큰 변화가 될 수 있다는 문제점이 존재
Internal Covariate Shift 문제를 해결하기 위한 방법으로 Batch Normalization(배치 정규화) 제시
Batch Normalization 방법은 초기 입력 레이어만 정규화했던 과거의 방식을 확장시켜서 모든 각각의 Hidden Layers에 data가 input을 하기 전 정규화를 적용하는 방법이다.
Input : 사이즈가 m인 mini-batch
학습되는 파라미터 : m 차원의 γ, β
위의 알고리즘에서는 mini-batch(입력 데이터)의 평균과 분산을 구한 후, 이를 정규화 시킨 값에 scale과 shift 연산을 수행해 선형 변환된 값인 Batch Normalizing Transform 값($y_i$)을 구하게 된다.
Batch Normalization에 scale 과 shift 연산이 필요한 이유
Sigmoid 함수의 [-1,1] 구간을 보면 거의 선형적이므로 활성 함수의 특징인 비선형성을 가질 수 없게 됨.