본문 바로가기

ML & 딥러닝/이론 및 실습

[Part1] 퍼셉트론 이해하기(AND, XOR게이트)

퍼셉트론은 딥러닝을 이해하기 위한 기본단위라고 할 수 있다. 퍼셉트론을 여러개의 층으로 쌓아서 만드는 기술을 딥러닝으로 부르게 된다.

 

 

Perceptron 기본구조

 

위의 Perceptron 구조를 간단하게 이해해보자.

 1) x1~xn까지의 입력이 들어가면, 최종적으로 output을 내보낸다.

 2) x1~xn까지의 입력들은 각각 w1~wn의 weight들과 곱한값을 더해서 output을 추출하게 된다.

 

Perceptron 예제

 

Perceptron의 구조를 활용해서 OR, XOR게이트 등 논리게이트들을 구현할 수 있다.

※ OR, XOR게이트를 논리게이트라고 부르는데 전기회로를 구성할때 사용되는 기본단위이다.

 

 

OR게이트

 

OR게이트는 2개의 입력값을 받아서 1개의 출력을 하게 될때 아래와 같은 규칙을 이용하면 된다. 입력값 x1과 x2가 모두 0일때만 y를 0로 출력하고 나머지는 모두 1으로 출력하면된다.

x1 x2 y
0 0 0
1 0 1
0 1 1
1 1 1

 

Perceptron 논리식을 그대로 Python코드로 구현하기만 하면 된다. 각 입력값마다 개발 weight를 곱하고 bias를 더해서, 그 값이 0보다 크면 1을 출력하고, 0보다 작거나 같으면 0을 출력한다.

Perceptron 기본 논리식
OR게이트 구현 코드

 

Python을 통해 OR게이트를 구현할때, Perceptron의 논리식은 weight를 모두 0.4로 설정하고 bias를 -0.2로 설정함으로써 원하는 값으로 구분해낼수 있다.

OR게이트 논리식

 

우리가 방금 구현한 Perceptron의 경우, 아래 그림처럼 x1, x2의 입력값이 (0, 0)일때만 0으로 분류하고 나머지 값에 대해서 1로 분류하는 코드를 작성한 것이다.

 

XOR게이트

 

XOR게이트를 동일한 방법으로 구현해보려고하면, 단층 Perceptron으로는 구현이 불가능하다는 것을 알 수 있다.

1개의 직선으로 XOR게이트를 분류해낼 수 없기 때문이다.

 

x1 x2 y
0 0 0
1 0 1
0 1 1
1 1 0

XOR게이트 진리표

 

XOR게이트를 만들기 위해 다른 논리게이트 여러개를 붙여서 다층 Perceptron으로 구현한다면 어떨까?

NAND, OR, AND게이트를 합쳐서 다층 Perceptron구조로 구현해보자.

(x1,x2) (s1,s2) y
(0, 0) (1, 0) 0
(1, 0) (1, 1) 1
(0, 1) (1, 1) 1
(1, 1) (0, 1) 0

XOR게이트 진리표

 

위의 회로를 Python코드를 구현해보면 다층 Perceptron구조를 통해 XOR게이트 구현이 잘 되는것을 볼 수 있다.

XOR게이트 구현코드

 

 

딥러닝의 기본동작원리를 이해하기 위해 Perceptron의 기본구조를 학습해보았다.

다음 글을 통해 딥러닝의 기본동작원리를 이해해보자.

 

 

 

[참고] XOR게이트 전체 코드

 

 

'ML & 딥러닝 > 이론 및 실습' 카테고리의 다른 글

[Part2] Logistic Regression 이해 및 실습  (0) 2024.04.23