티스토리 뷰

https://hunkim.github.io/ml/

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으로 해결할 수 있다!



Comments
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday