卷积神经网络的方法范文

时间:2024-03-28 11:15:16

导语:如何才能写好一篇卷积神经网络的方法,这就需要搜集整理更多的资料和文献,欢迎阅读由公务员之家整理的十篇范文,供你借鉴。

卷积神经网络的方法

篇1

关键词:卷积神经网络 人体行为识别 Dropout

中图分类号:TP391.41 文献标识码:A 文章编号:1672-3791(2017)04(c)-0028-02

该文采用随机Dropout卷积神经网络,笔者将此法的优点大致概况为将繁琐杂乱的前期图像处理简易化,原来的图像不可以直接输入,现在的原始图像即可实现直输功能,因其特性得到广泛研究与应用。另外,卷积神经网络在图像的处理中能够将指定的姿势、阳光的照射反应、遮避、平面移动、缩小与放大等其他形式的扭曲达到鲁棒性,从而达到良好的容错能力,进而可以发现其在自适应能力方面也非常强大。因为卷积神经网络在之前建立网络模型时,样本库为训练阶段提供的样本,数量有限,品质上也很难满足要求,致使网络权值参数不能够完成实时有效的调度与整理。

1 卷积神经网络

据调查卷积神经网络由K.Fukushima在80年代提出,那时候它被称为神经认知机,这一认知成为当时的第一个网络,后来网络算法发生了规模性变革,由LeCun为代表提出了第一个手写数字识别模型,并成功投入到商业用途中。LeNet被业界冠以卷积神经网络的代表模型,这类系统在很多方面都起到了不容小趋的作用,它多数应用于各类不同的识别图像及处理中,在这些层面上取得了重要成果。

笔者经查阅资料发现卷积神经网络其实是由两个种类组合而来,它们分别是特征提取、分类器,这种组成我们可以看到特征提取类可由一定数量的卷积层以及子采样层相互重叠组合而成,全部都连接起来的1层或者2层神经网络,就是由分类器来进行安排的。卷积神经网络中的局部区域得到的感觉、权值的参数及子采样等可以说是重要网络结构特征。

1.1 基本CNN网络结构

图1中就是最为经典的LeNet-5网络模型结构图。通过图1中我们可以获悉,该模型有输入输出层,除这两层外还有6层,其征提取可在前4层中体现,后两层体现的是分类器。

在特征提取部分,6个卷积核通过卷积,是图像经尺寸为32×32的输入而得见表1,运算过程如式(1):

(1)

式中:卷积后的图像与一个偏置组合起来,使函数得到激活,因此特征图变诞生了,通过输出得到了6个尺寸的特征图,这6个尺寸均为28×28,近而得到了第一层的卷积,以下笔者把它简要称为c1;那么c1层中的6个同尺寸图再经由下面的子采样2×2尺寸,再演变成特征图,数量还是6个,尺寸却变成了14×14,具体运算如公式(2):

通过表2我们可以使xi生成的和与采样系数0.25相乘,那么采样层的生成也就是由加上了一个偏置,从而使函数被激活形成了采样层的第1个层次,以下我们简要称为s1;这种过程我们可反复运用,从而呈现出卷积层中的第2层,可以简要称之为c2,第2层简称s2;到目前为止,我们对特征的提取告一段落。

神经网络的识别,我们可以看到它是由激活函数而形成的一个状态,这一状态是由每个单元的输出而得;那么分类器在这里起到的作用是将卷积层全部连接起来,这种通过连接而使1层与上面1层所有特征图进行了串连,简要称之为c5;因而2层得到了退变与简化效应,从而使该神经网络成为经典,简要称之为F6,向量及权值是由F6 输送,然后由点积加上偏置得到结果的有效判定。

1.2 改进的随机DropoutCNN网络

1.2.1 基本Dropout方法

神经网络泛化能力能够得到提升,是基于Dropout方法的深入学习。固定关系中存在着节点的隐含,为使权值不再依附于这种关系,上述方法可随机提取部分神经元,这一特性是通过利用Dropout在网络训练阶段中随机性而得,对于取值能够有效的存储及保护存留,这一特性在输出设定方面一定要注重为0,这些被选择的神经元随然这次被抽中应用,但并不影响下次训练的过程,并具还可以恢复之前保留的取值,那么每两个神经元同时产生作用的规避,可以通过重复下次随机选择部分神经元的过程来解决;我们通过这种方法,使网络结构在每次训练阶段中都能呈现不同变化,使一些受限制的特征,不再受到干扰,使其真正能展现自身的优点,在基于Dropout方法中,我们可以将一些神经元的一半设为0来进行输出,随机神经元的百分比可控制在50%,有效的避免了特征的过度相似与稳合。

1.2.2 随机Dropout方法

Dropout方法就是随机输出为0的设定,它将一定比例神经元作为决定的因素,其定义网络在构建模型时得到广泛采用。神经元基于随机Dropout的方法是该文的重要网络输出途径,通过设定输出为0,使其在网络中得到变。图2是随机Dropout的加入神经元连接示意图,其在图中可知两类神经元:一类是分类器的神经元,这一阶段的神经元可分榱讲悖涣硪焕嗌窬元是由输出而形成的层次。模型在首次训练的阶段会使神经元随机形成冻结状态,这一状态所占的百分比为40%、60%,我们还可以看到30%及50%的神经元可能在网络随机被冻结,那么这次冻结可以发生在模型第二次训练,那么第三次神经元的冻结可从图示中得出70%及40%,还可以通过变化用人工设置,其范围值宜为35%~65%,那么网络神经元连接次序的多样化,也因此更为突出与精进,网络模型的泛化能力也得到了跨越势的提高。

2 实验及结果分析

2.1 实验方法

卷积神经网络通过实验,通过输入层呈现一灰色图像,该图像尺寸被设定成28×28的PNG格式,这里我们以图像框架图得到双线性差值,用来处理图像及原视频中的影像,将框架图的卷积核设定为5×5的尺寸,子采样系数控制值为0.25,采用SGD迭代200次,样本数量50个进行设定,一次误差反向传播实现批量处理,进行权值调整。实验采用交叉验证留一法,前四层为特征提取层,C1-S1-C2-S2按顺序排列,6-6-12-12个数是相应特征,通过下阶段加入随机Dropout,这阶段为双层也就是两层,进行连接,连接层为全体,从而可知结果由分类得出,又从输出层输出。

2.2 实验结果分析

识别错误率可通过卷积神经网络模型,及训练过程与检测过程中可查看到的。在训练阶段中,我们可以将Dropout的网络中融入200次训练,在将没有使用该方法的网络进行相互比较分析,我可以得知,后者训练时的识别错误率稍高于前者,前者与后的相比较所得的差异不是很大,进而我们可知使用Dropout方法,对卷积神经网络在泛化能力上得到有效的提升,从而有效的防止拟合。

