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

Capas de Perceptrón

Desliza para mostrar el menú

Perceptrón como la red neuronal más simple—solo una neurona. Para tareas más complejas, uso de 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 consta de:

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

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

Imagen simplificada de red neuronal

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 hasta la neurona ii; bib_i es el sesgo de la neurona ii.

Pesos de la capa

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 todas las sumas ponderadas de las neuronas a la vez.

Multiplicación matriz-vector para la capa

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

Propagación hacia adelante para la capa

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 dedicada Layer. 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 para 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 fases de propagación hacia adelante y hacia atrás.

Método Forward

La propagación hacia adelante para una capa calcula las salidas brutas 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.

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?

Selecciona la respuesta correcta

question mark

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

Selecciona la respuesta correcta

¿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

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