모두를 위한 딥러닝 시즌2 - TensorFlow

Lec 08-1: 딥러닝의 기본 개념: 시작과 XOR 문제

sososoy 2021. 11. 3. 17:49

궁극적인 꿈: 우릴 대신해서 생각해주는 기계를 만들자.

 

 

사고의 과정

input x가 있고, w만큼 곱이 되는 양으로 신호가 들어온다.

그 신호들이 다 합쳐져 sum이 일어난다. 

이것이 통과가 되면서 b가 더해진다.

이렇게 모인 값이 정한 값 이상이 되면 활성화가 되고, 값 이상이 아니면 활성화가 되지 않는다.

 

Activation Functions

- 이 함수를 통해 특정 값을 넘어가면 1 이라는 신호를 주고, 넘지 않으면 0을 준다.

 

여러 개 출력 동시에 해낼 수 있는 기계도 가능하다.

 

하드웨어로 구현

(선, 다이얼)

기계가 입력 값에 대해 출력 값을 냄

 

 

관심을 끌자 허황된 약속을 하기 시작함

- 걷고, 말하고, 보고, 쓰고, 스스로 재생산하고, 자신의 존재를 인식하게 될 것이다!

 

당시 AND/OR 로직 문제를 풀면 생각하는 기계를 만들 수 있다고 생각함.

따라서 x1, x2 input이 있을 때 y를 AND/OR 로직에 따라 도출해낼 수 있을까? 는 중요한 문제였다.

 

그러나 XOR 로직 (값이 같으면 0, 틀리면 1)에서 실패하게 된다.

선으로 구분하면 정확도가 절반밖에 되지 않았다.

이를 해결하기 위해 사람들이 많이 노력하게 된다. 

 

XOR은 multilayer perceptrons를 통해 구현은 가능하나, 아무도 간단히 각각의 w과 b를 학습시킬 수는 없다고 주장했다.

 

Backpropagation이라는 알고리즘을 통해 출력에서 거꾸로 w과 b를 계산하는 것으로 해결하게 된다.

이 알고리즘은 많은 관심을 가지지 못하다가 Hinton이 재발견을 하게 되면서 알려지게 된다.

이를 통해 더욱 복잡한 예측이 가능하게 된다.

 

한편 다른 방법으로 접근한 LeCun 교수도 있다. 고양이에게 그림을 보게 한 후 그림에 따라 다른 뉴런들이 반응한다는 것을 알게 되었다. 즉 그림을 볼 때 신경망 전체가 그림 전체를 보는 것이 아닌, 일부를 담당하는 신경망들이 존재하고 나중에 이것들이 합쳐진다는 사실을 알게 되었다.

 

이에 따라 개발한 것이 Convolutional Neural Networks이다.

그림을 한 번에 학습시키는 것이 아닌, 그림을 부분으로 잘라 부분 부분 학습한 후 나중에 합치는 네트워크를 만들었다. 이는 90% 이상의 정확도를 보인다. 알파고 또한 이러한 방식을 사용했고, 미국에서 10-20%가 이 방식을 사용한다고 한다. 영화 터미네이터2의 대사에서도 살펴볼 수 있다. 

 

그러나 문제가 발생하게 된다.

Backpropagation은 앞의 에러를 뒤로 보낼 때 error가 거의 전달되지 않고 layer가 많아질수록 작동이 잘 되지 않게 되었다. 또한 SVM, RandomForest 등의 다른 알고리즘들이 떠오르게 되었다. 1995년도 LeCun 교수는 다른 알고리즘이 더욱 간단하고 효과적이라고 주장하게 되었다. 이로써 neural network는 두 번째 침체기를 맞게 되었다. 

 

 

 

 

 

출처: https://youtu.be/n7DNueHGkqE

이미지 출처: http://bit.ly/2LQMKvk