🤖 4. Deep Learning

Ejemplos: CNN, RNN, Transformers.
Uso: Ideal para imágenes, texto y series temporales, especialmente con grandes datos no estructurados.
Ventajas: Poderoso para datos complejos.
Limitaciones: Exige mucha data y computación; poca interpretabilidad.


Deep Boltzman Machine (DBM)

El modelo de Deep Boltzman Machine (DBM) es un tipo de red neuronal profunda generativa que pertenece a la familia de los modelos gráficos probabilísticos. Se construye apilando múltiples Máquinas de Boltzmann Restringidas (RBMs), lo que le permite aprender representaciones jerárquicas y abstractas de los datos de entrada. Su principal objetivo es modelar la distribución de probabilidad conjunta entre un conjunto de variables observables y múltiples capas de variables latentes (ocultas).

Las DBMs son modelos no dirigidos (las conexiones entre las neuronas son simétricas y no tienen una dirección específica) y están compuestas por capas de unidades visibles (los datos de entrada) y varias capas de unidades ocultas. A diferencia de las RBMs simples que tienen una sola capa oculta, las DBMs tienen múltiples capas ocultas, lo que les permite capturar dependencias más complejas y características de alto nivel en los datos. El proceso de aprendizaje en una DBM busca ajustar los pesos de las conexiones de manera que la red asigne una alta probabilidad a los datos de entrenamiento y una baja probabilidad a los datos que no son de entrenamiento.

Las características clave de las DBMs incluyen:

  1. Representación Jerárquica: Cada capa oculta aprende representaciones progresivamente más abstractas de los datos. Las primeras capas pueden capturar características de bajo nivel (ej., bordes en imágenes), mientras que las capas superiores combinan estas para formar representaciones de alto nivel (ej., partes de objetos o conceptos).
  2. Aprendizaje No Supervisado: Las DBMs se entrenan típicamente de forma no supervisada, lo que significa que no requieren etiquetas para el entrenamiento. Esto las hace valiosas para el pre-entrenamiento de modelos profundos en conjuntos de datos grandes y sin etiquetar, donde pueden aprender características útiles que luego pueden ser utilizadas en tareas de aprendizaje supervisado (como la clasificación).
  3. Inferencia y Generación: Una vez entrenadas, las DBMs pueden ser utilizadas tanto para inferencia (estimar las representaciones ocultas dadas las entradas visibles) como para generación (muestrear nuevas instancias de datos a partir de la distribución aprendida del modelo).

Debido a su complejidad computacional en el entrenamiento exacto, las DBMs a menudo se entrenan utilizando un enfoque de aprendizaje codicioso por capas (entrenando RBMs individuales y apilándolas) seguido de un ajuste fino de todo el modelo utilizando algoritmos como el Contraste Divergente Aproximado (ACD).

Aprendizaje Global vs. Local:

El modelo de Máquina de Boltzmann Profunda (DBM) es un modelo de aprendizaje global.

  • Aspecto Global: Las DBMs construyen un modelo probabilístico unificado y global de la distribución de los datos. Los pesos de conexión en todas las capas de la red se ajustan para representar las dependencias y correlaciones en todo el espacio de entrada. No se crean modelos específicos para subconjuntos locales de datos; en cambio, el modelo aprende una representación coherente y jerárquica que se aplica a todos los puntos de datos. La función de energía (o función de coste) de la DBM se define sobre el espacio completo de variables visibles y ocultas, y el entrenamiento busca minimizar esta energía globalmente para que los datos de entrenamiento tengan una energía baja.

  • Impacto de la Estructura Jerárquica: Aunque la DBM aprende representaciones en diferentes niveles de abstracción (jerarquías), estas representaciones contribuyen a un entendimiento cohesivo y global de los datos. La interacción entre las capas y las unidades es parte de una estructura probabilística interconectada que busca modelar la distribución general de los datos. El proceso de inferencia y generación, aunque implica pasar información a través de las capas, se basa en los parámetros globales de la red para producir resultados consistentes y representativos de la distribución aprendida. Esto contrasta con modelos locales que podrían segmentar el espacio de entrada y construir modelos independientes para cada segmento.

Guía rápida para elegir Deep Boltzmann Machine (DBM)
Características y Consideraciones
Criterio Aplica Detalles
Tipo de modelo ✅ Generativo / Discriminativo (apilado, no supervisado/supervisado) Modelo generativo y discriminativo de aprendizaje profundo. Se entrena capa por capa de forma no supervisada (como RBMs) y luego se ajusta con una capa supervisada.
Variable respuesta ✅ Numérica continua o categórica (binaria, multiclase) Puede usarse para regresión (respuesta continua) o clasificación (respuesta categórica).
Variables predictoras ✅ Numéricas y/o Categóricas (requiere preprocesamiento) Acepta diversos tipos de variables predictoras, pero requieren normalización/estandarización y codificación (ej., one-hot encoding para categóricas).
Relación entre variables ✅ No lineal y Compleja Capaz de modelar relaciones altamente no lineales y complejas entre las variables.
Normalidad de residuos ❌ No aplica directamente Los DBMs no asumen ni requieren la normalidad de los residuos, ya que no son modelos estadísticos lineales tradicionales.
Independencia de errores ⚠️ Asume independencia condicional A nivel de las capas, los DBMs asumen independencia condicional entre las variables visibles e隐variables latentes dada la otra capa.
Homoscedasticidad ❌ No aplica directamente Al igual que la normalidad de residuos, la homoscedasticidad no es un supuesto directo para DBMs.
Sensible a outliers ⚠️ Robusto hasta cierto punto, pero datos muy ruidosos afectan Puede manejar cierto nivel de ruido, pero el rendimiento disminuye con outliers extremos que distorsionan el espacio latente.
Multicolinealidad entre predictores ✅ Maneja bien multicolinealidad Debido a su naturaleza de aprendizaje de representaciones, los DBMs son inherentemente capaces de manejar la multicolinealidad entre predictores.
Interpretabilidad ⚠️ Baja (tipo caja negra) Generalmente, los DBMs son modelos de 'caja negra' con baja interpretabilidad de las relaciones directas entre las entradas y salidas.
Velocidad y eficiencia ⚠️ Lento en entrenamiento, rápido en inferencia El entrenamiento de DBMs puede ser computacionalmente costoso y lento, especialmente con grandes datasets y muchas capas. La inferencia es más rápida.
Validación cruzada ✅ Útil para ajuste de hiperparámetros La validación cruzada es esencial para seleccionar hiperparámetros como el número de capas, unidades por capa, tasas de aprendizaje y regularización.
No funciona bien si... ❌ Datos insuficientes; ❌ alta dimensionalidad sin suficiente regularización; ❌ problemas de escalabilidad en conjuntos muy grandes. Requiere una cantidad significativa de datos para entrenar de forma efectiva. Puede tener dificultades con conjuntos de datos pequeños. La alta dimensionalidad sin una regularización adecuada puede llevar a sobreajuste o problemas de escalabilidad en conjuntos de datos muy grandes.
Fuente: Elaboración propia y principios de aprendizaje profundo

Deep Belief Networks (DBNet)

El Deep Belief Network (DBN) es un modelo de red neuronal profunda generativa que se construye apilando múltiples Máquinas de Boltzmann Restringidas (RBMs). Fue un avance significativo en el campo del aprendizaje profundo, particularmente en la superación de los desafíos de entrenamiento de redes neuronales con muchas capas ocultas. Las DBNs son modelos probabilísticos que buscan aprender una distribución de probabilidad conjunta sobre los datos de entrada y sus representaciones latentes (ocultas).

La arquitectura de una DBN es una jerarquía de capas, donde cada capa es una RBM. La capa inferior es la capa visible (o de entrada), que recibe los datos. Las capas subsiguientes son capas ocultas, y la característica clave es que el resultado de la capa oculta de una RBM se convierte en la capa visible para la siguiente RBM en la pila. La conexión entre la capa superior más alta (que es una RBM) es no dirigida y bidireccional, mientras que las conexiones entre las capas inferiores suelen ser dirigidas (de arriba hacia abajo) en la fase generativa después del entrenamiento.

Las DBNs se caracterizan por:

  1. Construcción por Capas: Se construyen apilando RBMs, donde cada RBM se entrena de forma independiente y no supervisada para aprender una representación de su entrada.
  2. Pre-entrenamiento Codicioso por Capas: La innovación clave de las DBNs fue el algoritmo de pre-entrenamiento codicioso por capas. En lugar de intentar entrenar toda la red a la vez (lo que era difícil debido a problemas como los gradientes desvanecientes/explosivos y los mínimos locales), cada RBM se entrena individualmente para aprender características útiles de la entrada que recibe. La salida de la capa oculta de una RBM entrenada se utiliza como entrada para la capa visible de la siguiente RBM. Este proceso continúa hasta que se entrenan todas las capas.
  3. Aprendizaje No Supervisado para Extracción de Características: La fase de pre-entrenamiento es completamente no supervisada. Las RBMs aprenden a reconstruir sus entradas, lo que les permite extraer características relevantes y de alto nivel de los datos sin necesidad de etiquetas. Esto es especialmente valioso para conjuntos de datos grandes y no etiquetados.
  4. Ajuste Fino (Fine-tuning) Supervisado: Después del pre-entrenamiento no supervisado, la DBN puede ser “desenrollada” y tratada como una red neuronal feed-forward para tareas supervisadas como la clasificación. Se añade una capa de salida (ej., softmax) en la parte superior, y toda la red se ajusta utilizando algoritmos de aprendizaje supervisado como la retropropagación. El pre-entrenamiento actúa como una buena inicialización de los pesos, ayudando a que el entrenamiento supervisado converja más rápido y alcance mejores mínimos.
  5. Generación de Datos: Dado que son modelos generativos, las DBNs pueden aprender la distribución subyacente de los datos y, por lo tanto, pueden generar nuevas muestras de datos similares a las de entrenamiento.

Las DBNs fueron fundamentales para demostrar la viabilidad del entrenamiento de redes profundas y abrieron el camino para el resurgimiento del aprendizaje profundo.

Aprendizaje Global vs. Local:

El modelo Deep Belief Network (DBN) emplea un enfoque híbrido, pero en su fase de aprendizaje de características, se inclina hacia un aprendizaje global a través de una estrategia local y progresiva.

  • Aspecto Global (Objetivo Final y Representación): El objetivo general de una DBN es construir un modelo probabilístico jerárquico global de los datos. Aunque el entrenamiento se realiza capa por capa, la intención es que cada capa capture características que contribuyan a una comprensión más abstracta y completa de la distribución de los datos de entrada en su conjunto. Las características de bajo nivel aprendidas por las primeras RBMs se combinan en las capas superiores para formar representaciones más complejas y de alto nivel, que son intrínsecas a la estructura global de los datos. El modelo final, una vez que todas las RBMs están entrenadas y se aplica el ajuste fino, opera como una red unificada que mapea entradas a salidas basadas en un entendimiento global de las relaciones en los datos.

  • Aspecto Local (Estrategia de Entrenamiento): La fase de pre-entrenamiento codicioso por capas de las DBNs tiene un fuerte componente local. Cada RBM individual se entrena de manera local, optimizando sus propios pesos para modelar la relación entre su capa visible y su capa oculta, sin considerar explícitamente las capas más allá de sí misma en ese momento. La entrada para cada RBM superior proviene de la activación de la capa oculta de la RBM inferior ya entrenada. Este entrenamiento local y secuencial es lo que permite que las DBNs escalen a redes profundas y eviten problemas de optimización de modelos globales complejos desde cero. Sin embargo, esta “localidad” es solo en la etapa de entrenamiento por partes; el efecto acumulativo de estas optimizaciones locales es la construcción de una representación jerárquica que eventualmente se une en un modelo global cuando se realiza el ajuste fino de toda la red.

