前言:中文期刊网精心挑选了卷积神经网络总结范文供你参考和学习,希望我们的参考范文能激发你的文章创作灵感,欢迎阅读。
卷积神经网络总结范文1
中图分类号:TP18 文献标识码:A 文章编号:1009-3044(2016)33-0167-04
如今在机器学习领域中,深度学习方法已经占据了相当重要的地位,通过模仿人X学习方式构造模型,在图像、文本、语音处理方面取得了显著成果[1]。目前应用较为广泛的深度学习模型包含多层感知器模型(MLP)[2],卷积神经网络模型和限制性玻尔兹曼机模型等[4]。多层感知器[2]网络结构的神经节点一般分层排列,主要由输入层,输出层和一些隐层组成,同层之间的神经元节点无连接,相邻的两层神经元进行全连接,前一层的神经元的输出作为后一层神经元的输入,但本身此种算法存在着一些问题,那就是它的学习速度非常慢,其中一个原因就是由于层与层之间进行全连接,所以它所需要训练的参数的规模是非常大的,所以对其进行改进,产生了卷积神经网络模型。卷积神经网络模型在图像识别方面的应用十分广泛[5,8,9]。从它的结构上来看,层与层之间的神经元节点采用局部连接模式,而并非MLP的全连接模型,这样就降低了需要训练的参数的规模。而在它卷积层中,它的每一个滤波器作为卷积核重复作用于整个输入图像中,对其进行卷积,而得出的结果作为输入图像的特征图[6],这样就提取出了图像的局部特征。而由于每一个卷积滤波器共享相同的参数,这样也就大大降低了训练参数的时间成本。而本文,以卷积神经网络为研究对象,在其模型的基础上通过对其结构中卷积核也就是滤波器的大小进行调整并结合卷积核个数调整和gpu加速等已有的训练提速方法,达到降低训练时间并且对识别结果并无太大影响的目的。
1 卷积神经网络
卷积神经网络在MLP的基础上,已经对结构进行了优化,通过层与层之间的局部连接以及权值共享等方式对要训练的参数的进行了大幅减低。
1.1局部连接
BP神经网络中,神经元在本层中呈线性排列状态,层与层之间进行全连接,而在卷积神经网络中,为了减少每层之间的可训练参数数量,对连接方式进行了修改,相对于BP神经网络的全连接,卷积神经网络采取了局部连接的连接方式[7],也就是说按照某种关联因素,本层的神经元只会与上层的部分神经元进行连接。
2.2 权值共享
在CNN中,卷积层中的卷积核也就是滤波器,重复作用在输入图像上,对其进行卷积,最后的输出作为他的特征图,由于每个滤波器共享相同的参数,所以说他们的权重矩阵以及偏置项是相同的。
我们从上图看出,相同箭头连线的权值是共享的,这样在原有的局部连接的基础上我们又降低了每层需要训练的参数的数量。
2.3卷积过程
特征图是通过滤波器按照特定的步长,对输入图像进行滤波,也就是说我们用一个线性的卷积核对输入图像进行卷积然后附加一个偏置项,最后对神经元进行激活。如果我们设第k层的特征图记为[hk],权重矩阵记为[Wk],偏置项记为[bk],那么卷积过程的公式如下所示(双曲函数tanh作为神经元的激活函数):
2.4 最大池采样
通过了局部连接与权值共享等减少连接参数的方式卷积神经网络中还有另外一个重要的概念那就是最大池采样方法,它是一种非线性的采样方法。最大池采样法在对减少训练参数数量的作用体现在两个方面:
1 )它减小了来自m-1层的计算复杂度。
2 )池化的单元具有平移不变性,所以即使图像在滤波后有小的位移,经过池化的特征依然会保持不变。
3卷积神经网络整体构造以及减少训练时间的方法
3.1使用GPU加速
本次论文实验中,使用了theano库在python环境下实现卷积神经网络模型,在lenet手写数字识别模型上进行改进,由于theano库本身支持GPU加速,所以在训练速度上实现了大幅度的提高。
3.2 数据集的预处理
本次实验使用的两个数据集是mnist手写数字库以及cifar_10库
Mnist手写数字库具有60000张训练集以及10000张测试集,图片的像素都为28*28,而cifar_10库是一个用于普适物体识别的数据集,它由60000张32*32像素的RGB彩色图片构成,50000张图片组成训练集,10000张组成测试集。而对于cifar_10数据集来说,由于图片都是RGB的,所以我们在进行实验的时候,先把其转换为灰度图在进行存储。由于实验是在python环境下运行,theano函数库进行算法支持,所以我们把数据集进行处理,此处我们对使用的数据集进行了格式化。格式化的文件包括三个list,分别是训练数据,验证数据和测试数据。而list中每个元素都是由图像本身和它的相对应的标签组成的。以mnist数据集为例,我们包含train_set,valid_set,test_set三个list,每个list中包含两个元素,以训练集为例,第一个元素为一个784*60000的二维矩阵,第二个元素为一个包含60000个元素的列向量,第一个元素的每一行代表一张图片的每个像素,一共60000行,第二个元素就存储了对相应的标签。而我们取训练样本的10%作为验证样本,进行相同的格式化,而测试样本为没有经过训练的10000张图片。在以cifar_10数据集为实验对象时,把其进行灰度化后,进行相同的格式化处理方式。
3.3实验模型结构
本次实验是在python环境下基于theano函数库搭建好的lenet模型进行参数的调整,以达到在实验准确度可接受情况下减少训练时间的目的。
上图为实验中的基础模型举例说明实验过程,首先以mnist数据集为例,我们的输入图像为一个28*28像素的手写数字图像,在第一层中我们进行了卷积处理,四个滤波器在s1层中我们得到了四张特征图。在这里要特别的说明一下滤波器的大小问题,滤波器的大小可根据图像像素大小和卷积神经网络整体结构进行设置,举例说明,假如说我们的输入图像为28*28像素的图像,我们把第一层卷积层滤波器大小设置为5*5,也就是说我们用一个大小为5*5的局部滑动窗,以步长为一对整张图像进行滑动滤波,则滑动窗会有24个不同的位置,也就是说经过卷积处理后的C1层特征图的大小为24*24。此处的滤波器大小可进行调整,本论文希望通过对滤波器大小的调整,已达到减少训练时间的目的,并寻找调整的理论依据。C1层的特征图个数与卷积过程中滤波器数量相同。S1层是C1经过降采样处理后得到的,也就是说四点经过降采样后变为一个点,我们使用的是最大池方法,所以取这四个点的最大值,也就是说S1层图像大小为12*12像素,具有4张特征图。而同理S1层经过卷积处理得到C2层,此时我们滤波器的大小和个数也可以自行设置,得到的C2层有6张特征图,C2到S2层进行降采样处理,最后面的层由于节点个数较少,我们就用MLP方法进行全连接。
3.4实验参数改进分析
由此可见,我们对滤波器的大小以及个数的改变,可以直接影响到卷积训练参数的个数,从而达到减少训练时间的目的。
从另一种角度来看,增大滤波器的大小,实际效果应该相似于缩小输入图像的像素大小,所以这样我们可以预测增大滤波器的大小会减少样本的训练时间,但是这样也可能会降低训练后的分类的准确率,而滤波器的大小是如何影响训练时间以及分类准确率的,我们通过对两种图片库的实验来进行分析。
4 实验结果与分析
4.1以mnist手写数字数据集作为实验数据
我们知道卷积层可训练参数的数字与滤波器的大小和数字有关,所以我们通过对卷积层滤波器大小的变化来寻找较为普遍的可减少训练参数从而达到减少训练时间的目的。在实验记录中,我们表格纵列记录两层卷积层滤波器大小,横列分别为对已经过训练图像识别和对未经过训练的验证图像进行识别的错误率,最后记录每种滤波器大小搭配的使用时间。我们设定每次试验都进行100次重复训练,每次对权重矩阵进行优化。
此处我们记录两层滤波器大小之和作为横坐标,比较滤波器大小与实验之间的关系。两层滤波器大小相加后相同的元素我们把其对应时间做平均。
4.2以cifar_10数据集作为实验数据
同样是以100次循环训练进行测试,通过改变两层中滤波器的大小来寻找减少训练时间的设定。
此处以同样的方法,记录两层滤波器大小之和作为横坐标,比较滤波器大小与实验之间的关系。
4.3实验结果分析
从两组试验中,在不同的数据集下,我们得到了滤波器的大小与训练时间成反比的关系,而在减少了训练时间的同时确实增大了训练的错误率。
5 总结
通过实验结果分析表明,增大卷积层滤波器大小的方法,在此两种数据库的情况下,是有效减小训练时间的方式,而在不同的数据库对分类准确率的影响程度不同,mnist手写数字数据库中图像之间的相似度非常高,所以滤波器的增大对准确率产生的负面影响较小,而ifar_10数据集中图像之间的相似度较小,所以增大滤波器的大小对其分类结果的准确率的负面影响较大。
参考文献:
[1]LeCun Y, Bengio Y, Hinton G. Deep learning[J]. Nature, 2015, 521(7553): 436-444.
[2] Ruck D W, Rogers S K, Kabrisky M. Feature selection using a multilayer perceptron[J]. ]Journal of Neural Network Computing, 1990, 2(2): 40-48.
[3]LeCun Y, Bengio Y. Convolutional networks for images, speech, and time series[J]. The handbook of brain theory and neural networks, 1995, 3361(10): 1995.
[4] Larochelle H, Bengio Y. Classification using discriminative restricted Boltzmann machines[C]//Proceedings of the 25th international conference on Machine learning. ACM, 2008: 536-543.
[5]Krizhevsky A, Sutskever I, Hinton G E. Imagenet classification with deep convolutional neural networks[C]//Advances in neural information processing systems. 2012: 1097-1105.
[6] Zeiler M D, Fergus R. Visualizing and understanding convolutional networks[C]//European Conference on Computer Vision. Springer International Publishing, 2014: 818-833.
[7] Jarrett K, Kavukcuoglu K, Lecun Y. What is the best multi-stage architecture for object recognition?[C]//2009 IEEE 12th International Conference on Computer Vision. IEEE, 2009: 2146-2153.
卷积神经网络总结范文2
黑科技?神经网络是个什么鬼
说到神经网络,很多朋友都会认为这是一个高大上的概念。从生物学角度来说,人类复杂的神经系统是由数目繁多的神经元组合而成,它们互相联结形成神经网络,经过对信息的分析和综合,再通过运动神经发出控制信息,从而实现各种精密活动,如识别各种物体、学习各种知识、完成各种逻辑判断等。
随着人工智能技术的发展,科学家开发出人工神经网络,它的构成原理和功能特点等方面更加接近人脑。它不是按给定的程序一步一步地执行运算,而是能够自身适应环境、总结规律、完成某种运算、识别或过程控制。比如多伦多大学的Krizhevsky等人构造了一个超大型卷积神经网络,有9层,共65万个神经。第一层神经元只能识别颜色和简单纹理,但是第五层的一些神经元可以识别出花、圆形屋顶、键盘、乌、黑眼圈等更为抽象丰富的物体(图1)。因此神经网络实际上是基于人工智能技术而形成的一种和人类神经网络相似的网络系统。
媲美Photoshop 神经网络磨皮技术背后
如上所述,现在神经网络技术发展已经非常迅猛,而且运用在各个领域。神经网络磨皮则是指该技术在照片识别和美化方面的运用。那么它是怎样实现对照片的美化?在Photoshop中磨皮操作是用户先选中人脸区域,然后再使用Photoshop内置的方法实现磨皮。神经网络磨皮原理类似,只不过这些操作是自动完成的。
首先是对照片人脸识别。要实现对照片的美容就必须先精确识别人脸,由于人脸有五官这个显著特征,因此神经网络磨皮技术只要通过机器对一定数量的人脸照片进行识别、读取,然后就可以精确识别人脸。它的原理和常见的人脸识别技术类似(图2)。
其次则是美化。在完成人脸识别后就需要对美化操作进行机器学习,以磨皮为例。因为人脸的每个年龄阶段皮肤性质是不同的,为了达到更真实的磨皮效果,神经网络磨皮是实现用户“回到”幼年或者“穿越”到老年脸部皮肤的效果。研究人员将年龄段分类为0~18岁、19~29岁、30~39岁、40~49岁、50~59岁和60岁以上这几个阶段(图3)。
然后准备两个深度学习机器同时工作。两个机器一个用来生成人脸,一个用来鉴别人脸。而且两个机器会通过分析人脸图像,提前学习到各年龄段人脸大概是什么样子的。在每个年龄分组里,研究人员让机器学习超过5000张标记过年龄的人脸图像。通过大量的照片学习后,机器就可以学会每个年龄分组内的标签,它可以准确知道每个人不同年龄阶段的脸部特征。这样无论你是要磨皮为年轻时的皮肤光滑、圆润状态,还是要变为50岁以后皱褶、粗糙的皮肤,神经磨皮都可以轻松帮助你实现。
当然学习有个通病,就是在合成过程中,机器可能会丧失掉图片原有的识别资料(1D)。为了解决这个问题,上述介绍中的人脸鉴别机器就发挥功效了。它通过查看这个照片的识别资料是不是唯一的,如果不是的话照片则会被拒绝输出。研究人员让机器合成10000张从数据库中抽取出来的人像,这些照片之前从未用来训练机器。然后他们用开发的软件程序来检测训练前后的两张照片是否为同一个人,测试结果显示有80%经训练的照片都被认为和原照片是同一个人(而作为对比,用其他方法加工照片,平均测试结果只有50%)。举个简单例子,如果40岁的用户将自己磨皮为20岁的样子,如果软件程序来检测训练前后的两张照片为同一个人,那么就输出磨皮效果,从而让用户可以轻松磨皮到20岁的状态。这样经过训练的神经磨皮算法可以很真实地实现人脸的磨皮。
神经网络 不H仅是磨皮
卷积神经网络总结范文3
关键词:黑白棋;人工智能;算法
中图分类号:TP18 文献标识码:A 文章编号:1009-3044(2016)29-0198-03
1简介
黑白棋是被称为“设计理念”仅次于围棋的棋类游戏。它的棋盘只有8*8大,乍一看貌似简单,以为只要略微搜索就可以穷尽其中的路数。然而随着探究的不断深入,这个看似简单的游戏却不断涌现出它神秘莫测的一面。
作为一名高中生,经过为数不多课余时间的努力,我所设计的黑白棋程序bwcore实力已经达到相当的水平。经测试,它在北京大学人工智能对抗平台上战力排行达到第一。通过与另外一些AI的测试表明,目前的bwcore可以轻易打败国内个人编写的程序,亦能与专业公司开发的黑白棋软件(zebra,伤心黑白棋等)相抗衡。
本篇着重讲述了bwcore是如何更好地运用各类算法,使之融入到黑白棋AI设计中,达到提高AI水平的目的。本文还对AI设计作了一定程度的研究,先是介绍了一些较基础的算法在黑白棋AI设计中的应用,而后还探讨了实现AI的一些更高级的方法,以求有所突破。
2AI设计
2.1Minimax搜索
Minimax搜索的第一要义是双方都按照对自己最有利的决策,对盘面进行模拟。如果能够评价某一时刻其中一方的优劣程度,则另一方走棋时就会选一种使对方优势尽可能小的走法。如图所示,按照这种方式模拟出井字棋所有可能的局面,所有局面就构成一棵极大极小博弈树。
根据上述做法,不难写出简易MiniMax搜索的代码。当搜索达到指定深度后,进行当前局面的分值估算。val为当前层的分值,当前层的颜色与己方相同时,使之尽可能大。
float Cmp_BW::MaxMinSearch(Map&fmap,int col,int deep)
{
if deep>target_deep Then
search_cnt++;
return Sence_Evalution
For-Each place_in_board
If place_is_availaleThen
MakeMove
ret=MaxMinSearch(board.color_other,deep+1);
UnMakeMove
if col==my_color Then
2.2剪枝c改进
Minimax算法提供了一种在博弈树上寻求最优解的方法,但缺点很明显。算法需要遍历博弈树上所有可能的情况,尽管很多时候是根本不可能的(例如一方选择了一个明显劣势的位置)。通过AlphaBeta剪枝可以减少这种情况发生。如果当前结点获得的值已经小于其父节点之前得出的值,那么就没有继续搜索的必要,因为按照选择的逻辑,这个节点一定会被父节点排除在外。
经测试,搜索的节点数明显减少,约为原来的3/4次方。
测试表明,一般人已经难以战胜4~5层的搜索了。而把搜索深度设定为4层可以在botzone排行榜上达到约40名。
3高级搜索方法
3.1蒙特卡洛搜索
谷歌的围棋智能AlphaGo就使用了基于蒙特卡洛树搜索(MCTS)的搜索方式。MCTS在围棋领域十分成功,在其他方面也有很大的借鉴意义。
蒙特卡洛搜索通过对局面的随机模拟来获得对各个节点搜索的关注程度,可以说在理念上很接近人的思维方式。UCT算法是蒙特卡洛搜索的一种,旨在得分未知的前提下使期望得分最大。UCT算法为每一个节点计算UCB值,每次扩展时选择UCB最大的节点。
其中,X表示以前的收益,N表示总次数,T表示当前阶段的次数。这个式子的蕴含的内容是,如果一个节点的得分很高,那么就它很值得深入研究,而一些得分较低的节点有时也会去尝试,但次数不会很多。在极端条件下,多个选择方案中有一个方案的值远好于其他方案,则UCT算法的收敛速度很快。另一方面,如果所有方案得分相差不大,UCT随着搜索次数的增加,所有节点的得分趋于稳定。
结果表明单纯的UCT算法效率极高,经过很少时间就估算出精确值相近的结果。但因有时随机选点得出结果差异大,下棋时偶尔会出现失误。但总体而言,朴素的UCT算法的效果已经很优秀,测试过程中棋力超过前面基于MiniMax搜索的算法。可以想见,如果能在Simulation过程中加以优化,还有很大提升空间。
3.2遗传算法
遗传算法也是比较好的搜索方式,它通过借鉴生物界的进化规律来加强搜索。将前面的搜索局面各行列情况视为遗传算子,搜索过程中经过交叉、变异算子,评估新算子的可靠程度,将进化较成功算子反作用于搜索,每次得出更好的搜索方法。具体过程如下:
1)随机生成n个个体作为迭代的初始群体;
2)计算群体中每个个体的适应程度;
3)进行选择,把适应度高的个体的基因传递给下一代;
4)使新生成个体的基因交叉互换;
5)对基因做一定程度的变异;
6)返回2),除非适应度达到指定水平或已经达到最大迭代次数。
经过多次迭代,适应度高(这里即胜率高)的基因将遗传下来,最终得到高度适应的群体,即我们下一步所期望的走法。
4机器学习与增强学习
前面的几种搜索方法比原先单纯的搜索更具智能性,有更高的效率。目前为止,我们还未对局面的评估做出很好的改进。而估价函数的选取十分困难,大多依靠编写者自己的直觉,有时为了让某个权重来达到合适的值,还要耗费大量时间进行试验并调节。所幸,运用机器学习的方法可以使这些问题得到较好的解决。
4.1决策树与随机森林
决策树(Decision Tree)是其中一种比较简单的做法。决策树可用于对带标签数据的分类,并可以在相对短的时间得出效果良好的结果。依照数据标注的特点,决策树的每一个分支对这些样本进行划分,最终使样本按照标签归类。预测时,将想要预测的数据选择相应分支找到对应的归属即可。
在黑白棋中,如果将黑方获胜视为样本中的正类,白方获胜视为负类,棋盘上黑白棋子的位置作为样本的标签,就可以将对局面的评价转化为分类问题。决策树通过不停寻找最优分裂使数据更好地被分离。这里使用C4.5算法,通过信息熵获得最优分裂。由于单纯使用棋子的位置作为标签信息量较大且十分复杂,容易造成一种称为过拟合的题。将决策树上改为随机森林,可以避免了过拟合,节约了训练时间。
4.2神经网络算法
人工神经网络是当下计算机话题最热门的内容之一。神经网络的种类繁多,BP神经网络是神经网络中最简单的一种模型。
BP神经网络的结构如图,左边为输入层节点,右边为输出层节点,中间包含一个或多个隐含层。
每个神经元从其上一层获得输入,将输入通过自身权值和阈值变换后施以适当激活函数,传递到下一次神经元。这样的过程称为正向传递(Fowed Transfer)过程。根据正向传递得到的网络输出与训练目标比较计算当前网络的误差,然后向前调整各个神经元权值,就是所谓的反向传递(Reverse Transfer)过程。BP网络不停通过这种方式训练减小误差,最终使每个训练输入都收敛于目标输出。
这里使用棋盘上黑白棋子的分布作为输入层节点,用01表示,输出层表示输赢棋子数。训练结果表明,虽然目前的网络能较好地拟合训练集中的局面,但对于推广与训练集不同的输入数据较为困难,这可能是因为当前所使用网络的局限性。此外,BP神经网络隐含层的层数不宜过多,否则收敛十分缓慢。使用深度学习中更高级的神经网络如卷积神经网络(CNN)等应该能够得到更好的效果,但过程比较复杂,目前个人难以实现。
4.3训练方式
学习算法需要进行训练,一种方式是使用接近后期时搜索得出的结果,这种方式获得样本的准确度较高。如果按照终局搜索步数15-20步计,训练好的AI将可以在近30步时获取很大优势。
//用后期对局结果作为样本训练
void Cmp_BW::train(int repeat)
For lxain_count
For remain_step>target_step
run_easy(map)//使用简单方式下棋,节约时间
score=getScore(map)//获得比分
deetree.tmin(map,score);//用样本训练
卷积神经网络总结范文4
关键词: 动态纹理分类; 慢特征分析; 深度学习; 堆栈降噪自动编码网络模型
中图分类号: TN919?34 文献标识码: A 文章编号: 1004?373X(2015)06?0020?05
Dynamic texture classification method based on stacked denoising autoencoding model
WANG Cai?xia, WEI Xue?yun, WANG Biao
(School of Electronics and Information Engineering, Jiangsu University of Science and Technology, Zhenjiang 212003 China)
Abstract: To overcome the shortcomings of extracting the feature descriptors by manual operation and too high feature dimension for dynamic scene classification, a deep learning network model is proposed to extract dynamic texture features. Firstly, the slow feature analysis method is used to learn dynamic characteristics of each video sequence through before hand, and the learned feature is used as input data of deep learning to get the advanced representation of the input signal. The stacked denoising autoencoding model is selected for the deep learning network mode. SVM classification method is used for its classification. The experimental result proves that the feature dimension extracted by this method is low and can effectively describe dynamic textures.
Keywords: dynamic texture classification; slow feature analysis; deep learning; stacked denoising autoencoding model
0 引 言
动态纹理是指具有空间重复性、并随时间变化的视觉模式,这种模式形成了一系列在时间域上具有某种不变性的图像序列[1]。不同的动态纹理可能具有相似的外观,但是却具有不同的运动形式,所以表观和运动是动态纹理特征的两大方面。在目前的动态视频分析系统中,最关键的步骤是如何提取有效的动态纹理特征描述符。在过去几十年里,对纹理的研究大部分都集中在静态纹理特征的研究,动态纹理的研究相对静态纹理而言起步要晚的多。动态纹理的研究最早始于20世纪90年代初,由Nelson和Polana采用建立线性系统模型的方法对其进行研究[2],并且将视觉运动划分为三类[3]:行为、运动事件以及动态纹理。随后,Szummer 和 Picard提出采用时空自回归模型(Spatio?Temporal Auto Regressive,STAR)[4]对动态纹理序列进行建模。基于光流的识别法是目前比较流行的动态纹理识别法,因为其计算效率高,并且以一种很直观的方式来描述图像的局部动态纹理特征,Fazekas和Chetverikov总结出,正则性(Regulated)全局流与普通流(Normal Flow)相比,普通流可以同时包含动态特性和形状特性[5]。基于LBP的动态纹理方法是最近几年才提出的一种有效算法,典型的是Zhao等人提出的两种时空域上的描述子:时空局部二值模式(Volume Local Binary Pattern,VLBP)[6]和三正交面局部二值模式(Local Binary Pattern from Three Orthogonal Planes,LBP?TOP)[7],有效地结合“运动”和“外观”特征。2007―2008年是动态纹理研究最多的两年,各大期刊杂志连续刊登有关动态纹理的研究文章。
本文试图解决动态自然场景的分类问题(例如:烟火、河流、风暴、海洋、雪花等)。在计算机视觉领域,过去采用较多的是手动提取特征来表示物体运动信息(例如:HOF、基于STIP的HOG算法等),实验表明该类方法对人体行为识别非常有效。但是由于自然环境比较复杂,动态纹理表现不稳定,易受光照、遮挡等影响,而手动选取特征非常费力,需要大量的时间进行调节,所以该类方法并不适用于动态场景分类。Theriault等人提出利用慢特征分析的方法来提取动态视频序列的特征[8]。该方法虽然能有效表示动态纹理特征,但是其提取的特征维数较高。深度学习是机器学习研究中一个新的领域,其动机在于建立、模拟人脑进行分析学习的神经网络,近几年深度学习网络模型在大尺度图像分类问题中成功应用使得其得到越来越多人的重视。卷积神经网络、深度置信网络和堆栈自编码网络是三种典型的深度学习网络模型,而堆栈自编码网络模型不仅对高维数据有很好的表示,而且采用非监督的学习模式对输入数据进行特征提取,这对于传统的手动提取特征。利用堆栈自编码网络模型对慢特征进行进一步学习,不仅能降低数据维度,而且还能提取出数据更有效的特征表示。
1 基于堆栈自编码网络模型的慢特征分析法
1.1 慢特征分析法
文献[9?10]中提到,慢特征分析算法的目标是从不断变化的输入信号中学习不变量,即除了无意义的常值信号外,最具不变性质的信息,其实质也就是从快速变化的信号中提取缓慢变化的信号特征,这种特征是从混合信号中提取出来的源信号的高级表示,表征信号源的某些固有属性[11]。
实验证明,慢特征分析法在人体行为识别中有很好的描述作用,这为动态纹理分类提供了一个很好的选择。慢特征分析算法的核心思想是相关矩阵的特征值分解,其本质是在经过非线性扩展特征空间对目标函数进行优化,寻找最优解的线性组合。
给定一个时域输入信号序列:
[vt=v1t,v2t,…,vDtT]
目标就是学习一组映射函数:
[Sv=S1v,S2v,…,SMv]
使得输出信号[yt=y1t,y2t,…,yMtT]的各个分量[yj=Sjvt]的变化尽可能缓慢,而且仍然保留相关的重要信息。选用时域信号一阶导数的均方值来衡量输出信号个分量的变化率:
[minSj<y?2j>t] (1)
且满足以下条件:
(1) [<yj>t=0];
(2) [<y2j>t=1];
(3) [?j<j':<yj,yj'>t=0]。
其中:[<y>t]是[y]的时域平均值;[y?j]是[yj]的时域一阶导数。这三个约束条件保证慢特征分析的输出信号的各分量的变化率尽可能小,其中条件1和条件2确保输出没有无意义的常信号值,条件3确保输出各分量之间是非相关的,且不同慢特征承载着不同信息。值得注意的是,函数[Sv]是输入信号的瞬时函数,所以输出结果不能看成是通过低通滤波器的结果,慢特征处理速度要比低通滤波器快很多。如图1所示。
<E:\王芳\现代电子技术201506\现代电子技术15年38卷第6期\Image\42t1.tif>
图1 时域输入信号慢特征的提取
输出信号各分量按照变化率从小到大排列,且互不相关,其最优解问题可以看成以下公式的解特征值问题:
[Sj:<v?v?T>tSj=λjSj] (2)
求解得到的特征值按从小到大的顺序排列,即[λ1≤λ2≤???≤λM],输出信号的慢特征和最小特征值息息相关。输入信号[vt]可以是多种模式的图像特征(例如色彩,梯度,SIFT特征,HOG特征)。
这里采用的是v1特征[12?13],该特征对图像有很好的表示,确保预先学习到的慢特征能达到最优。
1.2 堆栈自动编码模型
自动编码器模型是深度学习网络模型之一,其尽可能复现输入信号,捕捉代表输入信号的主要成分。
如图2所示,对于给定输入信号[x],根据式(2)得到输出[y],此过程为编码过程:
[y=fθx=sWx+b] (3)
式中:[sx=11+θ-x];[W]是[d′×d]维权重矩阵;[b]是偏移向量。
为了验证输出[y]是否准确表达原输入信号,利用式(2)对其进行重构,得到重构信号[z]。此过程为解码/重构过程:
[gθ′y=sW′y+b′] (4)
从输入到输出的权值记为[θ=W,b],从输出到输入的权值记为[θ′=W′,b′]。逐层进行参数[θ]和[θ′]的优化,式(5)为其目标函数:
[θ?,θ′*=argminθ,θ′Lx,zLx,z=12x-z2] (5)
调整参数,使得重构误差达到最小,因此可以得到[x]的第一层表示。
<E:\王芳\现代电子技术201506\现代电子技术15年38卷第6期\Image\42t2.tif>
图2 普通DA和降噪DA
降噪自动编码器(Denoising Auto Encoder,Dae)是在自动编码器的基础上给训练数据加入噪声,编码器需要学习去除噪声而获得没有被噪声污染的输入信号,因此获得输入信号更加鲁棒的表达。堆栈自动编码模型(Sda)是将多个Dae堆叠起来形成的一种深度网络模型。利用优化后的参数[θ]得到当前层的输出[y](即下一层的输入),将得到的[y]作为新一层的输入数据,逐层进行降噪自动编码的过程,直到到达多层神经网络中间隐层的最后一层为止,算出该层输出,即为输出特征,如图3所示。
<E:\王芳\现代电子技术201506\现代电子技术15年38卷第6期\Image\42t3.tif>
图3 多层神经网络结构图
1.3 基于Sda的慢特征分析法
基于Sda的慢特征分析方法利用慢特征分析法预先学习动态视频序列的慢特征,将该特征作为模型输入,进行多层降噪自动编码网络模型参数的学习,最后使用SVM分类器对该模型的输出特征进行分类,具体步骤如图4所示。
2 实 验
2.1 实验数据集与评估准则
实验所用数据由10类动态场景构成(包括海滩,电梯,森林烟火,高速公路,闪电,海洋,铁路,河流,云,街道),且每一个类别由30个250×370 pixels大小的彩序列构成。这些视频序列全部来自于加拿大约克大学计算机视觉实验室于2012年的YUPENN动态场景数据集[14],该数据库主要强调的是对象和表层在短时间内场景的实时信息。如图5所示。
<E:\王芳\现代电子技术201506\现代电子技术15年38卷第6期\Image\42t4.tif>
图4 基于Sda的慢特征分析步骤图
<E:\王芳\现代电子技术201506\现代电子技术15年38卷第6期\Image\42t5.tif>
图5 YUPENN动态数据库
将所有彩序列进行尺度缩放,分别放大和缩小1.2倍,1.4倍,1.6倍,并且在每一个尺度上进行旋转,旋转角度分别为[2°,4°,6°,-2°,-4°,-6°]。所以样本总数为(10×30)×(6×6)=10 800个。实验性能使用混淆矩阵(Confusion Matrix)进行衡量。混淆矩阵是多分类问题中常用的衡量准则,它使得分类结果一目了然并能指出错误预测的影响。分类矩阵通过确定预测值是否与实际值匹配,将模型中的所有事例分为不同的类别。然后会对每个类别中的所有事例进行计数,并在矩阵中显示总计。实验中一共有14个类别的数据集,所以最后会产生一个大小为14×14的混淆矩阵。
2.2 实验结果与分析
实验选用线性SVM分类器,采用Leave?One?Out 分析法进行分类。所有视频序列全部转换成灰度视频进行慢特征分析,输出大小为4 032维的慢特征向量作为Sda网络模型的输入数据。
2.2.1 Sda网络模型大小
堆栈降噪自动编码器网络层数以及每一层的大小对输出特征的鲁棒性和SVM分类结果有重要的影响。当网络层数不一样时,模型学习到的特征也就不一样,网络层数过低,学习力度可能不够,特征达不到最佳表示效果,网络层数太高,可能会出现过拟合现象,隐层的大小和最后的分类结果也息息相关,所以选取不同网络层数和隐层大小分别进行实验,如图6所示,选取网络层数分别为1,2,3,隐层大小分别为500,1 000,2 000。由图6可知,当隐层大小为500时的分类得分显然比1 000和2 000时高很多;在隐层大小为500时,随着网络层数不断增加,实验结果不断提升,当网络层数由2层上升到3层时,实验结果已经非常接近(网络层数为2时score=95.9%,网络层数为3时score=96.3%)。可以得知,随着网络层数不断增加,分类的效果逐渐提高,当网络层数为3时,分类结果已非常接近。
<E:\王芳\现代电子技术201506\现代电子技术15年38卷第6期\Image\42t6.tif>
图6 不同网络层数和隐层大小的分类结果
2.2.2 噪声
Sdae对每一层的输入加入噪声,编码器自动学习如何去除噪声而获得更加鲁棒的动态纹理特征,因此每一层所加入的噪声的大小对提取的特征有很大的影响。因此,选取不同大小的噪声分别进行实验,如图7所示,选取噪声大小分别为10%,15%,20%,25%,30%,35%,40%,45%,50%,固定网络层大小为[500,500,500];由图可知,加入噪声对分类得分的影响呈类似抛物线形状,对每一层输入数据加入25%的噪声时score=0.964为最大值。
2.2.3 混淆矩阵以及实验与现有方法的比较
图8为实验最优参数所计算出的混淆矩阵,由图可知,海滩、电梯、高速公路以及海洋的分类效果达到100%,喷泉(Fountain)的分类效果虽然最差,但也已经达到83%左右,其容易被误分成森林火灾(17%错误分类)。由该混淆矩阵可以得知,实验所用方法能够达到将近96.4%平均得分。表1是本文所用方法与现有几个比较常用的动态纹理特征提取方法的比较,分别有HOF[15],GIST[16],Chaos[17],SFA[8]。由表格可以得知,SFA是几个方法中效果最好的,可以达到76.7%的分类效果,而本文所用方法SFA+Sda比SFA方法提高了将近20%的分类得分,并且在每一个动态场景中分类效果总是优于其他几种方法。
<E:\王芳\现代电子技术201506\现代电子技术15年38卷第6期\Image\42t7.tif>
图7 加入不同噪声的分类结果
<E:\王芳\现代电子技术201506\现代电子技术15年38卷第6期\Image\42t8.tif>
图8 混淆矩阵
表1 本实验与现有方法比较
3 结 语
本文提出一种基于多层降噪自动编码网络模型的动态纹理分类方法:预先学习动态视频序列的慢特征,以此作为多层降噪自编码网络模型的输入数据进行非监督的深度学习,网络最顶层的输出即为所提取的动态纹理特征,采用SVM分类器对该特征进行分类。本文对实验中的各种影响参数如网络模型的深度、每一层的大小以及加入噪声的大小做了充分的研究,实验证明,该方法所提取的特征对动态纹理有很好的表示作用,分类效果不错,在动态场景分类问题中有很大的应用价值。
参考文献
[1] DORETTO G, CHIUSO A, WU Y, et al. Dynamic textures [J]. International Journal on Computer Vision, 2003, 51(2): 91?109.
[2] NELSON R C, POLENA P. Qualitative recognition of motion using temporal texture [J]. CVGIP: Image Understanding, 1992, 56(1): 78?89.
[3] POLANA R, NELSON R. Temporal texture and activity recognition [J]. Motion?Based Recognition: Computational Imaging and Vision, 1997, 9: 87?124.
[4] SZUMMER M, PICARD R W. Temporal texture modeling [C]// Proceedings of 1996 International Conference on Image Processing. [S.l.]: [s.n.], 1996: 11?16.
[5] FAZEKAS S, CHETVERIKOV D. Normal versus complete ?ow in dynamic texture recognition a comparative study [C]// 2005 4th International Workshop on Texture Analysis and Synthesis (ICCV 2005). [S.l.]: [s.n.], 2005: 37?42.
[6] ZHAO G, PIETIK?INEN M. Dynamic texture recognition using volume local binary patterns [C]// European Conference on Computer Vision. [S.l.]: [s.n.], 2006: 165?177.
[7] PIETIK¨AINEN G Z M. Dynamic texture recognition using local binary patterns with an application to facial expression [J]. IEEE Transaction on Pattern Analysis and Machine Intelligence, 2007, 29(6): 915?928.
[8] THERIAULT Christian, THOME Nicolas, CORD Matthieu. Dynamic scene classification: learning motion descriptors with slow features analysis [EB/OL]. [2014?09?17]. http://.
[9] FRANZIUS M, WILBERT N, WISKOTT L. Invariant object recognition with slow feature analysis [C]// ICANN 18th International Conference. Berlin: Springer?Verlag, 2008: 961?970.
[10] WISKOTT L, SEJNOWSKI T. Slow feature analysis: Unsupervised learning of invariances [J]. Neural Comput., 2002, 14: 715?770.
[11] 马奎俊,韩彦军,陶卿,等.基于核的慢特征分析算法[J].模式识别与人工智能,2011(2):79?84.
[12] DE VALOIS R, YUND E, HEPLER N. The orientation and direction selectivity of cells in macaque visual cortex [J]. Vision Research, 1982, 22: 531?544.
[13] HUBEL D, WIESEL T. Receptive fields of single neurons in the cat’s striate cortex [J]. Journal of Physiol, 1959, 4: 574?591.
[14] DERPANIS Konstantinos, LECCE M, DANIILIDIS K, et al. Dynamic scene understanding: the role of orientation features in space and time in scene classification [C]// International Conference on Computer Vision and Pattern Recognition. [S.l.]: [s.n.], 2012: 111?121.
[15] MARSZALEK M, LAPTEV I, SCHMID C. Actions in Context [C]// 2009 IEEE Conference on Computer Vision and Pattern Recognition. [S.l.]: IEEE, 2009: 2?6.
卷积神经网络总结范文5
关键词:麦克风阵列,阵列信号处理,语音增强
(一)引言
在日常生活和工作中,语音通信是人与人之间互相传递信息沟通不可缺少的方式。近年来,虽然数据通信得到了迅速发展,但是语音通信仍然是现阶段的主流,并且在通信行业中占主导地位。在语音通信中,语音信号不可避免地会受到来自周围环境和传输媒介的外部噪声、通信设备的内部噪声及其他讲话者的干扰。这些干扰共同作用,最终使听者获得的语音不是纯净的原始语音,而是被噪声污染过的带噪声语音,严重影响了双方之间的交流。
应用了阵列信号处理技术的麦克风阵列能够充分利用语音信号的空时信息,具有灵活的波束控制、较高的空间分辨率、高的信号增益与较强的抗干扰能力等特点,逐渐成为强噪声环境中语音增强的研究热点。美国、德国、法国、意大利、日本、香港等国家和地区许多科学家都在开展这方面的研究工作,并且已经应用到一些实际的麦克风阵列系统中,这些应用包括视频会议、语音识别、车载声控系统、大型场所的记录会议和助听装置等。
本文将介绍各种麦克风阵列语音增强算法的基本原理,并总结各个算法的特点及存在的局限性。
(二)常见麦克风阵列语音增强方法
1.基于固定波束形成的麦克风阵列语音增强
固定波束形成技术是最简单最成熟的一种波束形成技术。论文大全,阵列信号处理。论文大全,阵列信号处理。1985年美国学者Flanagan提出采用延时-相加(Delay-and-Sum)波束形成方法进行麦克风阵列语音增强,该方法通过对各路麦克风接收到的信号添加合适的延时补偿,使得各路输出信号在某一方向上保持同步,使在该方向的入射信号获得最大增益[1]。此方法易于实现,但要想获取较高的噪声抑制能力需要增加麦克风数目,并且对非相干噪声没有抑制能力,环境适应性差,因此,实际中很少单独使用。后来出现的微分麦克风阵列(DifferentialMicrophone Arrays),超方向麦克风阵列(Superairective MicrophoneArrays)和固定频率波束形成(Frequency-InvariantBeamformers)技术也属于固定波束形成。
2.基于自适应波束形成器的麦克风阵列语音增强
自适应波束形成是现在广泛使用的一类麦克风阵列语音增强方法。最早出现的自适应波束形成算法是1972年由Frost提出的线性约束最小方差(LinearlyConstrained Minimum Variance, LCMV)自适应波束形成器[2]。其基本思想是在某方向有用信号的增益一定的前提下,使阵列输出信号的功率最小。在线性约束最小方差自适应波束形成器的基础上,1982年Griffiths和Jim提出了广义旁瓣消除器(GeneralizedSidelobe Canceller, GSC)[3],成为了许多算法的基本框架(图1)。
图1 广义旁瓣消除器的基本结构
广义旁瓣消除器是麦克风阵列语音增强应用最广泛的技术,带噪声的语音信号同时通过自适应通道和非自适应通道,自适应通道中的阻塞矩阵将有用信号滤除后产生仅包含多通道噪声参考信号,自适应滤波器根据这个参考信号得到噪声估计,最后由这个被估计的噪声抵消非自适应通道中的噪声分量,从而得到有用的纯净语音信号。
如果噪声源的数目比麦克风数目少,自适应波束法能得到很好的性能。但是随着干扰数目的增加和混响的增强,自适应滤波器的降噪性能会逐渐降低。
3.基于后置滤波的麦克风阵列语音增强
1988年Zelinski将维纳滤波器应用在了麦克风阵列延时—相加波束形成的输出端,进一步提高了语音信号的降噪效果,提出了基于后置滤波的麦克风阵列语音增强方法[4](图2)。基于后置滤波的方法在对非相干噪声抑制方面,具有良好的效果,还能够在一定程度上适应时变的声学环境。它的基本原理是:假设各麦克风接收到的目标信号相同,接收到的噪声信号独立同分布,信号和噪声不相关,根据噪声特性,依据某一准则实时更新滤波器权系数,对所接收到数据进行滤波,从而达到语音增强的目的。
图2 结合后置滤波的固定波束形成器
后置滤波方法存在以下不足:首先,算法的性能受到时延误差的影响,使增强后的语音信号有一定失真。其次,该方法对方向性的强干扰抑制效果不佳。后置滤波方法极少单独使用,常与其他方法联合使用。文献[5]研究了后置滤波和通用旁瓣对消器结合使用的问题。论文大全,阵列信号处理。
4.基于近场波束形成的麦克风阵列语音增强
当声源位于麦克风阵列近场(即阵列的入射波是球面波)情况下,声波的波前弯曲率不能被忽略,如果仍然把入射声波作为平面波考虑,采用常规的波束形成方法来拾取语音信号,那么麦克风阵列系统输出效果会很不理想。解决这个问题,最直接的方法就是根据声源位置和近场声学的特性,对入射声波进行近场补偿[6],但是这种方法需要已知声源位置,这在实际应用中难以是满足。由于近场声学的复杂性,目前有关近场波束形成麦克风阵列语音增强方法的研究相对较少。
5.基于子空间的麦克风阵列语音增强
子空间方法的基本思想是计算出信号的自相关矩阵或协方差矩阵,然后对其进行奇异值分解,将带噪声语音信号划分为有用信号子空间和噪声子空间,利用有用信号子空间对信号进行重构,从而得到增强后的信号。由Asano等提出的基于相干子空间的麦克风阵列语音增强方法是一种典型的子空间方法[7]。该方法首先将语音信号划分到不同频带,然后在每个频带再利用空间信息,进行子空间处理。
基于子空间的麦克风阵列语音增强方法虽然降噪性受噪声场是否相关影响较小,在相干和非相干噪声场中均有一定的消噪效果,但是由于计算量较大,实现实时处理具有一定困难。
6.基于盲源分离的麦克风阵列语音增强
在很多实际应用中,信号源情况和信道的传递参数都很难获取,盲源分离技术(BlindSource Separation, BSS)就是在这种需求下提出的。盲源分离是根据输入源信号和干扰的统计特性,从传感器阵列接收到的混合信号中提取出各个独立分量的过程。法国学者Herault.J和Jutten.C在信源与信道先验条件未知的情况下,利用人工神经网络分离出了有用信号,开创了盲源分离的先河[8]。目前为止,已有许多学者将盲源分离技术应用于麦克风阵列语音增强。论文大全,阵列信号处理。
经过二十多年来国内外学者的不断深入研究,盲源分离技术已经取得了巨大的进步和发展,对盲信号分离问题的研究己经从瞬时混迭模型扩展成为线性卷积模型和非线性瞬时混迭模型,但是由于盲源分离仍属一个新兴的研究方向,理论上还不成熟,这类方法一般运算量大,全局收敛性和渐进稳定性有待加强,距离实际应用有一段距离。
7.其他方法
90年代以来,一些学者将各种信号处理算法与麦克风阵列技术相融合,各种语音增强算法不断涌现,诸如倒谱分析、小波变换、神经网络、语音模型等方法已经在语音信号处理领域得到应用。虽然这些方法从不同角度对语音增强系统的性能进行了不同程度的改善,但大多计算量庞大,不适合时变性较强的声学环境,而且在需要实时处理的场合,对硬件的要求也将大大提高。论文大全,阵列信号处理。
近些年国内一些高校,如清华大学,大连理工大学,电子科技大学,西安电子科技大学等也做了一些关于麦克风阵列技术的研究工作,取得了一定的研究成果。张丽艳等提出一种改进的麦克风阵列倒谱域语音去混响方法,改善混响环境下的语音质量[9]。崔玮玮等提出一种基于一阶差分麦克风阵列的实时噪声谱估计和抵消方法,提高输出信噪比的同时降低了计算量[10]。曾庆宁等将阵列交叉串扰信号的自适应噪声抵消方法应用于麦克风阵列语音增强,适用于在多种噪声环境中实时实现[11]。
(三)结论
语音信号增强是诸如智能控制、办公自动化、多媒体消费品等领域的关键技术之一,将麦克风阵列技术应用于语音增强,能够取得传统单麦克风难以达到的增强效果。论文大全,阵列信号处理。语音信号作为一种宽带的非平稳信号,在传输过程中不可避免地会受到各种噪声的干扰,所以采用麦克风阵列系统时需满足在一个比较宽的声域范围抑制各种噪声干扰,减少语音的失真,同时也要降低系统成本和计算时间,以达到较好的实时性和实用性。在实际应用中应根据具体的使用环境的噪声特性,设计合适的麦克风阵列结构,选择最佳的算法及其具体的实现形式。
【参考文献】
[1]Flanagan J L, JohnstonD J, Zahn R, et al. Computer-steered microphone arrays for sound transductionin large rooms[J]. Journal of Acoustical Society of American. 1985, 78(5).
[2]O. L. Frost. Analgorithm for linearly-constrained adaptive array processing[J]. Proc. IEEE.1972, 60(8).
[3]L. J. Griffiths, C. W.Jim. An alternative approach to linearly constrained adaptive beamforming[J].IEEE Trans. On Antennas and Propagation. 1982, 30(1).
[4]Zelinski R. A microphone array with adaptive post-filtering for noise reductionin reverberant rooms[A]. IEEE International Conference on Acoustics, Speech andSignal Processing, USA: 1988.
[5]S. Cannot and I. Cohen. Speech enhancement based on the general transfer function GSC andpostfiltering[J]. IEEE Trans. Speech and Audio Processing, 2004, 12(6).
[6]Khalil F, Jullien J P, Crilloire A. Microphone array for sound pickup inteleconference systems[J]. Audio Engineering Society, 1994, 42( 9).
[7]Asano F, Hayamizu S. Speech enhancement using css-based array processing[A].IEEE International Conference on Acoustics, Speech and Signal Processing. Germany: 1997.
[8]Jutten C and Herault J. Blind separation of sources, part I: an adaptivealgorithm based on neuromimetic architecture[J]. Signal Processing, 1991,24(l).
[9]张丽艳等.一种适用于混响环境的麦克风阵列语音增强方法[J].信号处理.2009,25(5).
[10]崔玮玮等.基于FDM阵列技术的双通道语音增强方法[J].清华大学学报(自然科学版).2008,48(7).
[11]曾庆宁等.基于阵列抗串扰自适应噪声抵消的语音增强[J].电子学报.2005,33(2).
卷积神经网络总结范文6
关键词:科学计算;大数据处理;超级计算机;模拟仿真;并行计算
1引言
在现代科学研究和工程实践中,通常使用数学方程式来表示某些自然科学规律,产生了众多复杂繁琐的数学计算问题[1]。基于普通计算工具来解决这些问题,将耗费大量人力物力,甚至无法得到准确结果。而科学计算[2],利用计算机仿真、重现、预测或探索自然世界万物运动规律和演变特性的全过程,通过研究合理的计算方法,设计高效的并行算法,研制合适的应用程序,能准确、高效地模拟各领域研究过程,分析计算结果。然而,普通计算机的科学计算能力往往是有限的,现有的计算能力无法高效地解决某些基础学科和工程技术部门的科学计算问题,如长期天气预报、石油勘探、飞机整体气动力等等。
与此同时,地震检测仪、粒子碰撞器、天文望远镜以及高通量分析装置等大型科学仪器的研制和发展[3],产生了大量非结构化或半结构化的数据,使得“大数据”趋势变得越来越突出[4]。如今,许多科学发现和见解由大量数据集驱动,“大数据”被认为是除了实验、理论和计算方法之外的第四种科学范式[5]。数据生成的容量、速度和多样性构成了分析大数据的主要挑战。
为提高科学计算能力,解决大数据问题,高性能计算(HPC)[6]技术迅猛发展。高性能计算机代表用于解决计算密集型科学和工程问题的高端计算基础设施。我国的高性能计算早已突破每秒浮点运算千万亿次的壁垒,并继续解决性能、可扩展性、可编程性、能效和可靠性等问题,探索新的支持技术以达到e级计算能力。
目前,高性能计算机已在多个领域得到了成功的应用[7],但仍存在大量可供多个研究机构使用的空闲节点。本文简介了一些高性能计算机系统及其性能,针对近年来在高性能计算机上的各大领域应用实例进行总结,并对在其他领域的应用做出了展望,以促进更高效、全面地使用高性能计算机。
2高性能计算机系统概述
中国首台千万亿次超级计算机,是“天河一号”。“天河一号”超级计算机使用由中国自行研发的“龙”芯片,其峰值计算速度能够达到1.206TFlop/s,同时Linpack实测性能达到了0.563TFlop/s,该超级计算机位居当时公布的中国超级计算机前100强之首,中国成为了继美国之后世界上第二个能够自主研制千万亿次超级计算机的国家。
天河一号采用6144个英特尔通用多核处理器和5120个AMD图形加速处理器,其内存总容量98TB。至于点对点通信的带宽就达到了40Gbps,而其用于共享的磁盘总容量则达到1PB。该超级计算机系统部署于天津滨海新区的国家超级计算天津中心作为业务主机。
2013年,由国防科学技术大学研制的“天河二号”大型超级计算机以每秒33.86千万亿次的浮点运算速度成为全球最快的超级计算机,位列国际大型超级计算机TOP500榜首。随后,“天河二号”实现了世界最快超算“六连冠”。天河二号采用基于加速器的架构[8]。在可接受的总成本、功率预算、支持可靠性、可用性和可服务性(RAS)的能力、应用开发和移植的复杂性下提供高的计算性能。
天河二号的硬件系统由五个子系统组成,包括计算系统、通信系统、存储系统、监控诊断系统和服务系统。它由16000个节点组成,每个节点有2颗基于IvyBridge-EXeonE52692处理器和3颗XeonPhi,每个节点的内存是64GB。所有的计算节点都通过专有的高速互连系统连接。还提供了一个服务子系统的4096个节点,以加快高吞吐量的计算任务,如大数据处理。存储子系统包括256个I/O节点和64个容量为12.4PB的存储服务器。天河二号文件系统命名为h2fs,采用麒麟操作系统、基于SLURM的全局资源管理。支持大多数现代编程语言,包括C、C++、Java、Python等。采用的是新型异构多态体系结构(Multipurpose-Heterogeneous)[9]。
天河二号的系统配置列于表1中。
“天河二号”集科学计算、大数据分析和云计算于一体,被认为是满足工业和社会需求的战略基础设施。以超级计算机为支撑的高性能计算应用正加速向各个领域渗透。
Table1SystemindicatorsofTianhe-2
表1天河二号系统指标
width=375,height=252,dpi=110
在国内早期的高性能计算机研究中,2004年6月超级计算机曙光4000A研制成功,落户上海超级计算中心,标志着继美国和日本之后,中国是第三个能研制10万亿次高性能计算机的国家。曙光能够每秒运算11万亿次,进入全球超级计算机前十名。经过十多年发展,曙光E级高性能计算机系统项目现在是国家“十三五”期间高性能计算的重点专项,其最显著的特点是突破了制约E级计算发展的各个关键技术,通过这样原型机的研制去验证E级的技术路线,为未来真正实现国产E级系统做技术铺垫。
width=642,height=303,dpi=110
Figure1StructureofSugon’sCPU
图1曙光CPU结构
在2016年法兰克福世界超算大会上,“神威·太湖之光”超级计算机系统成为新的榜首,速度较第二名“天河二号”快出近两倍,效率提高三倍。
神威·太湖之光超级计算机由40个运算机柜和8个网络机柜组成。每个运算机柜包含4块由32块运算插件组成的超节点。每个插件由4个运算节点板组成,一个运算节点板又含2块“申威26010”高性能处理器。一台机柜就有1024块处理器,整台“神威·太湖之光”共有40960块处理器。每个单个处理器有260个核心,主板为双节点设计,每个CPU固化的板载内存为32GBDDR3-2133。
在2018年的法兰克福世界超算大会上,美国能源部橡树岭国家实验室(ORNL)推出的新超级计算机“Summit”以每秒12.23亿亿次的浮点运算速度,接近每秒18.77亿亿次峰值速度夺冠,“神威·太湖之光”屈居第二。
3高性能计算机各大领域应用实例分析
为充分发挥高性能计算机的优势,极大限度地满足客户需求,自超级计算机在中国开始发展以来,相关团队都致力于扩展高性能计算在各个领域的利用,迎合各领域应用的计算要求,协助用户配置应用环境,建立高效模型,设计合理并行算法,以实现各领域的科学计算和大数据处理在高性能计算机上的应用。
3.1生物计算与精准医疗
根据广州国家超级计算中心的内部统计[10],生物医学相关应用现在是超级计算中心的主要客户。生物医学研究主要包括生物大分子的结构模拟与功能建模,药物设计与筛选,蛋白质序列分析,基因序列分析与比对,基因调控网络的分析与建模,医疗卫生的双数据分析及生物医学文献挖掘等。
生物医学数据繁多,且一直呈指数增长。如世界最大的生物数据保存者之一,欧洲生物信息学研究所(EBI),存储超过20PB的数据,并且最近每年的数据量都增加一倍[11]。数据源的异质性,包括基因组学、蛋白质组学、代谢组学、微阵列数据、文献等,使其更加复杂。
针对典型类型的大数据——基因组大数据,在大数据框架(如Hadoop和Spark)的帮助下,云计算已经在大数据处理中发挥着积极作用。现在,HPC在中国的快速发展使得以不同的方式解决基因组大数据挑战成为可能。Yang等人[12]强调了在现代超级计算机上增强大数据支持的必要性,提出只需单个命令或单个shell脚本就能使当前的大数据应用在高性能计算机上运行,并且支持多个用户同时处理多个任务的Orion作为高性能计算机的大数据平台。该平台可以根据大数据处理需求,合理分配所需的资源量,并使用HPC系统软件栈自动建立和配置可回收的Hadoop/Spark集群。以华大基因提供的基因组学大数据作为案例研究,测试基因组分析流水线SOAPGaea的FASTQ过滤、读取对齐、重复删除和质量控制四个过程,证明了Orion平台的高效性。
为更好地了解基因的精细结构、分析基因型与表现型的关系、绘制基因图谱,DNA序列分析成为生物医学中的重要课题[12]。
DNA序列的排序是对DNA序列分析的基础[13]。通常先使用测序仪得到生物体基因组的一些片段,再利用计算机对片段进行denovo拼接,从而得到DNA序列的排列顺序。而随着测序仪的发展,基因组的数据量增大,分析复杂性提高,普通计算工具分析数据会消耗大量时间和空间。张峰等人[14]基于高性能计算机,使用一种新型序列拼接工具SGA(StringGraphAssernbler),对任务之间数据耦合度小的分批构建FM-Index,采用粗粒度的多进程并行;对任务之间数据耦合度较大的FM-Index合并过程,采用多线程的细粒度并行。这种多进程与多线程的混合并行策略,使用并行计算代替通信开销,测试小规模数据时,将索引构建时间的最佳性能提高了3.06倍。叶志强等人[15]在基因组排序时,引入随机listranking算法,基于高性能计算机,使用MPI并行实现Pregel框架的线性化步骤,利用节点之间的通信和计算能力,减少了线性化步骤时间。
SNP(单核苷酸多态性)检测是DNA序列分析的关键步骤[16]。它将对齐的read、参考序列和被编排的数据库(如数据库SNPP)作为输入,通过站点检测对齐的read和引用站点的信息,生成SNP站点的列表。SNP检测工具SoAPSNP可以用一个多星期的时间来分析一个覆盖20倍的人类基因组。崔英博等人[17]通过重新设计SOAPSNP的关键数据结构以降低内存操作的开销,设计CPU与XeonPhi协作的协调并行框架,以获得更高的硬件利用率。并提出了一种基于读取的窗口划分策略(RWD),在多个节点上提高吞吐量和并行规模,开发了SOAPSNP的并行版本MSNP,在没有任何精度损失的情况下,利用高性能计算机的一个节点实现了45倍的加速。
方翔等人[18]利用高性能计算机,构建了由基因组与转录组测序数据分析、蛋白质结构预测和分子动力学模拟三个功能模块组成的生物信息平台分析水产病原,对约氏黄杆菌等多种水生动物病原进行生物信息学分析。
从生物医学文献中提取有价值的信息的一种主流方法是在非结构化文本上应用文本挖掘方法。然而,大量的文献需要分析,这对文本挖掘的处理效率提出了巨大的挑战。彭绍亮等人[19]将针对疾病实体识别的软件DNorm加入可高效识别基因、蛋白质、药物、基因通路等实体关系的文本挖掘工具PWTEES流水线中,扩充了PWTEES的功能。使用LINNAEUS导入MEDLIN数据库提供的摘要,并在个人账户目录下,动态使用计算节点,编译安装配置了非关系型数据库(MySQL),将大量非结构化数据(文献)转为结构化数据。将平时在普通服务器上需100天能完成的文本挖掘过程缩短为1小时,并利用200个进程并行挖掘7万篇头颈癌相关文献中的关键命名实体,得到了80%以上的并行效率。Xing等人[20]开发了一个可运行的框架PARABTM,它能够在超级计算机上实现并行文本挖掘。以GNormPlus、tmVar2.0、Dnorm三种命名实体识别任务为例,对多个数据集上PARABTM的性能进行了评价。结果表明,使用PARABTM并行处理策略中的短板匹配负载平衡算法(Short-Boardloadbalancingalgorithm),最大程度地提高了生物医学命名实体识别的处理速度。
3.2全数字设计与制造
数字设计与制造是一种以计算机系统为中心的集成制造方法。随着制造工厂中计算机系统数量和质量的提高,数字化趋势迅速。越来越多的自动化工具被用于制造工厂,有必要对所有机器、工具和输入材料进行建模、模拟和分析,以优化制造过程。而模拟能够建模和测试一个系统行为特性,让工程师能够用更低耗、更快速同时更安全的方式来分析所做的设计会产生什么样的影响。模拟的应用范围广泛,涵盖了产品设计、过程设计以及企业资源安排[21]。在模拟过程中,利用超级计算机强大的计算能力,使工程师能在几分钟或几小时内仿真和测试数千种设计方案。
利用数字化的方式,可以对产品进行结构力学分析、流体力学分析、电磁设计和多物理场模拟等多种计算仿真。
在计算流体力学CFD(CcomputationalFluidDynamics)领域的一大热点研究问题就是如何在当前主流的众核异构高性能计算机平台上进行超大规模计算。杨梅芳等人[22]在高性能计算机的单个节点上,利用超然冲压发动机燃烧数值模拟软件LESAP模拟一个实际发动机燃烧化学反应和超声速流动的问题,采用OpenMP4.0编程标准,向量化SIMD,优化数据传输过程,均衡基于网格块划分的负载技术,实现了软件面向CPU+MIC异构平台的移植,达到了3.07倍的性能加速比。王勇献等人[23]面向高性能计算机探索了高阶精度CFD流场数值模拟程序的高效并行性。在高性能异构并行计算平台上进行了多个算例的数值模拟的结果显示最大CFD规模达到1228亿个网格点,共使用约59万CPU+MIC处理器核,实现了移植后的性能大幅度提高。通过将算法移植到超级计算机进行大规模并行,能够实现高效的流体力学分析。而文献[24-26]都是针对空气动力学中的具体分类利用高性能计算机进行模拟以验证有效性的研究。利用数字化设计,能够快速低成本地对设计性能进行分析评估。
在图像模拟中,Metropolis光传输算法能够利用双向路径跟踪构建出由眼睛到光源的路径,是MonteCarlo方法的变体。然后,使用Metropolis算法静态计算图像中光线的恰当的散射状态,由一条已发现的光到眼睛的路径,能搜索到邻近路径。简单地说,Metropolis光传输算法能够生成一条路径并存储其上的节点,同时能通过添加额外节点来调整并生成新的路径。随着对照片级真实感图像的要求越来越高,为Metropolis光传输算法开发高效且高度可扩展的光线跟踪器变得越来越重要。主要是渲染图像通常需要花费大量时间,开发高效且高度可扩展的光线跟踪器的困难来自不规则的存储器访问模式、光携带路径的不平衡工作量以及复杂的数学模型和复杂的物理过程。Wu等人[27]提出了一种基于物理的高度可扩展的并行光线追踪器,并在高性能计算机上进行了实现,利用多达26400个CPU内核,证明了其可扩展性,能够从复杂的3D场景生成逼真图像。
模拟高场非局部载流子传输同样需要3DMonteCarlo模拟方法,通过适当的量子校正涵盖散射效应,半经典的MC模拟能够给出准确的结果。但是,MC方法中3D模拟和量子校正都需要巨大的计算资源[28],由效率出发超级计算机的计算能力就至关重要了。文献[29]中,通过在高性能计算机上使用IntelMIC协处理器,进一步提高了之前工作中开发的3D并行的继承MC模拟器的并行效率。
对于高性能计算机在全数字设计和制造领域的集成应用,国家超级计算广州中心推出了天河星光云超算平台,以云服务的方式提供CAE计算和HPC访问,大大降低了数字设计的门槛,支持产品设计的全工作流。目前基于该平台支撑的项目有诸如国产大飞机、高铁等,都是国家工业生产中重要项目[30]。
3.3地球科学与环境工程
基于该应用领域,超级计算机的主要作用在于变革对自然界中诸如地理状况、海洋、大气等种种元素的模拟方式。以超算为平台,不仅能模拟出地球上每个时期的状况,甚至是对宇宙中的种种同样能进行模拟分析,让地球科学和环境工程的研究范围不再限于此时此地,而是更广阔的空间。
在宇宙学的层面,早在2015年就利用高性能计算机模拟出宇宙大爆炸后1600万年之后至今约137亿年的暗物质和中微子的演化过程,并将进一步寻找宇宙边界的报告[31]。中微子虽然是自然界中的基本粒子之一,在宇宙大爆炸约1s后与其他等离子体物质退耦,形成看不见的宇宙背景,通过物理实验和实际的天文观测都无法精确测量中微子的质量。在高性能计算机平台上,利用3万亿粒子来对宇宙中的中微子和暗物质的分布和演化进行模拟,开创了宇宙学中独立测量中微子质量的道路。
在地球外围层面上,大气变化同样是一个关注点。Xue等人[32]提出了一种基于高性能计算机的全球性大气动态模拟的混合算法。通过使用更灵活的域分区方案来支持节点中任意数量的CPU和加速器,算法能够充分利用超算的优良性能。当使用8664个节点,包括了近170万个核心时,可以有效地利用节点内的三个MIC卡,对两个IvyBridgeCPU(24个内核)实现4.35倍的加速。基于成功的计算-通信重叠,算法分别在弱和强缩放测试中实现了93.5%和77%的并行效率。
相较于广袤无边的宇宙,大部分人们对于脚下的土地更加关心。自然灾害如地震、泥石流等,可能会造成巨大的生命财产损失,而地下油气资源又是经济社会发展所必需的,利用超级计算机去探索大地也是发展所需要的。
中石油集团开发的用于石油油气勘探的GeoEast系统已经经过了十几年的发展更新,在数据模型、数据共享、一体化运行模式、三维可视化、交互应用框架、地震地质建模、网络运行环境和并行处理方面取得了多项创新与重大技术突破,是地震数据处理解释一体化系统。目前GeoEastV3.0版本软件总体达到国际同类软件先进水平,为推动中国石油勘探开发领域不断取得新成果发挥了重要作用[33]。但是,这样的一体化系统在使用中势必会产生大量的数据,这就对计算机的性能有了要求。因此,在GeoEast系统闻名世界的过程中,高性能计算机在幕后是功臣之一,保证了系统的顺利运行,助力石油勘探工作[34]。而文献[35]专注于地震模拟,提出了针对英特尔至强处理器的对于软件SeisSol的优化,以适用于高性能计算机的计算环境中,通过全摩擦滑动和地震波的耦合仿真实现了空前复杂的地震模型。移植到高性能计算机的SeisSol提供近乎最佳的弱缩放,在8192个节点上达到8.6DP-PFLOPS,在所利用的整个高性能计算机上能达到18~20DP-PFLOPS,成功模拟了1992年兰德斯地震。
3.4智慧城市云计算
城市发展经过多年的调整,已经在经济上有了相当进展,目前从如何让人们生活更加便捷出发,许多地区开始建设智慧城市。智慧城市(SmartCity)是指利用各种信息技术或创新意念,集成城市的组成系统服务,以提升资源运用的效率,优化城市管理和服务,进而能够提高居民生活质量。智慧城市的发展不仅仅是对生活的改变,还能促进生产方式的转变,解决在城市扩张及经济高速发展中产生的一系列“城市病”问题。智慧城市,代表的是城市的智慧,由智慧,能够衍生出智能中、知识和数字等更广泛的内涵[36]。
迄今为止,广州、北京、上海、宁波、无锡、深圳、武汉、佛山等国内城市已纷纷启动“智慧城市”战略,相关规划、项目和活动渐次推出。高性能计算机云平台应运而生,为智慧城市建立坚实、先进的基石。智慧城市由于其性能需求,对依赖的平台的计算能力的要求会更高,而超算的计算能力就能为智慧城市的建设提供相当助力。在2014年,就有中国首台千万亿次超级计算机“天河一号”在智慧城市中应用的报道,以其在天津滨海区的应用为例,“天河一号”的建筑信息领域的大数据平台通过对建筑信息建模,实现对建筑物从规划、设计、建造到后期物业管理理的全程数字化。此外,城市规划、气象预测、生物医疗、装备制造、汽车碰撞模拟等行业,也能更多地通过“天河一号”,实现大批量数据计算、分析和存储[37]。
而高性能计算机的持续计算速度进一步达到了亿亿次,所能提供的服务质量也更高,麒麟云平台被部署在1920个节点(15个机柜),其中64个节点(两个机框)作为云平台控制节点,其余节点为运行虚拟机的计算节点和分布式存储的存储节点。为方便管理,将计算节点进行分区管理,512个节点(4个机柜)为一区,用于满足生产环境、适配环境、测试环境需要。分布式存储没有分区,所有节点形成一个全局的分布式存储池,但在使用时可按需划分指定容量的区域供不同用途使用[38]。这种云超算服务采用麒麟安全云系统实现虚拟化技术,将虚拟机资源远程推送给用户使用[39]。可通过互联网远程管理虚拟机资源,使高性能计算机云平台资源能够被更多人使用,超算的计算能力能够更好地推动社会各个领域发展。2017年OpenStack的第15个版本中,麒麟云团队在核心功能解决的Bug数,以及Commits的数量均进入全球前20,麒麟云的发展是非常迅速的,与开源社区紧密结合,贡献突出[40]。
3.5材料科学与工程
在材料科学与工程的研究中,量子力学、经典动力学、统计力学是三大基础且主要的研究方向。研究人员致力于材料参数的建模、多尺度平台开发和新材料的设计、开发和优化。
分子动力学模拟在材料科学、生物化学和生物物理学等领域得到了广泛的应用。分子动力学(MD)是研究分子和分子的物理运动的计算机模拟方法,它提供分子尺度上的微观取样。基于能量细化的辅助建模AMBER(AssistedModelBuildingwithEnergyRefinement)[41]是用于MD模拟的使用最广泛的软件包之一。然而,对于具有百万原子级的系统的AMBERMD模拟的速度仍然需要改进。彭绍亮等人[42]在单CPU上的细粒度OpenMP并行、单节点CPU/MIC并行优化和多节点多MIC协作并行加速方面进行了改进。在高性能计算机上实现AMBER的并行加速策略,与原程序相比,实现了25~33倍的最高加速比。同时,对于计算资源的限制,分子动力学软件GROMACS不能大规模地进行满意的操作。Wang等人[43]提出了一种利用卸载模式加速GROMACS的方法。为了提高GROMACS的效率,提出了异步化、数据重组和数组重用等一系列方法。在这种模式下,GROMACS可以与CPU和IntelXeonPHITM多个集成内核(MIC)协处理器同时有效地配置,充分利用高性能计算机资源。
材料辐照效应(Materialirradiationeffect)是使用核能的重要关键之一。然而,由于高通量辐照设施和进化过程知识的缺乏,此效应的利用并不好。在高性能计算的帮助下,Hu等人[44]提出了一种新的数据结构,用于大规模并行模拟金属材料在辐照环境下的演化。基于所提出的数据结构,开发了一种新的分子动力学软件——CrystalMD,并在高性能计算机上进行了二兆个原子模拟,对MD辐射效应研究的模拟规模进行了扩展。
3.6其他领域
近年来,随高性能计算的推广,政府部门对超级计算机的重视,旧产业转向新产业的变化及大量有高性能计算需求的企业对超级计算机的需求增大,超算人才培养初见成效[45]。在应用软件开发等推动下,高性能计算机的适用范围逐渐向更多领域渗透。
源于人工神经网络的研究深度学习作为人工智能的一个新研究领域,在模仿人脑的机制来解释如图像、声音和文本数据上有了很大进展。例如,卷积神经网络(CNN)能准确地对大型图像进行识别处理,然而CNN的训练密集程度很高,特别是对于大型具挑战性的任务,卷积层的参数数据量庞大。而高性能计算机的易访问、高峰值等性能使学术界和工业界都可以轻松访问相关平台,并可以在合理的时间内训练中等和较大规模的CNN。使用基于输入展开以将其投影为矩阵乘法(Unfold+Parallel-GEMM)的算法的CAFFE、Theano、Torch7、Chainer、CNTK和TensorFlow等最先进的CNN基础设施已可以在高性能计算机上进行部署和应用。
增强现实技术AR(AugmentedReality),将真实世界信息模拟至虚拟世界,让人随时产生真实感受。通过高性能计算机高效地实现算法,可以数字虚拟孕育“互联网+”新业态,开发虚拟试衣、模拟试驾等应用项目。