이번 시간에는 저번 시간에 궁금했던 부분을 해결하려고 한다
먼저 시작 전에 저번 시간에 궁금했던 문제를 먼저 해결해보려고 한다.

질문은 다른 방식으로도 3가지를 조합하여, XOR 논리게이트를 만들 수 있는가? 이다.

이 문제를 나는 경우의 수로 풀어보았다.
cf. XOR 논리게이트가 무엇인지 모르겠다면 이전 포스팅 참고 하시길 바란다.
밑바닥부터 시작하는 딥러닝1 (perceptron) #part2-2
어제 다 설명 못한 perceptron에 대하여 설명하겠다. 저번 시간에는 단층 퍼셉트론에 대한 설명과 논리회로를 알아봤다면, 이번 시간에는 다층 퍼셉트론과 단층 퍼셉트론의 한계에 대하여 알아보
hyeong1197.tistory.com
문제 해결(XOR) |
경우의 수: 3 * 2 * 1(비복원 추출)
각각의 게이트를 모른다고 가정한다. 주어진 자리에 3가지 중 특정 값이 들어갈 경우의 수를 정하겠다. 각각의 게이트는 한번만 사용할 수 있으니, 비복원 추출이다.
첫번째 자리에 들어갈 경우의 수 3 -> 두번째 자리에 들어갈 경우의 수 2-> 세번째 자리에 들어갈 경우의 수 1
즉 가능한 총 경우의 수는 6가지이다.

런데, 각각 동일한 값이 나오는 경우의 수는 제거해야한다.
입력: X1, X2의 값은 1,0이고 각각
2*2 = 4의 경우의 수를 만족. 따라서 X1, X2의 입력값이 반대가 되도 된다. -> 즉, 은닉층의 있는 논리게이트의 순서는 바뀌어도 된다는 의미이다.
중복 제거

중복을 제거한 경우의 수를 봐보자

중복을 제거한 경우의 수를 봐보면,
경우의 수(OR과 NAND의 순서를 바꾸는건 됨)
1. (AND, NAND) - > (OR)일때
2. (AND, OR) -> (NAND)일때
3. (OR, NAND) -> (AND) -> 이건 XOR구현의 기본 원리
따라서 3가지 중 2가지만 보면 됨.
마지막 부분은 XOR을 구성하는 기본 논리 회로이니, 제외하고 2개의 경우의 수만 보면 된다.
cf. 총 가능 경우의 수
1. (AND, NAND) -> (OR)
2. (NAND, AND) -> (OR)
3. (AND, OR) -> (NAND)
4. (OR, AND) -> (NAND)
5. (OR, NAND) -> (AND)
6. (NAND, OR) -> (AND)
이런 식으로 중복 제거 결론은 출력 층의 수만큼 경우의 수가 나온다
1, 2번 경우 파이썬 코드로 구현하기


결과 값을 보면 XOR 게이트를 구성할 수 없는 것을 알 수 있다.
-> AND, OR, NAND를 조합해서 새로운 XOR게이트는 구현할 수 없다.
위의 결론을 확인 할 수 있다.
그 외에 직관적인 느낌으로는
아니면 실제로 3게이트를 만족하는 가중치 편향이 모두 다름 -> 바꿔도 될 수가 없음
이런 식으로 이해도 가능하다.
'딥러닝' 카테고리의 다른 글
Loss function 정리(MAE, MSE, RMSE) (0) | 2023.07.12 |
---|---|
Loss function 정리 (Cross entropy, Negative log likelihood) (1) | 2023.07.10 |
밑바닥부터 시작하는 딥러닝1 (neural network) #part3-1 (0) | 2023.06.27 |
밑바닥부터 시작하는 딥러닝1 (perceptron) #part2-2 (0) | 2023.06.18 |
밑바닥부터 시작하는 딥러닝1 (perceptron) #part 2-1 (3) | 2023.06.18 |