【Python】パーセプトロンでXORゲートを実装する

パーセプトロンを用いて、XORゲートを実装する。

import numpy as np

def AND(x1, x2):
  x = np.array([x1, x2])
  w = np.array([0.5, 0.5])
  b = -0.7
  y = np.sum(w*x) + b
  if y <= 0:
    return 0
  else:
    return 1

def NAND(x1, x2):
  x = np.array([x1, x2])
  w = np.array([-0.5, -0.5])
  b = 0.7
  y = np.sum(w*x) + b
  if y <= 0:
    return 0
  else:
    return 1

def OR(x1, x2):
  x = np.array([x1, x2])
  w = np.array([0.5, 0.5])
  b = -0.2
  y = np.sum(w*x) + b
  if y <= 0:
    return 0
  else:
    return 1

def XOR(x1, x2):
  s1 = NAND(x1, x2)
  s2 = OR(x1, x2)
  y = AND(s1, s2)
  return y

以上のプログラムがXOR回路として機能することは

print(XOR(0, 0))
print(XOR(0, 1))
print(XOR(1, 0))
print(XOR(1, 1))

を入力すると

0
1
1
0

が出力されることによって確認できる。

タイトルとURLをコピーしました