2017년 11월 21일 화요일

Neural Network

http://neuralnetworksanddeeplearning.com/chap1.html

* 0~9까지 숫자 손글씨 인식 예제에 대해 아래와 같이 모델링 가능 함.

x : training input. 28x28=784 크기의 vector 1개.
     vector내 784개 값은 각각 한 픽셀이 grey인지 white인지 구분 (0 or 1)

y : 우리가 기대하는 desired output vector
     숫자는 0~9까지 이므로, vector의 크기는 10.
     가령, 어떤 training input x에 대해 기대하는 인식은 6이라고 하면,
     y(x) = {0,0,0,0,0,0,1,0,0,0}T가 output vector y 임.

* 모든 input x에 대한 신경망의 output이 y(x)에 근사하게 나오도록,
   신경망을 구성하는 각 뉴런의 weight들과 bias 값들을 찾기 위한 알고리즘이 필요 함. [A]

* 현재의 신경망이 얼마나 잘 인식을 하고 있는지 판단하기 위해서 Cost 함수를 도입함.

C(w,b)≡(1/2n) * (sum of || y(x) - a) || ^ 2 for all input x)

w : 신경망 전체의 weight의 집합
b : 신경망 전체의 bias의 집합
a : 입력 x에 대한 현재 신경망의 실제 output vector
C : Cost 함수

모든 training input x들에 대해, 각 x에 대한 각각의 desired out vector와의 차의 벡터 길이의 제곱의 합을 2n으로 나눠 준 것.

* 그러면, 문제 [A]는 이 C의 값을 최소화 시키는 방법을 찾는 것으로 다시 정의 될 수 있음.

* 우선 2개 변수 함수
 C = v1 + v2
 dC = f

댓글 없음:

댓글 쓰기