3 结语

笔者基于Dropout卷积神经网络,人体行为识别在视频中进行, 通过Weizmann数据集检测实验结果,随机Dropout在分类器中加入。通过实验可以得知:随机Dropout的加入,使卷积神经构建了完美网络模型,并且使其在人体行为识别中的效率赢得了大幅度的提升,近而使泛化能力可以通过此类方法得到提高,可以防止拟合。

参考文献

[1] 其它计算机理论与技术[J].电子科技文摘,2002(6).

篇2

关键词关键词:人脸识别;卷积神经网络;图像识别;深度学习;模式识别

DOIDOI:10.11907/rjdk.171043

中图分类号:TP317.4

文献标识码:A文章编号文章编号:16727800(2017)005018603

0引言

人脸识别是近年来模式识别、图像处理、机器视觉、神经网络及认知科学领域的研究热点[12]。所谓人脸识别,是指给定一个静态人脸图像或动态视频,利用存储有若干已知身份的人脸数据库验证单个或多个人的身份[1]。作为生物特征识别的一个重要方面,人脸识别有着广泛的应用场景,如:档案管理系统、公安系统的犯罪身份识别、银行和海关的监控、安全验证系统、信用卡验证等领域。在人脸识别巨大魅力的影响下,国内互联网公司也开始了人脸识别应用的探索,如百度推出的人脸考勤系统、阿里支付宝的刷脸登录等功能都是人脸识别的具体应用。目前,人脸识别的代表性方法主要有以下几种:Turk和Pentland[3]提出的特征脸(Eigenface)方法;基于线性区别分析,Belhumeur 等[4]提出了Fisherface方法;基于统计理论,剑桥大学的 Samaria和Fallside[5]提出了隐马尔科夫模型[5](HMM),Lawrence 等[6]提出的通过多级自组织映射神经网络(SOM)[6]与卷积神经网络相结合进行人脸识别。上述方法虽然获得了良好的识别正确率,但需要人工参与特征提取,然后将提取的特征送入分类器进行识别,过程较为复杂。

卷积神经网络[79]是近年发展起来,并引起广泛重视的一种高效深度学习识别算法,其已成为当前语音分析和图像处理领域的研究热点。相比传统的神经网络而言,卷积神经网络具有权值共享、局部感知的优点。局部感知的网络结构使其更接近于生物神经网络,权值共享大大减少了模型学习参数的个数,同时降低了神经网络结构的复杂性。在图像处理领域,卷积神经网络的优点体现得更为突出,多维的图像数据可以直接作为网络的输入,特征提取和分类均集成在网络中,避免了传统识别算法中复杂的特征提取和训练分类器过程。除此之外,卷积神经网络对图像中的位移、比例缩放、旋转、倾斜或其它形式的变形具有很好的鲁棒性。为了解决传统人脸识别算法特征提取和训练分类器困难的问题,本文借鉴Lenet-5[10]的结构,设计一个适合ORL数据集人脸识别任务的卷积神经网络结构。

1卷积神经网络

1.1用于ORL人脸识别的CNN

本文提出的7层卷积神经网络模型由输入层、2个卷积层、2个降采样层、一个全连接层和一个Sigmoid输出层组成。卷积核的大小均为5×5,降采样层Pooling区域的大小为2×2,采用Average Pooling(相邻小区域之间无重叠),激活函数均采用Sigmoid函数。每一个卷积层或降采样层由多个特征图组成,每个特征图有多个神经元,上层的输出作为下一层的输入。此外,本文实验学习率的取值为常数1.5,该卷积神经网络结构如图1所示。

1.2卷积层

卷积神经网络中的卷积层一般称C层[11](特征提取层)。卷积层的输入来源于输入层或者采样层。卷积层中的每一个特征图都对应一个大小相同的卷积核,卷积层的每一个特征图是不同的卷积核在前一层输入的特征图上作卷积,然后将对应元素累加后加一个偏置,最后通过激活函数得到。假设第l层榫砘层,则该层中第j个特征图的计算表达式如式(1)。

xlj=f(∑i∈Mjxl-1iklij+blj)(1)

这里的Mj表示选择的上一层输出特征图的集合。

1.3降采样层

降采样层是对上一层的特征图进行下采样处理,处理方式是在每一个特征图内部的相邻小区域进行聚合统计。常见的下采样方式有两种:Average Pooling和Max Pooling。其中,Average Pooling是取小区域内像素的平均值,而Max Pooling是取小区域内像素的最大值。降采样层只是对输入的特征图进行降维处理,不改变特征图的个数。假设down表示下采样操作,βlj表示乘性偏置,blj表示加性偏置,则降采样层中某个特征图的计算表达式如下:

xlj=f(βljdown(xl-1j)+blj)(2)

1.4输出层

卷积神经网络的输出层一般为分类器层,常用的有径向基(RBF)函数输出单元、Sigmoid输出单元和Softmax回归分类器。在ORL人脸识别任务中,采用Sigmoid函数输出单元,输出层的编码采用非分布编码“one-of-c”的方式。由于采用Sigmoid函数,每一个单元输出值是0-1范围内的一个正数,代表该样本属于该单元对应类别的概率。数值最大的那个单元即为样本的预测类别。假设x为全连接层的输出,则输出层输出结果的计算表达式如下:

y=f(wTx+b)(3)

其中,f表示激活函数,这里采用Sigmoid函数,Sigmoid函数表达式如下:

f(x)=11+e-x(4)

2实验结果与分析

实验在Windows7 64位下的Matlab 2014a中进行,采用Matlab深度学习工具箱DeepLearnToolbox。PC的内存8G,CPU主频为3.2GHZ。

ORL人脸数据集是在1992年至1994年之间由AT &T Cambridge实验室拍摄的人脸图像所构成。数据集中包含40个不同人物的脸部图像,每个人物包含10张图像,总共400张。每个类别中的脸部图像在不同的时间拍摄得到,存在如下差异:①光线;②面部表情,如眼睛的闭合和睁开状态,面部是否带有微笑的表情等;③一些面部细节上的差异,如是否佩戴眼镜等。该数据集中所有人脸图像均为灰度图像,且图像中人物面部朝向基本一致,都朝向正前方。

图2为ORL数据集中部分人脸图像。数据集中每个原始图像大小为92*112像素,本文实验中对这些图像进行预处理,使每一幅图像的尺寸调整为28*28,并对每一副图像进行归一化处理,这里采用简单的除255的方式。随机选取每一个类别的8张图像作为训练样本,剩下的2张作为测试样本。因此,训练集有320个样本,测试集有80个样本。

