Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Capas de Perceptrón | Red Neuronal Desde Cero
Introducción a las Redes Neuronales con Python

bookCapas de Perceptrón

Perceptrón es la red neuronal más simple—solo una neurona. Para tareas más complejas, se utiliza un perceptrón multicapa (MLP), que contiene una o más capas ocultas que permiten a la red aprender patrones más complejos.

Un MLP consiste en:

  1. Capa de entrada — recibe los datos;
  2. Capas ocultas — extraen patrones;
  3. Capa de salida — produce las predicciones.

Cada capa tiene múltiples neuronas; la salida de una capa se convierte en la entrada de la siguiente.

Pesos y Sesgos de la Capa

Anteriormente, una neurona almacenaba sus pesos como un vector y el sesgo como un escalar. Sin embargo, una capa contiene muchas neuronas, por lo que sus pesos se convierten en una matriz, donde cada fila almacena los pesos de una neurona. Los sesgos de todas las neuronas forman un vector.

Para una capa con 3 entradas y 2 neuronas:

W=[W11W12W13W21W22W23],b=[b1b2]W=\begin{bmatrix} W_{11} & W_{12} & W_{13} \\ W_{21} & W_{22} & W_{23} \end{bmatrix}, \qquad b=\begin{bmatrix} b_1 \\ b_2 \end{bmatrix}

Aquí, WijW_{ij} es el peso desde la entrada jj hacia la neurona ii; bib_i es el sesgo de la neurona ii.

Propagación Hacia Adelante

La propagación hacia adelante activa cada neurona calculando una suma ponderada, añadiendo el sesgo y aplicando la función de activación.

Anteriormente, una sola neurona utilizaba:

[ z = W \cdot x + b ]

Ahora, dado que cada fila de (W) es el vector de pesos de una neurona, realizar la multiplicación de matrices entre la matriz de pesos y el vector de entrada calcula automáticamente las sumas ponderadas de todas las neuronas a la vez.

Para añadir los sesgos a las salidas de las neuronas respectivas, también se debe sumar un vector de sesgos:

Finalmente, se aplica la función de activación al resultado — sigmoide o ReLU, en este caso. La fórmula resultante para la propagación hacia adelante en la capa es la siguiente:

a=activation(Wx+b)a = activation(Wx + b)

donde aa es el vector de activaciones (salidas) de las neuronas.

Clase Layer

Dado que los MLP se construyen a partir de capas, se define una clase Layer dedicada. Sus atributos:

  • inputs: vector de entrada (elementos n_inputs);
  • outputs: salidas brutas de las neuronas (elementos n_neurons);
  • weights: matriz de pesos;
  • biases: vector de sesgos;
  • activation_function: función de activación utilizada en la capa.

Los pesos y sesgos se inicializan con valores aleatorios de una distribución uniforme en ([-1, 1]). inputs y outputs se inicializan como arreglos de NumPy llenos de ceros para asegurar formas consistentes durante la retropropagación posterior.

class Layer:
    def __init__(self, n_inputs, n_neurons, activation_function):
        self.inputs = np.zeros((n_inputs, 1))
        self.outputs = np.zeros((n_neurons, 1))
        self.weights = ...
        self.biases = ...
        self.activation = activation_function
Note
Nota

Inicializar inputs y outputs con ceros previene errores de forma y asegura que las capas permanezcan consistentes durante las pasadas hacia adelante y hacia atrás.

Método Forward

La propagación hacia adelante para una capa calcula las salidas sin procesar y aplica la activación:

def forward(self, inputs):
    self.inputs = np.array(inputs).reshape(-1, 1)
    # Raw outputs: weighted sum + bias
    self.outputs = ...
    # Apply activation
    return ...

Reformar la entrada en un vector columna asegura que se multiplique correctamente con la matriz de pesos y que coincida con las dimensiones esperadas en toda la red.

Note
Nota

Si lo desea, también puedo acortar esto aún más, producir un diagrama de la estructura de la capa o generar el código completo y funcional para la clase Layer.

1. ¿Qué hace que un perceptrón multicapa (MLP) sea más potente que un perceptrón simple?

2. ¿Por qué es necesario aplicar este código antes de multiplicar inputs por la matriz de pesos?

question mark

¿Qué hace que un perceptrón multicapa (MLP) sea más potente que un perceptrón simple?

Select the correct answer

question mark

¿Por qué es necesario aplicar este código antes de multiplicar inputs por la matriz de pesos?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 2. Capítulo 3

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Suggested prompts:

Can you explain how the weights and biases are initialized in the Layer class?

