
매개변수 갱신 기법
- 최적화(Optimization) : 신경망 학습의 목적인 손실 함수의 값을 최대한 낮추는 매개변수의 최적값을 찾는 것
- 확률적 경사 하강법(SGD) : 매개변수의 기울기를 갱신하며 최적값을 찾는 방법
- SGD의 단점 : 비등방성(Anisotropy) - 방향에 따라 기울기가 달라져 탐색 경로가 비효율적
- 모멘텀(Momentum, 운동량)

- W : 가중치 매개변수
- ∂L/∂W : W에 대한 손실 함수의 기울기
- η : 학습률
- v : 속도
- 기울기 방향으로 힘을 받아 물체가 가속된다는 물리법칙. 마치 공이 곡면을 따라 구르는 듯함
- SGD보다 최적값에 x축 방향으로 빠르게 다가감
- AdaGrad : 학습률을 점차 줄여가기 위해 각각의 매개변수에 맞춤형 값을 만들어주는 것

- ⊙ : 행렬의 원소별 곱셈
- 매개변수의 원소 중에서 많이 움직인 원소는 학습률이 낮아짐. 즉, 학습률 감소가 매개변수의 원소마다 다르게 적용됨
- 최적값으로의 y축 방향 갱신 강도가 빠르게 약해지며 효율적으로 움직임
- Adam : 모멘텀과 AdaGrad의 기법을 융합한 듯한 기법
- 모멘텀처럼 곡면을 따라 움직이며, 학습의 갱신 강도는 AdaGrad처럼 적응적으로 조정됨
- 갱신 방법 선택 : 각자의 장단점이 있어 상황을 고려하여 시도해야 함
가중치의 초깃값
- 가중치 감소(Weight Decay) : 오버피팅을 억제해 범용 성능을 높이는 기술. 즉, 가중치 값을 작게 하여 가중치 매개변수의 값이 작아지도록 학습하는 방법
- If 초깃값을 모두 0으로 설정하면? : 오차역전파법에서 모든 가중치의 값이 똑같이 갱신되기 때문에 안된다. (= 가중치를 균일한 값으로 설정하면 안됨) 그러므로 초깃값을 무작위로 설정해야 함
- 은닉층의 활성화값 분포 : 활성화값이 한 곳으로 치우치면 표현혁을 제한하여 아무리 뉴런이 많아도 거의 같은 값을 출력함. 그러므로 적당히 고루 분포되어야 함
- Xavier 초깃값 : 일반적인 딥러닝 프레임워크들이 표준적으로 이용하는 가중치 초깃값.
- 앞 계층의 노드가 n개일 때 표준편차가 1/n인 정규분포를 사용
- 층이 깊어지면서 활성화값이 넓게 분포되어 학습이 효율적으로 이뤄짐
- He 초깃값 : ReLU에 특화된 초깃값.
- 앞 계층의 노드가 n개일 때 표준편차가 2/n인 정규분포를 사용
- ReLU에서 Xavier 초깃값을 사용할 시 활성화값의 치우침이 커지며, 기울기 소실 문제를 일으킬 수 있음
- 초깃값 선택 : 활성화 함수에 따라 ReLU일 때는 He 초깃값, Sigmoid나 tanh 등의 S자 모양 곡선일 때는 Xavier 초깃값을 사용하는 것이 적절
배치 정규화 (Batch Normalization)
- 배치 정규화 : 각 층에서의 활성화값이 적당히 분포되도록 함
- 이를 위해 배치 정규화 계층을 신경망에 삽입
- 학습 시 미니배치 단위(데이터 분포 평균 : 0, 분산 : 1)로 정규화함
- 배치 정규화된 데이터에 고유한 확대(Scale)와 이동(Shift)을 수행하여 적합한 값으로 조정해감
- 배치 정규화의 장점
- 학습 속도 개선
- 초깃값에 크게 의존하지 않음
- 오버피팅 억제
오버피팅
- 오버피팅 : 신경망이 훈련 데이터에만 지나치게 적응되어 그 외의 데이터에 제대로 대응하지 못하는 상태
- 오버피팅이 주로 일어나는 경우
- 매개변수가 많고 표현력이 높은 모델
- 훈련 데이터가 적을 때
- 오버피팅을 억제하는 방법
- 가중치 감소 : 큰 가중치에 대해서 그에 따른 큰 페널티를 부과하는 방법
- 드롭아웃(Dropout) : 훈련 때 은닉층의 뉴런을 임의(무작위)로 삭제하며 학습하는 방법. 시험 때에는 모든 뉴런에 신호를 전달하며 각 뉴런의 출력에 훈련 때 삭제 안 한 비율을 곱하여 출력
하이퍼파라미터
- 하이퍼파라미터 - 각 층의 뉴런 수, 배치 크기, 매개변수 갱신 시 학습률과 가중치 등
- 시험 데이터를 사용하여 하이퍼파라미터를 조정하면 하이퍼파라미터 값이 시험 데이터에 오버피팅되므로, 하이퍼파라미터의 성능을 평가할 때에는 시험 데이터를 사용하면 안됨
- 검증 데이터(Validation Data) : 하이퍼파라미터 조정용 데이터로, 하이퍼파라미터의 적절성을 평가하는 데이터
- 훈련 데이터 : 매개변수 학습
- 검증 데이터 : 하이퍼파라미터 성능 평가
- 시험 데이터 : 신경망 범용 성능 평가
- 하이퍼파라미터 최적화 과정
- 하이퍼파라미터 값 범위 설정
- 설정한 범위 내에서 하이퍼파라미터 값을 무작위로 추출
- 추출한 값을 사용하여 학습하고, 검증 데이터로 정확도 평가 (단, 에폭은 작게 설정)
- 2, 3단계를 특정 횟수 반복하여 정확도를 보며 하이퍼파라미터의 범위를 좁혀나감