이번장에는 Activation function에 sigmoid function을 넣는 경우 한번으로 쓸만한 classifier가 될지를 알기 위해 가장 좋은 weight를 찾아야 한다
이를 cost function이라 하는데
반으로 나누는 것은 미분할 경우 제곱에 의해 상쇄되므로 간략화 할 수 있다. 제곱한다는 것은 차이에 대해 좀 더 명확히 차이를 주기위한것 정도로 이해하면 될듯~
인공지능을 훈련하는 과정중의 하나로서 은닉층이 깊어지게되며 WEIGHT를 수정하게 되고 Gradient descent에서 미분을 사용하여 그 값이 0인 지점을 찾게 된다. 즉, 출력 뉴련의 값 f는 목표 출력 y와 비교되어 차이가 계산된다. 이 차리를 수정하기 위해 시냅스 가중치들을 변경하는데 출력 뉴력에 대한 가중치 변경은 아래와 같이 수식화 할 수 있다
여기서 weight을 update하는 미분은 편미분을 사용하여 ds/dw 할것이며 예로서 두개의 weight에 의한 계산을 보자
weight vector w(i), w(j)는 각각 Hidden layer와 output layer로 갈 때 사용하는 것으로서
편미분 dc/dw
dC/dw(1) 값을 구하면
위식의 각각의 미분값은
d(t)(k)/dw(2) 의 행렬은 t(k) = aw(j) 이므로 w(j)로 미분해주면 a 만 남고, 행렬 곱으로 sigma를 행렬 곱으로 계산. 지금까지 스칼라곱이 여기서 행렬곱으로 변경됨. 따라서,,,
여기서,
은 3x1 행렬이므로 위의 식을 행렬 곱셈으로 변환하기 위해서는 3x3행렬을 앞에 곱하게 되고, 정리하기 위해 transpose matrix로 변경.
다음은 dc/w(i)을 아래와 같이 구함
위 식에서 과 를 구했으니 실제 weight vector를 업데이트 함. 여기서 고려할 것은 learning rate
위 식으로 w(i)와 w(j)를 update. 이것으로서 한 epoch 진행.
따라서, w(i)와 w(j)가 update되었으므로 x1과 x2를 update된 w(i)와 w(j)와 연산되어 동일한 과정을 진행.
참고 사이트, 작성자 : matt Mazur
http://www.emergentmind.com/neural-network
http://mattmazur.com/2015/03/17/a-step-by-step-backpropagation-example/
□
'2. 인공지능 > 2-4. 딥러닝' 카테고리의 다른 글
2-4-1. 딥러닝 개요 (0) | 2018.01.08 |
---|