notas de estudio personales, los amigos que estén interesados pueden referirse a.
1. La máquina descrita percibe
Perceptron (perceptron) propuesto por el profesor estadounidense Frank Rosenblatt en 1957 por venir. Es el origen de un algoritmo de red neuronal (aprendizaje profundo), la
estructura de aprendizaje que se percibe de aprendizaje automático y redes neuronales conduce a un profundo estudio del importante pensamiento
Detectando una pluralidad de señales de entrada recibe, da salida a una señal. La figura siguiente:
donde:
- x1, x2 es la señal de entrada, y es la señal de salida
- w1, w2 es el peso
- Figura ○, un representante de un "neurona"
- Pesada algoritmo (w1x1, w2x2) por un peso fijo, cuando θ supera este umbral, una salida representativa de "neuronas fueron activadas." 0 en caso contrario, en nombre de no se activa,
La fórmula es como sigue:
2. Perceptrón resolver circuito lógico simple, el problema con la puerta.
Puerta y tabla de verdad es la siguiente:
El caso es que ambas entradas son 1, la salida sea 1.
Código es el siguiente:
def AND(x1,x2):
w1,w2,theta =0.5,0.5,0.6
tmp =x1*w1 +x2*w2
if tmp <= theta:
return 0
elif tmp >theta:
return 1
print(AND(0,0))
print(AND(1,0))
print(AND(0,1))
print(AND(1,1))
Efecto de demostración es la siguiente:
(zsdpy1) zsd@zsd-virtual-machine:~/ZAI$ python section04.py
0
0
0
1
La máquina de inducción de múltiples capas, para resolver la puerta XOR
XOR tabla de verdad puerta
se puede ver, la puerta XOR con una capa de solución. Por lo que podemos llegar a una "superposición", una estructura de múltiples capas por. Para conseguir el efecto de la puerta XOR.
La figura siguiente:
código de aplicación puede ser necesario 与门
, 非门
, 与非门
las funciones se logran de nuevo. Por la realización de su combinación 异或门
(circuitos lógicos durante el aprendizaje universitario finalmente llegó en un pequeño y práctico)
Código es el siguiente:
import numpy as np
def AND(x1,x2):
w1,w2,theta =0.5,0.5,0.6
tmp =x1*w1 +x2*w2
if tmp <= theta:
return 0
elif tmp >theta:
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
else:
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
else:
return 1
def XOR(x1, x2):
s1 = NAND(x1, x2)
s2 = OR(x1, x2)
y = AND(s1, s2)
return y
if __name__ == '__main__':
for xs in [(0, 0), (1, 0), (0, 1), (1, 1)]:
y = XOR(xs[0], xs[1])
print(str(xs) + " -> " + str(y))
Efecto de demostración es la siguiente:
(zsdpy1) zsd@zsd-virtual-machine:~/ZAI$ python section05.py
(0, 0) -> 0
(1, 0) -> 1
(0, 1) -> 1
(1, 1) -> 0