컴공 공작소

퍼셉트론 XOR를 OR, AND, NAND 를 사용하여 변환하기 본문

IT

퍼셉트론 XOR를 OR, AND, NAND 를 사용하여 변환하기

쑤깨비 2025. 2. 8. 00:54

퍼셉트론에 대한 개념은 이미 많은 곳에서 설명하고 있으니 생략할게요.

이 페이지에서는 퍼셉트론이  OR, AND 게이트는 분리가 가능한데, XOR 를 분리할 수 없는 문제에서, OR, AND, NAND 를 사용하여 처리할 수 있다는 내용을 다뤄보려고 해요.

저도 초반 인공지능 공부할 때 퍼셉트론이 XOR 문제를 해결하지 못해 첫번째 암흑기가 도래했고, 후에 다른 게이트를 층을 쌓아 해결했다는 내용과 그 해결 내용이 XOR를 AND, OR, NAND 를 사용하면 된다는 거였어요.

출처 : 위키독스(wikidocs.net)

위 이미지처럼 NAND와 OR, AND 를 결합한 이미지들만 있지 왜 그렇게 변환하는지에 대한 설명은 어디에도 없더라구요.

그런데!!! 디지털 논리회로를 하다보니 이것과의 연관성을 찾게 되었습니다.

유레카~~~~~~~~~~

저 처럼 혹시라도,, 왜??? 저렇게 되지?? 라는 의문을 품고 계신 분들이 있을지도 몰라 내용을 작성해 봅니다.

우선 다음과 같은 사전 지식이 필요합니다.

▶ OR, AND, XOR, NAND 에 대한 이론적 지식

  • 진리표
  • 논리식
  • 각 게이트들의 논리적 특징
  • 최대항, 최소항
  • 논리곱의 합, 논리합의 곱

위 사전 지식을 다 설명하기에는 내용이 너무 길어지고 시간도 오래 걸려, 오늘은 결론 부분만 설명하도록 하겠습니다.

아마 디지털 논리회로 기본 지식이 있는 분들이라면 제 설명을 바로 이해하실 수 있습니다.

먼저 OR, AND, XOR, NAND 에 대한 논리식을 적어볼게요.

입력을 A, B라고 한다면

게이트명 논리식
OR A+B
AND A · B(가운데 점은 곱하기)
NAND (A · B)' = A' + B'
XOR A ⊙ B = A' · B + A · B'

(') 기호는 프라임이라고 읽고, 논리식에서는 부정의 의미로 사용됩니다. 본래는 변수 위에 bar(-)를 씌워야 하나 이미지 작업을 하거나 기존 이미지를 가져와야 해서 같은 의미로 사용되는 프라임(')으로 작성했습니다.

XOR 를 진리표로 작성하면

A B t(출력)
0 0 0
0 1 1
1 0 1
1 1 0

XOR 진리표를 기반으로 '논리곱의 합'과 '논리합의 곱' 방식으로 표현하면

위 이미지를 참고하면 A를 x1으로, B를 x2 로 치환하여 수식을 사용하면 위쪽 퍼셉트론 이미지와 연관지어 생각해 볼 수 있습니다. 디지털 논리회로에서는 곱하기를 AND로, 더하기를 OR로 사용합니다. 집합에서의 개념과 같다고 생각하시면 쉽습니다.

XOR을 논리합의 곱으로 표현했을 때의 논리식을 보면 (A+B) · (A'+B') 입니다.

A+B를 OR로 치환하고 이고, A'+B' 를 NAND로 치환하고, 중간에 · (점) 을 곱하기 이므로 AND로 대체하면 위쪽 퍼셉트론에서의 XOR 문제를 OR, NAND, AND 를 사용해서 설명할 수 있게 됩니다.

이걸 완전히 이해하기 위해서는 앞에서 언급했던 사전 지식을 다 알고 있어야 가능한 이야기 입니다.

온전히 이해하고 싶으시다면 차근차근 공부해보시는 것도 좋을것 같습니다.

디지털논리회로 은근 재밌습니다~~

 

 

 

'IT' 카테고리의 다른 글

한글과 컴퓨터 타자 연습표  (2) 2017.02.19
Comments