2.1改变C3层卷积核个数对网络的影响

卷积神经网络性能的好坏与卷积层卷积核的个数密切相关,但每一个卷积层应该设置多少个卷积滤波器,目前并没有数学理论指导。为了研究卷积核个数对网络最终识别准确率的影响,本文保持C1层卷积核个数不变,通过改变C3层卷积核的个数,形成新的网络结构,用训练集训练网络,训练迭代次数均为60次,然后用测试集对每一种网络结构的性能进行测试。实验结果如表1所示。

从表1可以看出,当C3层有10个卷积核时,网络模型对测试集的识别正确率最高。卷积核的个数与识别准确率并不成正比关系,当卷积核个数过多时,网络的识别准确率会下降,这是因为在卷积核个数增加的同时,需要学习的参数也随之增加,而数据集中训练样本的规模较小,已不能满足学习的要求。

2.2改变C1层卷积核个数对网络的影响

由上述实验结果可知,C3层卷积核个数为10时,网络识别效果最好。因此,为了研究卷积层C1层卷积核个数对识别准确率的影响, C3层保留10个卷积核,改变C1层卷积核的个数构造新的网络结构,用测试集针对不同网络结构就测试集和训练集的识别准确率进行测试。实验结果如表2所示。

从表2的实验结果可以得到相同结论:卷积层卷积核的个数并非越多越好,卷积核个数过多,网络需要学习的参数也随之增加,当训练集中样本个数无法满足学习需要时,网络识别准确率就会下降。

2.3与其它算法比较

为进一步说明本文所提卷积神经网络结构的有效性和优越性,将该结构(C1层6个卷积核,C3层10个卷积核,学习率1.5)的实验结果与其它识别方法在ORL数据集上的实验结果进行对比,结果如表3所示。可以看出,本文所提方法比Eigface、ICA的识别效果好,与2DPCA方法的识别准确率一样,比FisherFace方法的识别准确率只低了0.20%,这进一步证实了本文所提网络结构的有效性。

3结语

本文在理解Lenet-5结构的基础上,提出一种适用于ORL人脸数据集的卷积神经网络结构。实验结果表明,本文提出的卷积神经网络结构,不仅避免了复杂的显式特征提取过程,在ORL数据集上获得98.30%的识别正确率,而且比大多数传统人脸识别算法的效果都好。此外,本文还通过大量验就每个卷积层卷积核个数对网络识别准确率的影响进行了详细研究与分析,这对设计CNN网络结构具有一定的参考意义。

参考文献参考文献:

[1]李武军,王崇骏,张炜,等.人脸识别研究综述[J].模式识别与人工智能,2006,19(1):5866.

[2]张翠平,苏光大.人脸识别技术综述[J].中国图象图形学报,2000,5(11):885894.

[3]YANG M H.Face recognition using kernel methods[J].Nips,2002(2):14571464.

[4]祝秀萍,吴学毅,刘文峰.人脸识别综述与展望[J].计算机与信息技术,2008(4):5356.

[5]SAMARIA F,YOUNG S.HMMbased architecture for face identification[J].Image and Vision Computing,1994,12(8):537543.

[6]LAWRENCE S,GILES C L,TSOI A C.Convolutional neural networks for face recognition[C].Proceedings CVPR'96,1996 IEEE Computer Society Conference on Computer Vision and Pattern Recognition,1996:217222.

[7]陈耀丹,王连明.基于卷积神经网络的人脸识别方法[J].东北师范大学学报:自然科学版,2016,48(2):7076.

[8]卢官明,何嘉利,闫静杰,等.一种用于人脸表情识别的卷积神经网络[J].南京邮电大学学报:自然科学版,2016,36(1):1622.

[9]李彦冬,郝宗波,雷航.卷积神经网络研究综述[J].计算机应用,2016,36(9):25082515.

[10]LCUN Y,BOTTOU L,BENGIO Y,et al.Gradientbased learning applied to document recognition[J].Proceedings of the IEEE,1998,86(11):22782324.

篇3

>> 基于PCA—LDA与蚁群优化BP神经网络的人脸识别算法 基于粒子群算法和神经网络的人脸识别分类器研究 基于卷积神经网络的人脸识别研究 基于BP神经网络的人脸识别研究 基于PCA算法的人脸识别技术研究 基于改进PCA算法的人脸识别研究 基于MB_LBP和PCA算法的人脸识别研究 基于BP神经网络的人脸识别算法的实现 基于模糊混沌神经网络的人脸识别算法 基于卷积神经网络的人脸识别 基于子图分割和BP神经网络的人脸识别方法 基于EMPCA和RBF神经网络的人脸识别 基于改进PCA与FLD算法的人脸识别 基于模糊人工神经网络的人脸识别研究 基于改进的LBP和PCA算法的人脸识别 基于并行PCA算法的人脸识别系统的研究 基于PCA和SVM的人脸识别 基于PCA和FLD的人脸识别方法 基于快速PCA―SVM的人脸识别研究 基于主分量分析的BP神经网络人脸图像识别算法 常见问题解答 当前所在位置:l.

[6]刘学胜.基于PCA和SVM算法的人脸识别[J].计算机与数字工程,2011(7).

[7]廖海滨,陈庆虎. 基于因子分析的实用人脸识别研究[J].电子与信息学报,2011(7).

[8]蔡晓曦,陈定方.特征脸及其改进方法在人脸识别中的比较研究[J].计算机与数字工程,2007(4).

篇4

关键词 深度神经网络 图像分类 车型识别 预测

中图分类号:TP317.4 文献标识码:A

0 引言

所谓的深度学习是根据具有多层结构的人工神经网络所提出。在具体的深度学习中,主要借助模拟神经系统中的层次结构,来进行数据结构特征的反映,一般来说,细节用低层次进行表示,抽象数据结构则用高层次来表示,利用这种方式,能够进行数据挖掘学习,满足学习要求。在传统的车型识别发展中,主要涉及到的技术包括模式识别、特征选择和提取以及检测分割等方面内容,在技术发展中,存在的难点主要涉及到如何将完整的目标车辆区域进行分割,这是项基础工作,也是难点所在。这结合实际需求,对于不同拍摄角度下的汽车图片,包括皮卡车、SUV、面包车以及小轿车进行车型识别,其目标质量分割质量则是最为关键的技术,直接影响到最后的判断效果。所以,应该重视进行具有代表性特征的选择处理,并相应转化成有效的参数过程。在获取特征参数后,则应该结合项目要求来选择合理的分类器,这样才能保障识别的准确率。结合汽车车型识别问题的要求,这里网络输入则是原始图像,利用神经网络优势,原始数据经过卷积层、完全连接层以及Softmax 层的培训学习,通过这种深度神经网络来进行分析处理,免于上述存在难度的图像分割、手工提取等过程。

