이번장에는 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

딥러닝의 역사는 크게 1세대의 최초 인공신경망 퍼셉트론(Perceptron), 2세대 다층(Multilayer) 퍼셉트론, 3세대 현재의 딥러닝으로 구분할수 있음

기계학습(Machine Learning)

- 컴퓨터가 스스로 학습하여 예측모형을 개발하는 인공지능의 한 분야이며, 문제해결에 적합해 보이는 특징을 원시 데이터(original data)에서 추출해서 만든 특징 벡터(feature vector)를 입력 데이터로 사용. 따라서, 기계학습 방법의 성능은 이 특징 벡터의 품질에 영향을 크게 받음

딥러닝(Deep Learning)

- 인간의 신경망의 원리를 이용한 심층신경망(Deep Neural Network)이론을 이용한 기계학습방법. 인간은 컴퓨터가 아주 짧은 시간에 할 수 있는 계산도 쉽게 해낼 수 없는 반면, 컴퓨터는 인간이 쉽게 인지하는 사진이나 음성을 해석하지 못하는데 이는 인간의 뇌가 엄청난 수의 뉴런과 시냅스의 로 이루어져 있기 때문이다. 각각의 뉴런은 기능이 보잘것 없지만 수많은 뉴런들이 복잡하게 연결되어 병렬연산을 수행함으로서 컴퓨터가 하지 못하는 음성, 영상인식을 수월하게 할 수 있는 것이며 딥러닝은 이 수많은 뉴런과 시냅스의 병렬연산을 컴퓨터로 재현하는 방법인 것이다.

- 다수의 층이 있는 신경망을 사용하여 입력으로 주어진 원시 데이터로부터 적합한 특징을 자동으로 추출하고 문제해결을 위한 학습을 동시에 수행하는 기법으로서 원시데이터를 그대로 입력으로 받아들여 신경망 안에서 특징 추출이 이루어지고 입력에 대응하는 목표 출력이 나오도록 학습이 이루어짐.

전통적인 신경망에서는 원시 데이터로 부터 문제에 적합한 특징을 별도로 추출한 다음, 이 특징을 신경망의 입력으로 사용. 즉, 특징 추출을 하는 부분을 별도로 개발해야 함 .

 

원시데이터 -> 특징추출(특징벡터)-> 신경망 -> 출력                          원시데이터 -> 딥러닝 신경망 -> 출력

                   [전통적인 신경망]                                                                   [딥러닝 신경망]

 

 

'2. 인공지능 > 2-4. 딥러닝' 카테고리의 다른 글

2-4-2. Back Propagation  (0) 2018.02.11

+ Recent posts