딥러닝 for Deep Learning

밑.시.딥. Chapter2. 퍼셉트론(Perceptron) 본문

지하에서부터 시작하는 딥러닝

밑.시.딥. Chapter2. 퍼셉트론(Perceptron)

JadenM 2021. 7. 13. 22:05

[퍼셉트론]

 

퍼셉트론:
프랑크 로젠블라트(Frank Rosenblatt)가 1957년에 고안한 알고리즘.
신경망(딥러닝)의 기원이 되는 알고리즘.

 

 

 

 

퍼셉트론이란?


 

퍼셉트론은 다수의 신호를 받아 하나의 신호를 출력.

 

신호: 전류나 강물처럼 흐름이 있는 것

 

  • 흐른다: 1
  • 안 흐른다: 0

 

 

입력이 2개인 퍼셉트론

 

  • x1, x2: 입력 신호
  • y: 출력 신호
  • w1, w2: 가중치(weight)

 

위 그림 중, 원을 뉴런 혹은 노드라고 하며, 입력 신호가 뉴런에 보내질 때는 각각 고유한 가중치가 곱해진다.

 

가중치와 곱해진 입력 신호가 정해진 한계(임계값(θ) )를 넘어설 때만 1을 출력한다.

 

수식은 아래와 같다.

 

 

 

 

 

 

 

 

 

단순한 논리 회로


AND 게이트

 

입력이 둘이고 출력은 하나인 게이트

 

두 입력이 모두 1일 때만 1을 출력, 아니면 0

 

 

진리표

 

위 조건을 만족하는 매개변수 조합

 

w1 w2 θ
0.5 0,5 0.7
0.5 0.5 0.8
1.0 1.0 1.0

 

x1, x2 모두가 1일 때만 가중 신호의 총합이 임계값을 넘어선다.

 

 

 

 

 

NAND 게이트

 

Not AND

 

AND 게이트의 출력의 반대.

 

두 입력이 모두 1일 때만 0을 출력, 아니면 1

 

 

 

 

w1 w2 θ
-0.5 -0,5 -0.7

 

 

 

 

 

 

OR게이트

 

입력 신호중 하나 이상이 1이면 1을 출력, 하나도 없으면 0

 

 

 

 

 

 


퍼셉트론의 구조는 위 세가지 게이트 모두에서 같다.


바뀌는 것은 가중치임계값 뿐이다.

 

 

 

 

 

 

 

퍼셉트론 구현하기


AND 게이트 구현

 

 

 

 

가중치와 편향 도입

 

임계값 θ 를 -b로 치환

 

 

 

  • b: 편향(bias)
  • w1, w2: 가중치(weight)

 

입력 신호에 가중치를 곱한 값에 편향을 합하고, 그 값이 0을 넘으면 1을 출력, 아니면 0.

 

 

 

 

 

 

다시 구현

 

AND 게이트

 

 

NAND 게이트

 

 

OR 게이트

 


가중치(w1, w2): 각 입력 신호가 결과에 주는 영향력(중요도)을 조정하는 매개변수

편향(bias): 뉴런이 얼마나 쉽게 활성화 (결과로 1을 출력)하느냐를 조정하는 매개변수

 

 

 

 

 

 


 

 

 

 

 

퍼셉트론의 한계


XOR 게이트

 

XOR 게이트(eXclusive OR)는 배타적 논리합이라는 논리 회로.

 

'배타적'이란 자기외에는 거부한다는 의미.

 

두 입력 중 한쪽이 1일 때만 1을 출력.

 

 

 

 

지금까지의 퍼셉트론으로는 XOR 게이트를 구현할 수 없다.

 

예시로, OR 게이트는 가중치 매개변수 {(b, w1, w2) = (-0.5, 1.0, 1.0)} 일 때 아래의 진리표를 만족한다.

 

 

식으론 아래와 같이 표현된다.

 

 

 

위 식은 직선으로 나뉜 두 영역을 만든다.

 

 

 

네 점을 직선으로 잘 나누고 있다.

 

 

 

그러나 XOR 게이트의 경우는?

 

 

 

직선 하나로는 어떤 식으로도 동그라미와 세모 점을 구분할 수가 없다.

 

 

 

 

선형과 비선형

 

그치만 '직선'이 아니라면?

 

 


곡선의 영역을 비선형 영역

직선의 영역을 선형 영역

 

 

 

 

 

 

다층 퍼셉트론이 출동한다면


 

퍼셉트론을 여러층으로 쌓아 다층 퍼셉트론(multi-layer perceptron)을 만들면 XOR 게이트도 표현할 수 있다.

 

 

 

기존 게이트 조합하기

 

AND, NAND, OR 게이트를 조합해서 XOR 게이트를 만든다.

 

 

 

 

 

 

 

 

 

  • x1, x2: NAND와 OR 게이트의 입력
  • s1, s2: NAND와 OR 게이트의 출력

 

 

 

 

 

 

 

XOR 게이트 구현하기

 

 

 

 

 

다층 구조의 네트워크

 

AND, OR 은 단층 퍼셉트론

 

XOR은 2층 퍼셉트론

 

층이 여러 개인 퍼셉트론을 다층 퍼셉트론이라 한다.

 

 

 

 

 

 

 

NAND에서 컴퓨터까지


다층 퍼셉트론을 가능성은 무궁무진.

 

덧셈을 처리하는 가산기, 2진수를 10진수로 변환하는 인코더, 조건을 만족하면 1을 출력하는 회로 등...

 

심지어 NAND 게이트의 조합만으로 컴퓨터를 만들 수도 있다. 놀랍다.

 

비선형인 시그모이드 함수를 활성화 함수로 이용하면 임의의 함수를 표현할 수 있다는 사실이 증명됨.

 

 

 

 

 

 

 

 

 

정리


  • 퍼셉트론은 입출력을 갖춘 알고리즘이다. 입력을 주면 정해진 규칙에 따른 값을 출력한다.
  • 퍼셉트론에서 '가중치'와 '편향'을 매개변수로 설정한다.
  • 퍼셉트론으로 AND. OR 게이트 등의 논리 회로를 표현할 수 있다.
  • XOR 게이트는 단층 퍼셉트론으로는 표현할 수 없다.
  • 2층 퍼셉트론을 이용하면 XOR 게이트를 표현할 수 있다.
  • 단층 퍼셉트론은 직선형 영역만 표현할 수 있고, 다층 퍼셉트론은 비선형 영역도 표현할 수 있다.
  • 다층 퍼셉트론은 (이론상) 컴퓨터를 표현할 수 있다.

 

 

 

 

 

 

자료출처:
밑바닥부터 시작하는 딥러닝 1 - 사이토 고키 저