A deep understanding of deep learning (with Python intro)
Master deep learning in PyTorch using an experimental scientific approach, with lots of examples and practice problems.
Lo que serás capaz de hacer
Deep learning is increasingly dominating technology and has major implications for society. From self-driving cars to medical diagnoses, from face recognition to deep fakes, and from language translation to music generation, deep learning is spreading like wildfire throughout all areas of modern technology. But deep learning is not only about super-fancy, cutting-edge, highly sophisticated applications. Deep learning is increasingly becoming a standard tool in machine-learning, data science, and statistics. Deep learning is used by small startups for data mining and dimension reduction, by governments for detecting tax evasion, and by scientists for detecting patterns in their research data. Deep learning is now used in most areas of technology, business, and entertainment. And it's becoming more important every year. How does deep learning work? Deep learning is built on a really simple principle: Take a super-simple algorithm (weighted sum and nonlinearity), and repeat it many many times until the result is an incredibly complex and sophisticated learned representation of the data. Is it really that simple? mmm OK, it's actually a tiny bit more complicated than that ;) but that's the core idea, and everything else -- literally everything else in deep learning -- is just clever ways of putting together these fundamental building blocks. That doesn't mean the deep neural networks are trivial to understand: there are important architectural differences between feedforward networks, convolutional networks, and recurrent networks. Given the diversity of deep learning model designs, parameters, and applications, you can only learn deep learning -- I mean, really learn deep learning, not just have superficial knowledge from a youtube video -- by having an experienced teacher guide you through the math, implementations, and reasoning. And of course, you need to have lots of hands-on examples and practice problems to work through. Deep learning is basically just applied math, and, as everyone knows, math is not a spectator sport! What is this course all about? Simply put: The purpose of this course is to provide a deep-dive into deep learning. You will gain flexible, fundamental, and lasting expertise on deep learning. You will have a deep understanding of the fundamental concepts in deep learning, so that you will be able to learn new topics and trends that emerge in the future. Please note: This is not a course for someone who wants a quick overview of deep learning with a few solved examples. Instead, this course is designed for people who really want to understand how and why deep learning works; when and how to select metaparameters like optimizers, normalizations, and learning rates; how to evaluate the performance of deep neural network models; and how to modify and adapt existing models to solve new problems. You can learn everything about deep learning in this course. In this course, you will learn Theory : Why are deep learning models built the way they are? Math : What are the formulas and mechanisms of deep learning? Implementation : How are deep learning models actually constructed in Python (using the PyTorch library)? Intuition : Why is this or that metaparameter the right choice? How to interpret the effects of regularization? etc. Python : If you're completely new to Python, go through the 8+ hour coding tutorial appendix. If you're already a knowledgeable coder, then you'll still learn some new tricks and code optimizations. Google-colab : Colab is an amazing online tool for running Python code, simulations, and heavy computations using Google's cloud services. No need to install anything on your computer. Unique aspects of this course Clear and comprehensible explanations of concepts in deep learning, including transfer learning, generative modeling, convolutional neural networks, feedforward networks, generative adversarial networks (GAN), and more. Several distinct explanations of the same ideas, which is a proven technique for learning. Visualizations using graphs, numbers, and spaces that provide intuition of artificial neural networks. LOTS of exercises, projects, code-challenges, suggestions for exploring the code. You learn best by doing it yourself! Active Q&A forum where you can ask questions, get feedback, and contribute to the community. 8+ hour Python tutorial. That means you don't need to master Python before enrolling in this course. So what are you waiting for?? Watch the course introductory video and free sample videos to learn more about the contents of this course and about my teaching style. If you are unsure if this course is right for you and want to learn more, feel free to contact with me questions before you sign up. I hope to see you soon in the course! Mike
- The theory and math underlying deep learning
- How to build artificial neural networks
- Architectures of feedforward and convolutional networks
- Building models in PyTorch
- The calculus and code of gradient descent
- Fine-tuning deep network models
Temario
UNIDAD 1 - Introduction · 2 leccionesUNIDAD 1 - Introduction
UNIDAD 1 - Introduction
- How to learn from this course
- Using Udemy like a pro
UNIDAD 2 - Download all course materials · 2 leccionesUNIDAD 2 - Download all course materials
UNIDAD 2 - Download all course materials
- Downloading and using the code
- My policy on code-sharing
UNIDAD 3 - Concepts in deep learning · 5 leccionesUNIDAD 3 - Concepts in deep learning
UNIDAD 3 - Concepts in deep learning
- What is an artificial neural network?
- How models "learn"
- The role of DL in science and knowledge
- Running experiments to understand DL
- Are artificial "neurons" like biological neurons?
UNIDAD 4 - About the Python tutorial · 1 leccionesUNIDAD 4 - About the Python tutorial
UNIDAD 4 - About the Python tutorial
- Should you watch the Python tutorial?
UNIDAD 5 - Math, numpy, PyTorch · 19 leccionesUNIDAD 5 - Math, numpy, PyTorch
UNIDAD 5 - Math, numpy, PyTorch
- PyTorch or TensorFlow?
- Introduction to this section
- Spectral theories in mathematics
- Terms and datatypes in math and computers
- Converting reality to numbers
- Vector and matrix transpose
- OMG it's the dot product!
- Matrix multiplication
- Softmax
- Logarithms
- Entropy and cross-entropy
- Min/max and argmin/argmax
- Mean and variance
- Random sampling and sampling variability
- Reproducible randomness via seeding
- The t-test
- Derivatives: intuition and polynomials
- Derivatives find minima
- Derivatives: product and chain rules
UNIDAD 6 - Gradient descent · 10 leccionesUNIDAD 6 - Gradient descent
UNIDAD 6 - Gradient descent
- Overview of gradient descent
- What about local minima?
- Gradient descent in 1D
- CodeChallenge: unfortunate starting value
- Gradient descent in 2D
- CodeChallenge: 2D gradient ascent
- Parametric experiments on g.d.
- CodeChallenge: fixed vs. dynamic learning rate
- Vanishing and exploding gradients
- Tangent: Notebook revision history
UNIDAD 7 - ANNs (Artificial Neural Networks) · 21 leccionesUNIDAD 7 - ANNs (Artificial Neural Networks)
UNIDAD 7 - ANNs (Artificial Neural Networks)
- The perceptron and ANN architecture
- A geometric view of ANNs
- ANN math part 1 (forward prop)
- ANN math part 2 (errors, loss, cost)
- ANN math part 3 (backprop)
- ANN for regression
- CodeChallenge: manipulate regression slopes
- ANN for classifying qwerties
- Learning rates comparison
- Multilayer ANN
- Linear solutions to linear problems
- Why multilayer linear models don't exist
- Multi-output ANN (iris dataset)
- CodeChallenge: more qwerties!
- Comparing the number of hidden units
- Depth vs. breadth: number of parameters
- Defining models using sequential vs. class
- Model depth vs. breadth
- CodeChallenge: convert sequential to class
- Diversity of ANN visual representations
- Reflection: Are DL models understandable yet?
UNIDAD 8 - Overfitting and cross-validation · 8 leccionesUNIDAD 8 - Overfitting and cross-validation
UNIDAD 8 - Overfitting and cross-validation
- What is overfitting and is it as bad as they say?
- Cross-validation
- Generalization
- Cross-validation -- manual separation
- Cross-validation -- scikitlearn
- Cross-validation -- DataLoader
- Splitting data into train, devset, test
- Cross-validation on regression
UNIDAD 9 - Regularization · 12 leccionesUNIDAD 9 - Regularization
UNIDAD 9 - Regularization
- Regularization: Concept and methods
- train() and eval() modes
- Dropout regularization
- Dropout regularization in practice
- Dropout example 2
- Weight regularization (L1/L2): math
- L2 regularization in practice
- L1 regularization in practice
- Training in mini-batches
- Batch training in action
- The importance of equal batch sizes
- CodeChallenge: Effects of mini-batch size
UNIDAD 10 - Metaparameters (activations, optimizers) · 24 leccionesUNIDAD 10 - Metaparameters (activations, optimizers)
UNIDAD 10 - Metaparameters (activations, optimizers)
- What are "metaparameters"?
- The "wine quality" dataset
- CodeChallenge: Minibatch size in the wine dataset
- Data normalization
- The importance of data normalization
- Batch normalization
- Batch normalization in practice
- CodeChallenge: Batch-normalize the qwerties
- Activation functions
- Activation functions in PyTorch
- Activation functions comparison
- CodeChallenge: Compare relu variants
- CodeChallenge: Predict sugar
- Loss functions
- Loss functions in PyTorch
- More practice with multioutput ANNs
- Optimizers (minibatch, momentum)
- SGD with momentum
- Optimizers (RMSprop, Adam)
- Optimizers comparison
- CodeChallenge: Optimizers and... something
- CodeChallenge: Adam with L2 regularization
- Learning rate decay
- How to pick the right metaparameters
UNIDAD 11 - FFNs (Feed-Forward Networks) · 12 leccionesUNIDAD 11 - FFNs (Feed-Forward Networks)
UNIDAD 11 - FFNs (Feed-Forward Networks)
- What are fully-connected and feedforward networks?
- The MNIST dataset
- FFN to classify digits
- CodeChallenge: Binarized MNIST images
- CodeChallenge: Data normalization
- Distributions of weights pre- and post-learning
- CodeChallenge: MNIST and breadth vs. depth
- CodeChallenge: Optimizers and MNIST
- Scrambled MNIST
- Shifted MNIST
- CodeChallenge: The mystery of the missing 7
- Universal approximation theorem
UNIDAD 12 - More on data · 11 leccionesUNIDAD 12 - More on data
UNIDAD 12 - More on data
- Anatomy of a torch dataset and dataloader
- Data size and network size
- CodeChallenge: unbalanced data
- What to do about unbalanced designs?
- Data oversampling in MNIST
- Data noise augmentation (with devset+test)
- Data feature augmentation
- Getting data into colab
- Save and load trained models
- Save the best-performing model
- Where to find online datasets
UNIDAD 13 - Measuring model performance · 8 leccionesUNIDAD 13 - Measuring model performance
UNIDAD 13 - Measuring model performance
- Two perspectives of the world
- Accuracy, precision, recall, F1
- APRF in code
- APRF example 1: wine quality
- APRF example 2: MNIST
- CodeChallenge: MNIST with unequal groups
- Computation time
- Better performance in test than train?
UNIDAD 14 - FFN milestone projects · 6 leccionesUNIDAD 14 - FFN milestone projects
UNIDAD 14 - FFN milestone projects
- Project 1: A gratuitously complex adding machine
- Project 1: My solution
- Project 2: Predicting heart disease
- Project 2: My solution
- Project 3: FFN for missing data interpolation
- Project 3: My solution
UNIDAD 15 - Weight inits and investigations · 10 leccionesUNIDAD 15 - Weight inits and investigations
UNIDAD 15 - Weight inits and investigations
- Explanation of weight matrix sizes
- A surprising demo of weight initializations
- Theory: Why and how to initialize weights
- CodeChallenge: Weight variance inits
- Xavier and Kaiming initializations
- CodeChallenge: Xavier vs. Kaiming
- CodeChallenge: Identically random weights
- Freezing weights during learning
- Learning-related changes in weights
- Use default inits or apply your own?
UNIDAD 16 - Autoencoders · 6 leccionesUNIDAD 16 - Autoencoders
UNIDAD 16 - Autoencoders
- What are autoencoders and what do they do?
- Denoising MNIST
- CodeChallenge: How many units?
- AEs for occlusion
- The latent code of MNIST
- Autoencoder with tied weights
UNIDAD 17 - Running models on a GPU · 3 leccionesUNIDAD 17 - Running models on a GPU
UNIDAD 17 - Running models on a GPU
- What is a GPU and why use it?
- Implementation
- CodeChallenge: Run an experiment on the GPU
UNIDAD 18 - Convolution and transformations · 12 leccionesUNIDAD 18 - Convolution and transformations
UNIDAD 18 - Convolution and transformations
- Convolution: concepts
- Feature maps and convolution kernels
- Convolution in code
- Convolution parameters (stride, padding)
- The Conv2 class in PyTorch
- CodeChallenge: Choose the parameters
- Transpose convolution
- Max/mean pooling
- Pooling in PyTorch
- To pool or to stride?
- Image transforms
- Creating and using custom DataLoaders
UNIDAD 19 - Understand and design CNNs · 16 leccionesUNIDAD 19 - Understand and design CNNs
UNIDAD 19 - Understand and design CNNs
- The canonical CNN architecture
- CNN to classify MNIST digits
- CNN on shifted MNIST
- Classify Gaussian blurs
- Examine feature map activations
- CodeChallenge: Softcode internal parameters
- CodeChallenge: How wide the FC?
- Do autoencoders clean Gaussians?
- CodeChallenge: AEs and occluded Gaussians
- CodeChallenge: Custom loss functions
- Discover the Gaussian parameters
- The EMNIST dataset (letter recognition)
- Dropout in CNNs
- CodeChallenge: How low can you go?
- CodeChallenge: Varying number of channels
- So many possibilities! How to create a CNN?
UNIDAD 20 - CNN milestone projects · 5 leccionesUNIDAD 20 - CNN milestone projects
UNIDAD 20 - CNN milestone projects
- Project 1: Import and classify CIFAR10
- Project 1: My solution
- Project 2: CIFAR-autoencoder
- Project 3: FMNIST
- Project 4: Psychometric functions in CNNs
UNIDAD 21 - Transfer learning · 8 leccionesUNIDAD 21 - Transfer learning
UNIDAD 21 - Transfer learning
- Transfer learning: What, why, and when?
- Transfer learning: MNIST -> FMNIST
- CodeChallenge: letters to numbers
- Famous CNN architectures
- Transfer learning with ResNet-18
- CodeChallenge: VGG-16
- Pretraining with autoencoders
- CIFAR10 with autoencoder-pretrained model
UNIDAD 22 - Style transfer · 5 leccionesUNIDAD 22 - Style transfer
UNIDAD 22 - Style transfer
- What is style transfer and how does it work?
- The Gram matrix (feature activation covariance)
- The style transfer algorithm
- Transferring the screaming bathtub
- CodeChallenge: Style transfer with AlexNet
UNIDAD 23 - Generative adversarial networks · 7 leccionesUNIDAD 23 - Generative adversarial networks
UNIDAD 23 - Generative adversarial networks
- GAN: What, why, and how
- Linear GAN with MNIST
- CodeChallenge: Linear GAN with FMNIST
- CNN GAN with Gaussians
- CodeChallenge: Gaussians with fewer layers
- CNN GAN with FMNIST
- CodeChallenge: CNN GAN with CIFAR
UNIDAD 24 - RNNs (Recurrent Neural Networks) (and GRU/LSTM) · 9 leccionesUNIDAD 24 - RNNs (Recurrent Neural Networks) (and GRU/LSTM)
UNIDAD 24 - RNNs (Recurrent Neural Networks) (and GRU/LSTM)
- Leveraging sequences in deep learning
- How RNNs work
- The RNN class in PyTorch
- Predicting alternating sequences
- CodeChallenge: sine wave extrapolation
- More on RNNs: Hidden states, embeddings
- GRU and LSTM
- The LSTM and GRU classes
- Lorem ipsum
UNIDAD 25 - Ethics of deep learning · 5 leccionesUNIDAD 25 - Ethics of deep learning
UNIDAD 25 - Ethics of deep learning
- Will AI save us or destroy us?
- Example case studies
- Some other possible ethical scenarios
- Will deep learning take our jobs?
- Accountability and making ethical AI
UNIDAD 26 - Where to go from here? · 2 leccionesUNIDAD 26 - Where to go from here?
UNIDAD 26 - Where to go from here?
- How to learn topic _X_ in deep learning?
- How to read academic DL papers
UNIDAD 27 - Python intro: Data types · 8 leccionesUNIDAD 27 - Python intro: Data types
UNIDAD 27 - Python intro: Data types
- How to learn from the Python tutorial
- Variables
- Math and printing
- Lists (1 of 2)
- Lists (2 of 2)
- Tuples
- Booleans
- Dictionaries
UNIDAD 28 - Python intro: Indexing, slicing · 2 leccionesUNIDAD 28 - Python intro: Indexing, slicing
UNIDAD 28 - Python intro: Indexing, slicing
- Indexing
- Slicing
UNIDAD 29 - Python intro: Functions · 8 leccionesUNIDAD 29 - Python intro: Functions
UNIDAD 29 - Python intro: Functions
- Inputs and outputs
- Python libraries (numpy)
- Python libraries (pandas)
- Getting help on functions
- Creating functions
- Global and local variable scopes
- Copies and referents of variables
- Classes and object-oriented programming
UNIDAD 30 - Python intro: Flow control · 10 leccionesUNIDAD 30 - Python intro: Flow control
UNIDAD 30 - Python intro: Flow control
- If-else statements
- If-else statements, part 2
- For loops
- Enumerate and zip
- Continue
- Initializing variables
- Single-line loops (list comprehension)
- while loops
- Broadcasting in numpy
- Function error checking and handling
UNIDAD 31 - Python intro: Text and plots · 7 leccionesUNIDAD 31 - Python intro: Text and plots
UNIDAD 31 - Python intro: Text and plots
- Printing and string interpolation
- Plotting dots and lines
- Subplot geometry
- Making the graphs look nicer
- Seaborn
- Images
- Export plots in low and high resolution
UNIDAD 32 - Bonus section · 1 leccionesUNIDAD 32 - Bonus section
UNIDAD 32 - Bonus section
- Bonus content
Tu certificado lo emite la SEP, no solo una plataforma
Al demostrar la competencia recibes un certificado emitido por la Secretaría de Educación Pública a través del Gobierno del Estado de México: un documento oficial que puedes presentar con confianza ante cualquier empleador o institución.
Tu certificado con INEC
- Lo emite la Secretaría de Educación Pública (SEP), a través del Gobierno del Estado de México
- Documento oficial con folio verificable en línea
- Lo otorga la Universidad Tecnológica Fidel Velázquez
Otras plataformas en línea
- Constancia privada emitida por la misma plataforma
- Solo acredita horas cursadas o asistencia
- Sin respaldo de una autoridad educativa
Tu itinerario, de la inscripción al certificado
- 1
Inscripción con pago único
Pagas $2,800 MXN una sola vez y entras de inmediato al curso.
- 2
Estudias a tu ritmo
32 unidades con videos, lecturas y actividades, disponibles 24/7 durante 12 meses.
- 3
Cuestionarios por unidad
Cuestionarios para comprobar lo aprendido.
- 4
Certificado
Emitido por la SEP a través del Gobierno del Estado de México, con folio verificable.
Un certificado oficial de la SEP
- Emitido por la Secretaría de Educación Pública (SEP), a través del Gobierno del Estado de México. No es una constancia privada: es un documento oficial, y ese respaldo marca la diferencia frente a otras plataformas en línea.
- Contenido impartido por Mike X Cohen.
- Folio y QR verificables para compartirlo con quien te contrate.
Empieza hoy, a tu ritmo
Un solo pago y acceso inmediato al curso completo durante 12 meses.
- 32 unidades · 265 lecciones · 60 h
- 12 meses de acceso
- Certificado emitido por la SEP (Gob. del Estado de México) con folio verificable
Sobre tu inscripción
¿Cómo es el pago?
Un solo pago de $2,800 MXN. No hay mensualidades ni cargos recurrentes.
¿Cuánto tiempo tengo acceso?
12 meses desde tu inscripción, 24/7, para avanzar a tu ritmo.
¿Quién imparte el contenido?
El curso es impartido por Mike X Cohen; INEC gestiona tu inscripción, evaluación y certificado.
¿Qué pasa cuando vence mi acceso?
Puedes renovar tu cuenta tú mismo desde la plataforma, sin trámites ni esperas.


