chapter06 학습 관련 기술들
신경망 학습의 목적?
-손실 함수의 값을 최대한 낮추는 매개변수를 찾는 것.
-최적화를 위하여(매개변수의 최적값을 찾기 위함)
-아래의 4가지(SGD , Momentum , AdaGrad , Adam)중 풀어야할 문제에 따라서 적절하게 선택하여 수행
-신경망 학습에서는 가중치의 초깃값이 중요
오버피팅?
-신경망이 훈련 데이터에만 지나치게 적응되어 다른 데이터에는 대응을 못하는 것
-훈련 데이터가 적거나 매개변수가 많고 표현력이 높은 모델에서 주로 발생
가중치 감소?
-오버피팅을 억제하기 우;한 방법
-학습 과정중에 가중치가 큰 값을 감소시켜서 억제하는 방식
확률적 경사 하강법(SGD)?
-기울어진 방향으로 계속 매개변수 값을 갱신하여 최적해에 다가가는 방법
-갱신할 가중치 매개변수 = 갱신할 가중치 매개변수-학습률*손실함수의 기울기
-단순 및 구현이 쉬우나 비효율적이다.
모멘텀?
-SGD단점을 개선
-갱신할 가중치 매개변수= 갱신할 가중치 매개변수 + ( a*v - 학습률*손실함수의 기울기 ) 여기서 av는 물체에 아무런 힘을 받지 않을때 서서히 값을 하강시키는 역할을 한다.
AdaGrad?
-SGD단점을 개선
-각각 변수들에게 맞게 각각 학습률을 점차 줄여나간다.
Adam?
-SGD단점을 개선
-AdaGrad와 모멘텀 방식을 합친 방법
가중치의 초깃값
-가중치 감소 기법(가중치 값을 작게 하여 오버피팅을 억제해서 범용 성능을 높인다.)
-가중치를 0으로 설정하면 모든 가중치 값이 똑같이 갱신되어 않된다.
-가중치를 제대로 설정하지 않으면 활성화 값들이 치우쳐져서 표현력을 제한할 수 있다.(만약 활성화값이 0.5에 치우쳐 지거나 0과1에 치우쳐진 경우)
배치 정규화?
-가중치 초깃값을 적절히 설정하여 각 층의 활성화값 분포가 적당히 퍼지는 것을 강제시키는 것
-학습 속도를 개선
-초깃값에 의존하지 않는다.
-오버피팅을 억제
-활성화값이 적당히 분포하도록 조정한다.(ex-> Affine->batch_norm->ReLu)