사실 퍼셉트론을 소개한뒤 왜 논리 회로에 대한 이야기가 바로 나왔는지 의아했습니다.
이 블로그에 자세한 이야기가 적혀있습니다.
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 게이트 모두에서 똑같습니다.
+
헷갈리는 코딩용어, 매개변수(parameter)와 인수(argument)
코딩을 하다보면 어떤 프로그래밍 언어든 관계없이 매개변수(parameter)와 인수(argument)라는 말을 접하게 됩니다. 그런데 문제는 저도 그렇고 많은 사람들이 정확한 개념을 모른채 혼용해서 사용한
bskyvision.com
velog.io/@taeha7b/python-parameter-argument
파이썬 함수와 매개변수, 인수
매개변수(parameter)와 인수(argument)의 차이점은 무엇일까요?
velog.io
매개변수라는 용어에 대한 설명입니다. 좀 헷갈리는 용어인데 한번 정리하고 가시면 좋을 것 같습니다.
+
여기서는 사람이 직접 매개변수 값을 찾아가고 있지만 실제 머신러닝을 진행하게되면 컴퓨터가 자동으로 매개변수를 찾게 됩니다.
'DATA STUDY > 밑바닥부터 시작하는 딥러닝' 카테고리의 다른 글
밑시딥 - 시그모이드 함수(Sigmoid function) (0) | 2021.03.16 |
---|---|
밑시딥 - 신경망(Neural networks) 그리고 활성화 함수(Activation function) (0) | 2021.03.08 |
밑시딥 - 퍼셉트론의 한계 (0) | 2021.03.06 |
밑시딥 - 퍼셉트론 구현(가중치와 편향) (0) | 2021.03.06 |
밑시딥 - 퍼셉트론(Perceptron)이 뭘까? (0) | 2021.03.04 |