APP下载

深度学习

2019-07-20袁冰清王岩松

数字通信世界 2019年6期
关键词:梯度机器卷积

袁冰清,张 杰,王岩松

(国家无线电监测中心上海监测站,上海 201419)

深度学习(Deep learning),也称为深度结构学习(Deep Structured Learning)或者是深度机器学习(Deep Machine Learning),是一类算法的集合,是机器学习的一个分支。如今,深度学习在算法领域可谓是大红大紫,不只是互联网、人工智能,生活中的各大领域都能反映出深度学习引领的巨大变革,如目前最先进的语音识别、视觉对象识别等领域。本文先从深度学习中涉及到的一些概念去理解深度学习,最后主要介绍目前在图片识别和语言处理中应用最广泛的两大类深度学习网络:卷积神经网络和循环神经网络。

1 表示学习

人工智能(AI)系统需要具备自己获取知识的能力,即从原始数据中提取模式的能力,这种能力就称为机器学习(Machine Learning)。传统的机器学习技术在以原始形式处理自然数据能力方面是有限的。表示学习[1](Representation Learning)是允许机器自适应原始数据并且自动发现这些可以检测或者分类的表现形式的一系列方法。深度学习就是具有多级表示的表示学习方法,获得更高层次、更抽象的表示层次[2]。事实证明,深度学习非常善于发现高维度数据中的复杂结构,除了在图片识别与语音识别方面取得重要成就之外,深度学习在自然语言多任务理解方面也有显著的成果,尤其是在主题分类、情感分析及语言翻译等方面。

2 监督学习

机器学习的主要形式就是监督学习(Supervised learning),不管是深度还是非深度。从训练集中学到或建立一个模式,并依此模式推测新的实例,训练集就是由相对应的输入和预期输出组成。实际输出与所期望的输出之间的误差,我们定义为目标函数,机器可以修改内部的权重去减少误差。在一些典型的深度学习系统中,可能有数百万计的可调权重,以及数百万计的标签样本去训练机器。为了正确调整权重向量,学习算法计算一个梯度矢量,对于每个权重而言,每次增加一个微小的量时,误差就会相应地增加或者减少一定的量,然后权重向量就向梯度矢量相反的方向调整来适应梯度向量。实际中,大家最常用的一种称为随机梯度下降(Stochastic Gradient Descent,SGD)的算法[3]。对于很多样本,计算输出误差,计算样本的平均梯度,相应地去调整权重。这个过程重复多次,直到目标函数的平均值减小。在训练之后,系统的性能就用一系列不同的被称为测试集的样本来测量,这也是测试机器的泛化能力-检验对于在训练期间没见过的输入产生合理答案的能力。

深度学习架构都是简单模型的多层堆叠[1],所有的或者大部分模块都是需要学习,其中许多都是非线性的输入-输出映射。在堆叠中的每个模块转变输入以增大特征的选择性和不变性。对于一个非线性多层网络来说,比如深度是5-20层的深度,系统就可以进行非常复杂的功能,对于细节的输入就非常敏感了,比如可以区分长得很像的萨摩耶和白狼,但也可以对不相关的变量如:背景、姿势、灯光和周围的物体就不敏感了。

深度学习当前应用最广泛,效果最佳的就在计算机视觉和语音识别领域。而在计算机视觉方面,卷积神经网络就是典型范例。卷积神经网络是一种特殊类型的深度前馈网络,更易于训练,并且比全接连的神经网络的泛化性能更好[4]。

3 卷积神经网络与图像识别

卷积神经网络(Convolution Neural Networks,CNN)被设计用来处理多维数组数据的,比如一个包含三个颜色通道的彩色图片。很多数据形态都是多维数组形式:1D用来表示信号和序列如语音,2D用来表示图像,3D用来表示视频或者由声音的图像。下面我们用彩色图像中某一个颜色通道来说明理解卷积神经网络的过程。如下图所示:实际上卷积神经网络是一个多层的神经网络,其中基本运算包含:卷积运算、池化运算、全连接运算和识别运算[5]。

图1 卷积神经网络原理过程

图片的原始数据就是像素矩阵,每个像素点里都存储着图像的信息。我们再定义一个卷积核(相当于权重),用来从图像中提取一定的特征。卷积核与数字矩阵对应位置相乘再相加,得到卷积层输出结果。卷积核的取值在没有以往学习的经验下,可由函数随机生成,再逐步调整。当所有的像素点都至少被覆盖一次后,就可以产生一个卷积层的输出。机器一开始并不知道要识别的部分有什么特征,但是用过与不同的卷积核作用后得到的输出值,相互比较来判断哪个卷积核最能表现该图片的特征。卷积层的输出值越高,就说明匹配程度就越高,越能表现该图片的特征。即卷积层就是通过不断地改变卷积核,来确定能初步表征图片特征的有用的卷积核是哪些,再得到与相应的卷积核相乘后的输出矩阵。池化层的输入就是卷积层输出的原始数据与相应的卷积核相乘后的输出矩阵。那池化层的目的:为了减少训练参数的数量,降低卷积层输出的特征向量的维度,减小过拟合现象,只保留最有用的图片信息,减少噪声的传递。最常见的两种池化层的形式:最大池化-选取指定区域内最大的一个数来代表正片区域;均值池化-选取指定区域内数值的平均值来代表整片区域。卷积和池化层的工作就是提前特征,并减少原始图像带来的参数,然而为了生成最终的输出,我们需要应用全连接层来生成一个等于我们需要的类的数量的分类器。全连接层的工作原理跟一般的神经网络学习很类似,我们需要把池化成输出的张量重新切割成向量,乘上权重矩阵,加上偏置值,然后对其使用RELU激活函数,用梯度下降法优化参数即可。卷积神经网络在卷积运算和池化运算中就通过三个核心想法来改进学习效率及体现自然信号的属性:稀疏交互、权值共享及等变表示。

