Introducción al Aprendizaje Profundo
El aprendizaje profundo es un subcampo del aprendizaje automático que se centra en aprender representaciones de características complejas y jerárquicas a partir de datos brutos utilizando redes neuronales artificiales. El curso cubre los principios fundamentales, las matemáticas subyacentes, los conceptos de optimización (descenso por gradiente, propagación hacia atrás), los módulos de red (capas lineales, convolucionales, de pooling) y las arquitecturas comunes (CNNs, RNNs). Se presentan aplicaciones como visión por computadora, procesamiento del lenguaje natural y aprendizaje por refuerzo. Los estudiantes utilizarán la biblioteca de aprendizaje profundo PyTorch para la implementación y completarán un proyecto final basado en un escenario del mundo real.
Descripción del curso
📚 Resumen del Contenido
El aprendizaje profundo es un subcampo del aprendizaje automático que se centra en aprender representaciones de características complejas y jerárquicas a partir de datos sin procesar utilizando redes neuronales artificiales. El curso cubre principios fundamentales, matemáticas subyacentes, conceptos de optimización (descenso del gradiente, retropropagación), módulos de red (capas lineales, convolucionales, de pooling) y arquitecturas comunes (CNNs, RNNs). Las aplicaciones demostradas incluyen visión por computadora, procesamiento del lenguaje natural y aprendizaje por refuerzo. Los estudiantes utilizarán la biblioteca de aprendizaje profundo PyTorch para la implementación y completarán un proyecto final sobre un escenario del mundo real.
Un breve resumen de los objetivos clave: dominar la teoría del aprendizaje profundo, implementar modelos usando PyTorch, comprender arquitecturas especializadas (CNNs, RNNs, Transformers) y aplicar estos conceptos a visión por computadora, NLP y toma de decisiones secuenciales.
🎯 Objetivos de Aprendizaje
- Explicar las bases matemáticas y las técnicas de optimización fundamentales (Descenso del Gradiente, Retropropagación) necesarias para entrenar redes neuronales profundas.
- Utilizar el marco de aprendizaje profundo PyTorch para implementar, entrenar y depurar eficientemente arquitecturas de red modernas usando aceleración CUDA y técnicas eficientes de manejo de datos.
- Diseñar y analizar arquitecturas especializadas, incluyendo Redes Neuronales Convolucionales (CNNs) para datos de imagen y el modelo Transformer para dependencias secuenciales.
- Aplicar técnicas de aprendizaje profundo para resolver problemas prácticos en dominios aplicativos clave: Visión por Computadora, Procesamiento del Lenguaje Natural y Aprendizaje por Refuerzo.
- Evaluar modelos según robustez, interpretabilidad y equidad ética, comparando las fortalezas de diversos paradigmas avanzados (por ejemplo, Modelos Generativos, Aprendizaje Semi-supervisado).
🔹 Lección 1: Fundamentos del Aprendizaje Profundo y Optimización
Resumen: Esta lección fundamental introduce los bloques constructivos básicos del aprendizaje profundo. Comenzamos examinando clasificadores lineales, centrándonos específicamente en la función Softmax y el uso de la pérdida de Entropía Cruzada para cuantificar el error. Sobre esta base, definimos la estructura de una red neuronal feedforward básica (Perceptrón Multicapa), detallando el papel de pesos, sesgos y funciones de activación no lineales (por ejemplo, ReLU). El enfoque principal cambia hacia el proceso de optimización necesario para entrenar estos modelos altamente parametrizados. Introduciremos el Descenso del Gradiente (GD) como algoritmo de optimización central, contrastando sus requisitos computacionales con los de los métodos de Descenso del Gradiente Estocástico (SGD) y Descenso del Gradiente por Mini-lotes. Crucialmente, la lección culmina con una explicación detallada del algoritmo de retropropagación, mostrando cómo se aplica eficientemente la regla de la cadena del cálculo mediante gráficos de cómputo para calcular los gradientes necesarios para actualizar los pesos en todas las capas. Resultados de Aprendizaje:
- Definir la estructura de una red neuronal feedforward básica y explicar la necesidad de funciones de activación no lineales (por ejemplo, ReLU).
- Formular funciones de pérdida de clasificación (por ejemplo, Softmax y Entropía Cruzada) y entender cómo cuantifican el error del modelo.
- Explicar el funcionamiento del Descenso del Gradiente (GD) y diferenciar entre sus variantes (SGD, GD por mini-lotes) en términos de convergencia y eficiencia computacional.
- Derivar el algoritmo de retropropagación usando la regla de la cadena y demostrar su implementación mediante grafos de cómputo para calcular gradientes.
- Identificar los principales requisitos matemáticos previos (álgebra lineal y cálculo multivariado) necesarios para comprender la optimización de redes neuronales.
🔹 Lección 2: Implementación Práctica y Herramientas de Aprendizaje Profundo
Resumen: Esta lección pasa de los conceptos teóricos a la implementación lista para producción usando PyTorch, la biblioteca principal de este curso. Comenzamos con los fundamentos de PyTorch, detallando la estructura de Tensor, utilizando CUDA para aceleración por GPU y comprendiendo la diferenciación automática a través del grafo de cómputo dinámico. Se enfatizará fuertemente en el manejo eficiente de datos: introduciendo la clase Dataset de PyTorch para abstracción de datos y DataLoader para gestionar grandes conjuntos de datos, permitiendo el agrupamiento, mezcla y carga multi-proceso de datos. Finalmente, abordaremos consideraciones prácticas para escalar el entrenamiento, cubriendo optimización de gestión de memoria, técnicas como acumulación de gradientes e introduciendo los conceptos centrales detrás del entrenamiento distribuido (por ejemplo, Paralelismo de Datos), necesarios para trabajar con modelos que superan la capacidad de una sola GPU. Resultados de Aprendizaje:
- Implementar operaciones básicas de aprendizaje profundo usando Tensores de PyTorch y utilizar sus funciones de diferenciación automática para el cálculo de gradientes.
- Diseñar e implementar flujos de datos eficientes usando las abstracciones Dataset y DataLoader de PyTorch para manejar entradas de datos a gran escala y agrupadas.
- Configurar modelos y datos para entrenar en GPUs habilitadas para CUDA, acelerando significativamente el proceso de entrenamiento e inferencia.
- Explicar el papel de técnicas de optimización de memoria, como la acumulación de gradientes, y comprender los fundamentos conceptuales del entrenamiento distribuido para escalabilidad.
🔹 Lección 3: Redes Convolucionales: Capas y Arquitecturas
Resumen: Esta lección introduce las Redes Neuronales Convolucionales (CNNs), la piedra angular de la visión por computadora moderna. Exploraremos profundamente los módulos fundamentales: la Capa Convolucional y la Capa de Pooling. Para la Capa Convolucional, cubriremos las matemáticas de la operación, incluyendo los roles de los kernels (filtros), el stride y el padding, y discutiremos conceptos clave como la conectividad local y el compartimiento de parámetros que hacen que las CNNs sean eficientes para datos de imagen de alta dimensión. Diferenciaremos el Max Pooling del Average Pooling y explicaremos su papel crítico en el reducir la dimensionalidad y lograr invariancia a traslaciones. Finalmente, sintetizaremos estas capas en arquitecturas CNN básicas y completas, ilustrando la transición secuencial común desde los datos de píxeles brutos hasta pilas de extracción jerárquica de características hasta capas totalmente conectadas para la clasificación final, usando modelos clásicos como LeNet-5 como ejemplos representativos. Resultados de Aprendizaje:
- Explicar la operación matemática de la convolución 2D, incluyendo cómo el tamaño del filtro, el stride y el padding afectan las dimensiones del mapa de características de salida.
- Articular los conceptos de conectividad local y compartimiento de parámetros y cómo contribuyen a la eficiencia y efectividad de las CNNs frente a redes totalmente conectadas para datos de imagen.
- Diferenciar entre Max Pooling y Average Pooling, y describir el propósito principal de las capas de pooling en la reducción de dimensionalidad de los mapas de características y en la obtención de invariancia a traslaciones.
- Diseñar y analizar una arquitectura CNN básica secuencial compuesta por capas intercaladas de convolución, activación (ReLU), pooling y capas totalmente conectadas.
🔹 Lección 4: Visión por Computadora: Modelos Avanzados e Interpretación
Resumen: Esta lección avanza más allá de las CNNs fundamentales (como AlexNet) para explorar arquitecturas profundas y muy influyentes de aprendizaje profundo utilizadas en tareas de visión por computadora de vanguardia. Analizaremos los principios de diseño e innovaciones detrás de modelos clave, incluyendo la profundidad simplificada de las redes VGG, la agregación de características multiscale de Inception (GoogLeNet) y el uso crítico de conexiones residuales en ResNet para superar el problema del gradiente desvanecido en redes extremadamente profundas. La segunda mitad de la lección se centra en el tema vital de la interpretabilidad del modelo y el Aprendizaje Automático Explicable (XAI). Los estudiantes aprenderán técnicas de visualización, como inspeccionar activaciones de mapas de características, y se adentrarán en métodos basados en gradientes para localización. Específicamente, cubriremos la mecánica y la implementación del Mapeo de Activación de Clase (CAM) y su generalización basada en gradientes, Grad-CAM, que explica visualmente las decisiones de la red destacando las regiones salientes en la imagen de entrada. Resultados de Aprendizaje:
- Comparar y contrastar las innovaciones arquitectónicas clave (por ejemplo, conexiones residuales, módulos Inception) de los modelos VGG, GoogLeNet y ResNet.
- Explicar el papel y los desafíos de aumentar la profundidad de la red, abordando específicamente el problema de degradación y cómo ResNet lo mitiga.
- Detallar métodos fundamentales para la visualización de características, incluyendo la inspección de activaciones en capas intermedias y filtros aprendidos.
- Esbozar el mecanismo teórico del Mapeo de Activación de Clase (CAM) y Grad-CAM para generar explicaciones visuales basadas en el flujo de gradientes.
- Aplicar técnicas de interpretabilidad para analizar y diagnosticar el proceso de toma de decisiones de CNNs avanzadas en tareas de clasificación.
🔹 Lección 5: Redes Neuronales Recurrentes y Modelado de Secuencias
Resumen: Esta lección introduce los desafíos del modelado de datos estructurados, especialmente secuencias (por ejemplo, texto, series temporales), que violan la suposición de independencia común en redes feedforward. Definiremos tareas de modelado de secuencias, como traducción automática, reconocimiento de voz y predicción de series temporales, haciendo hincapié en la necesidad de un mecanismo para mantener información de estado. El foco principal estará en la arquitectura de Redes Neuronales Recurrentes (RNNs) tradicionales. Conceptos clave cubiertos incluyen el mecanismo de pesos compartidos, la expansión de grafos de cómputo a través de pasos temporales, el cálculo de actualizaciones de estado oculto (h_t) y el manejo de secuencias de entrada de longitud variable. También examinaremos las principales limitaciones de las RNNs básicas, en particular la incapacidad para capturar dependencias a largo plazo debido a los problemas de gradiente desvanecido y explosivo que surgen durante la retropropagación a través del tiempo (BPTT). Resultados de Aprendizaje:
- Definir datos estructurados (secuencias) y explicar por qué las Redes Feedforward Normales (FNNs) son inadecuadas para modelar dependencias secuenciales.
- Describir la arquitectura fundamental de una Red Neuronal Recurrente (RNN) básica, identificando componentes como el estado oculto y matrices de pesos compartidas.
- Ilustrar el proceso de "desplegar" un grafo de cómputo de RNN a través de pasos temporales y discutir cómo se manejan secuencias de entrada de longitud variable.
- Explicar el mecanismo de Retropropagación a través del Tiempo (BPTT) y analizar los problemas de gradiente desvanecido y explosivo inherentes al entrenamiento de RNNs tradicionales.
🔹 Lección 6: Mecanismos de Atención y Arquitectura Transformer
Resumen: Esta lección profundiza en el cambio de paradigma introducido por el artículo "Attention Is All You Need", moviendo el modelado de secuencias más allá de las Redes Neuronales Recurrentes (RNNs) al eliminar la recursividad y depender exclusivamente de la atención. Primero estableceremos los fundamentos matemáticos del Mecanismo de Atención, centrándonos específicamente en la Atención de Producto Punto Escalado usando vectores Query (Q), Key (K) y Value (V). La conferencia luego expande este concepto hacia el mecanismo de Atención de Múltiples Cabezales, explicando su rol en capturar diversas dependencias contextuales. El enfoque principal estará en la arquitectura completa del Transformer, analizando la estructura tanto de las pilas Encoder como Decoder, incluyendo elementos cruciales como Conexiones Residuales, Normalización por Capa y el Codificación Posicional esencial para mantener la información secuencial. Finalmente, examinamos cómo el Transformer permite una gran paralelización y su impacto revolucionario en campos como la Traducción Automática Neural y los modelos preentrenados de lenguaje. Resultados de Aprendizaje:
- Definir el propósito de los mecanismos de atención y explicar cómo resuelven las limitaciones (por ejemplo, dependencias de largo alcance, cuello de botella de procesamiento secuencial) de las Redes Neuronales Recurrentes.
- Detallar la operación matemática de la Atención de Producto Punto Escalado, identificando con precisión los roles de los vectores Query, Key y Value.
- Describir la estructura general del modelo Transformer, diferenciando entre las pilas Encoder y Decoder y explicando la función de la Atención de Múltiples Cabezales y las Redes Feed-Forward.
- Explicar la necesidad e implementación matemática de la Codificación Posicional dentro de la arquitectura Transformer, que es invariante bajo permutaciones.
- Analizar las ventajas computacionales (paralelización) y la amplia aplicabilidad de la arquitectura Transformer en tareas modernas de Aprendizaje Profundo, citando modelos como BERT y GPT.
🔹 Lección 7: Aplicaciones de Procesamiento del Lenguaje Natural y Embeddings
Resumen: Esta conferencia profundiza en aspectos fundamentales y aplicados del Aprendizaje Profundo para el Procesamiento del Lenguaje Natural (NLP). Comenzamos abordando la necesidad crucial de representaciones de palabras eficaces, pasando de métodos esparsos a embeddings densos y aprendidos. Explicaremos los mecanismos centrales de Word2Vec (Skip-gram y CBOW), destacando cómo el contexto genera representaciones vectoriales ricas que capturan significado semántico. Luego aplicaremos estos conceptos fundamentales a dos tareas principales de NLP: Traducción Automática Neuronal (NMT), utilizando arquitecturas codificador-decodificador secuencia-a-secuencia y el papel crítico de los Mecanismos de Atención para manejar dependencias largas y alineación; y Reconocimiento Automático de Voz (ASR), explorando cómo los modelos profundos manejan secuencias temporales de datos acústicos para generar salida textual. La discusión enfatizará cómo los embeddings y arquitecturas de aprendizaje profundo secuenciales forman la columna vertebral de los sistemas comerciales modernos de NLP. Resultados de Aprendizaje:
- Explicar las limitaciones de las representaciones de palabras esparsas (por ejemplo, codificación one-hot) y justificar la necesidad de embeddings densos de vectores de palabras.
- Describir los principios fundamentales y la arquitectura de modelos como Word2Vec (Skip-gram/CBOW) usados para aprender representaciones distribuidas.
- Esbozar los componentes centrales (Codificador, Decodificador, Atención) de un sistema moderno de Traducción Automática Neuronal, contrastándolo con métodos tradicionales.
- Analizar los desafíos inherentes a tareas secuencia-a-secuencia como NMT y Reconocimiento Automático de Voz (ASR), particularmente respecto a longitudes variables de entrada/salida.
- Identificar cómo las arquitecturas neuronales se adaptan para manejar entradas de audio en el contexto del Reconocimiento Automático de Voz.
🔹 Lección 8: Modelos Generativos: VAEs y Redes Generativas Adversariales
Resumen: Esta lección introduce los dos modelos generativos profundos modernos fundamentales: Autoencoders Variacionales (VAEs) y Redes Generativas Adversariales (GANs). Comenzamos con los VAEs, detallando su arquitectura —un codificador que mapea datos a una distribución latente parametrizada y un decodificador que genera muestras. Se dará un fuerte énfasis a las matemáticas subyacentes, particularmente la función objetivo del Límite Inferior de Evidencia (ELBO), desglosando los roles de la pérdida de reconstrucción y el término de divergencia KL para regularización. Se explicará a fondo el Truco de Reparametrización crítico, necesario para permitir el flujo de gradientes a través del proceso de muestreo. Luego pasamos a los GANs, definiendo el juego adversarial y de suma cero entre el generador (G) y el discriminador (D). La conferencia cubre la función valor minimax teórica, explora cómo el discriminador óptimo maximiza el objetivo y discute importantes desafíos prácticos como el colapso de modos y la inestabilidad de entrenamiento. Finalmente, proporcionamos una comparación cualitativa, contrastando el espacio latente interpretable de los VAEs con la fidelidad de muestra generalmente superior de los GANs. Resultados de Aprendizaje:
- Diferenciar entre modelado discriminativo y generativo y explicar el objetivo matemático de aprender distribuciones de datos complejas.
- Explicar la arquitectura de un Autoencoder Variacional (VAE) y derivar la función objetivo del Límite Inferior de Evidencia (ELBO).
- Analizar la necesidad y función del truco de reparametrización en el entrenamiento de VAEs para garantizar una retropropagación efectiva.
- Describir el proceso de entrenamiento de una Red Generativa Adversarial (GAN) como un juego minimax entre el Generador y el Discriminador.
- Comparar y contrastar VAEs y GANs según calidad de muestra, interpretabilidad del espacio latente y desafíos comunes de entrenamiento como el colapso de modos.
🔹 Lección 9: Aprendizaje por Refuerzo Profundo
Resumen: Esta lección introduce el Aprendizaje por Refuerzo Profundo (DRL) estableciendo el marco fundamental de toma de decisiones, el Proceso de Decisión de Markov (MDP). Definiremos el bucle agente-entorno, espacios de estados y acciones, y el objetivo de maximizar el retorno descuento esperado. Se cubrirán conceptos centrales del RL tradicional, incluyendo Funciones de Valor y la Ecuación de Bellman de Optimalidad. La lección luego pasa al DRL, explorando los desafíos de espacios de estado grandes y cómo las Redes Q Profundas (DQN) superan esto usando redes neuronales para la aproximación de la función Q. Detallaremos técnicas de estabilidad esenciales para DQN, como la experiencia replay y redes objetivo. Finalmente, contrastaremos los métodos basados en valor con los métodos de Gradiente de Política, detallando la intuición matemática detrás del algoritmo REINFORCE para optimización directa de políticas y preparando el terreno para arquitecturas más avanzadas Actor-Critic. Resultados de Aprendizaje:
- Formalizar problemas de toma de decisiones secuenciales usando el marco de Proceso de Decisión de Markov (MDP), incluyendo definiciones de estado, acción, recompensa y función de valor.
- Explicar la transición de Q-learning tabular a Redes Q Profundas (DQN) e identificar las técnicas críticas (experience replay, redes objetivo) utilizadas para estabilizar el entrenamiento de DRL.
- Diferenciar fundamentalmente entre métodos basados en valor (como DQN) y métodos basados en política (como REINFORCE).
- Describir la función objetivo y la intuición matemática detrás del Teorema del Gradiente de Política y su implementación en el algoritmo REINFORCE.
- Contrastar las aplicaciones de enfoques basados en valor versus basados en política en escenarios modernos de Aprendizaje por Refuerzo Profundo.
🔹 Lección 10: Paradigmas de Aprendizaje Avanzados y IA Ética
Resumen: Esta lección introduce paradigmas avanzados de aprendizaje profundo necesarios para un despliegue robusto y aborda implicaciones sociales críticas. Primero exploramos los fundamentos teóricos y aplicaciones prácticas del Aprendizaje Profundo No Supervisado, centrándonos en modelos como Autoencoders y Modelos Generativos cuando se usan para aprendizaje de representaciones y detección de anomalías. Posteriormente, nos adentramos en técnicas de Aprendizaje Semi-supervisado (SSL), como etiquetado pseudolabeling y regularización de consistencia (por ejemplo, \Pi-Model, MixMatch), que son cruciales para aprovechar grandes cantidades de datos no etiquetados junto con ejemplos escasos etiquetados. La segunda parte principal de la lección examina críticamente la IA Ética, detallando cómo la curación de datos y las elecciones arquitectónicas introducen Sesgo Algorítmico. Definimos y analizamos métricas clave de Equidad (por ejemplo, Diferencia de Oportunidad Igualitaria, Paridad Demográfica) y discutimos estrategias efectivas de mitigación, enfatizando la importancia de la interpretabilidad del modelo (XAI) y la responsabilidad en sistemas de aprendizaje profundo de alto riesgo. Resultados de Aprendizaje:
- Distinguir entre aprendizaje no supervisado, semi-supervisado y aprendizaje supervisado estándar e identificar escenarios del mundo real adecuados para cada paradigma.
- Describir la función y arquitectura de modelos no supervisados clave, como Autoencoders y su uso en reducción de dimensionalidad o aprendizaje de representaciones.
- Explicar la metodología de técnicas modernas de aprendizaje semi-supervisado, incluyendo los conceptos de pseudolabeling y regularización de consistencia.
- Identificar y categorizar las principales fuentes de sesgo algorítmico introducidas durante el ciclo de vida del aprendizaje profundo (adquisición de datos, modelado, despliegue).
- Definir y comparar métricas comunes de equidad algorítmica (por ejemplo, Odds Igualizados) y discutir los trade-offs inherentes en las estrategias de mitigación de sesgo.