深度学习:是用于建立、模拟人脑进行分析学习的神经网络,并模仿人脑的机制来解释数据的一种机器学习技术。它的基本特点是试图模仿大脑的神经元之间传递,处理信息的模式。最显著的应用是计算机视觉和自然语言处理(NLP)领域。显然,“深度学习”是与机器学习中的“神经网络”是强相关,“神经网络”也是其主要的算法和手段;或者我们可以将“深度学习”称之为“改良版的神经网络”算法。
深度学习的发展
应用领域全面突破:
图像识别,图像识别近年来取得重大突破,已经超过人类水平,主要突破点在深度学习和卷积神经网络,成绩的大幅提升几乎伴随着卷积神经网络的层数加深。
机器翻译,还没有超过人类水平,Google神经网络机器翻译系统在多种语言间的翻译性能取得大幅提升,接近人类的翻译水平
语音识别,接近人类的平均水平
玩游戏,借助深度学习和强化学习,开发出能够自我学习玩游戏的系统,且不需要人工干预,在49中Atari视频游戏中,23种击败了人类职业玩家。
深度学习获得发展的原因
大规模高质量标注数据集的出现
并行运算(例如GPU)的发展
更好的非线性激活函数的使用:ReLU代替Logistic
更多优秀的网络结构的发明:ResNet、GoogleNet和AlexNet等
深度学习开发平台的发展:TensorFlow、PyTorch和MXNet等
新的正则化技术的出现:批标准化、Dropout等
更多稳健的优化算法:SGD的变种,如RMSprop、Adam等
深度学习的核心思想
深度学习通过一种深层网络结构,实现复杂函数逼近,当隐层节点数目足够多时,具有一个隐层的神经网络可以以任意精度逼近任意具有有限间断点的函数。
假设我们有一个系统S,它有n层(S1,…Sn),它的输入是I,输出是O,形象地表示为:I=>S1=>S2=>…..=>Sn =>O,如果输出O等于输入I,即输入I经过这个系统变化之后没有任何的信息损失,保持了不变,这意味着输入I经过每一层Si都没有任何的信息损失,即在任何一层Si,它都是原有信息(即输入I)的另外一种表示。现在回到我们的主题DeepLearning,我们需要自动地学习特征,假设我们有一堆输入I(如一堆图像或者文本),假设我们设计了一个系统S(有n层),我们通过调整系统中参数,使得它的输出仍然是输入I,那么我们就可以自动地获取得到输入I的一系列层次特征,即S1,…,Sn。另外,前面是假设输出严格地等于输入,这个限制太严格,我们可以略微地放松这个限制,例如我们只要使得输入与输出的差别尽可能地小即可。
典型的网络结构
卷积神经网络(图像、视频等空间结构的数据结构)
循环神经网络(时间序列的数据,比如文本数据)
自编码器
生成对抗网络