1数据集

这里的车型识别目标的数据集主要包括皮卡车、SUV、面包车以及小轿车等四种类型。其中,训练集和测试集分别包括1025张和368张原始图片。此数据集中,包括不同摄像角度中的汽车图像照片,具有背景复杂、图像大小不统一,车辆在图片中所占比例具有较大差异性等方面问题,这些都在一定程度上造成车型识别的难度上升。

在预处理中,为了保证网络输入的一致性,对于原始图像进行调整处理为256?56?尺寸。在此基础上,对于图像RGB三个通道的均值进行计算,并进行均值标准化的处理。在具体的网络训练测试的过程中,主要则是选取224?24? 的样本作为输入。

2网络结构探讨

结合文献所提出的深度神经网络VGG16的优势,我们将其应用在汽车车型识别问题中。VGG16网络具有较强的优势,主要包括5个堆栈式的卷积神经网络ConvNet,以及3个完全连接层以及1个Softmax层,由此可见,其属于“网络中的网络”架构。在每个每个ConvNet中,还有多个卷积层所构成,然后紧跟随着Max-Pooling层。在进行卷积以及池化处理的基础上,进行三层完全连接处理,同时,Softmax层的输入则是最后一个完全连接曾的输出,在这基础上,实现车型分类的要求。结合实际需求,将非线性的ReLU层加入该网络中,这样就会让ReLU来处理卷积层和完全连接层的输出,保证训练时间有效降低。另外,还将一种正则化Dropout方式应用在网络中,避免出现完全连接层中的过拟合问题。

另一个神经网络Alexnet,结构稍微简单一些,主要包括5卷积层、3个完全连接层、Softmax层等几部分,在进行部分卷积层处理后,在进行Max- Pooling层处理。在此网络中,同样采用非线性的ReLU层,所采用难度重叠池化方式,也能有效保证尽量降低过拟合的问题。

3实验结果分析

结合上述分析的深度神经网络VGG16和AlexNet的基础上,进行Gaffe框架的搭设,为了保证运算效率,建立在GeForce GTX TITAN X CPU的工作站中。经过统计,单一网路训练大约为2小时,一张图片测试大约为0.2秒。在应用上述网络测试、训练之外,在分类过程中,还应用了经典的分类算法KNN。经过实验分析,可以看出,VGG16网络能够具有比较好的分类结果,能够实现准确率为97.3%,而AlexNet网络准确率达到为93.0%,KNN算法不能有效处理较为复杂背景的图片,分类准确率仅为52.3%。在具体的案例中,分析VGG16网络错误分类的情况,面包车具有完全正确的分类效果。在错误分类的SUV车型中,究其原因,主要包括:车颜色有两部分组成,红色部分则和皮卡车车型相同;车型结构太类似于皮卡车;背景中加入其他车型,这样会造成分类结果不准确。如果图片中仅仅包括车头的情况,在进行车型识别中也存在较大的难度,不同车型从前面角度进行观察,并没有太大的差异化,这点应该明确指出。

4结语

这里采用深度学习方法,结合先进的深度神经网络,以及功能强大的计算机工作站,对于四类汽车进行识别实验研究。经过试验表明,VGG16网络具有最好的分类效果,传统的经典分类算法往往仅为其准确率的一半左右。所以,可以看出深度神经网络具有强大的学习能力,能够在图像分类问题中表现出很大优势,应该不断优化深度神经网络的结构,以便其适用于更多的图像分类要求。

参考文献

[1] Hinton G E, Osindero S, Teh Y W.A Fast Learning Algorithm For Deep Belief Nets[J]. Neural Computation, 2006, 18(7):1527-1554.

篇5

内容简介:腾讯的月活跃用户8.3亿

微信月活跃用户4.4亿

QQ空间月活跃用户6.5亿

游戏月活跃用户过亿

如今腾讯的数据分析已经能做到始终“不落地”,即全部的实时处理。腾讯大数据平台有如下核心模块:TDW、TRC、TDBank、TPR和Gaia。简单来说,TDW用来做批量的离线计算,TRC负责做流式的实时计算,TPR负责精准推荐,TDBank则作为统一的数据采集入口,而底层的Gaia则负责整个集群的资源调度和管理。李勇还特别强调了数据平台体系化是应用基础,数据应用商业化是价值导向。

数据平台体系化是应用基础,数据应用商业化是价值导向。

腾讯深度学习平台的挑战深度神经网络模型复杂,训练数据多,计算量大

模型复杂:人脑有100多亿个神经细胞,因此DNN的神经元和权重多

训练数据多:大量训练数据才能训练出复杂模型

微信语音识别:数万个神经元,超过50,000,000参数,超过4,000,000,000样本,单机训练耗时以年计,流行的GPU卡需数周

深度神经网络需要支持大模型

更深更宽的网络能获得更好的结果

以图像识别为例,增加卷积层的filter数量,加大模型深度等,可获得更好的模型质量

深度神经网络训练中超参数多,需要反复多次实验

非线性模型:代价函数非凸,容易收敛到局部最优解

敏感的超参数:模型结构、输入数据处理方式、权重初始化方案、参数配置、激活函数选择、权重优化方法等

数学基础研究稍显不足,倚重技巧和经验

腾讯深度学习平台Mariana

腾讯有广泛的深度学习应用需求,其挑战如下模型复杂,训练数据多,计算量大

需要支持大模型

训练中超参数多,需要反复多次实验

Mariana腾讯深度学习平台提供三个框架解决上述问题

Mariana DNN: 深度神经网络的GPU数据并行框架

Mariana CNN: 深度卷积神经网络的GPU数据并行和模型并行框架

Mariana Cluster: 深度神经网络的CPU集群框架

Mariana已支持了训练加速、大模型和方便的训练作业

微信语音识别6 GPU做到4.6倍加速比

微信图像识别4 GPU做到2.5倍加速比,并支持大模型

篇6

【关键词】人工智能 图像识别 深度学习

1 概述

图像识别技术是人工智能研究的一个重要分支,其是以图像为基础,利用计算机对图像进行处理、分析和理解,以识别不同模式的对象的技术。目前图像识别技术的应用十分广泛,在安全领域,有人脸识别,指纹识别等;在军事领域,有地形勘察,飞行物识别等;在交通领域,有交通标志识别、车牌号识别等。图像识别技术的研究是更高级的图像理解、机器人、无人驾驶等技术的重要基础。

