하나의 퍼셉트론에 여러개의 inputs을 받았다. 지금까지 본 것은 하나의 뉴런이라고 할 수 있다.
뉴럴 네트워크가 뜨는 이유는 이러한 뉴런이 여러개가 네트워크를 이루기 때문이다.
하지만 퍼셉트론에는 문제가 있는데 선형 구분가능(linearly separable)문제가 있다.
선형 구분 가능(linearly separable)은 다차원 공간에 분포한 두 집단이 하나의 다차원 평면(hyper plane)으로 구분 가능함을 의미한다. - d위키백과
선형 구분 가능한 문제 | 선형 구분 불가능한 문제 |
리니어 세퍼레이블 문제는 왼쪽에 보이는 그림과 같이 하나의 선으로 두 부분으로 구분할 수 있는 것이다.
하지만 오른쪽 그림과 같이 하나의 선으로는 white&black으로 구분할 수 없는 문제가 생긴다. (XOR problem)
이와 비슷한 것이 AND, OR 연산 그리고 XOR 연산이다.
그림에서 보이듯이 AND 와 OR 연산은 True, False 두 부분을 하나의 직선으로 나눌 수 있다.
하지만 XOR 연산은 직선으로 나누지 못하는 점이 있다.
그렇기 때문에 퍼셉트론으로는 XOR연산을 풀지 못하는 단점이 있다.
하지만 그 해결 방법으로 두개의 퍼셉트론을 사용하면 XOR연산을 가능하게 한다.
먼저 하나의 퍼셉트론으로 OR연산을 하고, 다른 하나는 NOT AND 연산을 해서 두개를 합치면 XOR연산이 되기 때문이다.
위의 그림과 같이 여러개의 퍼셉트론이 하나의 네트워크를 이루는 것을 멀티 레이어드 퍼셉트론(multi-layered perceptron) 이라고 한다. 그리고 input과 output에 직접 닿지 않는 부분을 hidden layer라고 한다. 우리는 앞으로 여러개의 hidden 레이어를 구성할 수 있다.
앞에서 예를 봤을 때, 하나의 퍼셉트론을 에러에 따른 weight를 변화 시켜가면서 훈련하는 것은 쉬웠다. 하지만 여러가지 connections과 layers가 있는 멀티 레이어 퍼셉트론의 경우 트레이닝 과정이 쉽지가 않다.
이러한 멀티레이어 네트워크의 weight를 optimizing 하는 방법으로 backpropagation이 알려져 있다.
'IT > [Everyday]Coding' 카테고리의 다른 글
gradient descent 와 stochastic gradient descent 차이 (0) | 2014.12.19 |
---|---|
딥러닝_Neural Network_backpropagation (0) | 2014.12.19 |
딥러닝_Neural Network_퍼셉트론3 (0) | 2014.12.19 |
딥러닝_Neural Network_퍼셉트론2 (1) | 2014.12.19 |
딥러닝_Neural Network_퍼셉트론 (0) | 2014.12.19 |