티스토리 뷰
Sung Kim 교수님의 모두를 위한 머신러닝/딥러닝을 정리한 것
Nerual Network
NN 왜 쓸까?
- data의 feature가 매우 많을 때 logistic regression으로는 성능이 떨어지거나(연산량↑), overfitting의 문제가 발생할 가능성이 커진다.
- Backpropagation(Chain-rule)으로 계산량을 대폭 줄일 수 있기 때문에 NN을 사용한다.
XOR문제
- 하나의 unit으로는 xor문제를 절대 풀 수 없다(수학적으로 증명되었다)
- 각각의 weight와 bias에 대해 어떻게 학습에 어려움이 있다.
- 우선 다음과 같이 두개의 unit으로 xor문제를 해결할 수 있다!
- 이 두개의 unit을 Multinomial classification과 유사하게 Matrix를 이용하여 하나로 나타낼수 있다.
그렇다면 w와 b는 어떻게 학습시킬 수 있을까?
- 모델을 학습시키는 목적인 cost함수를 minimize시키는 w와 b를 찾아야 한다.
- 이때 사용하는 방법인 gradient descent algorithm에 대해 살펴보자.
- 위 그림과 같이 gradient descent는 w와 b를 조정하면서 cost를 줄여 나간다.
- 이때 w와 b를 조절하기 위해 cost를 미분하여 경사도를 구하는데 많은 수의 Layer를 갖는 Neural Nets도 마찬가지다.
Back propagation
- Back propagation algorithm은 forward propagation으로 학습한 output을 기준으로 다시 back하면서 chain-rule을 이용하여 w와 b를 학습시킨다.
Chain-rule
- Back propagation 과정에서 미분을 좀 더 쉽게 하기 위한 방법으로 편미분의 성질을 이용한다.
- af / ax = (af / ag) * (ag / ax)
- af / aw = (af / ag) * (ag / aw)
- 이러한 Chain-rule을 이용하면 sigmoid와 같은 복잡한 수식도 미분값을 이용해 Back propagation으로 해결할 수 있다!
'AI > Machine Learning' 카테고리의 다른 글
[정리]모두를 위한 딥러닝 07 - Learning rate, data preprocessing, overfitting (0) | 2018.08.04 |
---|---|
[정리]모두를 위한 딥러닝 06 - Softmax (0) | 2018.08.04 |
[정리]모두를 위한 딥러닝 05 - Logistic (Regression) Classification (0) | 2018.08.03 |
[정리]모두를 위한 딥러닝 04 - Multivariable Linear Regression (0) | 2018.08.03 |
[정리]모두를 위한 딥러닝 03 - How to minimize cost (0) | 2018.08.03 |