Charming ['ㅡ'] Ham !

퍼셉트론 (Perceptron) 에 관하여 본문

지식 정보 공유/딥러닝, 머신 러닝 : Deep, Machine Learning

퍼셉트론 (Perceptron) 에 관하여

Charming_ham 2021. 2. 26. 23:00
728x90
반응형

퍼셉트론 (perceptron)

다수의 신호 (정보) 를 입력 으로 받아 앞으로 전달, 최종적으로 0 또는 1 이라는 하나의 신호를 출력 한다.

각 각의 신호를 뉴런 (neuron) 혹은 노드 (node) 라고 하며, 앞으로 전달되면서 각 각 고유한 가중치 (weight) 가 곱해진다. 각 노드에 가중치를 곱해 앞으로 전달된 값이 정해진 한계값을 넘어설때 1을 출력 한다. 이를 '뉴런이 활성화 한다.' 라고 표현하며, 정해진 한계값을 임계값 (𝜃θ) 로 표기한다.

2개의 입력을 받는다고 가정 했을때, 각 각의 신호를 𝑥1,𝑥2x1,x2 ,가중치 가 𝑤1,𝑤2w1,w2 일때 다음과 같은 식으로 표현할 수 있다.

𝑦={0(𝑤1𝑥1+𝑤2𝑥2𝜃)1(𝑤1𝑥1+𝑤2𝑥2>𝜃)y={0(w1x1+w2x2≤θ)1(w1x1+w2x2>θ)

가중치는 각 신호가 결과에 주는 영향력을 의미하며, 가중치가 클 수록 해당 신호가 그만큼 더 중요함을 의미한다.

퍼셉트론을 활용한 논리 회로

퍼셉트론을 활용한 논리 회로는 총 4가지(AND 게이트, NAND 게이트, OR 게이트, XOR 게이트) 가 있다.

진리표 입력 신호와 출력 신호의 대응표

  1. AND 게이트

AND 게이트는 입력 신호가 모두 1일때만 1 을 출력하고, 그 외에는 0 을 출력한다.

AND 게이트 진리표


𝑥1x1|𝑥2x2|𝑦y 0|0|0 1|0|0 0|1|0 1|1|1

이 AND 게이트를 표현하는 방법은 가중치와 임계점을 어떻게 설정 하느냐에 따라 무수히 많다. 예를들어 (𝑤1,𝑤2,𝜃)(w1,w2,θ) 가 (0.5, 0.5, 0.7) 이라면 각 각의 신호 𝑥1,𝑥2x1,x2 가 1 일때만 임계값을 초과하게 되므로 1이 출력된다.

  1. NAND 게이트

NAND 게이트는 Not AND 게이트라는 의미로, AND 게이트의 출력을 뒤집은 것이다. 즉, 𝑥1,𝑥2x1,x2 가 모두 1일때만 0을 출력하고 그 외에는 1을 출력 한다.

NAND 게이트 진리표


𝑥1x1|𝑥2x2|𝑦y 0|0|1 1|0|0 0|1|0 1|1|0

NAND 게이트의 조합 역시 무수히 많은 조합이 있지만, AND 게이트의 결과를 반대로만 하면 된다.

  1. OR 게이트

입력 신호 중 하나 이상이 1이면, 1을 출력 하는 논리 회로이다.

OR 게이트 진리표


𝑥1x1|𝑥2x2|𝑦y 0|0|0 1|0|1 0|1|1 1|1|1

퍼셉트론을 활용한 논리 회로는 위 4가지가 있지만 기본적인 구조는 동일하다.

즉, 같은 구조에서 매개변수 (가중치와 임계값) 의 변화에 따라 다른 논리 회로가 된다.

  1. XOR 게이트

XOR 게이트는 베타적 논리합 이라는 논리 회로이며, 𝑥1,𝑥2x1,x2 중 어느 한쪽만 1 일 때만 1을 출력 한다.

XOR 게이트 진리표


𝑥1x1|𝑥2x2|𝑦y 0|0|0 1|0|1 0|1|1 1|1|0

가중치와 편향 도입

퍼셉트론의 수식에서 𝜃θ  𝑏−b 로 치환하여 좌변으로 넘겨  𝜃θ 를 0 으로 만든다면

𝑦={0(𝑏+𝑤1𝑥1+𝑤2𝑥20)1(𝑏+𝑤1𝑥1+𝑤2𝑥2>0)y={0(b+w1x1+w2x2≤0)1(b+w1x1+w2x2>0)

위와 0 을 기준으로 보다 쉽게 생각할 수 있다. 여기서 𝑏b  편향 (bais) 이라고 한다. 즉, 입력 신호 𝑥x 에 편향을 더해준 값이 0 이상이면 1을 출력, 0 미만이면 0 을 출력한다.

편향은 가중치와 기능이 다르다. 가중치는 각 입력 신호가 결과에 영향을 주는 중요도를 조절하는 매개변수이며, 편향은 뉴런이 얼마나 쉽게 활성화 할 수 있는지를 조절하는 매개변수이다.

퍼셉트론의 한계

각 논리 회로에서 𝑥1,𝑥2x1,x2 를 좌표로 찍어, 1과 0을 출력하는 영역을 나눠보면 하나의 직선으로 나눌 수 있다.

하지만 XOR 게이트를 좌표에 표시하고, 출력에 따른 영역을 나눠보면 직선으로 구분할 수 없다. 이렇게 직선만으로 퍼셉트론을 표현할 수 있는 것이 퍼셉트론의 한계이다.

XOR 게이트의 진리표와 이를 수식으로 표현하면,

XOR 게이트 진리표


𝑥1x1|𝑥2x2|𝑦y 0|0|0 1|0|1 0|1|1 1|1|0

𝑦={0(0.5+𝑥1+𝑥20)1(0.5+𝑥1+𝑥2>0)y={0(−0.5+x1+x2≤0)1(−0.5+x1+x2>0)

이 된다. 하지만 직선이라는 제약을 없앤다면 해당 영역을 나눌 수 있다.

선형과 비선형

XOR 게이트는 입력 신호를 직선으로 나눌 수 없지만, 직선이 아니라면 영역을 나눌 수 있다. XOR 게이트 처럼 곡선으로 영역을 표현하는 것을 비선형 영역, 이라고 한다.

반면에 AND 게이트, NAND 게이트, OR 게이트 처럼 직선의 영역을 선형 영역 이라고 한다.

다층 퍼셉트론

퍼셉트론의 한계는 여러 개의 퍼셉트론을 층을 쌓아 다층 퍼셉트론 (multi-layer perceptron) 을 만들 수 있다.

이렇게 층을 쌓아 XOR 게이트를 구현할 수 있게 된다. 여러 방법으로 만들 수 있지만, 앞서나온 AND, NAND, OR 게이트를 조합하여 만들 수 있다.

XOR 게이트는 𝑥1,𝑥2x1,x2 로 NAND 와 OR 게이트 입력이 되고, NAND 와 OR 게이트의 출력이 AND 게이트로 이어지면 된다.

NAND, OR 의 입력 신호 𝑥1,𝑥2x1,x2 의 출력을 𝑠1,𝑠2s1,s2 로 해서 진리표를 만들면 다음과 같다.

다층 퍼셉트론 XOR 게이트 진리표


𝑥1x1|𝑥2x2|𝑠1s1|𝑠2s2|𝑦y 0|0|1|0|0 1|0|1|1|1 0|1|1|1|1 1|1|0|1|0

이렇게 입력된 신로를 바탕으로 다음 층으로 신호가 전달되고, 이렇게 전달 된 신호를 바탕으로 또 다음층으로 전달된다. 그리고 마지막 층에서는 전달된 신호를 바탕으로 출력을 하게된다.

정리 : 퍼셉트론

  1. 신경망의 기초가 된다.
  2. 입출력을 갖출 알고리즘으로 입력을 받으면 일정 패턴에 따른 값을 출력한다.
  3. 가중치와 편향을 매개변수로 설정한다.
  4. AND, NAND, OR, XOR 게이트 논리 회로가 존재한다.
  5. 퍼셉트론은 하나의 퍼셉트론만 존재하는 단층 퍼셉트론, 여러개의 퍼셉트론이 층을 쌓아 존재하는 다층 퍼셉트론이 있다.
  6. 단층 퍼셉트론은 선형으로 영역 구분이 가능하며, AND, NAND, OR 논리 회로를 설명할 수 있다.
  7. 다층 퍼셉트론은 비선형으로 영역 구분이 가능하며, XOR 논리 회로를 설명할 수 있다.

 


퍼셉트론의 논리 회로 (AND, NAND, OR XOR 게이트 구현 코드

 

2021/02/26 - [지식 정보 공유/딥러닝, 머신 러닝 : Deep, Machine Learning] - 퍼셉트론의 논리 회로 코드 - AND, NAND, OR, XOR 논리회로

 

퍼셉트론의 논리 회로 코드 - AND, NAND, OR, XOR 논리회로

# AND 게이트 # 입력 신호가 2개 일 때 def AND(x1, x2) : w1, w2, theta = 0.5, 0.5, 0.7 tmp = x1*w1 + x2*w2 if tmp <= theta : return 0 elif tmp > theta : return 1 print(AND(1, 1)) # 1을 출력 print(AND(..

charmingham.tistory.com

 

728x90
반응형