티스토리 뷰

딥러닝

퍼셉트론 이란?

밀래 2020. 3. 3. 00:04
반응형

해당 포스팅은 개인 학습을 정리한 내용입니다. 

잘못된 점이 있다면 댓글로 남겨주시면 감사하겠습니다.

 

1. 퍼셉트론

 

[그림1]

 

 

 퍼셉트론은 1957년에 프랑크 로젠블라트가 고안한 알고리즘입니다. 오래된 알고리즘이지만 현재 신경망(딥러닝)의 기원이 되는 알고리즘으로 퍼셉트론의 구조를 알아가는 것이 꼭 필요합니다. 퍼셉트론은 다수의 신호를 입력받아 하나의 신호를 출력하는 알고리즘입니다. 간단히 예를 들면 AND 게이트 같이 두 개의 신호를 받아 0, 1로 출력하는 것도 퍼셉트론 알고리즘이라고도 할 수 있습니다. 

 

 

[그림2]

 

 그림 2는 퍼셉트론의 2개의 신호를 받는 예입니다. x1, x2 두개의 신호가 있고 w1, w2 각각의 가중치를 뜻합니다. 신호가 y를 향할 때 각각의 x는 가중치 w를 곱합니다. 여기서 y는 뉴런이라 하며 뉴런으로 가는 값은 정해진 θ를 넘으면 1이 출력되고 넘지 못하면 0이 출력됩니다.

 

 

[그림3]

 

 퍼셉트론은 AND, NAND, OR 논리 회로로 표현 할 수 있습니다. 논리 회로의 구조는 모두 같은 것을 확인할 수 있습니다. 다른 것은 가중치와 임계값(y)입니다. 이렇게 퍼센트론은 어떤 매개변수(가중치와 임계값)를 주느냐에 따라 다양하게 바뀔 수 있습니다.

 

2. 가중치와 편향 

 

 

[그림4]

 

 

  그림2에서 보았던 퍼셉트론을 구하는 식을 다음과 같이 변경할 수 있습니다. θ를 반대편으로 넘겨 -b로 치환하고 b에 따라 값이 달라질 수 있게 만들 수 있습니다. [그림 4]의 식을 해석하면 편향(b)과 가중치(w1, w2)를 어떻게 주느냐에 따라 AND, NAND, OR 게이트가 될 수 있습니다.

 

3. 퍼셉트론의 한계

 

 

[그림5]

 

 앞에서 알아봤던 퍼셉트론의 한계는 XOR와 같은 문제를 풀 수 없다는 것 입니다. XOR의 진리표는 두 개가 다를 때만 1이고 같으면 0을 출력합니다. 이러한 구조는 선형구조로 표현할 수 없기 때문에 [그림 5]에 보시는 것처럼 비선형 구조로 구분을 나눠야 합니다. 그렇다면 이런 구조는 퍼셉트론으로 어떻게 만들까요?

 

 

[그림6]

 

 이런 한계를 극복하기 위해 퍼셉트론으로 다중 구조의 네트워크를 만들 수 있습니다. 앞에서 알아본 NAND, OR, AND로 네트워크를 만들면 XOR를 만들어 낼 수 있습니다. 선형적인 구조가 아닌 비선형 구조의 문제도 해결 할 수 있다는 것이죠.

 

4. 정리

 

 다중 구조의 네트워크를 더욱 늘려 더욱 복잡한 회로도 생성이 가능합니다. 이러한 구조로 컴퓨터도 표현 할 수 있다고 합니다. 컴퓨터 구조를 만들어 내는데 2층이면 가능하다고 하니 [그림 6]의 구조만으로 컴퓨터를 구현할 수 있다고 합니다.

 

지금까지 이야기 해본 것을 정리하면 다음과 같습니다.

 

1. 퍼셉트론은 입출력 알고리즘으로 입력이 더해지면 정해진 규칙(매개변수)에 따른 값을 출력합니다.

2. 퍼셉트론의 매개변수는 가중치와 편향이 있습니다.

3. 퍼셉트론은 AND, OR 등 단순한 논리회로로 표현하며 이해할 수 있습니다.

4. XOR 게이트는 단층으로는 불가능하지만 2층으로 구현이 가능합니다.

5. 다층 퍼세트론으로 컴퓨터를 표현할 수 도 있습니다.

 

 

참고 문헌 

 

밑바닥부터 시작하는 딥러닝

반응형

'딥러닝' 카테고리의 다른 글

[딥러닝] 퍼셉트론과 신경망의 차이.  (2) 2020.03.03
댓글