XOR를 구현하려면 AND, NAND, OR를 합쳐야 한다
다중 퍼셉트론이 등장
두 뉴런이 입력 신호를 받아 1층의 뉴런에게 전달
1층의 뉴런이 2층의 뉴런으로 신호를 보내고, 2층의 뉴런은 y를 출력
0층 - 부품을 전달
1층 - 조립하여 완성
# XOR = AND + OR + NAND
import numpy as np
# AND
def AND(x1, x2):
x = np.array([x1, x2])
w = np.array([0.5, 0.5])
b = -0.7
tmp = np.sum(w*x) + b
if tmp <= 0:
return 0
else:
return 1
# NAND
def NAND(x1, x2):
x = np.array([x1, x2])
w = np.array([-0.5, -0.5])
b = 0.7
tmp = np.sum(w*x) + b
if tmp <= 0:
return 0
else:
return 1
# OR
def OR(x1, x2):
x = np.array([x1, x2])
w = np.array([0.5, 0.5])
b = -0.2
tmp = np.sum(w*x) + b
if tmp <= 0:
return 0
else:
return 1
# XOR
def XOR(x1, x2):
s1 = NAND(x1, x2)
s2 = OR(x1, x2)
y = AND(s1, s2)
return y
결과값
당신의 시간이 헛되지 않는 글이 되겠습니다.
I'll write something that won't waste your time.