A deep understanding of deep learning (with Python intro)
What you'll learn
- 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
- Learn Python from scratch (no prior coding experience necessary)
- How and why autoencoders work
- How to use transfer learning
- Improving model performance using regularization
- Optimizing weight initializations
- Understand image convolution using predefined and learned kernels
- Whether deep learning models are understandable or mysterious black-boxes!
- Using GPUs for deep learning (much faster than CPUs!)
- Interest in learning about deep learning!
- Python/Pytorch skills are taught in the course
- A Google account (google-colab is used as the Python IDE)
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!
Who this course is for:
- Students in a deep learning course
- Machine-learning enthusiasts
- Anyone interested in mechanisms of AI (artificial intelligence)
- Data scientists who want to expand their library of skills
- Aspiring data scientists
- Scientists and researchers interested in deep learning
I am a full-time educator and writer, and former professor of neuroscience. I "retired" from that position so I could focus my time and energy creating high-quality educational material just for you.
I have 20 years of experience teaching programming, data analysis, signal processing, statistics, linear algebra, and experiment design. I've taught undergraduate students, PhD candidates, postdoctoral researchers, and full professors. I have taught in "traditional" university courses, special week-long intensive courses, and Nobel prize-winning research labs. I have >100 hours of online lectures on neuroscience data analysis that you can find on my website and youtube channel. And I've written several technical books about these topics with a few more on the way.
I'm not trying to show off -- I'm trying to convince you that you've come to the right place to maximize your learning from an instructor who has spent two decades refining and perfecting his teaching style.
Over 200,000 students have watched over 15,000,000 minutes of my courses. Come find out why!
I have several free courses that you can enroll in. Try them out! You got nothing to lose ;)
By popular request, here are suggested course progressions for various educational goals:
MATLAB programming: MATLAB onramp; Master MATLAB; Image Processing
Python programming: Master Python programming by solving scientific projects; Master Math by Coding in Python
Applied linear algebra: Complete Linear Algebra; Dimension Reduction
Signal processing: Understand the Fourier Transform; Generate and visualize data; Signal Processing; Neural signal processing