Redes neuronales artificiales. Parte 2

Red neuronal

En esta parte, estudiaremos los principios de las redes neuronales y escribiremos una red neuronal de 2 capas.





Las redes neuronales están formadas por neuronas interconectadas.





Escribí más sobre las neuronas en la parte anterior.





Las redes neuronales se dividen en capas:





  1. Capa de entrada





  2. Capas ocultas





  3. Capa de salida





Las capas ocultas son capas entre la entrada y la salida, el número de capas ocultas puede ser cualquiera.





Escribiremos una red neuronal de 2 capas, capas de entrada y salida.





Primero, veamos los principios de las redes neuronales.





Como dije, las redes neuronales se dividen en capas. Cada capa contiene varias neuronas. Las salidas de todas las neuronas de una capa se envían a las entradas de todas las neuronas de la siguiente capa.





Un diagrama de red neuronal de 3 capas con 2 neuronas en la entrada, 3 ocultas, 1 salida se verá así





Esta conexión entre capas se denomina feedforward.





Como resultado, obtuvimos 3 capas y 6 neuronas.





Para proyectos grandes esto no es mucho, pero como recién estamos aprendiendo, escribiremos una red neuronal de 2 capas con 2 neuronas de entrada y 1 de salida.





Esquema de nuestra red neuronal





Creemos el archivo NeuronNet.py





Conectemos la clase de neuronas que escribimos en la última parte:





from Neuron import *
      
      



Describamos la clase NeuronNet y el constructor para ella en el archivo:





class NeuronNet:

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



En el constructor de la clase se crea una matriz de objetos de la clase Neuron de 3 neuronas de tamaño. Pasamos el número 2 a la neurona en los parámetros, ya que habrá 2 entradas para todas las neuronas.





, 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
      
      











. .





Resumamos.





Hoy nosotros:





  1. Aprendió los principios de las redes neuronales.





  2. Aprendió los principios de la comunicación neuronal en redes neuronales.





  3. Escribimos la clase NeuronNet en el lenguaje de programación Python





  4. Lanzamos nuestra primera red neuronal





En la siguiente parte, implementaremos el entrenamiento de nuestra red neuronal.





Si tiene alguna pregunta después de leer el artículo, hágala en los comentarios.








All Articles