Capítulo 15 de 15 10 secciones 6 min

Referencias y dónde seguir

Las librerías que ahora sí tocan, los papers que hay detrás de cada capítulo y lo que este libro no cubre.

Después de escribir las redes a mano, la siguiente parada es PyTorch, que es lo que se usa hoy para investigar y cada vez más para producción. Aquí están su documentación, los papers originales de cada idea del libro y lo que este libro deja fuera: entrenamiento a escala, visión y audio de verdad, y todo lo que pasa después de entrenar.

Hola! Este es el mapa para cuando yo ya no esté al lado

Catorce capítulos escribiendo redes con numpy. Ahora toca lo contrario: aprender las librerías que hacen todo eso por ti 🐣

Y va a ser fácil, que es justamente la gracia de haberlo hecho a mano. Cuando leas nn.Linear(64, 10) vas a saber que son 650 números; cuando veas loss.backward() vas a saber qué está calculando; y cuando algo no entrene, vas a tener dónde mirar.

Las librerías, por orden

LibreríaDóndePara qué
PyTorch pytorch.org/docs La que yo aprendería primero. Se escribe casi como numpy
Keras keras.io La más rápida para montar algo estándar
TensorFlow tensorflow.org/api_docs Debajo de Keras, y fuerte en despliegue
Hugging Face huggingface.co/docs Modelos ya entrenados, que es como empieza casi todo proyecto real

Y una recomendación que va en serio: casi nunca vas a entrenar desde cero. Lo normal es bajar un modelo ya entrenado de Hugging Face y ajustarlo, o usarlo tal cual. Entrenar desde cero es lo que hicimos en este libro para entenderlo, no lo que se hace un martes cualquiera 🧰

El paper de cada capítulo

Casi todas las ideas del libro salen de un paper concreto, y varios se leen sorprendentemente bien:

Léelos en ese orden si te animas. Y si un paper se te atraganta, no es culpa tuya: están escritos para gente que ya trabaja en eso 💛

Lo que yo estudiaría, en este orden

  • 1️⃣ Deep Learning, de Goodfellow, Bengio y Courville. Gratis y completo en esa página. Es el libro de referencia del campo, denso pero honesto.
  • 2️⃣ Dive into Deep Learning, gratis y con todo el código ejecutable en PyTorch. Es el que más se parece a lo que hicimos aquí, con librería en vez de a mano.
  • 3️⃣ El tutorial oficial de PyTorch. Dos tardes y ya montas lo del capítulo 14 en veinte líneas.
  • 4️⃣ Neural Networks: Zero to Hero, de Andrej Karpathy. Construye un modelo de lenguaje desde cero en video, con el mismo espíritu de este libro y bastante más lejos.

Lo que este libro no cubre

Prefiero decírtelo yo a que lo descubras cuando te lo pidan 🙃

  • ⚙️ El entrenamiento de verdad. Optimizadores mejores que el descenso simple (Adam sobre todo), tasas de aprendizaje que cambian solas, y todo lo que hace falta para que entrenar una semana no se caiga.
  • 🖼️ Visión moderna. Nuestra convolución del capítulo 9 es de juguete. Las arquitecturas reales, la detección de objetos y la segmentación son un campo entero.
  • 🔊 Audio y video. Ni los mencionamos.
  • 🎨 Los modelos que generan imágenes. La difusión es otra familia y merece su propio libro.
  • 🖥️ Las GPU. Todo lo del libro corre en el procesador porque es chiquito. Entrenar de verdad es aprender a mover datos entre tarjetas.
  • 🚀 Poner una red en producción. El capítulo 14 del libro de machine learning aplica igual, y encima con modelos que pesan gigas.

Y sobre lo que sí cubre

El libro entero corre sin TensorFlow y sin PyTorch, porque en el entorno donde se escribe no están instalados. Al principio pareció una limitación y creo que salió al revés.

Sin librería que esconda el cálculo, la neurona, el gradiente, la retropropagación, la convolución y la atención hubo que escribirlas. Y una vez escritas, ya no hay ninguna parte de una red que tengas que dar por buena porque alguien lo dijo 🔧

Lo que sí hay es MLPClassifier de scikit-learn, que se usó en los capítulos 1 y 3 para comparar contra lo hecho a mano. Y los dígitos del capítulo 9 y 14 vienen dentro de scikit-learn, así que no hay nada que descargar.

Dónde practicar

Los otros libros de esta casa

Sobre los datos de este libro

Se usaron tres cosas. El CSV de ventas de los otros libros, para los capítulos tabulares. Los 1.797 dígitos que vienen dentro de scikit-learn, para la convolución y el proyecto final. Y unos comentarios de clientes que escribí yo para los capítulos de texto, con la forma de los que le llegan a una distribuidora.

Los números del libro salen de correr el código sobre eso. Si corres tú lo mismo, te tienen que salir iguales; si no salen, escríbeme.

Y ya está

Si llegaste hasta acá, gracias de verdad 💛

Este libro empieza diciendo cuándo no usar una red neuronal y termina con una que reconoce números al 97,56%. Entre medio hay unas cuantas veces donde el resultado me desmintió: la red perdiendo contra tres líneas de regresión, el identity ganando en el capítulo 3, la explicación del escalado que no aguantó la comprobación, el XOR que se atascó nueve de cada diez veces.

Todas están ahí sin maquillar, porque creo que esa es la parte que más se parece al trabajo de verdad 🌸

Que tengas lindo día!

¿Tienes alguna duda o consulta?