Como construir uma rede neural em python
Foto de Bruno A.
Por: Bruno A.
19 de Fevereiro de 2019

Como construir uma rede neural em python

machine learning

Computação Geral Geral Linguagens de Programação Geral Geral Geral Geral Geral Excel Geral Machine Learning (Aprendizado de Máquina) Inteligência Artificial Geral
VAmos construir uma rede neural de 3 camadas.


a camada 1 é o input com 3 neuronios

a camada 2 é um hidden layer  com 4 neuronios

a camada 3 é a saida com 1 neuronio

Vamos colocar 4 diferentes inputs e aproximar 60.000 vezes com uma geração!

 
import numpy  as np
#rede neuronal 3 x 5 x 2
def sigmoide(x, derivada):
	if(derivada):
		return x*(1-x)
	return 1/(1+np.exp(-x))


#input data

#X=np.array([[0,0,1],[0,1,1],[1,0,1],[1,1,1]])
X=np.array([[1669631,2105841,2821997],[2105841,2821997,2288713],[2821997,2288713,2250142],[2288713,2250142,3053129]])
#X=(X-1634380)/1634380


#output
Y=np.array([[2288713],[2250142],[3053129],[208252]])
#Y=(Y-1634380)/1634380

np.random.seed(1)

# matrizes de synapse

syn0= 2* np.random.random((3,4))-1
syn1= 2* np.random.random((4,1))-1



#traning code

for j in range(60000):
	camada0=X
	camada1=sigmoide(np.dot(camada0,syn0),False)
	camada2=sigmoide(np.dot(camada1,syn1),False)

	camada2_erro=Y-camada2

	if(j%10000)==0:
		print("error:"+str(np.mean(np.abs(camada2_erro))))

#backpropagation
	l2_delta=camada2_erro * sigmoide(camada2,True)	
	l1_error=l2_delta.dot(syn1.T)

	l1_delta=l1_error* sigmoide(camada1,True)
	#atualizar pesos gradient descent
	syn1+=camada1.T.dot(l2_delta)
	syn0+=camada0.T.dot(l1_delta)

print("Valor previsto")
camada1=sigmoide(np.dot(camada0,syn0),False)
camada2=sigmoide(np.dot(camada1,syn1),False)
print((camada2.T.dot(syn1)*1634380)+1634380)


Confira artigos similares

Aprenda sobre qualquer assunto