Summary
Deep learning is a subset of machine learning that was inspired by the biological structure of human brains. It uses deep neural networks to solve complex data problems through the use of vast amounts of data. Even though the theory was developed decades ago, it has been used recently thanks to advances in hardware and software that allow us to collect and process millions of pieces of data.
With the popularity of deep learning solutions, many deep learning libraries have been developed. Among them, one of the most recent ones is PyTorch. PyTorch uses a C++ backend, which helps speed up computation, while having a Python frontend to keep the library easy to use.
It uses tensors to store data, which are n-ranked matrix-like structures that can be run on GPUs to speed up processing. It offers three main elements that are highly useful for creating complex neural network architectures with little effort.
The autograd
library can compute the derivatives of a function, which are used as the gradients to optimize the weights and biases of a model. Moreover, the nn
module helps you to easily define the model's architecture as a sequence of predefined modules, as well as to determine the loss function to be used to measure the model. Finally, the optim
package is used to select the optimization algorithm to be used to update the parameters, considering the gradients calculated previously.
In the next chapter, we will learn about the building blocks of a neural network. We will cover the three types of learning processes, as well as the three most common types of neural networks. For each neural network, we will learn how the network architecture is structured, as well as how the training process works. Finally, we will learn about the importance of data preparation and solve a regression data problem.