딥러닝

perceptron (XOR 게이트) Question 해결

관형이 2023. 6. 26. 11:27

이번 시간에는 저번 시간에 궁금했던 부분을 해결하려고 한다

먼저 시작 전에 저번 시간에 궁금했던 문제를 먼저 해결해보려고 한다.

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

XOR 진리표

 

이 문제를 나는 경우의 수로 풀어보았다. 

 

cf. XOR 논리게이트가 무엇인지 모르겠다면 이전 포스팅 참고 하시길 바란다.

 

밑바닥부터 시작하는 딥러닝1 (perceptron) #part2-2

어제 다 설명 못한 perceptron에 대하여 설명하겠다. 저번 시간에는 단층 퍼셉트론에 대한 설명과 논리회로를 알아봤다면, 이번 시간에는 다층 퍼셉트론과 단층 퍼셉트론의 한계에 대하여 알아보

hyeong1197.tistory.com

 

문제 해결(XOR)

경우의 수: 3 * 2 * 1(비복원 추출)

 

각각의 게이트를 모른다고 가정한다. 주어진 자리에 3가지 중 특정 값이 들어갈 경우의 수를 정하겠다. 각각의 게이트는 한번만 사용할 수 있으니, 비복원 추출이다.

첫번째 자리에 들어갈 경우의 수 3 -> 두번째 자리에 들어갈 경우의 수 2-> 세번째 자리에 들어갈 경우의 수 1

 

즉 가능한 총 경우의 수는 6가지이다.

 

x1, x2의 값

런데, 각각 동일한 값이 나오는 경우의 수는 제거해야한다.

입력: X1, X2의 값은 1,0이고 각각

2*2 = 4의 경우의 수를 만족. 따라서 X1, X2의 입력값이 반대가 되도 된다. ->  즉, 은닉층의 있는 논리게이트의 순서는 바뀌어도 된다는 의미이다.

 

중복 제거

직접 만든 PPT 참고

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

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

경우의 수(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번 경우 파이썬 코드로 구현하기

(AND, NAND) -> (OR)
(AND, OR) -> (NAND)

결과 값을 보면 XOR 게이트를 구성할 수 없는 것을 알 수 있다.

 

 

-> AND, OR, NAND를 조합해서 새로운 XOR게이트는 구현할 수 없다.

위의 결론을 확인 할 수 있다.

 

 

그 외에 직관적인 느낌으로는

아니면 실제로 3게이트를 만족하는 가중치 편향이 모두 다름 -> 바꿔도 될 수가 없음

 

이런 식으로 이해도 가능하다.