Dieser Artikel ist ein Lernmemo von Deep Learning von Grund auf neu.
--Perceptron ist ein Algorithmus, der mehrere Signale als Ein- und Ausgangssignale empfängt. Wenn "Bias" und "Weight" als Parameter eingestellt sind und eine bestimmte Eingabe gegeben wird, wird ein fester Wert ausgegeben. "Bias" ist ein Parameter, der die Zündfreundlichkeit steuert. "Gewicht" ist ein Parameter, der die Wichtigkeit jeder Eingabe steuert.
\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:Eingabe w1,w2:Gewicht b:vorspannen
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):
#Mehrschichtiges Perceptron
s1 = NAND(x1,x2)
s2 = OR(x1,x2)
y = AND(s1,s2)
return y
#Überprüfen Sie den Vorgang unten
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