En este curso aprenderás

  • Todos los fundamentos de las cuatro principales arquitecturas del Deep Learning usadas en la actualidad: las Redes Neuronales, Convolucionales, Recurrentes y LSTM y las Redes Transformer

  • Los elementos básicos del lenguaje de programación Python y de librerías específicas como Numpy, Matplotlib, Pandas y Scikit-Learn

  • A usar Google Colab para implementar y entrenar modelos directamente en la nube

  • A construir arquitecturas de Deep Learning usando Python, la librería Keras y Google Colab

  • A implementar de forma práctica modelos predictivos (de clasificación y regresión) y soluciones a problemas reales en áreas como el procesamiento de imágenes, la visión por computador y el procesamiento del lenguaje natural, entre otras

Contenido del curso

  1. 1
    • Introducción al Aprendizaje Automático

    • Elementos básicos de un sistema de Deep Learning

    • Inteligencia Artificial vs Machine Learning vs Deep Learning

    • Evolución del Deep Learning y casos de éxito

    • Definiciones básicas del Deep Learning

    • Preparación del entorno Python: Google Colab

    • Introducción a Python para Deep Learning

    • Introducción a Numpy para Deep Learning

    • Introducción a Matplotlib para Deep Learning

    • Introducción a Pandas para Deep Learning

    • Elementos esenciales de Álgebra Lineal para Deep Learning

    • Elementos esenciales de Cálculo Diferencial para Deep Learning

    • Elementos esenciales de Probabilidad para Deep Learning

  2. 2
    • Introducción

    • El algoritmo del Gradiente Descendente

    • La Regresión Lineal

    • Práctica 1: la Regresión Lineal desde cero en Python

    • La Regresión Lineal Múltiple

    • Gradiente Descendente estocástico con "mini-batch"

    • Práctica 2: la Regresión Lineal en Keras

    • La Neurona Artificial

    • La entropía cruzada: entrenamiento de la Neurona Artificial

    • Práctica 3: la Neurona Artificial en Keras

    • La Clasificación Multiclase

    • Práctica 4: Clasificación Multiclase en Keras

    • Idea intuitiva acerca de las Redes Neuronales

    • Las Funciones de Activación

    • Entrenamiento de una Red Neuronal: Forward y Backward Propagation

    • Práctica 5: detección de partículas con Redes Neuronales

    • Los sets de entrenamiento, prueba y validación

    • Underfitting y overfitting

    • Práctica 6: cómo crear, entrenar y validar una Red Neuronal en Keras

    • Técnicas de Regularización

    • Otros algoritmos de optimización: variantes del Gradiente Descendente

    • Otros algoritmos de optimización: Gradiente Descendente + Momentum

    • Otros algoritmos de optimización: RMSPROP

    • Otros algoritmos de optimización: Adam

    • Aspectos prácticos para la implementación de Redes Neuronales

    • Proyecto final (parte 1): Predicción del Riesgo de Diabetes con Redes Neuronales - El problema a resolver

    • Proyecto final (parte 2): Análisis Exploratorio de Datos y Manejo de Datos Faltantes

    • Proyecto final (parte 3): Pre-procesamiento y creación de los sets de entrenamiento, prueba y validación

    • Proyecto final (parte 4): entrenamiento y validación preliminar

    • Proyecto final (parte 5): cross-validation, sugerencias finales y conclusiones

  3. 3
    • Introducción

    • El sistema de visión humano y las Redes Convolucionales

    • Retos del procesamiento de imágenes y limitaciones de las Redes Neuronales

    • El filtro o kernel

    • La convolución

    • El "padding"

    • Los "strides"

    • Convolución en imágenes con múltiples canales de entrada (volúmenes)

    • Convolución con múltiples filtros

    • "Pooling"

    • Arquitectura de una Red Convolucional

    • LeNet

    • Práctica 1: clasificación de imágenes usando la red "LeNet"

    • AlexNet y VGGNet

    • Práctica 2: transferencia de aprendizaje con VGG-16

    • GoogLeNet y ResNet

    • Práctica 3 (parte 1): segmentación con Redes Convolucionales - la segmentación y el problema a resolver

    • Práctica 3 (parte 2): segmentación con Redes Convolucionales - entrenamiento y segmentación con U-Net

    • Proyecto final: Detección de Objetos Multiclase (parte 1): La Detección de Objetos y el Problema a Resolver

    • Proyecto final: Detección de Objetos Multiclase (parte 2): Preparación del Set de Datos

    • Proyecto final: Detección de Objetos Multiclase (parte 3): Creación y Entrenamiento de la Red Convolucional

    • Proyecto final: Detección de Objetos Multiclase (parte 4) : Detección de Objetos con la Red Entrenada

  4. 4
    • Introducción: las Redes Neuronales Recurrentes y el concepto de secuencia

    • Principio de funcionamiento de una Red Neuronal Recurrente

    • Arquitectura de una Red Neuronal Recurrente

    • Una Red Neuronal Recurrente en acción: ejemplo paso a paso

    • Entrenamiento: "backpropagation" a través del tiempo

    • Diferentes configuraciones de Redes Recurrentes

    • Práctica 1: Generación de Texto (parte 1): el set de datos y el modelo a implementar

    • Práctica 1: Generación de Texto (parte 2): entrenamiento del modelo y generación de texto

    • Limitaciones de las Redes Neuronales Recurrentes

    • Las Redes LSTM (parte 1): las compuertas y la celda de memoria candidata

    • Las Redes LSTM (parte 2): actualización de la celda de memoria y del estado oculto

    • Práctica 2: Análisis de sentimientos con Redes LSTM (parte 1): el modelo a implementar y el set de datos

    • Práctica 2: Análisis de sentimientos con Redes LSTM (parte 2): implementación de la Red y clasificación de sentimientos

    • Proyecto final: Predicción de Demanda Energética con Redes LSTM (parte 1): series de tiempo, el problema a resolver y el set de datos

    • Proyecto final: Predicción de Demanda Energética con Redes LSTM (parte 2): sets de entrenamiento y prueba y creación y entrenamiento del modelo

    • Proyecto final: Predicción de Demanda Energética con Redes LSTM (parte 3): predicción de la demanda con la red entrenada

    • Ventajas y limitaciones de las Redes Neuronales Recurrentes

  5. 5
    • Introducción a las Redes Transformer

    • Aplicaciones de las Redes Transformer

    • Arquitectura de una Red Transformer

    • Codificación: el "embedding" de entrada

    • Codificación: el codificador posicional

    • Codificación: el bloque atencional

    • Codificación: etapa de salida

    • Decodificación: principio de funcionamiento

    • Decodificación: el bloque atencional con enmascaramiento

    • Decodificación: el bloque atencional

    • Decodificación: etapa de salida

    • Práctica 1 (parte 1): Machine Translation - el problema a resolver y preparación del set de datos

    • Práctica 1 (parte 2): Machine Translation - creación y entrenamiento de la Red Transformer

    • Práctica 1 (parte 3): Machine Translation - Traducción de Inglés a Español con la Red entrenada

    • BERT: la transferencia de aprendizaje en las Redes Transformer

    • Práctica 2 (parte 1): Preguntas y Respuestas con BERT - Introducción

    • Práctica 2 (parte 2): Preguntas y Respuestas con BERT - Lectura y "tokenización" del set de datos

    • Práctica 2 (parte 3): Preguntas y Respuestas con BERT - Pre-procesamiento del set de datos y sets de entrenamiento y prueba

    • Práctica 2 (parte 4): Preguntas y Respuestas con BERT - Creación y entrenamiento del modelo

    • Práctica 2 (parte 5): Preguntas y Respuestas con BERT - Predicción: preguntas y respuestas

    • GPT: el aprendizaje NO supervisado en las Redes Transformer

    • Práctica 3 (parte 1): Generación de Texto con GPT-2 - El problema a resolver y preparación del modelo

    • Práctica 3 (parte 2): Generación de Texto con GPT-2 - Ejemplos de generación de texto

    • Práctica 3 (parte 3): Generación de Texto con GPT-2 - Limitaciones y sesgo del generador

    • Proyecto final (parte 1): Clasificación de imágenes con Redes Transformer - ¿Qué es y cómo funciona el "vision transformer"?

    • Proyecto final (parte 2): Clasificación de imágenes con Redes Transformer - Preprocesamiento de la imagen de entrada

    • Proyecto final (parte 3): Clasificación de imágenes con Redes Transformer - Clasificación de imágenes con el "vision transformer"

    • Ventajas y limitaciones de las Redes Transformer

    • Conclusiones y cierre del curso

