본문 바로가기
파이썬 프로그래밍/Numpy 딥러닝

13. 다층 퍼셉트론(MPL) 등장 - 1.XOR 문제 해결(기초이론)

by Majestyblue 2022. 1. 18.

1986년 다층 퍼셉트론(Multi-Layer Perceptrons, MLP)의 등장으로 XOR문제를 해결할 수 있게 되었다. 선형 분류 판별기를 추가함으로써 XOR 문제를 해결할 수 있게 된 것이다. XOR 문제를 어떻게 해결할 수 있는지 알아보자.

 

 

1. 논리 게이트의 조합

 

우리는 아래와 같이 XOR 논리 게이트가 무엇인지 원한다.

 

 

 

 

 

 

단일 논리 게이트로 XOR을 풀 수 없다면 아래 그림처럼 논리 게이트를 조합하면 해결할 수 있다.

 

 

 

 

이전 시간에 입력했던 자료를 각각 OR게이트와 NAND 게이트에 입력하면 아래와 같은 출력을 각각 얻을 수 있는데 이를 AND 게이트의 입력으로 만드는 것이다.

 

 

 

2. 이전 시간에 구했던 논리 게이트 perceptron의 가중치로 시각화 해 보자.

 

OR perceptron의 가중치는 W = [[6.82, 6.82]], B =[[-2.94]]

NAND perceptron의 가중치는 W = [[-5.59, -5.59]], B =[[8.56]] 

 

 

 

1) 이를 3D 그래프로 표현하면 아래와 같다.

 

 

(1) Z값 : OR, NAND 게이트의 출력값으로 sigmoid 함수에 넣으면 + 값이 클 수록 1에 가깝고 -값이 클 수록 0에 가깝다.

(2) 보라색 평면 : OR 게이트, (+X,+Y) 방향으로 뻗어나갈수록 +, (-X,-Y) 방향으로 뻗어나갈수록 -

(3) 주황색 평면 : NAND 게이트, (+X,+Y) 방향으로 뻗어나갈수록 -, (-X,-Y) 방향으로 뻗어나갈수록 +

 

 

 

 

2) 이를 2D 그래프로 표현하면 아래와 같다.

 

 

여기서 AND 게이트를 이용하면 

(1) OR 경계와 NAND 경계의 모두 1인 안쪽의 입력값은 (1, 0), (0, 1) → 따라서 AND 게이트 값은 1

(2) OR 경계 바깥쪽에 대해 OR은 0, NAND는 1이다. 입력값은 (0, 0) → 따라서 AND 게이트값은 0

(3) NAND 경계 바깥쪽에 대해 OR은 1, NAND는 0이다. 입력값은 (1, 1) → 따라서 AND 게이트값은 0

 

 

 

 

3. 다층 퍼셉트론으로 표현하기

 

위의 OR, NAND 게이트 조합을 하나로 표현하면 아래와 같이 다층 퍼셉트론이 될 것이다.

 

 

이전시간에 단층 퍼셉트론을 이용한 순방향 출력구조는 입력 → WX + B 연산 → Sigmoid 연산 → 출력 이였고 단일 출력이므로 입력(1, 2) W(2, 1), B(1, 1) 하여 출력 (1, 1)의 구조였다.

 

OR+NAND 퍼셉트론에서는 출력이 (2, 2)여야 하므로 입력(2, 1) W(2, 2), B(2, 1) 하여 출력 (1, 2)의 구조로 만들었다. (입력을 전치시켰는데 앞으로 XW+B의 선형 계산이 아닌 WX+B의 선형 계산을 하기 위함이다. 다층 퍼셉트론에서는 WX+B의 계산구조가 다루기가 더 쉽다.)

 

 

최종 출력을 정리하면 아래와 같다.

 

 

 

 

다음 시간에는 위 식을 이용하여 XOR 다층 퍼셉트론의 순방향과 역전파를 이용한 도함수를 수학적으로 표현해 보도록 하겠다.