改进孪生神经网络方法研究
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
改进孪生神经网络方法研究作者:刘小玲崔艳荣
来源:《电脑知识与技术》2021年第28期
摘要:随着深度学习的快速发展,各种人工神经网络框架应运而生,孪生神经网络就是其中的一种。
孪生神经网络用于衡量两个样本间的相似性,其概念由来已久,在发展过程中其结构也不断演化。
目前孪生神经网络的研究侧重于应用,而对框架的整体了解与把握是应用研究
的重要前提。
本文主要从四个方面来介绍孪生神经网络框架,首先阐述其概念与结构,其次分析几个改进的网络结构,然后列举其常见的应用领域,最后总结其研究价值。
关键词:孪生神经网络;样本相似度;对比损失函数;改进孪生网络应用
中图分类号:TP391 文献标识码:A
文章编号:1009-3044(2021)28-0097-02
开放科学(资源服务)标识码(OSID):
1 引言
1993年Bromley和LeCun发表了一篇用于验证手写签名的论文,首次提出了“暹罗”神经网络[1],也就是孪生神经网络。
孪生神经网络,顾名思义,就是由两个神经网络构成的一种耦合架构。
传统的人工神经网络,例如卷积神经网络,只能接收一个输入,输出为预测值或分类标签;而孪生神经网络接收两个输入,输出为两个样本的相似度。
孪生神经网络基于距离计算输入样本的相似度,主要用于识别或验证任务,特别适用于类别数量多、单个类别样本数量少的分类任务[2]。
因此,孪生神经网络在目标跟踪、人脸识别、语义匹配、文本识别等领域均有应用,在目标跟踪领域应用较为广泛。
关于孪生神经网络应用的论文层出不穷,对孪生神经网络的系统介绍却少之又少,本文从孪生神经网络的概念与结构、改进的网络结构、应用、总结这四个方面,整体地介绍孪生神经网络,旨在让读者更好了解与运用孪生神经网络。
2 孪生神经网络的概念与结构
狭义上的孪生神经网络,是由两个相同的神经网络构成的,例如两个卷积神经网络,它们结构相同参数共享,适用于人脸识别、指纹比对等任务;广义上的孪生神经网络,也叫伪孪生神经网络,则是由两个任意的神经网络进行连接,参数无法共享,适用于判断文本标题与内容是否相符这类任务。
本文主要介绍狭义上的孪生神经网络,其结构图如图1:
如图1所示,孪生神经网络结构包含两个相同的子网络,也叫分支网络,它们之间共享权重W。
分支网络用于提取输入样本的特征向量GW(X),计算得到两个特征向量之间的距离DW。
这个距离可以是曼哈顿距离(L1范数),也可以是欧氏距离(L2范数)。
训练时,损失函数Loss用来衡量该网络的性能,反向传播算法用来更新网络参数。
值得一提的是,孪生神经网络的目的是区分而不是分类,因此训练时采用对比损失函数,来评估该网络区分一对给定数据的能力或效果。
对比损失函数公式如下:
[LossY=1-Y12Dw2+12Ymax0,m-DW2 (1)]
公式(1)中,Y=0时表示样本相似,Loss值随DW值减小而减小,说明该网络区分相似样本的效果越好;Y=1时表示样本不相似,m表示特征向量距离的阈值,若DW趋近于m,Loss值将趋近于0,说明该网络区分不相似样本的效果越好。
系数Y与(1-Y)是自定义的,若将这两个系数交换位置,则Y取值0或1的含义也会相应改变。
3 改进的孪生神经网络
改进的孪生神经网络,主要是对其结构作改进,查阅文献发现,大致可以分为两类:局部改进和整体改进。
局部改进,就是在原有的孪生神经网络结构基础上,对局部区域做改进,例如调整输入或子网络层;整体改进,就是改变整个孪生神经网络结构,例如将孪生神经网络改进为三重神经网络。
从两个输入样本的角度来看,孪生神经网络就是一个双分支网络;若是以一个输入样本的角度来看,也就是把一个样本看作是双通道(2-channel)样本,孪生神经网络就相当于一个双通道网络。
这种思维变换,对孪生神经网络的输入做了改进,其结构图如下:
一般我们会对神经网络的输入样本作预处理,使得样本的尺寸统一,若是输入样本尺寸大小不同呢?以一般的孪生卷积神经网络为例,输入层、卷积层、池化层对样本的尺寸并没有要求,问题的关键在于全连接层--提取的特征图经过全连接层后输出为特征向量,而样本相似度是通过计算两个特征向量的距离得到的,两个特征向量的尺寸不同,自然也就无法计算了。
在全连接层之前加入空间金字塔池化SSP(Spatial pyramid pooling)层,就可以得到统一尺度的特征向量,其结构图如下:
三重神经网络是一种三元组结构,受孪生神经网络启发而提出[3]。
三个输入为一个正例和两个负例,或一个负例和两个正例,三个子网络间参数共享。
训练目标是使得相似样本间的距离尽可能小,不相似样本间的距离尽可能大。
其结构图如下:
图中x表示参考样本,x-表示异类样本,x+表示同类样本,提取三个样本的特征向量,分别计算样本x与x-、x与x+的特征向量的L2距离。
该结构相当于将任务表示为二分类问题,即判断x+与x-哪一个与x属于同一类,采用了softmax分类函数,损失函数改进为简单的均方误差函数。
4 孪生神经网络的应用
目标跟踪任务是指在有序的视频序列中,获取运动目标的运动轨迹,以分析目标运动行为。
在相邻帧中寻找目标,实际上就是将两帧图像进行对比,这正好可以由孪生结构来实现,因此孪生神经网络在目标跟踪领域的应用较为广泛。
相关的经典算法有孪生全卷积神经网络(Siamese-FC)、孪生候选区域生成网络(Siamese-RPN)、AOTM算法等[4]。
对于识别任务,例如人脸识别和文本识别,通常都是将两个图像或两段文本进行比较,也正好能借助于孪生神经网络。
早在2005年提出相似性度量时,已有学者采用孪生卷积网络实现人脸识别,由于该网络结构尤其适合样本少类别多的任务,因此也应用于小样本学习。
随后,孪生的长短期记忆网络被提出,应用于文本识别。
此外,对于一般的分类任务,孪生神经网络也能完成。
5 总结
本文系统地介绍了孪生神经网络的概念与结构、改进结构与应用,作为一种神经网络框架,孪生神经网络并未引起高度重视,但其发展正逐渐趋于成熟。
目前,基于孪生神经网络的目标跟踪算法改进是一个比较热门的研究方向,引入注意力机制和模板更新机制是已有的两个创新点,因此孪生神经网络具有较好的研究前景,在未来的研究工作中,提出新的改进方法或应用于新的领域都是可供参考的方向。
参考文献:
[1] Bromley J,Bentz J W,Bottou L,et al.Signature verification using a “Siamese” time delay neural network[M]//Series in Machine Perception and Artificial Intelligence.WORLD SCIENTIFIC,1994:25-44.
[2] Chopra S,Hadsell R,LeCun Y.Learning a similarity metric discriminatively,with application to face verification[C]//2005 IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR'05).June 20-25,2005,San Diego,CA,USA.IEEE,2005:539-546.
[3] Hoffer E,Ailon N.Deep metric learning using triplet network[M]//Similarity-Based Pattern Recognition.Cham:Springer International Publishing,2015:84-92.
[4] 程棟栋,吕宗旺,祝玉华.孪生网络目标跟踪算法[J].福建电脑,2021,37(2):85-86.
【通联编辑:梁书】。