Requisitos

  • Un computador (de escritorio o portátil) con acceso a Internet.

  • Una cuenta de usuario en Google. La totalidad de la parte práctica del curso será desarrollada en la plataforma Google Colab (de acceso gratuito y a través del navegador de Internet)

  • Alguna experiencia previa implementando código en cualquier lenguaje de programación. En la primera parte del curso se desarrollarán tutoriales introductorios a la programación en Python y las principales librerías requeridas

  • Conocimientos básicos de álgebra y cálculo (al menos a nivel de último año de secundaria). En la primera parte del curso se abordarán los conceptos esenciales de álgebra lineal, cálculo diferencial y probabilidad y estadística

Instructor

Fundador y creador de contenidos en Codificando Bits

Miguel Sotaquirá

Soy Ingeniero Electrónico y tengo una Maestría en esta área, así como un Doctorado en Bioingeniería. Durante 15 años he sido profesor e investigador de varias universidades de Colombia, y desde el año 2017 me he convertido en un apasionado por el Machine Learning, el Deep Learning y la Ciencia de Datos. De hecho durante mi tesis doctoral explore temas de Machine Learning y algo de Deep Learning (que aún no estaba en auge!) para el análisis de imágenes médicas. En la actualidad me dedico por completo a divulgar contenido en mi canal de YouTube y a brindar asesoría y formación a personas y empresas en estos temas.