Guía rápida para elegir Deep Belief Network (DBN)
Características y Consideraciones
Criterio Aplica Detalles
Tipo de modelo ✅ Generativo / Discriminativo (apilado, no supervisado/supervisado) Modelo generativo y discriminativo que consiste en apilar varias Restricted Boltzmann Machines (RBMs) o componentes similares. Cada RBM se entrena de forma no supervisada, y luego la red completa puede ser ajustada de forma supervisada.
Variable respuesta ✅ Numérica continua o categórica (binaria, multiclase) Puede ser utilizado tanto para tareas de regresión (variables continuas) como de clasificación (variables categóricas, incluyendo binarias y multiclase), especialmente después de un ajuste supervisado (fine-tuning).
Variables predictoras ✅ Numéricas y/o Categóricas (requiere preprocesamiento) Acepta una variedad de tipos de variables de entrada. Las variables numéricas generalmente requieren normalización o estandarización, y las categóricas necesitan ser codificadas (ej. one-hot encoding).
Relación entre variables ✅ No lineal y Compleja Las DBNs son extremadamente capaces de aprender y modelar relaciones complejas y no lineales entre las variables de entrada y salida, gracias a su arquitectura profunda y sus capas ocultas.
Normalidad de residuos ❌ No aplica directamente Al igual que con los DBMs, las DBNs no se basan en supuestos de normalidad de los residuos, ya que no son modelos estadísticos lineales tradicionales.
Independencia de errores ⚠️ Asume independencia condicional entre capas La independencia condicional es un supuesto clave en la forma en que cada RBM dentro de la DBN procesa la información entre sus capas visible y oculta.
Homoscedasticidad ❌ No aplica directamente La homoscedasticidad no es un supuesto inherente o un requisito directo para el entrenamiento o la aplicación de las DBNs.
Sensible a outliers ⚠️ Robusto hasta cierto punto, pero datos muy ruidosos afectan Aunque pueden ser algo robustas al ruido en los datos, los valores atípicos extremos pueden afectar negativamente el proceso de aprendizaje de las representaciones en las capas ocultas.
Multicolinealidad entre predictores ✅ Maneja bien multicolinealidad Su capacidad para aprender representaciones jerárquicas y de bajo nivel de los datos ayuda a mitigar los problemas causados por la multicolinealidad entre las variables predictoras.
Interpretabilidad ⚠️ Baja (tipo caja negra) Las DBNs, como muchos modelos de aprendizaje profundo, son consideradas 'cajas negras'. Es difícil interpretar directamente cómo las características de entrada se mapean a las decisiones de salida.
Velocidad y eficiencia ⚠️ Lento en entrenamiento, rápido en inferencia El entrenamiento de una DBN puede ser muy lento y costoso computacionalmente, especialmente en conjuntos de datos grandes o con muchas capas. Sin embargo, una vez entrenadas, la fase de inferencia es generalmente rápida.
Validación cruzada ✅ Útil para ajuste de hiperparámetros La validación cruzada es una técnica crucial para la selección y optimización de hiperparámetros importantes, como el número de RBMs, el número de unidades en cada capa, las tasas de aprendizaje y los coeficientes de regularización.
No funciona bien si... ❌ Datos insuficientes; ❌ alta dimensionalidad sin suficiente regularización; ❌ problemas de escalabilidad. Requieren grandes volúmenes de datos etiquetados (para el fine-tuning supervisado) o no etiquetados (para el pre-entrenamiento no supervisado) para aprender representaciones significativas. Pueden tener problemas de escalabilidad con conjuntos de datos masivos o arquitecturas muy profundas.
Fuente: Elaboración propia y principios de aprendizaje profundo

Reinforcement Learning (DL-based RL)

Stacked Auto-Enconders

Un Autoencoder Apilado (Stacked Autoencoder - SAE) es un tipo de red neuronal profunda que se construye apilando múltiples autoencoders (AE) simples. Al igual que los Autoencoders individuales, su propósito principal es el aprendizaje de características no supervisado y la reducción de dimensionalidad. La idea central es aprender representaciones compactas y de baja dimensionalidad (codificaciones) de los datos de entrada, que capturen las características más importantes.

