Lesson 1 - Deep Learning for Coders (2020)

Jeremy-Howard

Lesson 1 - Deep Learning for Coders (2020) by Jeremy-Howard

This video introduces the Deep Learning for Coders course, which is designed to teach deep learning in a top-down approach, using the fastai library and PyTorch. The instructor addresses concerns about learning deep learning without a math background or expensive resources, emphasizing that deep learning is often better than human performance and accessible with Python libraries and GPUs. The course focuses on making the game worth playing, working on the hard parts, and understanding difficult concepts before diving into model building. The instructor explains how to set up a server with Colab and Jupyter Notebook, and introduces the environment that students will use to experiment with deep learning. Additionally, the video explains how machine learning works and how to train deep neural networks by adjusting the weights to solve problems and updating the loss back to the parameters.

00:00:00

In this section, the instructors introduce the Deep Learning for Coders course, which is being presented live during a global pandemic. The course is designed to be a definitive version, with a syllabus closely based on the newly written book and fastai library version 2. The instructors encourage students to read the book for a better experience, which is available for free as Jupyter notebooks. However, they request that students do not turn it into a PDF format and instead buy the book if they want a more convenient reading experience. The instructors also introduce themselves and their co-author, as well as the co-founder of fastai.

00:05:00

In this section, the speaker addresses concerns about whether or not it is worthwhile for people without a background in math or access to expensive resources to attempt to learn deep learning. He emphasizes that there is evidence to suggest that one does not need a PhD, massive amounts of data, or expensive computers to use deep learning. The speaker also notes that deep learning is among the best-known approaches in several areas and is often better than human performance. He also provides a brief overview of what deep learning is and encourages viewers to search for examples of its applications online. Additionally, the speaker clarifies that deep learning is a type of neural network learning.

00:10:00

In this section, the history of neural networks is discussed. The concept of neural networks dates back to 1943, but it was in the 1980s that the idea of adding a second layer of neurons was introduced. This made it possible to approximate any mathematical model to any level of accuracy with neural networks. In the early '90s, the networks were being used for targeted marketing, but they never quite lived up to their promise due to their size and slowness. However, advancements in technology have made neural networks more accessible and achievable, leading to their current state-of-the-art performance.

00:15:00

In this section, the instructor explains that deep neural networks require more layers of neurons to achieve practical good performance, and deep learning just means having more layers. The focus of the course is to teach deep learning in a top-down approach through "playing the whole game" rather than starting with foundational principles. This means starting with a big picture idea and building up to the details and working on the hard parts through deliberate practice. The course utilizes the seven principles from Harvard, which include making the game worth playing and working on the hard parts. Students will train state-of-the-art world-class models from today and build their own models in future lessons.

00:20:00

In this section, the instructor emphasizes the importance of working on the hard parts of deep learning, including calculus, linear algebra, and software engineering. He encourages students to follow an unconventional approach, which focuses on training properly and understanding difficult concepts before diving into actual model building. The instructor admits that this teaching approach is challenging, and it requires trust from the students since they may have to use something without understanding every underlying detail. The course utilizes Python, PyTorch, and Tensorflow, which are tools widely used in the deep learning community, with PyTorch being the more flexible and developer-friendly option.

00:25:00

In this section, the speaker introduces the fastai library that sits on top of PyTorch, which is designed for beginners, teaching, practitioners in industry, and researchers. The library uses a layered API approach with lots of refactoring and decoupling, allowing users to build low-level research models, production models, and easy world-class models. The speaker emphasizes that learning the concepts is more important than the lines of code, and users will need a GPU machine with an Nvidia GPU to use the library. It is recommended to use Linux for ease of use and access to free platforms like Colab, but users must remember to shut down instances to avoid additional charges. Lastly, the speaker highlights the importance of the forums for support, setup, and discussion.

00:30:00

In this section, the instructor explains how to set up a server using Colab and get started with Jupyter Notebook. Jupyter Notebook is a REPL-based system that allows users to type in Python code and get results instantly. The instructor notes that the Jupyter notebook REPL is particularly interesting because it has headings, graphical outputs, interactive multimedia, and won some really big awards. They also mention that using Jupyter Notebook may feel awkward for those not familiar with REPL-based systems but it is worth sticking with as it is a powerful system. The instructor further explains that Jupyter Notebook has two modes: edit mode and command mode.

00:35:00