传统图像识别技术主要由图像处理、特征提取、分类器设计等步骤构成。通过专家设计、提取出图像特征,对图像M行识别、分类。近年来深度学习的发展,大大提高了图像识别的准确率。深度学习从大量数据中学习知识(特征),自动完成特征提取与分类任务。但是目前的深度学习技术过于依赖大数据,只有在拥有大量标记训练样本的情况下才能够取得较好的识别效果。本文认为研究如何在标记数据有限的情况下继续利用深度学习完成物体识别任务具有重要意义。这也是未来人工智能研究的重要方向之一。

2 传统图像识别技术

传统的图像识别技术包括:图像获取、预处理、特征提取、分类。在图像输入后,需要先对图像进行预处理。一幅标准灰度图像,如果每个像素的像素值用一个字节表示,灰度值级数就等于256级,每个像素可以是0~255之间的任何一个整数值。一幅没有经过压缩处理的640×480分辨率的灰度图像就需要占据300KB的存储空间。通常我们需要将图片的亮度及对比度调整合适,才能使图片更加清晰、便于观察。

许多采集到的图片带有或多或少的噪声,需要对图片的噪声进行消除。对图片噪声的消除可以使用不同的去噪方法,如中值滤波、算数平均滤波、平滑线性滤波和高斯滤波等。不同滤波器分别适用于不同情况的噪声。如椒盐噪声便适合使用中值滤波器,高斯噪声便适合使用平滑线性滤波和高斯滤波。有时候,我们需要对图像细化处理(如指纹细化,字符细化等),以便获取主要信息,减少无关信息。细化操作,可以得到由单像素点组成的图像轮廓,便于后续特征提取操作。

基本的图像特征提取包括边缘、角点等提取。一般使用不同的特征提取算子结合相应的阈值得到这些关键点。另一类在频域中进行特征提取的方法主要是通过傅里叶变换,将图像基于频率分为不同的部分,从而可以在频谱中反映出原始图像的灰度级变化,便可得到图像的轮廓、边缘。

在完成图像的预处理和特征提取之后,我们便能够对图像进行识别、分类。常用的分类器有K-近邻(KNN),支持向量机(SVM),人工神经网络(ANN)等等。K-近邻算法原理是,当一个样本的k个最相邻的样本中大部分属于某一类别时,该样本也应当属于同一类别。支持向量机是通过寻找支持向量,在特征空间确定最优分类超平面,将两类样本分开。人工神经网络模仿生物大脑中的神经网络结构,通过误差反向传播不断优化参数,从而得到较好的分类效果。

3 基于深度学习的图像识别技术

一般认为深度学习技术是由Hinton及其学生于2006年提出的,其属于人工神经网络分支。深度神经网络模仿人脑的神经机制来分析样本,并尽可能地对样本的特征进行更深度的学习。以图片为例,利用深度学习技术对样本的特征进行学习时,由低层特征到高层特征越来越抽象,越来越能表达语义概念。当样本输入后,首先对图像进行卷积与下采样操作,卷积和下采样操作是为了进行特征提取和选择。以原始像素作为输入,深度学习技术可以自动学习得到较好的特征提取器(卷积参数)。深度学习的训练过程,首先将当前层的输出作为下一层的输入,进行逐层分析,使得每一层的输入与输出差别尽可能小。其后,再联合优化,即同时优化所有层,目标是分类误差最小化。

传统的深度神经网络往往网络中的节点数太过庞大,难以训练。人们构造出卷积神经网络,以权值共享的方式减少了节点数量,从而能够加深学习的深度,使系统能学习到更抽象、更深层的特征,从而提高识别正确率。目前较成功的深度学习网络结构有AlexNet、GoogLeNet、ResNet等。

与传统识别技术相比,深度学习技术具有以下优势:

(1)无需人工设计特征,系统可以自行学习归纳出特征。

(2)识别准确度高,深度学习在图像识别方面的错误率已经低于人类平均水平,在可预见的将来,计算机将大量代替人力进行与图像识别技术有关的活动。

(3)使用简单,易于工业化,深度学习由于不需要领域的专家知识,能够快速实现并商业化,国内较知名的深度学习创业公司有专注人脸识别的Face++、研究无人车的驭势科技等。

4 存在问题与未来展望

虽然深度学习具备诸多优点,但目前来看深度学习仍有许多不足之处。首先,由于深度学习模型为非凸函数,对其的理论研究十分困难,缺乏理论保证。在对数据进行调整时,仍是简单的“试错”,缺少理论支撑。

同时,由于深度学习过于依赖数据量和计算资源。对一个新概念的学习,往往需要数百个甚至更多有标记的样本。当遇到有标记的样本难以获取或者代价太大时,深度学习就无法取得好的学习效果。并且深度学习需要十分昂贵的高性能GPU,这使得深度学习难以平民化。目前深度学习训练速度较慢,往往需要几天甚至一个月。其模型扩展性差,缺少“举一反三”的能力,样本稍加变化,系统性能便会迅速下降。目前的深度学习属于静态过程,与环境缺乏交互。

对其的解决方案目前主要有两点:

(1)针对于模型扩展性差的问题,通过引入迁移学习,研究不同任务或数据之间的知识迁移,提高模型的扩展能力、学习速度,同时降低学习成本,便于冷启动。

(2)与强化学习结合,研究在动态环境下进行深度学习,提高深度学习与环境交互的能力。

参考文献

[1]蒋树强,闵巍庆,王树徽.面向智能交互的图像识别技术综述与展望[J].计算机研究与发展,2016:113-122.

[2]张翠平,苏光大.人脸识别技术综述[J].中国图象图形学报,2000:885-894.

[3]梅园,赵波,朱之丹.基于直线曲线混合Gabor滤波器的指纹增强算法[J].计算机科学,2016.

[4]孙志军,薛磊,许阳明,王正.深度学习研究综述[J].计算机应用研究,2012:2806-2810.

[5]庄福振,罗平,何清,史忠植.迁移学习研究进展[J].软件学报,2015:26-39.

[6]高阳,陈世福,陆鑫.强化学习研究综述[J].自动化学报,2004:86-100.

篇7

关键词:BP神经网络;Morlet小波;决策理论;Hilbert变换

中图分类号:TP18文献标识码:A文章编号:1009-3044(2009)32-9050-02

Wireless Signal Simulation Algorithm for Automatic Identification

ZHANG Meng

(Purchasing, China Railway Communication Co., Ltd., Beijing 100140, China)

Abstract: We have firstly discussed the modulation distinguishing method based on rational budgeting theory through the method of comparing Tine-Frequency analysis of the analysis signals formed by Hibert Transform . And on the basic of analyzing the fault of this method ,we put forward the distinguishing method based on NN. When NN is distinguishing signals, it mainly depends on the different positions of peak. Wavelet Transform here equals a mathematic microscope .it reflects the inexorable links between the signal categories and the positions of peak. Taking advantage Wavelet Transform and the simple three-layer BP NN, the more accurate Time-Frequency characteristics of signals to be distinguishing can be drawn.

