오늘은 Deep Learning의 기초인 Neural Network의 역사에 대해 알아보고자 한다.
Neural Network의 역사는 다음과 같다.
A neuron (or a perceptron) (1958~)
사람의 신경망을 본떠서 만든 모델로,
(1) weighted sum of inputs과 (2) an activation function으로 구성되어 있다
Input에 대한 각 가중치 그리고 이에 대한 Bias의 합들을 weighted sum을 한 후, activation function을 통해 예측 결과를 도출한다.
처음 Perceptron이 고안되었을 때는 Step function이라는 현재는 사용하지 않는 activation function을 사용했다.
Step function은 정말 단순하게 0을 기준으로 판별한다.
또한, Perceptron은 하나의 layer, 즉 단층으로 구성되어 있다.
그렇기에, AND, NAND, OR 게이트 구현은 가능하지만 XOR 게이트는 구현이 불가하다는 단점을 가진다.
다음 그림처럼, XOR에 대해서는 답을 도출할 수 있는 직선을 구할 수 없다.
직선, 그렇다 이 부분이 바로 perceptron의 문제 non-linearity가 없다는 것이다.
현실에 직면하는 다양한 문제를 풀기 위해서는 당연하게도 non-linearity는 필수적이다.
Multi-layer neural network (1986~)
앞서 언급한 XOR 문제를 해결하기 위해 고안한 방식이 바로 Multi-layer neural network 혹은 MLP로 부르는 방식이다.
Layer를 한 개 이상으로 늘리면서 activation function을 통해 non-linearity를 갖게 되어 XOR 문제 해결이 가능한 구조이다.
여기서, Layer를 증가시키는 것만으로 XOR 문제를 해결할 수는 없을까?라는 의문이 든다.
당연하게도 그럴 수는 없다.
이는 위 수식을 보면, h(x) Layer를 여러 개 쌓는다고 해도 결국에 기존처럼 linear구조만 표현 가능하다.
결국, Layer만 여러개 쌓는 것은 non-linearity를 갖게 할 순 없는 것이다.
따라서, 이를 위해 사용하는 것이 activation function이다.
Activation function의 종류는 다음과 같이 다양하게 존대한다.
이중 Activation function에서 0과 1 사이의 확률 값으로 변형시켜 주는 sigmoid function을 사용하게 되면, classification이 가능해진다.
만약, Multi classification을 원하다면 softmax function을 사용하면 된다.
이처럼, Activation function은 현재 풀고자 하는 문제 상황에 가장 알맞은 방식을 사용하면 된다.
Deep learning (2006~
Multi-layer neural network (MLP)와 Deep learning은 그럼 무엇이 다른 걸까?
가장 큰 차이점은 바로 깊이이다.
Multi-layer neural network의 경우 깊이가 깊지 않으며, 주로 간단한 패턴 인식, 분류, 회귀 등의 문제에 사용되며 전통적인 Machine Learning 범주에 속한다.
Deep Learning은 매우 깊은 신경망을 쌓아 고차원적인 이미지 인식, 음성 인식, 자연어 처리 등의 데이터 처리에 적합한 방식이다.
'Deep Learning' 카테고리의 다른 글
Anaconda 가상 환경의 python version 변경 (0) | 2024.02.18 |
---|---|
Deep Learning? Machine Learning? (0) | 2024.01.23 |