La arquitectura de un SAE se organiza en capas, donde cada capa es un autoencoder. Un autoencoder básico consta de dos partes: un codificador (encoder) que mapea la entrada a una representación de menor dimensión (el “código” o “bottleneck”), y un decodificador (decoder) que reconstruye la entrada original a partir de esta representación. En un autoencoder apilado:

  1. Codificador y Decodificador: Cada autoencoder en la pila tiene su propio codificador y decodificador.
  2. Formación de Capas: La salida de la capa codificadora de un autoencoder se convierte en la entrada para la siguiente capa (el autoencoder superior). De esta manera, las capas progresivas aprenden representaciones de características cada vez más abstractas y de alto nivel.

Las características clave de los Stacked Autoencoders incluyen:

  1. Pre-entrenamiento Codicioso por Capas: Similar a las DBNs, los SAEs se entrenan utilizando un enfoque de pre-entrenamiento codicioso por capas.
    • Primero, se entrena un autoencoder para aprender una representación de la capa de entrada original.
    • Una vez entrenado, la capa del codificador de este AE se “congela” y sus salidas (las características aprendidas) se utilizan como entrada para el entrenamiento del siguiente autoencoder en la pila.
    • Este proceso se repite, entrenando un nuevo autoencoder sobre las representaciones aprendidas por el autoencoder anterior, construyendo así una jerarquía de características.
  2. Aprendizaje No Supervisado: Toda la fase de pre-entrenamiento es no supervisada, lo que significa que los SAEs pueden aprender representaciones poderosas de datos sin necesidad de etiquetas. Esto los hace muy útiles en escenarios donde los datos etiquetados son escasos.
  3. Reducción de Dimensionalidad y Extracción de Características: El objetivo de cada autoencoder es encontrar una representación de baja dimensionalidad que permita una buena reconstrucción de la entrada. Al apilar estos, el SAE aprende una jerarquía de características donde las capas más profundas capturan abstracciones más complejas y significativas de los datos.
  4. Ajuste Fino (Fine-tuning) Supervisado: Después del pre-entrenamiento no supervisado, el decodificador de cada autoencoder suele descartarse. Se toma la pila de codificadores como una red de extracción de características. A esta red se le añade una capa de salida (ej., una capa softmax para clasificación) y todo el modelo se ajusta finamente utilizando un algoritmo de aprendizaje supervisado (como retropropagación con gradiente descendente) en una tarea específica. El pre-entrenamiento actúa como una excelente inicialización de los pesos, lo que ayuda a evitar mínimos locales pobres y a acelerar la convergencia.

Los Stacked Autoencoders fueron un modelo popular antes del auge de las Redes Convolucionales y Recurrentes más especializadas, y demostraron la efectividad del pre-entrenamiento no supervisado para inicializar redes profundas.

Aprendizaje Global vs. Local:

El modelo de Autoencoder Apilado (Stacked Autoencoder - SAE) es un modelo de aprendizaje global que se construye a través de una estrategia de entrenamiento local y secuencial.

  • Aspecto Global (Objetivo Final y Representación): El objetivo final de un SAE es aprender una representación global y jerárquica de los datos. Cada capa codificadora en la pila extrae características de un nivel de abstracción creciente, contribuyendo a una comprensión más profunda y compacta de toda la distribución de los datos de entrada. La codificación final producida por el SAE es una representación de baja dimensionalidad que intenta encapsular la información más relevante de los datos en su conjunto, permitiendo su reconstrucción. Cuando se utiliza para tareas posteriores (como clasificación) después del ajuste fino, la red opera como un modelo unificado que aplica las características globales aprendidas a nuevas entradas.

  • Aspecto Local (Estrategia de Entrenamiento por Capas): La fase de pre-entrenamiento codicioso por capas de los SAEs tiene un componente fuertemente local. Cada autoencoder individual en la pila se entrena de forma independiente para aprender una codificación óptima y una reconstrucción de su propia entrada. Esto significa que los pesos de cada autoencoder se optimizan localmente, en un momento dado, sin considerar directamente la optimización simultánea de toda la red. La entrada a cada autoencoder subsiguiente es la representación codificada aprendida por el autoencoder anterior. Esta estrategia de entrenamiento “por partes” permite que las redes profundas sean entrenadas de manera más eficiente y eficaz, ya que descompone un problema de optimización complejo en subproblemas más manejables. Sin embargo, el resultado acumulado de estas optimizaciones locales es la construcción de una jerarquía de características que, en última instancia, forma parte de un modelo global y unificado de los datos.

