학습이란?
신경망에서 입력신호의 총합을 도출 할 시 가중치를 일일히 사람이 설정해 주워 모델을 완성하는 것은 한계가 있다. 따라서, 훈련데이터로부터 가중치 매개변수릐 최적값을 찾는 것을 학습이라 말한다.
이미지를 벡터로 변환 할 시에는 사람이 적합한 특징을 설계하여 학습은 기계가 스스로 하도록 해 주워야 한다.
과도한 하나의 데이터 셋에 대하여만 학습은 그 데이터 셋에대하여만 최적화가 되어 오버피팅(overfitting)현상이 일어날 수 있다.
def func(f,x):
h = 10e-50
return (f(x + h) - f(x)) / h
이렇게 구현을 하게 되면 h가 아무리 작은 수라도 오차가 생길 수 있다.
def func(f,x):
h = 10e-50
return (f(x + h) - f(x - h)) / h
손실 함수가 최소값이 될 때의 매개변수 값을 찾는 것이 학습
손실함수를 찾기 위하여 경사 하강법을 이용한다.
경사하강법이란?
기울기를 이용하여 함수의 최소값을 찾는 것 - 해당 방법을 사용하기 위해서는 그래프의 최소값이 유일해야 한다!
복수의 최소값이 존재 할 경우 기울기가 0이 되는 지점이 최소값이 아닐 수 있기 때문이다.
출처 https://librewiki.net/wiki/%EA%B2%BD%EC%82%AC%ED%95%98%EA%B0%95%EB%B2%95
이 그래프를 보게 되면 기울기가 0이 되는 부분이 최솟값이 아닐 수 있기 때문이다.
오차제곱합에서 W변수가 하나일 경우를 보게 되면 W에 대한 2차원 그래프이고 기울기가 0인 지점이 최솟값을 가지게 된다.
출처
https://hackernoon.com/gradient-descent-aynk-7cbe95a778da
f = w1^2 +w2^2를 그래프로 그려보면 다음과 같고 하나의 최소값을 가지는 것을 볼 수 있다.
이러한 경사법을 이용하여 매개변수를 조정하여 학습을 하게 되는데 수식은 다음과 같다.
Learning Rate
https://bhsmath.tistory.com/172
사이토 고키(齋藤 康毅), 『Deep Learning from Scratch』, 개앞맵시, 한빛미디어(2017), p107-p146