뱁새유니버스

[딥러닝] #002. 딥러닝 퍼셉트론 AND, NAND, OR게이트 논리회로 알아보기

by 뱁새유니버스

1. 개요

지난 시간에 딥러닝의 기본인 퍼셉트론 알고리즘에 대해 얘기했습니다. 이번 시간은 퍼셉트론을 활용한 간단한 문제를 만들어보도록 하겠습니다. 

 

2. 내용

① 단순한 논리 회로 AND, NAND, OR 게이트

퍼셉트론(Perceptron) 논리 회로는 크게 AND 게이트, NAND(Not AND) 게이트, OR 게이트가 있습니다. 

1. AND 게이트 : X1, X2 이 두 개의 변수가 1일 때만! Y가 1이 출력되는 것입니다, 하나라도(X1, X2) 0이면 Y는 0으로 출력되는 것입니다. 

2. NAND 게이트 : AND게이트와 반대입니다. AND의 출력과 반대인 것이죠. X1, X2가 1일 때 Y는 0을 출력하고, 그 외는 모두 Y가 1을 출력합니다.

3. OR게이트는 X1, X2(입력신호들) 중에 어느 하나라도 1이면 Y가 1로 출력되는 것입니다.

왜 논리회로를 알아야 할까요? 바로 딥러닝의 기본적인 알고리즘을 만들어낼 수 있기 때문입니다. 복잡한 논리회로를 기반으로 어떤 입력 값에 따른 결과를 출력하는 것이지요.

 

아래와 같이 간단하게 AND 게이트를 파이썬으로 구현했습니다. 

AND(0,0) = x1과 x2가 둘다 0이면, y는 0을 출력합니다.

이렇게 AND게이트를 만든 것처럼, NAND 게이트, OR게이트를 파이썬에서 구현할 수 있습니다. 여러 논리회로를 통해 뉴런이 사고하는 것처럼 퍼셉트론 알고리즘을 구성할 수 있습니다. 

 

여기에 더해, 편향도 넣을 수 있습니다. 

이를 수학적으로 표현하면 아래와 같습니다.

$$y=\begin{cases} 0, (b + w_1x_1 + w_2x_2 \le \theta) \\1, (b + w_1x_1 + w_2x_2 > \theta) \end{cases}$$

 

앞서 퍼셉트론 알고리즘을 통해 강아지를 판별하는 예를 들었습니다. 같은 맥락에서 w는 가중치이고, x는 입력신호(꼬리, 몸통, 생김새 등등) 입니다. 가중치와 입력신호를 곱해 y(강아지)라는 값을 출력해내는 것이지요! b(bias)는 편향을 나타냅니다. 편향은 가중치와 다릅니다. 가중치는 각 입력신호(x1, x2,...)가 결과에 주는 영향력이고, 편향은 얼마나 뉴런이 활성화가 되냐를 조정하는 매개변수입니다. 임계값 \theta 을 넘을 때(음~ 이만하면 강아지군?) 1을 출력하고, 임계값을 넘지 않을 때 0을 출력합니다.

 

3. 마치며

이번 시간은 딥러닝의 시초 퍼셉트론에 대해 좀더 알아보았습니다. 다음 시간에는 퍼셉트론이 갖는 한계와 딥러닝에서 사용하는 다른 알고리즘들을 소개해드릴까 합니다.

 

질문이 있으시면 언제든 댓글 남겨주세요! 답변드리겠습니다.

이 글을 보는 모든 분들 오늘 하루가 행복하시길 바랍니다.

감사합니다.

반응형

블로그의 정보

가슴이 웅장해지는 모든것

뱁새유니버스

활동하기