이 글은 https://www.youtube.com/watch?v=oOQCrm4Vemo&list=PLSAJwo7mw8jn8iaXwT4MqLbZnS-LJwnBd&index=7&t=652s
영상을 기반으로 작성하였습니다.
## Solving XOR problem with MLP

위 그림에서 MLP의 input layer는 input 값이 들어가게 된다. 그리고 hidden layer에서 하나의 동그라미는 hidden unit이라고 한다. 그리고 MLP에서 화살표의 의미는 가중치를 곱해주는 것이다. 또한 가중치를 곱한 후에 activation function을 통과한다.
## XOR
x1 | x2 | y |
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
이러한 XOR 문제를 해결하기 위해 다음과 같이 MLP를 구성한다.

위 그림에서 S는 sigmoid function이고 왼쪽에 있는 네모를 위에서부터 편의상 1번 layer, 아래에 있는 네모를 2번 layer, 오른쪽에 있는 layer를 final layer라고 칭한다.
input 값으로
x1 | x2 | y1 | y2 | y | |
0 | 0 | 0 | 1 | 0 | 0 |
1 | 0 | 0 | 0 | 1 | 1 |
0 | 1 | 0 | 0 | 1 | 1 |
1 | 1 | 1 | 0 | 0 | 0 |
모두 정확하게 예측을 함을 알 수 있다.
이러한 MLP 구조에서 어떻게 bias와 weight 를 정하고 어떻게 훈련할 수 있을까?
이러한 해답은 backpropogation에 있다.
## Backpropogation
MLP Backpropogation의 핵심은 Chain Rule이다. Chain rule을 한 번 손으로 풀어보자
예를 들어
이를 그림으로 표현하면 다음과 같다.

backpropogation을 하기 전에 feedforward를 구해보자.
그러면 이를 기반으로 backpropogation을 구해보자
우선 각각의 편미분 값을 구해보자.
그러면 이를 chain rule에 의해서

이런 원리를 이용하여 backpropogation을 수행하고 mlp를 훈련 시킬 수 있다.
'딥러닝 기초' 카테고리의 다른 글
Advanced Optimizer than SGD (0) | 2021.08.14 |
---|---|
Overfitting, Regularization (0) | 2021.08.01 |
코드에서 파라미터 최적화 (0) | 2021.07.28 |
History of DeepLearning (0) | 2021.07.21 |
Binary/Multi Classification (0) | 2021.07.18 |
댓글