02.2 단순한 논리 회로
2.2.1 AND 게이트
그럼 퍼셉트론을 활용한 간단한 문제를 살펴보죠. 논리 회로를 알아보는 첫걸음으로 AND 게이트를 살펴봅시다. AND 게이트는 입력이 둘이고 출력은 하나입니다. [그림 2-2]와 같은 입력 신호와 출력 신호의 대응 표를 진리표라고 합니다. 이 그림은 AND 게이트의 진리표로, 두 입력이 모두 1일 때만 1을 출력하고, 그 외에는 0을 출력합니다.
그림 2-2 AND 게이트의 진리표
도로시와 토토가 ‘AND GATE’ 다리 앞에 섰습니다. 다리를 건너기 위해서는 입력 키 2개를 동시에 활성화(1, 1)해야 다리가 열립니다.
이 AND 게이트를 퍼셉트론으로 표현하고 싶습니다. 이를 위해 할 일은 [그림 2-2]의 진리표대로 작동하도록 하는 w1, w2, θ의 값을 정하는 것입니다. 그럼 어떤 값으로 설정하면 [그림 2-2]의 조건을 충족하는 퍼셉트론이 만들어질까요?
사실 [그림 2-2]를 만족하는 매개변수 조합은 무한히 많습니다. 가령 (w1, w2, θ)가 (0.5, 0.5, 0.7)일 때, 또 (0.5, 0.5, 0.8)이나 (1.0, 1.0, 1.0) 때 모두 AND 게이트의 조건을 만족합니다. 매개변수를 이렇게 설정하면 x1과 x2 모두가 1일 때만 가중 신호의 총합이 주어진 임계값을 웃돌게 됩니다.
2.2.2 NAND 게이트와 OR 게이트
이어서 NAND 게이트를 살펴봅시다. NAND는 Not AND를 의미하며, 그 동작은 AND 게이트의 출력을 뒤집은 것이 됩니다. 진리표로 나타내면 [그림 2-3]처럼 x1과 x2가 모두 1일 때만 0을 출력하고, 그 외에는 1을 출력합니다. 그럼 매개변수 값들을 어떻게 조합하면 NAND 게이트가 만들어질까요?
그림 2-3 NAND 게이트의 진리표
지니가 요술봉으로 반전 마법을 부려 AND 게이트의 모든 출력을 뒤집는 NAND 게이트를 시연합니다. 도로시와 토토가 놀라워하고 있습니다.
NAND 게이트를 표현하려면 예를 들어 (w1, w2, θ) = (-0.5, -0.5, -0.7) 조합이 있습니다(다른 조합도 무한히 있지요). 사실 AND 게이트를 구현하는 매개변수의 부호를 모두 반전하기만 하면 NAND 게이트가 됩니다.
같은 흐름에서 [그림 2-4]의 OR 게이트도 생각해봅시다. OR 게이트는 입력 신호 중 하나 이상이 1이면 출력이 1이 되는 논리 회로입니다. 이 OR 게이트의 매개변수는 어떻게 설정하면 될까요? 생각해보세요!
그림 2-4 OR 게이트의 진리표
도로시와 토토가 ‘OR GATE’ 포탈을 만났습니다. 두 발판 중 도로시나 토토 중 한 명만 밟아도(1, 0 또는 0, 1) 포탈이 활성화됩니다.
NOTE_ 여기서 퍼셉트론의 매개변수 값을 정하는 것은 컴퓨터가 아니라 우리 인간입니다. 인간이 직접 진리표라는 ‘학습 데이터’를 보면서 매개변수의 값을 생각했습니다. 기계학습 문제는 이 매개변수의 값을 정하는 작업을 컴퓨터가 자동으로 하도록 합니다. 학습이란 적절한 매개변수 값을 정하는 작업이며, 사람은 퍼셉트론의 구조(모델)를 고민하고 컴퓨터에 학습할 데이터를 주는 일을 합니다.
이상과 같이 퍼셉트론으로 AND, NAND, OR 논리 회로를 표현할 수 있음을 알았습니다. 여기서 중요한 점은 퍼셉트론의 구조는 AND, NAND, OR 게이트 모두에서 똑같다는 것입니다. 세 가지 게이트에서 다른 것은 매개변수(가중치와 임계값)의 값뿐입니다. 즉, 마치 팔색조 배우가 다양한 인물을 연기하는 것처럼 똑같은 구조의 퍼셉트론이 매개변수의 값만 적절히 조정하여 AND, NAND, OR로 변신하는 것입니다.