Categorías
Universitario Videojuego

Redes neuronales artificiales

Para sentar las bases de lo que luego se llamará «Aprendizaje Profundo» y veremos al final del curso, terminamos el tema abordando las redes neuronales artificiales.

Perceptrón

Las redes neuronales artificiales (ANN, Artificial Neural Networks) se inspiran en cierto modo en las redes neuronales naturales, las biológicas que se encuentran en nuestro cerebro y en el de otros animales, pero digamos que abstraen su funcionamiento y lo reducen a un modelo matemático formal.

Frank Rosenblatt fue un psicólogo e investigador estadounidense que, en 1957, propuso el Perceptrón, lo que hoy consideramos el primer modelo práctico de red neuronal artificial capaz de aprender automáticamente a partir de ejemplos.

Un Perceptrón simple lo único que haces es multiplicar cada una de las entradas por sus pesos, sumarlo todo y añadirle tal vez el valor de una constante, para finalmente pasar el resultado por una función de activación de escalón binario. Curiosamente esto funcionaba y permitía reconocer letras o figuras geométricas simples en una imagen.

Este sistema tiene una limitación que es famosa a nivel histórico porque Minsk y Papert en 1969 expusieron en su libro «Perceptrons» el problema del XOR (¿cómo separas los valores ciertos de los falsos en una gráfica del XOR usando sólo una línea recta?), que desanimó mucho a la comunidad y congelo la investigación en redes neuronales artificiales durante años. No se buscaba acabar con el paradigma, sino demostrar que una sola neurona lineal es incapaz de clasificar datos que no sean linealmente separables.

Perceptrón multicapa

La solución a ese problema, como se descubrió más tarde, es usar una arquitectura de capas. La red neuronal artificial pasaría ahora a tener una capa de entrada (Input), capas ocultas (Hidden) y una capa de salida (Output). Los MLP (MultiLayer Perceptrons) son aproximadores universales de funciones (según el Teorema de Universalidad), lo que les hace realmente potentes para el aprendizaje automático.

Eso sí, es fundamental que haya no linearidad, porque sin funciones de activación no lineales, añadir capas ocultas equivale matemáticamente a una sola matriz de transformación lineal.

Es por eso que la clave está en las funciones de activación. Suelen usarse estas:

  • Sigmoide / Tangente Hiperbólica: Son funciones históricas, pero propensas a la saturación.
  • Softmax: Para la capa de salida en clasificación multiclase (convierte las salidas no acotadas o logits en una distribución de probabilidad que suma 1).
  • ReLU (Rectified Linear Unit): La función max(0, x) es el estándar moderno por su eficiencia computacional y prevención de la saturación de gradiente en regiones positivas.

Propagación hacia delante

Durante el entrenamiento se usa la propagación hacia adelante (forward pass) de la señal, es decir, hay un flujo de información desde la capa de entrada hasta la predicción de la capa de salida.

Si existe algo parecido a una «aguja» que mida el fallo de la red, esa es la función de perdida (loss function). Se pueden usar estas:

  • MSE (Error Cuadrático Medio): Habitual en tareas de regresión.
  • Cross-Entropy Loss (Entropía Cruzada): La métrica estándar para evaluar diferencias entre la distribución probabilística predicha y la etiqueta real en clasificación.

Propagación hacia atrás

El motor de optimización y la clave de una red neuronal artificial es la propagación hacia atrás (backpropagation).

Existe un concepto llamado «la regla de la cadena» que intuitivamente se puede explicar como la manera en que esta propagación del gradiente hacia atrás va calculando la derivada parcial de la pérdida respecto a cada peso w de la red.

Hay distintos algoritmos de optimización, llamados de «descenso del gradiente»:

  • SGD (Stochastic Gradient Descent): Actualizaciones paso a paso usando subconjuntos de datos (batches).
  • Optimizadores adaptativos (Adam, RMSprop): Uso de momentos e inercias para acelerar la convergencia y superar valles o puntos de silla (saddle points).

La convergencia es a lo que aspiramos cuando entrenamos una red neuronal, ajustar lo mejor posibles sus resultados sin caer en sobreajuste ni infraajuste.

Regularización

En redes neuronales artificiales hay técnicas para evitar el sobreajuste en arquitecturas densas:

  • Dropout: Desactivar aleatoriamente un porcentaje de neuronas durante cada paso del entrenamiento para forzar a la red a aprender representaciones redundantes y robustas.
  • Normalización por Lote (Batch Normalization): Estabilizar el entrenamiento normalizando las activaciones intermedias entre capas.
  • Parada Temprana (Early Stopping): Interrumpir el entrenamiento en cuanto el error en el conjunto de validación comienza a subir.

Para terminar, dejar claro que las redes neuronales artificiales son una familia de modelos (como los son los árboles de decisión o los SVM) y lo que ahora se llama «aprendizaje profundo» en realidad no son más que un subconjunto estas redes que tienen muchísimas capas, una representación jerárquica de características y entrenamiento típico con algoritmos de backpropagation pero usando también muchísimos datos.

Más información

Para complementar es recomendable consultar otros documentos.