728x90

2.2.1 AND 게이트

논리 회로를 알아보는 첫걸음으로 AND게이트를 살펴봅시다.

 

AND게이트는 입력이 둘이고, 출력은 하나입니다. 파이썬의 and연산을 생각해보시면 쉽습니다.

 

아래 그림과 같은 입력 신호와 출력 신호의 대응 표를 진리표라고 합니다. 이 그림은 AND게이트의 진리표로, 두 입력이 모두 1일 때만 1을 출력하고, 그 외에는 0을 출력합니다.

 

$x1$ $x2$ $y$
0 0 0
1 0 0
0 1 0
1 1 1

 

AND게이트를 퍼셉트론으로 표현하고 싶습니다. 이를 위해서는 위의 진리표대로 작동하는 $w1$, $w2$, $\theta$의 값을 정해야 합니다. 그럼 어떤 값으로 설정하면 위의 조건을 충족하는 퍼셉트론이 만들어질까요?

 

이를 만족하는 매개변수 조합은 사실 무한히 많습니다.

 

가령 ($w1$, $w2$, $\theta$)가 (0.5, 0.5, 0.7)일 때, (1.0, 1.0, 1.0)일 때 등등 AND게이트의 조건을 만족하는 조합은 많습니다. 정해진 유일한 답은 없습니다.

 

 

2.2.2 NAND 게이트와 OR게이트

 

NAND는 Not AND를 의미하며, 그 동작 역시, AND 게이트의 출력을 뒤집은 것이 됩니다.

 

진리표로 나타내면 아래 그림처럼 $w1$과 $w2$가 모두 1일 때만 0을 출력하고, 그 외에는 1을 출력합니다.

 

$x1$ $x2$ $y$
0 0 1
1 0 1
0 1 1
1 1 0

NAND 게이트를 표현하려면 예를 들어, ($w1$, $w2$, $\theta$) = (-0.5, -0.5, -0.7) 조합이 있습니다. 그런데 위의 AND게이트의 조합과 묘하게 닮지 않았나요?

 

사실 AND게이트를 구현하는 매개변수의 부호를 모두 반전( -1을 곱해주는 것 )하기만 하면 NAND게이트가 됩니다!

 

같은 흐름에서 OR게이트도 생각해봅시다.

 

OR게이트는 이름에서부터 느껴지듯, 입력 신호 중 하나 이상이 1이면 출력이 1이 되는 논리 회로입니다.

 

이 OR게이트의 매개변수 값은 어떻게 될까요?

 

$x1$ $x2$ $y$
0 0 0
1 0 1
0 1 1
1 1 1

1행

($x1$, $x2$) 이 (0, 0)일 땐 매개변수를 어떤 수로 설정해도 0이므로 결과는 0입니다. $\theta$가 그 결과값인 0보다 크거나 같아야 합니다.

따라서 1행에서 도출할 수 있는 정보 → $\theta$ ≥ 0

 

2행

($x1$, $x2$) 이 (1, 0)이면 결과값은 $w_{1}$ 이다. 이 값이 $\theta$보다 커야하므로

여기서 도출할 수 있는 정보 → $w_{1}$ > $\theta$

 

3행

($x1$, $x2$) 이 (0,1)이면 결과값은 $w_{2}$ 이다. 이 값이 $\theta$보다 커야하므로

여기서 도출할 수 있는 정보 $w_{2}$ > $\theta$

 

4행

($x1$, $x2$) 이 (1,1)이면 결과값은 $w_{1}$ + $w_{2}$ 이다. 이 값이 $\theta$보다 커야하므로

여기서 도출할 수 있는 정보  $w_{1}$ + $w_{2}$ > $\theta$ (다만 이 부등식은 위의 2,3행에서 도출된 정보에 따라 당연합니다.)

 

최종 조건은 아래와 같게 됩니다.

 

0 ≤ $\theta$ < $w_{1}$, $w_{2}$

 

따라서 이에 해당하는 매개변수를 위의 AND게이트, NAND게이트와 비슷하게 구성해보자면

 

($w_{1}$, $w_{2}$, $\theta$) = (0.7, 0.7, 0.5)

 

이 정도가 될 수 있겠습니다.

 

 

 

여기서 퍼셉트론의 매개변수 값을 정한 것은 제가 직접 진리표라는 학습 데이터를 보면서 매개변수의 값을 생각한 것입니다.

기계학습 문제는 이 매개변수의 값을 정하는 작업을 컴퓨터가 자동으로 하도록 합니다. 학습이란 적절한 매개변수 값을 정하는 작업이며, 사람은 퍼셉트론의 구조(모델)를 고민하고 컴퓨터에 학습할 데이터를 주는 일을 합니다.

 

 

중요한 것은 퍼셉트론의 구조는 모든 게이트에서 똑같다는 것입니다. 즉, 마치 팔색조 배우가 다양한 인물을 연기하는 것처럼, 똑같은 구조의 퍼셉트론매개변수의 값만 적절히 조정하여 AND, NAND, OR로 변신하는 것입니다.

728x90