Learning From Data——Introduction of Deep Learning
上节课是数据学习的最后一个课程,做了一个简单的深度学习的介绍。
不用我说大家也都知道,深度学习是当今最流行的机器学习算法了,甚至它成为了一门独立的学科,因为它真的非常强大。深度学习是从神经网络开始的。
神经网络:可微模型+可微损失
简单的来说,在神经网络基础上go deep,就是深度学习了。
Challenges
overfitting
神经网络虽然能很好的拟合各个函数,但是它同样面临着挑战.那就是过拟合的问题。
之前的机器学习系列的博客也多次提到过拟合的问题。一个模型不是越强大就越好的,因为我们无法避免噪声的存在。如果为了迎合样本,最后产生了很奇怪的东西,那可能并不是我们想要的结果。如下图:
Vanishing gradient problem
我们知道,神经网络需要激活函数。最容易想到的是sigmod函数,但是当x很大时候,它面临着很严重的梯度消失问题,使得结果可能无法收敛。使用什么样的激活函数也是深度学习需要面临的挑战。
Activation functions: - Sigmoid - tanh - Relu - ...
Optimization
另外的问题,就是选取什么样的优化。梯度下降是不显示的,因为神经网络往往有非常大的计算量。
Optimizers: - SGD (Stochastic gradient descent) - Adam - Adamax - RMSprop - Adadelta - Nadam - ...
Computation
计算量过大也是深度学习面临的问题。一般来说要跑神经网络,往往需要GPU,TPU等等。 ### Data ###
还有就是获取数据的问题。深度学习的训练往往需要大量的数据。数据获取,数据标注也是很大的问题。
Representation
尽管神经网络有很大的挑战,但是它依然是一个非常强大的工具。以神经网络为基础,诞生了很多非常有名的网络模型,它们共同组成了深度学习。下面是深度学习的几个有名的代表: ### 卷积神经网络(Convolutional Neural Network) ### ### RNN(Recurrent Neural Network) ### ### LSTM(Long-Short Term Memory Module) ### ### ResNet ### ### DenseNet ###
Application
也许我们还没有注意到,但是深度学习现在已经应用到生活的各个地方了。 ### NPL:word2vec ### ### Image Caption Generator ### ### Autoencoder ### ### GANs (Generative Adversarial Networks) ###
Opening the blackbox
虽然神经网络功能非常强大,但是一直到现在,我们依然无法在数学上解释它为何这么强大。因此,神经网络对于我们来说一直像是一个黑盒子。我们希望可以打开一点这个黑盒子,窥视一下它背后的机理。之前有篇博客曾经提到这方面过,也就是derive something from Softmax。这是黄绍伦老师的相关研究成果。
从那篇文章以及这些图片,我们可以对神经网络为何这么强大有一些直观的了解,并且部分明白了其背后的道理。