Como construir uma rede neural em python

Geral Geral Linguagens de Programação Geral Geral Geral Geral Geral Geral Machine Learning (Aprendizado de Máquina) Inteligência Artificial Geral Geral

machine learning

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)


Encontre o professor particular perfeito

Tutoria com Inteligência Artificial

Tecnologia do ChatGPT. Use texto, áudio, fotos, imagens e arquivos.

Artigos similares

Aprenda do seu jeito, no seu ritmo