본문 바로가기

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

밑시딥 - 단순한 논리 회로(AND, NAND, OR)

사실 퍼셉트론을 소개한뒤 왜 논리 회로에 대한 이야기가 바로 나왔는지 의아했습니다.

이 블로그에 자세한 이야기가 적혀있습니다.

 

needjarvis.tistory.com/180?category=933541

 

퍼셉트론(Perceptron) - 2 (논리회로 편)

1. 퍼셉트론을 이해하는, 논리회로 초창기 퍼셉트론은 단순한 분류 문제를 풀 수 있었습니다. 이걸 이해하기 위해서는 진리표를 확인해야 될 필요가 있습니다. 인간의 논리방식을 컴퓨터로 구현

needjarvis.tistory.com

1. AND 게이트 

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

ㄱ. 입력이 둘이고 출력이 하나

ㄴ. AND 게이트는 입력이 모두 1일 때만 1을 출력하고 그 외에는 0을 출력

 

AND 게이트를 퍼셉트론을 이용해 표현하려면 가중치임계값을 정해줘야합니다.

 

생각해보면 위 진리표를 만족하는 조합은 무수히 많습니다.

 

책에 있는 예시 중 2가지를 살펴보겠습니다.

 

(0.5, 0.5, 0.7) - 가중치 각각 0.5, 임계값 0.7

0 x 0.5 + 0 x 0.5 = 0 < 0.7 결론 0 출력

1 x 0.5 + 0 x 0.5 = 0.5 < 0.7 결론 0 출력

0 x 0.5 + 1 x 0.5 = 0.5 < 0.7 결론 0 출력

1 x 0.5 + 1 x 0.5 = 1 > 0.7 결론 1 출력

 

(1.0, 1.0, 1.0) - 가중치 각각 1.0, 임계값 1.0

0 x 1.0 + 0 x 1.0 = 0 < 1.0 결론 0 출력

1 x 1.0 + 0 x 1.0 = 1 임계값 보다 커야하기 때문에 여전히 0 출력

0 x 1.0  + 1 x 1.0 = 1 위와 동일

1 x 1.0 + 1 x 1.0 = 2 > 1 결론 1 출력

 

조건을 충족하는 매개변수는 무수히 많겠죠?

2. NAND 게이트 

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

ㄱ. NAND 게이트는 Not AND를 의미합니다. 

ㄴ. 따라서 AND 게이트 출력을 뒤집으면 NAND 게이트의 출력값이 됩니다.

 

AND 게이트를 충족시키는 매개변수를 반전시키면 NAND 게이트를 구현하는 매개변수가 됩니다. 당연히 그 수는 무한하겠죠?

 

예시를 한번 들어보겠습니다 (-0.5, -0.5, -0.7)

 

0 x -0.5 + 0 x -0.5 = 0 > -0.7 결론 1 출력

1 x -0.5 + 0 x -0.5 = -0.5 > -0.7 결론 1출력

0 x-0.5 + 1 x -0.5 = -0.5 > -0.7 결론 1출력

1 x -0.5 + 1 x -0.5 = -1 <-0.7 결론 0 출력

 

AND 게이트와 완전히 반대인걸 알 수 있죠?

3. OR 게이트 

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

ㄱ. OR 게이트는 입력 신호 중 하나 이상이 1이면 출력이 1이 됩니다.

 

(0.8, 0.8, 0.3)

0 x 0.8 + 0 x 0.8 = 0 < 0.3 결론 0 출력

1 x 0.8 + 0 x 0.8 = 0.8 > 0.3 결론 1 출력

0 x 0.8 + 1 x 0.8 = 0.8 > 0.3 결론 1 출력

1 x 0.8 + 1 x 0.8 = 1.6 > 0.3 결론 1출력

 

여기서 알아두어야할 것은 변하는 값은 매개변수인 가중치와 임계값이라는 점입니다.

퍼셉트론의 구조는 AND, NAND, OR 게이트 모두에서 똑같습니다.

 

+

bskyvision.com/795

 

헷갈리는 코딩용어, 매개변수(parameter)와 인수(argument)

코딩을 하다보면 어떤 프로그래밍 언어든 관계없이 매개변수(parameter)와 인수(argument)라는 말을 접하게 됩니다. 그런데 문제는 저도 그렇고 많은 사람들이 정확한 개념을 모른채 혼용해서 사용한

bskyvision.com

velog.io/@taeha7b/python-parameter-argument

 

파이썬 함수와 매개변수, 인수

매개변수(parameter)와 인수(argument)의 차이점은 무엇일까요?

velog.io

매개변수라는 용어에 대한 설명입니다. 좀 헷갈리는 용어인데 한번 정리하고 가시면 좋을 것 같습니다.

 

+

여기서는 사람이 직접 매개변수 값을 찾아가고 있지만 실제 머신러닝을 진행하게되면 컴퓨터가 자동으로 매개변수를 찾게 됩니다.