티스토리 뷰
XOR은 정말 단순한 문제이지만 초기 neural network 연구자들에게 큰 절망을 주었다.
이런 하나의 unit으로는 이 문제를 풀 수 없다는 것이 수학적으로 증명이 되었고, 때문에 사람들이 neural network는 잘 안된다고 믿었던 계기가 되었다.
그런데 하나가 아니라 2개 3개를 합치면 어떻게 될까?
그러면 풀 수 있다.
그런데 또 그당시에 나왔던 문제는 각각의 w과 b를 어떻게 학습할 수 있느냐 였는데, 불가능하다고 하였다.
neural network로 xor이 가능한지 확인해 보자.
linear하게 +,-를 구분할 수 있는 선을 찾을 수 없었다.
이 문제를 3개의 network를 가지고 풀어보겠다.
하나의 network는 하나의 unit이 logistic regression과 같다.
여기까지 여러개의 neural network를 사용하면 XOR output을 출력할 수 있다는 것을 확인할 수 있었다.
이것들을 하나로 뭉쳐서 그려보면 다음과 같은 그림이 나올 것이다.
자 그러면 이런 weight과 bias를 가지면 XOR 문제를 풀 수 있다는 것을 보였는데, 이 값들 말고 다른 조합의 값들이 존재할까? (생각해보자)
이 부분을 보면 multinomial classification과 유사하다는 것을 확인할 수 있다.
3개의 unit을 합치기 위해서는 벡터를 3줄로 주면 된다.
마찬가지로 2개를 합쳐보면, weight과 bias가 늘어났고, 수식으로는 다음과 같이 정리할 수 있다.
민스키 교수님이 최종적으로 던져준 문제 "How can we learn W1, W2, B1, B2 from training data?" 는 다음시간에 설명하겠다.
'beginner > 파이썬 딥러닝 기초' 카테고리의 다른 글
XOR을 위한 텐서플로우 딥네트웍 (0) | 2019.05.07 |
---|---|
딥 네트웍 학습 시키기 (0) | 2019.05.06 |
Tensor Manipulation (0) | 2019.05.06 |
딥러닝의 기본 개념: 시작과 XOR 문제~Back-propagation과 2006/2007 '딥'의 출현 (0) | 2019.05.06 |
Meet MNIST Dataset (0) | 2019.05.06 |