Redes neurais artificiais. Parte 2

Rede neural

Nesta parte, estudaremos os princípios das redes neurais e escreveremos uma rede neural de 2 camadas.





As redes neurais são feitas de neurônios interconectados.





Escrevi mais sobre neurônios na parte anterior.





As redes neurais são divididas em camadas:





  1. Camada de entrada





  2. Camadas ocultas





  3. Camada de saída





Camadas ocultas são camadas entre a entrada e a saída, o número de camadas ocultas pode ser qualquer.





Vamos escrever uma rede neural de 2 camadas, camadas de entrada e saída.





Primeiro, vamos examinar os princípios das redes neurais.





Como eu disse, as redes neurais são divididas em camadas. Cada camada contém vários neurônios. As saídas de todos os neurônios em uma camada são enviadas para as entradas de todos os neurônios na próxima camada.





Um diagrama de rede neural de 3 camadas com 2 neurônios na entrada, 3 ocultos e 1 saída será semelhante a este





Essa conexão entre camadas é chamada de feedforward.





Como resultado, obtivemos 3 camadas e 6 neurônios.





Para grandes projetos isso não é muito, mas como estamos apenas aprendendo, escreveremos uma rede neural de 2 camadas com 2 neurônios de entrada e 1 saída.





Esquema para nossa rede neural





Vamos criar o arquivo NeuronNet.py





Vamos conectar a classe de neurônios que escrevemos na última parte:





from Neuron import *
      
      



Vamos descrever a classe NeuronNet e o construtor dela no arquivo:





class NeuronNet:

    def __init__(self):
    
        self.n = []
        
        for i in range(3):
            self.n.append(Neuron(2))
      
      



Uma matriz de objetos da classe Neuron de 3 neurônios de tamanho é criada no construtor da classe. Passamos o número 2 para o neurônio nos parâmetros, já que haverá 2 entradas para todos os neurônios.





, 3 1 2 , 1 2 :





def activate(self, inputs):
    return self.n[2].activate(np.array([self.n[0].activate(inputs), self.n[1].activate(inputs)]))
      
      



NeuronNet. NeuronNet.py.





NeuronNet.py:





from Neuron import *

class NeuronNet:
    def __init__(self):

        self.n = []

        for i in range(3):
            self.n.append(Neuron(2))

    def activate(self, inputs):
        return self.n[2].activate(np.array([self.n[0].activate(inputs), self.n[1].activate(inputs)]))
      
      



main.py, .





main.py numpy NeuronNet.py:





import numpy as np
from NeuronNet import *
      
      



:





net = NeuronNet()
      
      



:





x = np.array([1, 2])

print(net.activate(x))
      
      



:





import numpy as np

from NeuronNet import *

net = NeuronNet()

x = np.array([1, 2])

print(net.activate(x))
      
      



. :





python main.py
      
      











. .





Vamos resumir.





Hoje nós:





  1. Aprendeu os princípios das redes neurais





  2. Aprendeu os princípios da comunicação neuronal em redes neurais





  3. Escrevemos a classe NeuronNet na linguagem de programação python





  4. Lançamos nossa primeira rede neural





Na próxima parte, implementaremos o treinamento de nossa rede neural.





Se você tiver alguma dúvida depois de ler o artigo, pergunte nos comentários.








All Articles