Keywords: BP ANN; Morlet Wavelet; BudgetingTheory; Hibert Transform

在军事电子对抗等多方面的重要应用,通信信号调制的自动识别分类问题也相继发展起来。无线电信号调制实识别就是要判断截获信号的调制种类。为此,需要事先对其特征进行选定,并确定它们与相应调制种类相联系的取值范围,然后再对信号进行特征测量,并根据测量结果对信号的调制进行分类判决。

如果把无线电信号的调制识别与分类视为一种模式识别问题,那末,从模式识别理论来看,模式分类是模式识别的一个子系统。因此,在模式识别理论框架下,无线电信号的调制识别是一个总体概念。而调制分类则只是调制识别的一个分支[1]。

1 基于决策理论的模拟调制方式识别方法

此算法主要实现区分AM、FM、DSB、LSB、USB、VSB、AM-FM等七种调制样式,所分析的对象序列s(n)是由接收机中频输出并经过采样得到的,这样s(n)的采样频率和载频都已知,分别记做Fs和Fc。算法分两个步骤:

第一步,根据信号的包络特征将AM、USB、LSB与FM区分开,因为前三种信号的包络不为恒定值,而FM的包络理论上是恒定值(实际中接近恒定)。因而可以从中提取一个特征参数R。参数R反映了零中心归一化包络的功率谱特征,FM的零中心归一化包络接近零,因其参数R应远远小于前三种信号。实际中若R

第二步,根据信号频谱的对称性,将AM与USB与LSB区分开,因为AM的单边频谱关于载频是近似对称的,USB和LSB的单边频谱对于载频来说分别只有上边频和下边频。因而可以从中提取另一个特征参数 。理论上,由于AM的上下边频对称,所以AM的P接近零,而LSB和USB的P分别接近1和-1。实际中若|P|< 0.5,判为AM信号,若P>0.5,判为LSB,P

第三步,零中心非弱信号段瞬时相位非线性分量绝对值的标准偏差:σap 。

σap由下式定义:

(1)

式中,at是判断弱信号段的一个幅度判决门限电平,c是在全部取样数据Ns中属于非弱信号值的个数,?准NL(i)是经零中心化处理后瞬时相位的非线性分量,在载波完全同步时,有:?准NL(i)= φ(i)-φ0

式中:,φ(i)为瞬时相位。用σap来区分是DSB信号还是AM-FM信号。

第四步,零中心非弱信号段瞬时相位非线性分量的标准偏差:σdp。

σdp由下式定义:

(2)

σdp主要用来区别不含直接相位信息的AM、VSB信号类和含直接相位信息的DSB、LSB、USB、AM-FM信号类,其判决门限设为t(σdp) 。

2 决策论方法的改进

前面介绍的基于决策理论的模拟调制方式识别方法存在缺陷针对上述问题,人们又提出了基于神经网络(NN)的识别方法。

2.1 BP网络作为分类器的模拟调制方式识别方法

该算法用基于有监督训练的神经网络模型BP网络作为分类器,用BP模型多层感知网络与反向传播学习算法相结合,通过不断比较网络的实际输出与指定期望输出间的差异来不断的调整权值,直到全局(或局部)输出差异极小值,不难想象该神经网络对模型细节中的诸多问题均有良好效果。

基于NN的模拟信号调制识别框图[2]如图1所示,该NN采用三层结构即,1个输入层,1个输出层,1个中间层。中间层可采用多层。但由于受到计算复杂性的限制,目前采用单层或双层中间层的NN比较多见。本图中间层采用单层25个节点,输入层和输出层的节点数取决于信号特征参数的个数和信号的分类数,因而分别为4和7。

神经网络具有信息分布式存储、大规模自适应并行处理和高度容错特性,适用于模式识别的基础。其学习能力和容错特性对不确定性模式识别具有独到之处[3]。通信信号在传播过程中受到信道噪声的污染,接受到的信号是时变的、非稳定的,而小波变换特别适用于非稳定信号的分析,其作为一种信息提取的工具已得到较广泛的应用。小波变换具有时频局部性和变焦特性,而神经网络具有自学习、自适应、鲁棒性、容错性和推广能力,两者优势的结合可以得到良好的信号模式自动识别特性,从而形成各种处理方法。

2.2 基于小波的特征提取和识别方法

小波特别适用于非稳定信号的分析,作为一种特征提取的工具已得到较为广泛的应用。小波的重要特点是它能够提供一个信号局部化的频域信息。小波变换能够将各种交织在一起的不同频率组成的混合信号分解成不同频率的块信号,它对不同的时间和频率有不同的解释,因此,对调制信号进行小波分解,得到不同水平下的细节信息,这些信息对于不同类别的调制信号来说是有差别的[4]。

在实际应用中,小波变换常用的定义有下列两种:

(3)

(4)

式中,星号*表示共轭。式(3)表示小波变换是输入信号想x(t)和小波函数φα, τ(t)的相关积分;式(4)用卷积代替了相关积分。两种定义在本质上是一致的。本为采用后者。

将式(4)中的τ和t离散化,即令τ=kTs,及t=iTs,得连续小波变换公式(4)的离散形式,又称小波系数:

(5)

Morlet小波是一种单频复正弦调制高斯波,也是最常用的复值小波。其实、频两域都具有很好的局部性,它的时域形式如下:

(6)

虽然信号特征有很多种,神经网络在进行信号识别时,主要是依据谱峰位置的不同,因此提取信号特征主要任务就是寻找信号类别与谱峰位置间的必然联系。而小波变换在这里则相当于一个数学显微镜,通过它,可以详细了解各类信号在不同低频段上的频谱构成。

整个系统在PC机上进行仿真,采用Windows2000操作系统和Matlab6.1和Cool Edit2.0进行声音录制。

在仿真中,采用44K的采样率,录制了一段歌声和一段笑声,用Matlab生成22K的正弦载波,并根据第二章的各调制样式的定义,生成了各个仿真的调制波形。并转化成.wav文件录在电脑中。

3 结束语

本文仅限于理论理论研究,用MatLab仿真实现,没有用DSP芯片等物理电路实现,仅为实际实现提供理论指导。

参考文献:

[1] 罗利春.无线电侦察信号分析与处理[M].北京:国防工业出版社,2003.

[2] 杨小牛,楼才义,徐建良.软件无线电原理与应用[M].北京:电子工业出版社,2001.

篇8

