저번 시간에 설명했듯이 큰 골치거리였던 XOR을 Neural Network로 해결할 수 있게 됨으로써 딥러닝의 큰 발전이 가능했다. 이번 시간에는 어떻게 XOR을 Neural Network로 해결할 수 있는지 알아보도록 하겠다.
기존의 neural network 하나로 AND나 OR은 해결할 수 있었지만 XOR은 neural network 하나로 해결할 수 없었기에
딥러닝의 큰 난관이었고, 이후에 neural network 여러 개로 해결할 수 있다는 점은 알아냈지만
각각의 weight과 bias를 학습하는 것이 불가능하다는 입장이었다.
위와 같이 weight이 5,5이고 bias가 -8인 NN에서 나온 값을 y1으로, weight이 -7,-7이고 bias가 3인 NN에서 나온 값을 y2로 입력을 받아서 weight이 -11, -11이고 bias가 6인 NN을 거친 최종 값 Y hat을 결과로 가지는 NN 구조가 XOR의 결과와 같게 나오는지 직접 계산해보겠다.
위에서 했던 것을 하나로 정리해보면 위와 같은 구조가 될 것이다. 이것이 하나의 Neural Network가 되는 것이다.
그런데 XOR와 결과가 같은 위의 예시와 다른 W과 b의 조합을 찾을 수 있을까? 이것은 과제로 남겨두도록 한다.
위의 예시에서는 각각의 NN의 wx+b의 결과를 일일이 계산했는데 matrix를 이용하면 한 번에 계산할 수 있고,
그것을 코드로 짜는 방법은 위 그림의 오른쪽 하단에 표시해두었다.
다음 시간에는 W1, W2, b1, b2 값을 어떻게 정할지를 알아보도록 하겠다.
'AI > [DLBasic]모두의 딥러닝(딥러닝의 기본)' 카테고리의 다른 글
[DLBasic] 10 - 1. ReLU : Better non-linearity (0) | 2020.01.19 |
---|---|
[DLBasic] 9-2. BackPropagation (0) | 2020.01.17 |
[DLBasic] 8-2. Back-propagation과 Deep의 출현 (0) | 2020.01.16 |
[DLBasic] 8-1. 딥러닝의 기본 개념 : 시작과 XOR 문제 (0) | 2020.01.16 |
[DLBasic] 7-2. Training / Testing Data Set (0) | 2020.01.16 |