[Ultimate dream: thinking machine]
인간의 뇌는 굉장히 복잡한 반면에 뉴런이라고 불리는 유닛은 굉장히 단순하게 동작이 된다. 어떤 input이 들어오면 그 input에 weight를 곱한 만큼 신호가 들어온다. 신호의 값들이 합쳐지고 통과하면서 bios가 더해지는데 이 최종 값이 특정 값 이상이면 활성화되고, 특정 값을 넘지 못하면 활성화되지 않는다.
[Activation Functions]
뉴런의 동작 방식을 이용해 Activation Function을 만들었다.
[(Simple) XOR problem: linearly separable?]
Activation Function을 이용하여 직접 Hardware를 구현했다. AND/OR 문제의 경우 선형적으로 구분이 가능하기에 쉽게 해결이 되었다. 하지만 XOR 문제의 경우 단순히 선형적으로 구분하지 못하기 때문에 쉽게 해결할 수 없었다.
[Perceptrons (1969) by Marvin Minsky, founder of the MIT AL Lab]
Marvin Minsky는 XOR 문제를 해결할 수 없다는 것을 수학적으로 증명했다. MLP(Multilayer Perceptrons) 방식으로 perceptron을 여러 개 합치면 해결할 수도 있지만, 각각의 weight와 bios를 학습시킬 수 없다는 문제가 생긴다.
[Backpropagation (1974, 1982 by Paul Werbos, 1986 by Hinton)]
학습할 때 에러가 발생하면 weight 값과 bios 값을 다시 조정하는 것이 Multilayer Perceptrons에서는 어려운 문제였다. 이를 해결하기 위해 Paul Werbos가 에러를 backward로 전달해 뒤에서부터 다시 학습시키는 알고리즘을 생각해낸다. 그 당시에는 별다른 관심을 받지 못했지만 1986년 Hinton이 재발견을 하면서 사람들의 이목이 집중된다.
[Convolutional Neural Networks]
사람이 그림을 볼 때 뇌의 전체 신경망이 반응하는 것이 아니라 일부의 신경망이 부분적으로 반응한다는 사실을 이용하여 Backpropagation과 다른 방법으로 XOR 문제에 접근한 알고리즘이 있다. 데이터를 한 번에 네트워크로 보내는 것이 아니라 부분을 여러 개 나눠서 각 layer에 보낸 다음에 나중에 합치는 방식을 구현했다. 위 알고리즘을 사용하면 문자나 숫자를 인식하는데 90% 이상의 성능을 보여준다.
[A Big problem]
Backpropagation 알고리즘은 적은 layer를 가진 neural net에서는 잘 적용이 되지만, 약 10여개 이상의 layer를 가진 neural net에서는 에러를 backward로 보낼 때 오히려 성능이 떨어진다는 문제가 발생했다.
[CIFAR]
Backpropagation 알고리즘에서 발생한 문제를 CIFAR란 캐나다의 연구 단체가 해결했다.
[Breakthrough in 2006 and 2007 by Hinton and Bengio]
굉장히 deep한 신경망은 학습할 수 없을 것이라 생각했지만 각각의 weight에 대한 초기 값을 잘 선택한다면 여러 개의 layer를 가진 neural net에서도 학습을 진행할 수 있다. neural net라는 이름은 Deep Nets, Deep Learning으로 바꾸는 계기가 되었다.
'인공지능 > 모두를 위한 딥러닝 시즌 2' 카테고리의 다른 글
Relu (0) | 2023.08.13 |
---|---|
XOR 문제 딥러닝으로 풀기 (0) | 2023.08.13 |
application and tips (0) | 2023.08.06 |
Softmax Classifier (0) | 2023.08.06 |
logistic_regression (0) | 2023.08.06 |