
Deep Learning from Scratch
Seth Weidman
- Editorial
- O'Reilly
- Año
- 2019
- Páginas
- ~250
- Nivel
- Intermedio
De qué trata
Manual técnico de Seth Weidman concebido para desmitificar las cajas negras del aprendizaje profundo construyendo cada bloque funcional desde los primeros principios matemáticos y de ingeniería de software. La obra se apoya en Python 3 y NumPy para construir todo el motor de redes neuronales, dedicando su último capítulo a la transición hacia PyTorch 1.x. Está pensado para desarrolladores de software, ingenieros de datos y científicos de datos de nivel intermedio que conocen lo básico de machine learning o han utilizado frameworks de alto nivel como Keras o Scikit-Learn, pero necesitan dominar a fondo la mecánica interna del cálculo vectorial, el grafo de computación y el algoritmo de retropropagación.
El temario inicia con una formulación visual y matricial de funciones compuestas, derivadas y regla de la cadena, avanzando hacia el diseño orientado a objetos de un mini-framework pedagógico modular (denominado 'lincoln'). Enseña a programar clases para operaciones (`Operation`, `ParamOperation`), capas densas (`Dense`), funciones de activación (Sigmoid, ReLU, Softmax), funciones de pérdida (MSE, Cross-Entropy) y optimizadores como SGD y Momentum. Posteriormente, amplía este framework con técnicas de regularización (Dropout, decaimiento de tasa de aprendizaje, inicialización de pesos), redes convolucionales bidimensionales (capas Conv2D y operaciones de pooling programadas vectorialmente con NumPy) y redes recurrentes (RNN) con retropropagación en el tiempo (BPTT), culminando con la traslación de estos conceptos a tensores, `autograd` y módulos `torch.nn` en PyTorch.
En lugar de invocar funciones preempaquetadas, el lector construye paso a paso un motor completo de deep learning desde cero, entrenándolo con problemas de regresión sobre el conjunto Boston Housing y de clasificación de imágenes sobre el dataset MNIST, para luego refactorizar los modelos en PyTorch. La obra destaca por la extraordinaria claridad de sus diagramas explicativos y por reconciliar las fórmulas matemáticas con el código ejecutable de NumPy. Quedan fuera aspectos de aceleración en GPU, entrenamiento distribuido o arquitecturas Transformer, ya que su propósito es puramente conceptual y fundacional. Conviene contar con agilidad en operaciones con arreglos multidimensionales y nociones básicas de cálculo diferencial multivariable.
- Python
- NumPy
- PyTorch
- Redes neuronales desde cero
- Backpropagation
- Cálculo matricial
- CNN
- RNN
- Optimizadores
- Diferenciación automática
¿Cómo enseña?
Con proyectos
- ✗ Sin ejercicios
- ✓ Incluye proyectos
Proyectos
Mini-framework de Deep Learning ('lincoln')
Motor modular de aprendizaje profundo programado íntegramente con Python y NumPy, dotado de grafos de operaciones, capas densas, convoluciones (Conv2D), funciones de activación, pérdidas y optimizadores (SGD y Momentum).
Clasificador de dígitos MNIST con CNNs en NumPy
Red neuronal convolucional programada exclusivamente con matrices y bucles optimizados en NumPy para entrenar y clasificar imágenes manuscritas de MNIST sin dependencias de frameworks externos.
Modelos de visión y regresión reescritos en PyTorch
Reimplementación idiomática de las redes previas en PyTorch utilizando tensores, cálculo automático de gradientes con autograd y módulos torch.nn para comparar abstracciones y rendimiento.