关键词:PCA算法;人脸识别;五级并行PCA模型;权重计算;均值滤波

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)19-0147-02

Research on Face Recognition System Based on Parallel PCA Algorithm

ZHAO Ya-peng

(College of Information Science and Engineering, Shandong University of Science and Technology, Qingdao 266590, China )

Abstract:In order to solve the problem of fast and accurate face recognition, a face recognition method based on parallel PCA algorithm is proposed. Using principal component analysis (PCA) method can reduce the dimension of features, easy to implement, training time is short, the design and implementation of a parallel algorithm for PCA, first of all according to the whole image to extract the 4 part of face images, then the whole image and 4 partial images at the same time by the same structure of the PCA model of learning, face feature vector extraction, the Euclidean distance for matching calculation of the test images and training images, finally through the test image with the five level parallel PCA model identification results are weighted decision, in order to achieve face recognition. Using the image data of the ORL face database , the simulation results in Matlab show that the method has a great degree of improvement in accuracy, the recognition speed is relatively fast, with a high degree of robustness.

Key words:PCA algorithm;Face recognition;Five level parallel PCA model;Weight calculation;Mean filter

1 概述

随着智能终端设备(手机、Pad、门禁等)的不断发展,身份识别已经成为我们日常生活的重要组成部分,身份验证技术被广泛应用于各个领域,特别是人们对于个人隐私信息的保护,使得身份识别再次成为关注的焦点。人脸识别作为身份识别的重要手段之一,因其具有识别率高、采集性强、接受性高等特点,在身份识别的各类方法中具有独特的优势,成为了目前比较热门的研究领域。

目前,卷积神经网络(Convolutional Neural Networks)是图像识别领域最重要的研究热点,而且在语音识别领域也取得了不错的效果,但是卷积神经网络的整个训练过程比较费时,而且实现相对复杂,而基于PCA算法的人脸识别技术因其自身存在的许多缺陷,一直没有被广泛应用,但该方法实现简单、学习速度较快,因此,本文主要研究改进的并行PCA算法,以弥补传统PCA算法在人脸识别领域的不足。

本文提出的基于并行PCA算法的人脸识别技术,首先对原始图像进行预处理,如灰度归一化和中值滤波等操作,以消除图像噪声、光照等因素造成的影响,使得特征提取更加准确可靠。然后,通过5级并行PCA模型获取数据的不同特征矩阵,然后将训练图像和测试图像分别进行子空间的投影,利用欧氏径向基函数(Euclidean Radial Basis Function)进行人脸的匹配,最后根据训练得到的权值向量进行加权决策。本文通过ORL人脸数据库的仿真实验证明,该算法的效果明显好于PCA算法。

2 并行PCA算法

PCA(Principal Component Analysis)即主成分分析技术,PCA是基于K-L变换的统计学分析方法,是多元分析中常用的方法,其基本思想是将高维数据投影到低维空间,主要过程在于特征值的计算和矩阵的降维。将PCA应用于人脸识别时,首先将图像转化成矩阵向量,然后进行矩阵的奇异值分解(Singular Value Decomposition),将高维向量通过计算得到的特征向量矩阵投影到低维的向量空间,从而减少数据的计算量。

2.1 基于并行PCA算法的人脸识别流程

本文中提出的并行PCA算法,正是基于上述的PCA算法,通过建立5级的PCA算法模型同时进行数据特征的学习,使得最终的人脸识别准确率得到进一步的提高,具体的人脸识别流程如图1所示。

2.2 并行PCA算法的实现的步骤

2.2.1 人脸图像的预处理

首先,需要把ORL人脸数据数据库的所有训练图像大小进行归一化,并转化为像素矩阵,矩阵大小记为,为矩阵的行数,为矩阵的列数。之后利用均值滤波和灰度归一化进行图像的去噪处理,以消除光线等问题对图像造成的影响,以方便后期的特征提取等操作。

2.2.2 人脸图像的PCA降维

根据PCA的原理,可以将每一张图像看成是一个高维的向量,所有的图像可以看成是这个高维空间中的一点,PCA要做的就是找出另外一个尽可能多的反应图像特征的低维空间。

假如样本由n张大小为p*q的人脸图像组成,那么每一张图像可以保存为一列向量,向量维数是p*q,真个样本可以看成是一个行数为n,列数为p*q的矩阵记为矩阵A。

根据上述过程,首先求出矩阵A的协方差矩阵,然后求出协方差矩阵的特征值,选取前m个最大的特征值,然后求出对应的特征向量,组成一个特征矩阵。通常所说的“特征脸”就是这些特征向量,而特种功能矩阵就是“特征脸”空间或者说子空间。然后可以将每一张图片投影到该子空间,得到了每一张图像的投影矩阵(l*m)。

2.2.3 人脸图像的识别

对于待识别的图像,也可以看成是一列向量,投影到子空间得到一个投影矩阵,然后一一求出这个投影矩阵与样本图像投影矩阵最相似的。然而有可能该人脸不是人脸库中的,所以最相似的人脸也不一定是同一个人脸,还需要设置一个阈值来判断待识别人脸是否是人脸库中的。

人脸识别部分正是基于上述的PCA算法,在本文所提出的并行PCA模型中,是由5级的PCA模型同时进行人脸识别这一操作,最后根据训练得到的权值向量进行决策,通过使用多个PCA模型,从而使得整个识别过程的准确率得到进一步的提升。

3 系统设计及实现

3.1 系统总体设计

本文中所提出的基于并行PCA算法的人脸识别系统,包括人脸图像采集模块、图像预处理模块、识别模块。人脸图像采集模块主要是采集训练图像数据和测试图像数据,并由原始图像提取出4幅与之对应的部分图像;图像预处理模块主要就是进行图像归一化和图像的去噪工作,图像的归一化包括大小归一化和灰度归一化,可以使用比较常见的直方图均衡化等技术,而图像的去噪可以使用中值滤波技术,以去除比较常见的高斯噪声等;人脸识别模块是基于5级相互独立的PCA模型进行特征值的学习和比对,而且通过训练得到的权值向量进行最终的是脸识别决策。整个系统的实现是基于Matlab进行仿真实验的,实验数据来自剑桥大学AT&T实验室创建的ORL人脸数据库。

3.2系统功能模块实现

3.2.1人脸图像采集实现

