Redes neuronales artificiales. Parte 1

Neurona

En este artículo, aprenderá los conceptos básicos de cómo funcionan las neuronas artificiales. En artículos posteriores, aprenderemos los conceptos básicos de las redes neuronales y escribiremos una red neuronal simple en Python.





Las redes neuronales están compuestas por neuronas conectadas entre sí, por lo que una neurona es la parte principal de una red neuronal. Las neuronas realizan solo 2 acciones: multiplican los datos de entrada por los pesos y los suman y agregan el sesgo, y la segunda acción es la activación.





Ahora más sobre los datos de entrada, pesos, sesgos y la función de activación.





Los datos de entrada son datos que una neurona recibe de neuronas anteriores o del usuario.





Se asignan pesos a cada entrada de la neurona, inicialmente se les asignan números aleatorios. Al entrenar una red neuronal, el valor de las neuronas y los desplazamientos cambia. Los pesos se multiplican por los datos de entrada que se alimentan a la neurona.





Las compensaciones se asignan a cada neurona, al igual que los pesos del sesgo inicial, estos son números aleatorios. Las compensaciones hacen que sea más fácil y rápido entrenar la red neuronal.





La función de activación que usaremos en nuestra red neuronal se llama sigmoide. La fórmula sigmoidea es:





f (x) = \ frac {1} {1 + e ^ {- x}}

Esta función envuelve cualquier número de -∞ a + ∞ en el rango de 0 a 1.





Si describimos matemáticamente las tareas que realiza la neurona, obtenemos 2 fórmulas: Notación:





f (x) - función de activación





x: la suma del producto de los datos de entrada con las ponderaciones y el sesgo





i - matriz de datos de entrada





w -





b -





j -





x = i_1 * w_1 + ... + i_j * w_j + b f (x) = \ frac {1} {1 + e ^ {- x}}





python.





numpy. Linux Window:





pip install numpy
      
      



:





import numpy as np
      
      



Neuron, :





class Neuron:
    def __init__(self, number_of_weights = 1):

        self.w = np.random.normal(size=number_of_weights)
        self.b = np.random.normal()
      
      



, , . . :





def activate(self, inputs):
        
        x = np.dot(self.w, inputs) + self.b
        
        return sig(x)
      
      



, . :





def sig(x):
  return 1 / (1 + np.exp(-x)) 
      
      



Math.py





numpy:





import numpy as np
      
      



Neuron.py. Neuron.py Math.py:





from Math import *
      
      



2 :





Neuron.py





import numpy as np

from Math import *

class Neuron:
    def __init__(self, number_of_weights = 1):

        self.w = np.random.normal(size=number_of_weights)
        self.b = np.random.normal()
        
    def activate(self, inputs):
        
        x = np.dot(self.w, inputs) + self.b
        
        return sig(x)
      
      



Math.py





import numpy as np

def sig(x):
  return 1 / (1 + np.exp(-x))
      
      



.





, :









  1. ,





  2. Python





- .








All Articles