In this section, the instructor explains the various keyboard shortcuts that can be used in Jupiter notebooks, including copying, pasting, cutting, and adding new cells. He also explains how to format text using Markdown and create plots, lists, import libraries, and display pictures. Additionally, he explains that Jupiter notebooks are attached to a Github repository and recommends making copies of notebooks to avoid overwriting changes when updating to the latest course materials.

00:40:00

In this section of the video, the instructor introduces the environment that students will be using to experiment with deep learning. The purpose of this environment is to force students to think about each step and understand what is happening. The course includes a questionnaire that students should complete after each chapter, as it helps to reinforce key concepts. The first part of the notebook involves training a model, which in this case, is used to identify whether a picture is of a cat or dog. The instructor encourages students not to worry about not knowing everything at this stage but to focus on training the model. Finally, the instructor notes that the initial training should be fast, and if it takes longer than 5 minutes or if errors occur, then students should seek further support.

00:45:00

is machine learning. The video introduces machine learning and deep learning, which is a type of machine learning. Unlike regular programming, it is difficult to create a program that can recognize dogs versus cats in photos, which is why machine learning is used. Machine learning is all about giving examples of a problem and having the computer figure out how to solve it itself, instead of giving the exact steps.

00:50:00

In this section, the concept of machine learning is introduced, which involves creating programs that learn from experience instead of being manually programmed. The key to this is creating a model that uses a set of weights or parameters to create outputs based on inputs. The effectiveness of a weight assignment can be tested and altered to maximize performance, creating a trained model that can be used as a computer program. While this approach is easy for games like checkers, it is more challenging for image recognition. However, a neural network can provide the necessary flexibility to create a model with the most flexible possible function.

00:55:00

In this section, the instructor explains how neural networks work, how to adjust the weights to solve any solvable problem, and how to update the loss back to the parameters. The architecture sits in the middle, the weights or parameters are being adjusted, and the predictions are the results based on the data and labels as input. The loss measures the performance, and the machine can only learn to operate on the patterns seen in the input used to train it. Although deep learning and machine learning can do powerful things, they are not mathematically complex. Finally, the prediction does not tell us what to do about it, which will be essential when thinking about recommendation systems, for example.

01:00:00

In this section, the instructor discusses the importance of labelled data in deep learning. Organizations often say they don't have enough data, but what they really mean is that they don't have enough labeled data. This is especially important when trying to build models for specific tasks, where the data needs to be accurately labeled according to what needs to be predicted. A model operates in an environment and interacts with its surroundings, so it's crucial to be aware of possible biases in the data being fed into the model. This is illustrated with an example of a predictive policing model that can create a positive feedback loop, causing the model to become even more biased as it's used more. The section ends with a discussion of the code that's used to run the deep learning model.

01:05:00

In this section of the video, the instructor talks about the best practices for using the fastai library in a REPL environment, and explains how it was designed to avoid namespace problems that arise when using import star. He also explains how users can import everything they need for a particular application by importing from the 'all' module, and how to access the documentation and examples that are available within the fastAI library. The instructor highlights the importance of datasets in deep learning and explains how fastAI has predefined access to useful datasets like the PETS dataset.

01:10:00

In this section of the video, the instructor teaches how to use the fastai library to create a "learner" that trains models to recognize whether an image is a cat or a dog. To achieve this, the learner must be told what data to use and what architecture to apply - in this case, a neural network architecture called ResNet. Before training, fastai has the ability to specify what metrics to track, such as the error rate. The instructor also explains the importance of creating a validation set and how it is used to ensure that models are not overfitting to the training data. Additionally, the instructor mentions that using fastai involves learning new programming practices that can improve productivity and make code more readable and understandable over time.

01:15:00

In this section, the speaker discusses their unconventional approach to Python programming and how it differs from traditional Python programming styles. They caution that their code may not fit with style guides and normal approaches at a workplace, so individuals should make sure to follow their organization's programming practices. The speaker then goes on to demonstrate the versatility of the fastai library by showing how the same code can be used to build models for various applications such as image segmentation, sentiment analysis, predicting salaries, and collaborative filtering for recommendation systems. The speaker emphasizes that the same basic code and mathematical concepts can allow for vastly different applications using the same approach.

01:20:00

In this section, the speaker concludes the first lesson of the course, which briefly introduced deep learning. As a recommendation, the speaker suggests that the learners get comfortable with running experiments with code before moving on to the next lesson. The subsequent lesson will discuss validation sets, test sets, and transfer learning before moving on to creating an actual production version of an application to be released on the internet.

More from
Jeremy-Howard

No videos found.

Related Videos

No related videos found.

Trending
AI Music

No music found.