图像采集模块主要就是将存储在本地的图像文件通过Matlab的imread函数读入矩阵中,以方便后期的PCA操作,其核心语句为Image{t}=imread([[filepath,FilDir(ii).name],'\',ImDir{ii}(jj).name]);

使用上述语句即可读入训练数据和测试数据文件。

3.2.2 图像预处理模块

该模块的主要任务就是利用中值滤波和直方图均衡化进行图像的去噪工作,以消除不同光照和图像噪声的影响,提高准确率。其核心代码为:

S1=zeros(1,256);

for i=1:256

for j=1:i

S1(i)=GP(j)+S1(i);

end

end

S2=round((S1*256)+0.5);

for i=1:256

GPeq(i)=sum(GP(find(S2==i)));

end

3.2.3 识别模块

图像经过之前的预处理之后,需要将图像矩阵转化为列向量,一幅图像就是一列向量,整个训练图像构成了整个特征空间矩阵,测试图像也会转化为一列向量,之后会利用矩阵之间的运算进行图像的分析计算。识别模块的工作就是根据测试图像和之前所有的训练数据进行对比,查找到与之最相似的图像,实验的结果如图2所示。

4 结论

PCA算法作为传统的人脸识别算法,因其自身存在的许多缺陷而没能发挥较好的作用,但是其自身具有其他算法所不具有的特点,本文设计的并行PCA算法虽然是基于PCA算法,但是借鉴了卷积神经网络的多层结构,而且使用加权操作进行最终人脸识别的决策。基于ORL人脸数据库的测试结果表明,该并行PCA算法的准确率和鲁棒性均得到了进一步的提升,与其他的单独PCA算法具有十分明显的优势。

参考文献:

[1] 张利芳. 基于PCA算法的人脸识别系统研究[D].太原:中北大学,2015.

[2] 杨海燕,蒋新华. 基于并行卷积神经网络的人脸关键点定位方法研究[J]. 计算机应用研究, 2015, 32(8): 2517-2519.

[3] 杨颖娴. 基于PCA算法和小波变换的人脸识别技术[J]. 微电子与计算机, 2011, 28(1): 92-94.

[4] 段宝彬,韩立新. 改进的卷积神经网络及在碎纸拼接中的应用[J]. 计算机工程与应用, 2014, 50(9): 176-181.

篇9

关键词:残差网络;人脸图像:年龄分类:非受限条件:Adience数据集

中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2017)14-0169-02

1概述

人脸图像包含很多信息,如身份、表情、姿态、性别和年龄。其中,年龄是人的重要生物特征,可以应用于多种场景,如基于年龄的人机交互系统、基于年龄的访问控制、电子商务中个性营销及刑事案件侦查中的年龄过滤等n,。很多研究者在人脸图像年龄估计方面做了大量研究,早期,主要用Gabor,LBP,SFP和BIF等提取特征以及SVM方法进行年龄分类,这些人工提取特征的方法在受限条件下的人脸数据集上获得了不错的结果,但是在非受限条件下的人脸年龄分类任务中效果不佳;近几年,深度卷积神经网络(DCNN)成为了计算机视觉领域的研究热点。从5层的LeNet,到8层的AlexNet,再到19层的VGGm和22层的GoogleNet,直到上千层的ResNets,无论是网络的学习能力还是深度都得到显著提高。因此,越来越多的学者采用DCNN解决年龄分类问题,并证明其在非受限条件下能获得明显优于手工提取特征方法的结果。

在人脸年龄分类中,人脸图像往往受到面部姿态、光线、化妆和背景等影响,极大地限制了人脸年龄分类的准确性。针对非受限条件下人脸图像年龄分类困难的问题,本文提出了一种基于深度残差网络的非受限条件下人脸年龄分类方法。

2 34层残差网络

He等提出了深度残差网络(ResNets),该网络采用残差块作为网络的基本组成部分,可以很大程度上解决DCNN随着深度增加而带来的网络退化问题。ResNets在原始卷积层外部加人越层连接(shoacut)支路构成基本残差块RB,使原始的映射H(X)被表示为H(X)=F(X)+x。ResNets通过残差块结构将网络对爿(X)的学习转化为对F(X)的学习,而对F(X)的学习较H(X)更为简单。基于残差块更易学习的特性,ResNets通过顺序累加残差块成功地缓解了DCNN的退化问题,提高了网络性能。

ResNet-34结构如图1所示,残差块的具体表达式如下,函数F(x)表示残差映射,x和y分别代表残差块的输入和输出。当x和F数相同时,采用式(1),此时越层连接既没有增加额外参数也没有增加计算复杂度。当x和F维数不同时,采用式(2),通过越层连接执行1×1卷积映射G(x)以匹配维数。

ResNet-34网络输入图像大小为224×224。首先经过卷积层,卷积核为7×7,步长为2,输出特征图为112×112;再经过最大池化层;其次经过四组不同残差块,各残差块组的残差块数量分别为3、4、6和3,并且同组中的残差块输入输出维度相同,分别为64、128、256和512,各组输出特征图大小依次为56×56、28×28、14×14、7×7。最后经过平均池化层和全连接层,通过softmax分类器,输出分类结果。

3数据集

Adience数据集来自人们从智能手机设备自动上传到网络相册的图像。这些图像在上传之前并没有经过人工过滤,且这些图像都是在非受限条件下拍摄的。这些图像在头部姿势、面部表情和光线条件质量等方面都存在很大差异,所以在Adi-ence数据集下的人脸图像年龄分类任务面临巨大挑战。

Adience包含2284个人的26580张人脸图像,年龄范围为0-100岁,共8个年龄段(0-2,4-6,8-13,15-20,25-32,38-43,48-53,60-),年龄分布如表1。

4实验结果与分析

为了提升网络的人脸分类性能,本文选用ResNet-34在人脸图像Adience数据集上做年龄分类。训练和测试时动量值为0.9,权重衰减为0.0001。batch大小设为64,epoch设为164,初始学习率为0.1,在81和122个epoch之后学习率分别降为0.01和0.001。本文实验模型采用Nvidia Titan X GPU训练,运行环境torch7。

本文采用文献[7]中的交叉验证方法,将Adience数据集分成五组不同图像(fold-0,fold-1,fold-2,fold-3,fold-4),令其中一组图像作为测试集,其余四组图像作为训练集,共构成五种检测方式。通过计算平均分类准确度和1-off值作为评估标准。在fold-0测试的年龄分类准确度的曲线图如图2所示,由此可知网络能够很好地收敛。

为了验证本文方法的有效性,将现有在Adience数据集上的年龄分类方法与本文方法对比,各方法人脸年龄分类结果如表2所示。由表2可以看出本文提出的方法获得了除DEX w/IMDB-WIKI Pretrain方法以外的最高年龄分类准确度,主要由于文献[10]用大规模人脸数据集IMDB-WIKI微调网络。不经过大数据集对网络微调时,本文提出的基于深度残差网络的年龄分类方法获得了最高年龄分类准确度。

篇10

关键词:黑白棋;人工智能;算法

中图分类号: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);//用样本训练