- object detection
- 딥러닝
- Weight initialization
- SPP-Net
- deep learning
- overfeat
- image classification
- LeNet 구현
- Optimizer
- Convolution 종류
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Today
- Total
I'm Lim
Back Propagation 본문
Paper
Rumelhart, D. E., Hinton, G. E., & Williams, R. J. (1986). Learning representations by back-propagating errors. nature, 323(6088), 533-536.
논문이 가지는 의미
퍼셉트론이 XOR문제를 해결하지 못하자 MLP가 등장하였고, 그에 따라 weight와 bias의 개수가 급등하였다. 이런 상황에서 weight update를 효율적으로 할 수 있는 방안이 필요했고, 그 중 하나가 Back-propagation 방식이다. 현재 딥러닝에서도 Back propagation을 이용하여 모델의 weight를 update시킨다는 점에서 중요한 논문이라 할 수 있다.
논문의 내용
1. Hidden layer의 의미
본 논문에서는 hidden layer를 어떤 input의 feature를 추출해내는 layer로 표현했다. input layer와 output layer가 곧바로 연결되면 그 사이 노드들의 weight값이 직접적으로 output의 loss 값을 줄이려 하기 때문에 learning rule을 파악하는 것이 쉬웠지만, XOR문제에 따라 MLP가 발전하게 되면서 hidden layer들이 feature에 관한 정보를 가지고 있을 것이라고 생각했다.
2. Back propagation
편미분의 기울기를 이용하여 weight를 업데이트 시키는 것.
1) $x_j = \Sigma_{i} y_i w_{ji}$
2) $y_j = \frac{1}{1+e^{-x_j}}$
3) $E = \frac{1}{2} \Sigma_c \Sigma_j (y_{j,c} - d_{j,c})^2$
j : 아웃풋 레이어의 노드 인덱스 // c : 데이터 인덱스
4) $\frac{\partial E}{\partial x_j} = \frac{\partial E}{\partial y_j} \frac{\partial y_j}{\partial x_j}$ , 2)에 의해, $\frac{\partial y_j}{\partial x_j} = y_j (1-y_j)$
5) $\frac{\partial E}{\partial w_{ji}} = \frac{\partial E}{\partial x_j} \frac{\partial x_j}{\partial w_{ji}}$ , 1)에 의해, $\frac{\partial x_j}{\partial w_{ji}} = y_i$
6) $\frac{\partial E}{\partial y_1} = \frac{\partial E}{\partial x_j} \frac{\partial x_j}{\partial y_1} = \frac{\partial E}{\partial x_j} w_{j1}$
7) $\frac{\partial E}{\partial y_i} = \Sigma_j \frac{\partial E}{\partial x_j} w_{ji}$
편미분 $\frac{\partial E}{\partial w}$은 $w$의 변화에 따른 $E$의 변화율을 나타내므로 이를 이용하여 weight를 업데이트 한다.
3. Gradient Descent
x축이 w이고, y축이 E인 함수를 생각해본다면 error가 최소가 되는 지점은 극소점이 될 것이다. 이 극소점은 기울기가 0이 되는 지점이고, 이를 위해서 기울기에 -를 곱하여 w를 업데이트 시켜나가면 극소점을 찾을 수 있다. 이를 수식으로 표현하면 $w = w - \alpha \frac{\partial E}{\partial w}$로 표현이 가능하다. 이때, $\alpha$는 learning rate로써 얼만큼 w를 움직일 것인가에 해당한다. 적절한 learning rate를 사용하면 기울기가 0인 지점을 찾을 수 있을 것이고, 이 때 E가 최소가 되는 지점을 찾았다고 가정한다 (엄밀히 말하자면, local minimum인지 global minimum인지 모른다). 이와 같이 기울기의 음수를 곱하여 w를 업데이트 하는 방식을 Gradient Descent 방식이라 한다.
4. Chain rule
Chain rule을 사용하면 계산하기 쉽다는 것은 이미 2에서 확인하였다. 컴퓨터적인 관점으로 보면 chain rule을 이용하면 계산량을 줄여준다. $\frac{\partial E}{\partial x_j}$을 계산하기 위해서는 $\frac{\partial E}{\partial y_j}$와$\frac{\partial y_j}{\partial x_j}$가 chain rule에 의해 사용된다. 그러나, Back propagation 계산 과정에서 이 $\frac{\partial E}{\partial y_j}$는 이미 계산이 되어 있기 때문에 이를 저장하였다가 사용하면 계산량이 줄어드는 효과를 가진다.
'Deep Learning > Fundamental' 카테고리의 다른 글
Vanishing gradient / Exploding gradient (0) | 2022.11.29 |
---|---|
Activation function / Overfitting problem (0) | 2022.11.28 |
Global Minima / Local Minima / Saddle Point (0) | 2022.09.18 |
Multi Layer Perceptron (0) | 2022.08.09 |
The Perceptron (0) | 2022.08.08 |