Guía rápida para elegir Stacked Autoencoders (SAE)
Características y Consideraciones
Criterio Aplica Detalles
Tipo de modelo ✅ Aprendizaje de representación (no supervisado) / Discriminativo (supervisado) Compuesto por múltiples autoencoders apilados. Cada autoencoder se entrena para aprender una representación (codificación) de la entrada de la capa anterior. Se usa para pre-entrenamiento no supervisado y luego fine-tuning supervisado para tareas específicas.
Variable respuesta ✅ Numérica continua o categórica (binaria, multiclase) La capa de salida final puede adaptarse para tareas de regresión (variables continuas) o clasificación (variables categóricas).
Variables predictoras ✅ Numéricas y/o Categóricas (requiere preprocesamiento) Requiere preprocesamiento: variables numéricas estandarizadas/normalizadas y variables categóricas codificadas (ej. one-hot encoding).
Relación entre variables ✅ No lineal y Compleja Excelente para capturar relaciones complejas, no lineales y de alta dimensionalidad en los datos a través de representaciones aprendidas.
Normalidad de residuos ❌ No aplica directamente Los Stacked Autoencoders son modelos de aprendizaje automático no paramétricos y no tienen supuestos sobre la normalidad de los residuos.
Independencia de errores ⚠️ No es un supuesto directo, pero la compresión busca regularidad No es un supuesto explícito, pero el objetivo de los autoencoders de reconstruir la entrada fomenta la captura de dependencias y regularidades en los datos, no necesariamente errores independientes.
Homoscedasticidad ❌ No aplica directamente La homoscedasticidad no es una consideración directa ni un requisito para el entrenamiento de Stacked Autoencoders.
Sensible a outliers ⚠️ Sensible, pueden afectar la calidad de las representaciones aprendidas Pueden ser sensibles a valores atípicos, ya que estos pueden influir fuertemente en la forma en que se aprenden las representaciones latentes, potencialmente llevando a una reconstrucción deficiente o a características sesgadas.
Multicolinealidad entre predictores ✅ Maneja bien multicolinealidad Al aprender representaciones de características de menor dimensionalidad, los SAEs son robustos frente a la multicolinealidad en las variables predictoras originales.
Interpretabilidad ⚠️ Baja (tipo caja negra) Similar a otras redes neuronales profundas, los SAEs operan como 'cajas negras', haciendo difícil la interpretación directa de las características latentes que aprenden.
Velocidad y eficiencia ⚠️ Lento en entrenamiento, rápido en inferencia El entrenamiento capa por capa puede ser intensivo en tiempo y recursos computacionales, especialmente con grandes datasets y arquitecturas complejas. La fase de inferencia es rápida.
Validación cruzada ✅ Útil para ajuste de hiperparámetros La validación cruzada es crucial para la selección de hiperparámetros, como el número de capas, el número de unidades en cada capa latente, las tasas de aprendizaje y los términos de regularización.
No funciona bien si... ❌ Datos insuficientes; ❌ arquitectura inadecuada (cuello de botella); ❌ si las representaciones no son significativas para la tarea final. Requieren una cantidad sustancial de datos para aprender representaciones significativas y evitar el sobreajuste. Una arquitectura de cuello de botella mal diseñada puede limitar la capacidad de representación. Si las características aprendidas por los autoencoders no son relevantes para la tarea final supervisada, el rendimiento puede ser pobre.
Fuente: Elaboración propia y principios de aprendizaje profundo

Variational Autoencoders (VAEs)