Cet article est un mémo d'apprentissage de Deep Learning from scratch.
--Perceptron est un algorithme qui reçoit plusieurs signaux en tant qu'entrées et émet un signal. Lorsque «biais» et «poids» sont définis comme paramètres et qu'une certaine entrée est donnée, une valeur fixe est sortie. "Bias" est un paramètre qui contrôle la facilité d'allumage. "Weight" est un paramètre qui contrôle l'importance de chaque entrée.
\begin{eqnarray}
y=\left\{ \begin{array}{ll}
0 & (b + w_1 x_1 + w_2 x_2 \leqq 0) \\
1 & (b + w_1 x_1 + w_2 x_2 \gt 0) \\
\end{array} \right.
\end{eqnarray}
perceptron.py
import numpy as np
# x1,x2:Entrée w1,w2:Poids b:biais
def perceptron(x1,x2,w1,w2,b):
x = np.array([x1, x2])
w = np.array([w1, w2])
tmp = np.sum(w*x) + b
return 0 if tmp <= 0 else 1
def AND(x1,x2):
return perceptron(x1,x2,0.5,0.5,-0.7)
def NAND(x1,x2):
return perceptron(x1,x2,-0.5,-0.5,0.7)
def OR(x1,x2):
return perceptron(x1,x2,0.5,0.5,0.0)
def XOR(x1,x2):
#Perceptron multicouche
s1 = NAND(x1,x2)
s2 = OR(x1,x2)
y = AND(s1,s2)
return y
#Vérifiez le fonctionnement ci-dessous
print("AND")
print(AND(0,0)) # 0
print(AND(0,1)) # 0
print(AND(1,0)) # 0
print(AND(1,1)) # 1
print("NAND")
print(NAND(0,0)) # 1
print(NAND(0,1)) # 1
print(NAND(1,0)) # 1
print(NAND(1,1)) # 0
print("OR")
print(OR(0,0)) # 0
print(OR(0,1)) # 1
print(OR(1,0)) # 1
print(OR(1,1)) # 1
print("XOR")
print(XOR(0,0)) # 0
print(XOR(0,1)) # 1
print(XOR(1,0)) # 1
print(XOR(1,1)) # 0
Recommended Posts