English | MP4 | AVC 1280×720 | AAC 44KHz 2ch | 6h 49m | 3.18 GB
Learn the main concepts and techniques used in modern machine learning and deep neural networks through numerous examples written in PyTorch
This course begins with the basic concepts of machine and deep learning. Subsequently, you gain a reasonable familiarity with the main features of PyTorch and learn how it can be applied to some popular problem domains.
Learn How To
- Apply various machine and deep learning techniques
- Understand the difference between various machine and deep learning libraries
- Create classifiers
- Enhance an existing classifier
Lesson 1: What Is Machine Learning? What Is Deep Learning
The first lesson begins with a high-level overview of the course. It then presents general concepts in machine learning and concepts specifically relevant to neural networks and deep learning. Ideas every data scientist should understand are discussed. The main libraries available for machine learning, and for deep learning specifically, are presented with an eye toward their comparison to PyTorch. The lesson contains an overview of basic concepts in neural networks. Also discussed is the basic idea of a perceptron and the enormous expansion of simple models with hardware that has become available in the last decade. The lesson delves into the main types of network layers available in neural networks. Activation functions are also discussed. Finally, the lesson finishes up with the importance of metrics in guiding refinements of machine learning models. Also discussed are a few of the most commonly used metrics and the need sometimes to use custom domain-specific metrics.
Lesson 2: Comparing Several Libraries
The second lesson of this course compares several different software libraries and shows the particular philosophy and programming style of PyTorch. The first library is scikit-learn, using polynomial feature engineering, random forest classification, and recursive feature elimination. The second library is TensorFlow and its Keras interface. We attempt to recreate features and power similar to the scikit-learn library. The final library we examine is PyTorch, in which we create an identical neural network to that built with Tensorflow, primarily to look at philosophical and API differences between those two popular deep learning libraries. We end by using PyTorch to classify images.
Lesson 3: Understanding PyTorch
The third lesson of this course examines the fundamental abstractions underlying PyTorch: the concept of a tensor, and the capability of performing automatic differentiation after modifications to tensors. The lesson examines the similarity between PyTorch tensors and the arrays in NumPy or other vectorized numeric libraries. It also introduce the two key additions PyTorch provides: auto-gradients that express the functional history of transformations; and also easy targeting of GPUs. The lesson next establishes a low-level neural network and then turns to implementing a neural network with torch.nn. We also take this opportunity with our simple neural network to explain the importance of a bias in input in fine-tuning network layers. The lesson ends by briefly demonstrating the speed gain of using GPUs mentioning the availability of torch.distributed for cluster computation.
Lesson 4: Tasks with Networks
The fourth lesson of this course goes into the most depth in presenting several different types of networks or other models in its sub-lessons. The first sub-lesson addresses a problem David does in his day job: making recommendations for clothing sizes based on some basic survey data about shoppers. In many ways, this problem is a very “classical” machine learning problem that tries to match a small number of features to a small number of output classes. Then the lesson turns to image classification, utilizing convolutional and pooling layers to predict target labels in a commonly used image data set. The network created is of moderate complexity but succeeds relatively well in categorizing images by the pictured object they contain. Next, regression prediction is used on the same problem in an attempt to make more effective prediction by reframing the problem as a regression problem rather than a classification problem. Then clustering with PyTorch is covered. This is a brief departure from neural networks as such, and addresses another common need in machine learning and data science. We implement the k-means algorithm using PyTorch and its underlying vectorized and GPU targeted tensor operations. One of the “hot” topics in deep learning is covered next—generative adversarial networks (GANs). David creates something akin to supervised learning in a framework that is, strictly-speaking, unsupervised. This is accomplished by letting two neural networks—one a “generator” and one a “discriminator”—compete against each other to, respectively, create and detect forgeries. Finally, neural networks are applied to another valuable area of their use—natural language processing. The network created, as with other examples in this lesson, is relatively simple. But the simple network utilizes a recurrent layer correctly to classify parts of speech in sentences, even ones with homonyms and lexical ambiguity.
Lesson 5: Enhancing an Image Classifier
The fifth and final lesson of this course looks at an important capability of deep neural networks: transfer learning. It is possible to treat a highly trained complex model almost as a software library for development of new capabilities on top of it. David leverages a very large and previously trained network as a sophisticated tool for feature engineering. Using work already done by others, and only a comparatively small increment of additional computation, David is able to create a network that accurately classifies images against novel labels that are not present in the original training dataset.
Table of Contents
01 0.0 Course Introduction
02 0.1 Lesson Introductions
03 0.2 Installing the lessons and platform
04 Learning objectives
05 1.1 Understand the course at a high level
06 1.2 Describe the techniques used in machine learning
07 1.3 Describe the libraries used in machine learning
08 1.4 Understand the difference between ‘deep learning’ and other ML techniques
09 1.5 Utilize additional concepts in ML
10 1.6 Understand the types of network layers and activation functions
11 1.7 Understand metrics
12 Learning objectives
13 2.1 Perform a task in scikit-learn
14 2.2 Perform a task in Keras (with TensorFlow)
15 2.3 Perform a task in PyTorch
16 2.4 Classify an image with PyTorch
17 Learning objectives
18 3.1 Use tensors, autograd, and NumPy interfaces
19 3.2 Establish a low-level neural network
20 3.3 Implement a neural network with torch.nn
21 3.4 Understand why bias is important
22 3.5 Identify other torch tools
23 Learning objectives
24 4.1 Create a simple feature classifier–Part 1
25 4.2 Create a simple feature classifier–Part 2
26 4.3 Create an image classifier
27 4.4 Utilize regression prediction
28 4.5 Do clustering with PyTorch
29 4.6 Use generative adversarial networks–Part 1
30 4.7 Use generative adversarial networks–Part 2
31 4.8 Use a part of speech tagger
32 Learning objectives
33 5.1 Start with torchvision.models
34 5.2 Retrain pretrained models
35 5.3 Modify network layers
36 Machine Learning with PyTorch – Summary
Resolve the captcha to access the links!