What activation functions can I use in the Layer class?

Can you walk me through how forward propagation works step by step?

Awesome!

Completion rate improved to 4

bookCapas de Perceptrón

Desliza para mostrar el menú

Perceptrón es la red neuronal más simple—solo una neurona. Para tareas más complejas, se utiliza un perceptrón multicapa (MLP), que contiene una o más capas ocultas que permiten a la red aprender patrones más complejos.

Un MLP consiste en:

  1. Capa de entrada — recibe los datos;
  2. Capas ocultas — extraen patrones;
  3. Capa de salida — produce las predicciones.

Cada capa tiene múltiples neuronas; la salida de una capa se convierte en la entrada de la siguiente.

Pesos y Sesgos de la Capa

Anteriormente, una neurona almacenaba sus pesos como un vector y el sesgo como un escalar. Sin embargo, una capa contiene muchas neuronas, por lo que sus pesos se convierten en una matriz, donde cada fila almacena los pesos de una neurona. Los sesgos de todas las neuronas forman un vector.

Para una capa con 3 entradas y 2 neuronas:

W=[W11W12W13W21W22W23],b=[b1b2]W=\begin{bmatrix} W_{11} & W_{12} & W_{13} \\ W_{21} & W_{22} & W_{23} \end{bmatrix}, \qquad b=\begin{bmatrix} b_1 \\ b_2 \end{bmatrix}

Aquí, WijW_{ij} es el peso desde la entrada jj hacia la neurona ii; bib_i es el sesgo de la neurona ii.

Propagación Hacia Adelante

La propagación hacia adelante activa cada neurona calculando una suma ponderada, añadiendo el sesgo y aplicando la función de activación.

Anteriormente, una sola neurona utilizaba:

[ z = W \cdot x + b ]

Ahora, dado que cada fila de (W) es el vector de pesos de una neurona, realizar la multiplicación de matrices entre la matriz de pesos y el vector de entrada calcula automáticamente las sumas ponderadas de todas las neuronas a la vez.

Para añadir los sesgos a las salidas de las neuronas respectivas, también se debe sumar un vector de sesgos:

Finalmente, se aplica la función de activación al resultado — sigmoide o ReLU, en este caso. La fórmula resultante para la propagación hacia adelante en la capa es la siguiente:

a=activation(Wx+b)a = activation(Wx + b)

donde aa es el vector de activaciones (salidas) de las neuronas.

Clase Layer

Dado que los MLP se construyen a partir de capas, se define una clase Layer dedicada. Sus atributos:

  • inputs: vector de entrada (elementos n_inputs);
  • outputs: salidas brutas de las neuronas (elementos n_neurons);
  • weights: matriz de pesos;
  • biases: vector de sesgos;
  • activation_function: función de activación utilizada en la capa.

Los pesos y sesgos se inicializan con valores aleatorios de una distribución uniforme en ([-1, 1]). inputs y outputs se inicializan como arreglos de NumPy llenos de ceros para asegurar formas consistentes durante la retropropagación posterior.

class Layer:
    def __init__(self, n_inputs, n_neurons, activation_function):
        self.inputs = np.zeros((n_inputs, 1))
        self.outputs = np.zeros((n_neurons, 1))
        self.weights = ...
        self.biases = ...
        self.activation = activation_function
Note
Nota

Inicializar inputs y outputs con ceros previene errores de forma y asegura que las capas permanezcan consistentes durante las pasadas hacia adelante y hacia atrás.

Método Forward

La propagación hacia adelante para una capa calcula las salidas sin procesar y aplica la activación:

def forward(self, inputs):
    self.inputs = np.array(inputs).reshape(-1, 1)
    # Raw outputs: weighted sum + bias
    self.outputs = ...
    # Apply activation
    return ...

Reformar la entrada en un vector columna asegura que se multiplique correctamente con la matriz de pesos y que coincida con las dimensiones esperadas en toda la red.

Note
Nota

Si lo desea, también puedo acortar esto aún más, producir un diagrama de la estructura de la capa o generar el código completo y funcional para la clase Layer.

1. ¿Qué hace que un perceptrón multicapa (MLP) sea más potente que un perceptrón simple?

2. ¿Por qué es necesario aplicar este código antes de multiplicar inputs por la matriz de pesos?

question mark

¿Qué hace que un perceptrón multicapa (MLP) sea más potente que un perceptrón simple?

Select the correct answer

question mark

¿Por qué es necesario aplicar este código antes de multiplicar inputs por la matriz de pesos?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 2. Capítulo 3
some-alt