自从21世纪初以来,卷积神经网络就被成功地应用在检测、分隔和物体识别及图像的各个领域方面。这些应用都是使用了大量的有标签的数据,比如交通信号识别,生物信息分割,面部特征探测,自然图像中的文字,行人和人的身体部分探测。卷积神经网络当前最成功的应用就是人脸识别。

4 循环神经网络和语言处理

当处理序列信息的任务,如理解一句话的意思时,孤立地理解这句话的每个词是不够的[6],我们需要处理这些词连接起来的整个序列,即前面的输入跟后面的输入是有关系的,这时候我们就需要用到深度学习领域中一类非常重要的神经网络-循环神经网络(Recurrent Neural Network,RNN)。

图2 循环神经网络展开结构图

循环神经网络的结构如上图[1]所示,跟普通的全连接神经网络相比,多了一层循环层,按时间序列展开来看,就是当前隐藏层的输出值不仅与当前的输入值有关,还取决于上一次隐藏层的值。循环神经网络的训练算法是BP算法的变体,BPTT(Back Propagation Trough Time)。但是在实践中,RNN在训练中很容易发生梯度爆炸和梯度消失,导致梯度不能在较长序列中一直传递下去,因此RNNs不能很好地处理较长序列的问题。比如在语言文字识别中,在长语句“I grew up in France…I speak fluent French”中去预测最后的French,那么模型会推荐一种语言的名称,但是具体到哪一种语言时就需要用到很远之前的文字France,这时候RNN可能不能够学到前面的知识。为了解决长距离的依赖问题,通常使用一种改进之后的循环神经网络:长短时记忆网络(Long Short Term Memory Network,LSTM)及其变体:GRU(Gated Recurrent Unit)。

LSTM的思路非常简单,原始的RNN的隐藏层只有一个状态,即h,它对短期的输入非常敏感,我们在增加一个状态C,让她来保持长期的状态,新增加的状态c,成为单元状态(cell state),按时间序列展开如图3所示[7]:

图3 LSTM的单元状态展开图

在当前t时刻,LSTM的输出有两个,当前时刻LSTM输出值ht、和当前时刻单元状态ct,输出值ht不仅跟当前的输入Xt有关,还跟上一层的输出ht-1、ct-1有关。因此LSTM的关键就是怎样控制长期状态C,而长期控制状态是通过三个门(实际上是一层全连接层)来控制的,分别是遗忘门、输入门和输出门。GRU作为LSTM的一种变体,将遗忘门跟输入门合并为一个单一的更新门,同样混合了单元状态和隐藏状态,最终的模型比标准的模型要简单,是也是非常流行的变体。

但是往往在语言识别中,同样的一句话有不同的意义,比如两个外语学院的学生,一种意思是两个外语学院的/学生,另一种意思是两个/外语学院的学生。这时候,把句子看成是词的序列输入是不够的,必须按照树结构去处理信息,而不是序列,这就是递归神经网络(Recursive Neural Network,RNN),跟循环神经网络的缩写一样,看以看成是循环神经网络更一般的形式,它可以处理树、图这样的递归结构。递归神经网络可以把树/图结构信息编码为一个向量,也就是把信息映射到一个语义空间中,通过编码后向量的距离来代表句子意义的相近问题如图4所示[8]。所以说递归神经网络是一种表示学习,可以将词、句、段、篇按照他们的语义映射到同一向量空间中,把组合的信息表示为一个个有意义的向量。但是因为递归神经网络的输入必须把每个句子标注为语法解析树的形式,需要花费很大的精力,因此在实际应用中反而不太流行。

图4 递归神经网络中语义解析

5 深度学习的展望

人类视觉是一个智能的,基于特定方式的利用小或大分辨率的视网膜中央窝与周围环绕区域对光线采集成像的活跃的过程。我们期望未来的机器视觉进展是来自于端到端的训练系统,并将卷积神经网络和递归神经网络结合起来,采用增强学习来决定走向。结合深度学习和增强学习的系统还处于起步阶段,但是他们已经超越来在分类任务中超过了被动视觉系统,并在学习操作视频游戏中产生了令人印象深刻的效果。

自然语言理解是深度学习的另一个领域,有望在未来几年内产生巨大的影响。我们希望使用RNN 的系统能够理解句子或者整个文档,当他们学习有选择性地学习了某时刻部分加入的策略。

总之,人工智能将取得重大的进展,通过将表现学习与复杂推理学习结合起来。尽管深度学习和段时间了,我们仍需要通过操作大量向量的新范式来取代基于规则的字符表达式操作。

猜你喜欢

梯度机器卷积
机器狗
一个带重启步的改进PRP型谱共轭梯度法
机器狗
一个改进的WYL型三项共轭梯度法
随机加速梯度算法的回归学习收敛速度
基于3D-Winograd的快速卷积算法设计及FPGA实现
卷积神经网络的分析与设计
从滤波器理解卷积
一个具梯度项的p-Laplace 方程弱解的存在性
未来机器城