Deep learning is a branch of machine learning that uses multiple nonlinear processing layers to learn useful representations of features directly from data. Deep learning models can achieve state-of-the-art accuracy in object classification, sometimes exceeding human-level performance. Models are trained by using a large set of labeled data and neural network architectures that contain many layers.
Deep learning can be applied to a variety of problems including:
The accuracy of a deep leaning model largely depends on the amount of data used to train the model. The most accurate models may require thousands or even millions of samples, which can take a very long time to train. Once a deep learning model is trained, it can be used in real-time applications, such as pedestrian detection in advanced driver assistance systems (ADAS).
A convolutional neural network, or CNN, is a popular deep learning architecture. Neural networks are organized in layers consisting of a set of interconnected nodes. A CNN convolves learned features with input data, and uses 2D convolutional layers that makes this architecture well suited to processing 2D data, such as images.
A tremendous amount of data is required to train a CNN because it has to learn millions of weights for a typical image classification problem. A common alternative to training a CNN from scratch is to use a pretrained model to extract features from a new data set automatically. This method, referred to as transfer learning, is a convenient way of applying deep learning without the need for a huge data set and very long training time.
Training a deep learning model can take a long time, from days to weeks. Using GPU acceleration can speed up the process significantly. Using a GPU reduces the time required to train a network and can cut the training time for an image classification problem from days down to hours.