From the beginning when we learn math we are learning functions. For a straight line, it can be f(x) = x +3. When the input x = 3, it is quite easy to get f(3) = 6.
If the input is an audio, you need to simulate something similar to a function. The function would output the content of the input audio.
If the input is a picture, you want to simulate a complex function so that its output is what this picture is.
If the input is a Go board, you want to simulate a complex function and let it tell you where to go next.
Yes, you can think that machine learning is looking for this complicated "function" because it is complex, it is not certain, it is nonlinear, so you need to design some algorithms to let the machine learn what exactly is this complicated "function". That's what machine learning is. People will make some decisions, some judgments, you hope, using some existing data, training the machine, so that the machine can also learn how to make decisions, or even do better.
Deep learning is a subclass of machine learning. In other words, it is actually a way to implement machine learning. With the rapid development of computer hardware and software, people realize that the neural network can be used to simulate the human brain, and the word depth means nerve. The network has many layers. Looking back, how do you think about your brain? How does your biology teacher tell you how the signal is transmitted in the brain.
At present, deep learning mainly has:
Convolutional Neural Network
Recurrent Neural Network
Generative Adversarial Networks
Deep Reinforcement Learning
What to learn? The first subject to learn or to start should be CNN.
How? Books Deep Learning Course CS231n: Convolutional Neural Networks for Visual Recognition
Machine Learning and having it deep and structured (2017,Spring)
Understand what is Image Classification
Make prediction with some simple linear models(SVM,KNN)
Learn about Optimization, LossFunction and Gradient descent
Learn about Backpropagation
Learn about Neural Network
Learn about Normalization, Pooling, Convolution
Get hands on Tensorflow,Keras,Pytorch,Caffe
read other project's code
Learn about cifar10 and ImageNet
Start your first CNN model: LeNet-5 - Yann LeCun
Then AlexNet
Then ZF Net
Also Network in Network
And start to learn some CNN training trick:
Data Augmentation
Xavier/He Weight initial
Batch Normalization
L2/L1/Maxnorm/Dropout
Learn the famous Vgg Network
Also the google family GoogleNet Going Deeper with Convolutions
Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift
Rethinking the Inception Architecture for Computer Vision
Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning
Learn Fine-tune, start to improve code
Don't forget the Residual Network
Aggregated Residual Transformations for Deep Neural Networks