浅析深度学习模型与应用
2016-07-27 16:15:35
极小验


哈喽,亲爱的小伙伴们,很久之前极小验和大家分享了文章《深度学习发展史》,不知道大家还记不记得,不过记不得也没有关系呀,可以戳链接再看一遍。既然了解了深度学习发展史,那么今天极小验就带大家来看一看深度学习的应用现状。

num5.jpg-98.1kB
2006年Geoffery Hinton提出了深度学习(多层神经网络),并在2012年的ImageNet竞赛中有非凡的表现,以15.3%的Top-5错误率夺魁,比利用传统方法的第二名低了10.9% 。一时之间,深度学习备受追捧。Google、Facebook、百度等等公司纷纷开始大量的投入深度学习的应用研究。

深度学习的优势

人工神经网络是从信息处理的角度,对人脑神经元网络进行抽象的计算模型,目的就是让计算机能够模拟人脑的思考方式来解决一些抽象的问题。相比较于传统的模式识别,特征的提取方式主要靠人工提取或设计,而深度学习模型是一种端到端模型,即让计算机自动学习有用的特征,从而减少了人为提取特征造成的繁杂和不完备性。正如Google Brain项目负责人Jeff Dean说:“我们在训练的时候从来不会告诉机器说:‘这是一只猫。’系统其实是自己发明或者领悟了“猫”的概念。”在图像处理,语音识别这种人为特征提取难度很大的问题上面,深度学习有着其独有的优势,比如在语音识别方面,深度学习使得错误率下降了大约30%,取得了很大的进步。

深度学习的主要模型

目前深度学习有三种基本模型,分别是多层感知机(MLP,Multi-layer Perceptron),卷积神经网络(Convolutional Neural Network)以及循环神经网络(Recurrent Neural Network)。

多层感知机(MLP)
mlp1.png-303.6kB
MLP结构特点
• 输入与输出层之间存在一个或多个隐层
• 输入层没有计算节点,只用于获得外部输入信号,只有隐层和输出层的神经元为计算节点
• 每个输入节点将上一层输出进行加权,然后通过激活函数进行非线性变换
训练方法:反向传播算法(Back-Propagation)
MLP可用于解决简单的分类和预测问题。不过它的参数量随着层数的增加指数级增长,并且优化困难,限制了它的应用。

卷积神经网络(CNN)
num2.png-123.7kB
CNN通过引入卷积自动分层提取特征,每一层由多个特征图组成,每一个特征图是由前一层输出与一个卷积核进行卷积运算和非线性变换得到,随后进行池化操作,用于降低输出维度,同时获得一定的特征不变性。
CNN中最主要的三种网络层:
卷积层
池化层
全连接层
训练方法:反向传播算法(Back-Propagation)
CNN通过局部连接和权值共享大幅度降低了参数量。目前CNN在图像识别、目标检测、人脸识别等诸多计算机视觉任务上都取得了令人振奋的成果。
递归神经网络(RNN)
RNN-unrolled.png-92kB
相比于MLP和CNN,RNN通过权值共享使其能够处理变长的序列问题(CNN由于全连接层需要固定维度的输入,限制了CNN只能接受固定维度的输入)。RNN引入了“环”的结构,某一时刻的输出不仅与当前时刻的输入有关,还与前一时刻的状态有关,通过共享权值,使得RNN能学习到鲁棒的特征。
RNN分类(按照cell):
简单RNN
LSTM
GRU
Bi-RNN
RNN的训练算法:基于时间的反向传播算法(Back Propagation Through Time,BPTT)
RNN模型主要应用自然语言处理(NLP)上,比如语言翻译、文本信息挖掘、聊天机器人等。

深度学习的应用及发展

深度学习在计算机视觉和自然语言处理上有着广泛的应用。
在计算机视觉领域,2015年,微软何凯明团队利用152层网络在ImageNet比赛上将错误率降低到3.57%。Google 在 2015年的 I/O 大会推出的Google photos,可以将相册中的同一个人整合在一起,通过长期的学习甚至可以自动判断照片是否是一个值得纪念的时刻的拍摄的。近年来深度学习在医学图像的分析、目标检测等任务上也取得了很大的进展。
在自然语言处理上的应用主要包括语言翻译、机器理解、机器翻译等。Google去年底在gmail上上线了邮件自动回复功能,该功能利用深度学习技术提取和分析邮件语义信息,再根据提取的语义生成候选答复。在语音识别领域,百度在全国人机语音通讯学术会议(NCMMSC2015)上介绍了最新研发出的语音识别技术,该技术引入LSTM模型和CTC训练到传统框架中,使得识别相对错误率比现有技术降低15%以上,使汉语安静环境普通话语音识别的识别率接近97%。这是语音识别领域又一个重要的里程碑。

除了以上两个领域,深度学习在网络安全领域也有广泛的应用,如木马病毒、恶意软件检测与分析以及恶意程序识别等。
极验验证就是将深度学习应用于网络安全防御,通过深度学习建模学习人类与机器的行为特征,来区别人与机器,防止恶意程序对网站进行垃圾注册,撞库登录等。