본문으로 바로가기

Feed-forward NN & Backpropagation

category AI/Deep Learning 2021. 3. 3. 00:40

Feed-forward neural network

1) 개요

    - 입력층과 은닉층은 완전 연결돼있고 은닉층과 출력층도 완전 연결돼있다.

    - 은닉층의 개수는 모델 설계 과정에서 층을 늘리거나 줄일 수 있다.

    - Neuron을 training하는 것은 모델이 최적의 성능을 발휘할 수 있는 weights, bias를 결정하는 것이 목표이다.

 

2) 특징

    - hidden layer를 추가함으로써 classifier를 형성하고 데이터에 최적화된 변환 연산을 training한다.

    - hidden layer의 neuron 수에 따라 데이터의 차원을 축소하거나 증가할 수 있다.

 

3) 과정

    - x : 입력값, t : 출력값, o : 예측값

$$D_{n} = (x_{n1}, x_{n2}, \cdots, x_{nd}, t_{n1}, t_{n2}, \cdots, t_{nm})$$

    (1) 모든 가중치  w를 임의로 생성

$$h_{j} = sigmoid(w_{j0} + \sum_{i=1}^{d} w_{ji}x_{i})$$

    (2) 입력변수 값과 입력층과 은닉층 사이의 w값을 이용하여 은닉노드의 값을 계산 (선형 결합 후 activation)

$$o_{k} = sigmoid(w_{k0} + \sum_{j=1}^{p}w_{kj}h_{j})$$

    (3) 은닉노드값과 은닉층과 출력층 사이의 w값을 이용하여 출력노드의 값을 계산 (선형 결합 후 activation)

$$\frac{\partial E_{n}}{\partial w_{kj}} = -(t_{k}-o_{k})o_{k}(1-o_{k})h_{j}$$

$$w_{kj} \Leftarrow w_{kj}-\alpha \frac{\partial E_{n}}{\partial w_{kj}} $$

    (4) 계산된 출력노드의 값과 실제 출력변수의 값의 차이를 줄일 수 있도록 은닉층과 출력층 사이의 w값을 업데이트

$$\frac{\partial E_{n}}{\partial w_{ji}} = -x_{i}h_{j}(1-h_{j})\sum_{k=1}^{m} w_{kj}o_{k}(1-o_{k})(t_{k}-o_{k})$$

$$w_{ji} \Leftarrow w_{ji}- \alpha \frac{\partial E_{n}}{\partial w_{ji}} $$

    (5) 계산된 출력노드의 값과 실제 출력변수의 값의 차이를 줄일 수 있도록 입력층과 은닉층 사이의 w값을 업데이트

    (6) 에러가 충분히 줄어들 때까지 step 2 ~ 5 반복


Backpropagation

1) 개요

    - 일반적인 neural network는 label을 이용하여 cost function을 최소화하는 weight와 bias를 계산하였다.

    - 하지만, hidden layer의 경우 label이 존재하지 않기 때문에 backpropagation을 이용한다.

    - output  layer의 output과 cost function으로부터 계산된 오차를 hidden layer로 역전파한다.

 

2) 수학적 이해

    - feed-forward 단계에서는 왼쪽에서 노드에서 넘어온 값을 다시 오른쪽 노드에 넣어 원형함수만 전송

$$X \rightarrow g(x) \rightarrow f(g(x))$$

    - backpropagation에서는 위의 과정을 역으로 진행하며 전체 노드의 미분값을 도출한다.

 

3) hidden layer & output layer

    - w2 : 가중치, h2 : hidden과 가중치의 선형결합 결과, r2 : h2에 activation function 적용결과

$$\frac{\partial E}{\partial w_{2}}=\frac{\partial E}{\partial r_{2}}\frac{\partial r_{2}}{\partial h_{2}}\frac{\partial h_{2}}{\partial w_{2}}$$

 

4) input layer & hidden layer

    - w1 : 가중치, h1 : input과 가중치의 선형결합 결과

$$\frac{\partial E}{\partial w_{1}} = \frac{\partial E}{\partial h_{1}}\frac{\partial h_{1}}{\partial w_{1}}$$


참고

untitledtblog.tistory.com/141?category=823331

ganghee-lee.tistory.com/31

ratsgo.github.io/deep%20learning/2017/05/14/backprop/

'AI > Deep Learning' 카테고리의 다른 글

Batch Normalization  (0) 2021.03.05
Dropout  (0) 2021.03.04
Weight Initialization  (0) 2021.03.04
SGD (Stochastic Gradient Descent)  (0) 2021.03.04
Activation function  (0) 2021.03.03