Cuarta etapa: Aprendizaje profundo y redes neuronales
Libro de texto de aprendizaje profundo de código abierto que combina teoría, código y práctica, admite múltiples implementaciones de frameworks y proporciona una ruta de aprendizaje completa de aprendizaje profundo desde principiante hasta avanzado.
Introducción Detallada al Curso Dive into Deep Learning (D2L)
Resumen del Curso
Dive into Deep Learning (D2L) es un libro de texto de código abierto sobre aprendizaje profundo, diseñado para hacer que el aprendizaje profundo sea fácil de entender y aprender. Este libro combina conceptos, contexto y código para proporcionar a los lectores un recurso integral para el aprendizaje profundo.
Antecedentes del Curso
Hace unos años, era raro que los científicos de aprendizaje profundo desarrollaran productos y servicios inteligentes en grandes empresas y startups. En ese momento, el aprendizaje automático no era noticia diaria, y nuestros padres no sabían qué era el aprendizaje automático. El aprendizaje automático era entonces una disciplina académica de "cielo azul", cuya importancia industrial se limitaba a unas pocas aplicaciones prácticas, incluyendo el reconocimiento de voz y la visión por computadora.
Sin embargo, en solo unos pocos años, el aprendizaje profundo ha sorprendido al mundo, impulsando un rápido desarrollo en múltiples campos como la visión por computadora, el procesamiento del lenguaje natural, el reconocimiento automático de voz, el aprendizaje por refuerzo y la informática biomédica. El éxito del aprendizaje profundo incluso ha catalizado el desarrollo del aprendizaje automático teórico y la estadística.
Características del Material Didáctico
1. Combinación de Medios Diversos
- Combinación de código, matemáticas y HTML: Integra código, fórmulas matemáticas y contenido web en una única plataforma.
- Código ejecutable: La mayoría de los capítulos incluyen ejemplos de código ejecutable.
- Actualizaciones en tiempo real: Permite actualizaciones rápidas y contribuciones de la comunidad a través de GitHub.
2. Método de Aprendizaje: Aprender Haciendo
- Aprendizaje de conceptos justo a tiempo: Los conceptos relevantes se enseñan solo cuando son necesarios para resolver problemas prácticos.
- Prioridad a la práctica: Permite a los estudiantes experimentar la satisfacción de entrenar su primer modelo antes de preocuparse por conceptos más esotéricos.
- Conjuntos de datos reales: Cada capítulo subsiguiente proporciona varios ejemplos de trabajo autocontenidos utilizando conjuntos de datos reales.
3. Soporte para Múltiples Frameworks
Este material didáctico soporta implementaciones en múltiples frameworks de aprendizaje profundo:
- PyTorch (framework principal)
- TensorFlow
- MXNet
- JAX
Estructura del Contenido
El material didáctico se puede dividir en tres partes principales:
Primera Parte: Fundamentos y Conocimientos Previos
- Capítulo 1: Introducción al Aprendizaje Profundo
- Capítulo 2: Conocimientos Previos (almacenamiento y manipulación de datos, operaciones numéricas, etc.)
- Capítulo 3: Regresión Lineal
- Capítulo 5: Perceptrón Multicapa
- Cubre conceptos fundamentales como regresión y clasificación, modelos lineales, perceptrones multicapa, sobreajuste y regularización.
Segunda Parte: Técnicas Modernas de Aprendizaje Profundo
- Capítulo 6: Componentes Computacionales Clave de los Sistemas de Aprendizaje Profundo
- Capítulos 7-8: Redes Neuronales Convolucionales (CNN)
- Capítulos 9-10: Redes Neuronales Recurrentes (RNN)
- Capítulo 11: Mecanismos de Atención y Transformers
- Cubre las herramientas más potentes y versátiles ampliamente utilizadas por los profesionales del aprendizaje profundo moderno.
Tercera Parte: Escalabilidad, Eficiencia y Aplicaciones (disponible en línea)
- Capítulo 12: Algoritmos de Optimización
- Capítulo 13: Rendimiento Computacional
- Capítulo 14: Aplicaciones de Visión por Computadora
- Capítulos 15-16: Preentrenamiento de Modelos de Representación del Lenguaje y Aplicaciones de Procesamiento del Lenguaje Natural
Características de la Implementación del Código
Paquetes y Dependencias Principales
El material didáctico utiliza el paquete d2l
para evitar repeticiones innecesarias; este paquete es ligero y solo requiere las siguientes dependencias:
#@save
import collections
import hashlib
import inspect
import math
import os
import random
import re
import shutil
import sys
import tarfile
import time
import zipfile
from collections import defaultdict
import pandas as pd
import requests
from IPython import display
from matplotlib import pyplot as plt
from matplotlib_inline import backend_inline
d2l = sys.modules[__name__]
Dependencias de Implementación de PyTorch
#@save
import numpy as np
import torch
import torchvision
from PIL import Image
from scipy.spatial import distance_matrix
from torch import nn
from torch.nn import functional as F
from torchvision import transforms
Dependencias de Implementación de TensorFlow
#@save
import numpy as np
import tensorflow as tf
Dependencias de Implementación de JAX
#@save
from dataclasses import field
from functools import partial
from types import FunctionType
from typing import Any
import flax
import jax
import numpy as np
import optax
import tensorflow as tf
import tensorflow_datasets as tfds
from flax import linen as nn
from flax.training import train_state
from jax import grad
from jax import numpy as jnp
from jax import vmap
Público Objetivo
Este material didáctico está dirigido a las siguientes personas:
- Estudiantes (de pregrado o posgrado)
- Ingenieros
- Investigadores
Personas que buscan un dominio sólido de las técnicas prácticas de aprendizaje profundo.
Requisitos de Conocimientos Previos
- Conocimientos adecuados de álgebra lineal
- Fundamentos de cálculo
- Fundamentos de probabilidad
- Fundamentos de programación en Python
Recursos de Aprendizaje
Recursos en Línea
- Sitio web oficial: D2L.ai
- Repositorio de GitHub: d2l-ai/d2l-en
- Foro de discusión: discuss.d2l.ai
- Otros idiomas: Otros idiomas
Formas de Obtenerlo
- En formato de código ejecutable
- Libro físico
- PDF descargable
- Versión en línea en el sitio web
Todos los cuadernos se pueden descargar gratuitamente desde el sitio web D2L.ai y GitHub.
Ventajas del Material Didáctico
- Gratuito y de código abierto: Disponible gratuitamente para todos.
- Profundidad técnica: Proporciona la profundidad técnica necesaria para convertirse en un científico de aprendizaje automático aplicado.
- Código ejecutable: Demuestra cómo resolver problemas en la práctica.
- Actualizaciones rápidas: Permite actualizaciones rápidas por parte de los autores y la comunidad.
- Soporte comunitario: Incluye un foro interactivo para discusiones técnicas y resolución de dudas.
Características Innovadoras
- Posiblemente el primer libro publicado utilizando un flujo de trabajo integrado.
- Combina la claridad expositiva de un libro de texto con código limpio y ejecutable de tutoriales prácticos.
- Utiliza GitHub para compartir el código fuente, con cuadernos Jupyter que mezclan código, ecuaciones y texto.
- Emplea Sphinx como motor de renderizado y Discourse como plataforma de discusión.
Sugerencias de Estudio
- Regístrese para obtener una cuenta en el foro de discusión.
- Instale Python en su computadora.
- Busque ayuda y participe en discusiones a través del enlace del foro al final de cada capítulo.
- Aprenda haciendo, aprovechando al máximo el código ejecutable.
- Participe en las discusiones de la comunidad para interactuar con los autores y la comunidad en general.
Este material didáctico representa un hito importante en la educación del aprendizaje profundo, proporcionando a los estudiantes un recurso de aprendizaje integral, práctico y de fácil acceso.