import numpy as np
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
elif tmp > 0:
return 1
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
elif tmp > 0:
return 1
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
elif tmp > 0:
return 1
for i in [0, 1]:
for j in [0, 1]:
print(f'{i, j}', end=' ')
print()
print('AND : ', end = '')
for i in [0, 1]:
for j in [0, 1]:
print(AND(i, j), end = ' ')
print()
print('NAND : ', end = '')
for i in [0, 1]:
for j in [0, 1]:
print(NAND(i, j), end = ' ')
print()
print('OR : ', end = '')
for i in [0, 1]:
for j in [0, 1]:
print(OR(i, j), end = ' ')
(0, 0) (0, 1) (1, 0) (1, 1)
AND : 0 0 0 1
NAND : 1 1 1 0
OR : 0 1 1 1
가중치(w)는 입력 신호가 결과에 주는 영향력(중요도)을 조절하는 매개변수이고,
편향은 뉴런이 얼마나 쉽게 활성화(결과로 1을 출력) 하느냐를 조정하는 매개변수이다.