notas de estudo pessoais, amigos que estão interessados pode consultar.
1. A máquina descrita percebida
Perceptron (perceptron) proposto pelo estudioso americano Frank Rosenblatt em 1957 para vir. É a origem de um algoritmo de rede neural (aprendizagem de profundidade), a
estrutura de aprendizagem que é percebido de aprendizado de máquina e redes neurais leva a um estudo profundo do pensamento importante
Detectar uma pluralidade de sinais de entrada recebe, emite um sinal. FIG segue:
onde:
- x1, x2 é o sinal de entrada, y é o sinal de saída
- W1, W2 representa o peso
- Figura ○, um representante de um "neurónio"
- Pesado algoritmo (w1x1, w2x2) por um peso fixo, quando θ excede este limiar, representativo de uma saída de "neurónios foram activadas." 0 caso contrário, a favor de não activado,
Fórmula é a seguinte:
2. Perceptron resolver circuito de lógica simples, o problema com a porta.
Porta e verdade tabela é a seguinte:
O caso é que ambas as entradas são 1, a saída para ser 1.
Código é a seguinte:
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))
efeito de demonstração é como se segue:
(zsdpy1) zsd@zsd-virtual-machine:~/ZAI$ python section04.py
0
0
0
1
A máquina de indução de camadas múltiplas, para resolver o porta XOR
XOR tabela verdade portão
você pode ver, a porta XOR com uma camada de nenhuma solução. Assim, podemos chegar a uma "sobreposição", uma estrutura multi-camada por. Para conseguir o efeito de porta XOR.
FIG segue:
código de implementação pode precisar de ser 与门
, 非门
, 与非门
as funções são alcançados novamente. Pela realização de sua combinação 异或门
(circuitos lógicos durante a aprendizagem universidade finalmente veio em um pequeno e prático)
Código é a seguinte:
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))
efeito de demonstração é como se segue:
(zsdpy1) zsd@zsd-virtual-machine:~/ZAI$ python section05.py
(0, 0) -> 0
(1, 0) -> 1
(0, 1) -> 1
(1, 1) -> 0