Neural Networks_Learning_3
Backpropagation Intuition
Backpropagation은 수학적으로 클린한 알고리즘은 아니다.
이것은 linear regression이나 Logistic regression와 비교하면 복잡한 알고리즘에 속한다.
먼저 Forward Propagation
을 설명해 보자.
위 Neural Network의 구조는 [2 2 2 1]의 구조를 가진다.
$\theta$에서 $i$는 다음 layer에서 영향을 미칠 node의 위치를 나타낸다.
$j$는 특정 layer에서의 node위치를 의미한다.
$l$은 layer의 위치를 의미한다.
$z$에서 $a$로 변경 될때는 activation function을 거친다는 것을 알아두자.
What is backpropagation doing?
일단 output
이 1개 뿐이라고 생각해보자. 그럼 Cost function이 위와 같이 간단해 진다.
그리고 regularization term을 무시하기 위해서 $\lambda$는 0으로 설정 한다.
cross entropy형태의 cost function은 결국 Square Error를 근사시키기 위한 변형 함수이다.
직관을 위해서 그냥 Square Error라고 생각하자.
그럼 좀 더 쉽게 생각 할 수 있다.
Forward propagation
을 꺼구로 수행한것 처럼 계산하면
아래와 같이 식을 구할 수 있다.
결국 $\delta$라는 것은 실제 y와 예측한값 a간의 error를 나타낸다.
좀더 수학적으로 표현하면, 아래와 같다.
$$ \delta^{(l)}_{j} = \frac{\partial cost(i)}{\partial z_j^{(l)}} $$
여기서 $j$는 $\ge 0$를 만족 한다.
cost(i)는 cross entropy
값이다.
'MOOC > Machine Learning (python)' 카테고리의 다른 글
Gradient Checking (0) | 2016.08.04 |
---|---|
Neural Networks Learning: Implementation note unrolling (0) | 2016.07.22 |
Week04: Programming Exercise 3: Multi-class classification and Neural Networks (0) | 2016.07.14 |
Week 04: Neural Networks (0) | 2016.07.12 |
Week03 Programming Exercise 2: Regularized Logistic Regression (1) | 2016.07.10 |