Signaturehandwritingidentificationbasedongenerativeadversarialnetworks基于生成对抗网络的签名手写体识别1234PART01引言PART02GAN简介PART03SIGAN简介PART04实验结果5PART05总结目录1引言PARTONE•这篇论文来自物理学学报会议•签名手写体识别是典型的模式识别分类问题,解决此类问题分为两个部分:特征提取和分类器的设计。•因此本文主要围绕如何能高效的提取反映签名本质的特征,以及如何设计分类器使得该鉴别问题得到一个良好的解决方案展开研究。创新点•首次采用生成对抗网(GAN)技术研究手写签名的识别问题,在双重学习的基础上,提出了一种特殊的网络——签名识别对抗生成网络(SIGAN)。使用深度卷积生成对抗网络的鉴别器对手写签名样本做特征提取的方法。利用训练后的SIGAN鉴别器的损失值作为识别阈值。通过比较通过网络获得的测试图像的阈值和损失值,确定测试手写签名的真实性。•实验结果表明,与传统的手写识别方法(模板匹配法)相比,SIGAN算法能够实现更好的手写识别,并且远高于主观测试的平均准确率。2GAN简介PARTTWO生成对抗网络(GAN)由生成器和判别器组成的双网络大家族。生成器试着生成一些数据,判别器接收样本数据后试着分辨出哪些是样本,哪些是生成的。只要能够保持两种神经网络训练之间的平衡,在不断的进化中,这种神经网络可以生成实际图像。一般来说,我们做生成模型时,会预先设定一个分布(比如高斯分布),假设图像符合这个分布,只是参数的分布未知,我们可以通过数据去拟合这个分布。以往的生成模型研究主要从人类理解数据的角度出发,希望使用一个显式的分布假设去设计模型。GAN可以说是第一个从机器或者数据的角度出发拟合数据的模型:我们不再给它任何的数据模型分布,而是直接去学习。原始的GAN的判别器和生成器都是全连接网络,用于生成图像。目前,主要使用卷积层代替全连接层去设计输入输出。古德费洛2014年提出了GAN的思想。设计这样一个游戏,包括两个玩家,其中一个就是生成器(Generator,G),它的工作是生成图片,并且使得这个图片看上去就是来自于训练样本,另外一个玩家是判别器(Discriminator,D),判决输入图片是真的训练样本,还是生成的。我们说:我们的目的是要得到以假乱真的样本,那么很自然的我们希望生成样本赢了,也就是希望生成样本很真,判别网络能力不足以区分真假样本位置。生成网络说:我也很强,我生成一个假样本,虽然我生成网络知道是假的,但是你判别网络不知道呀,我包装的非常逼真,以至于判别网络无法判断真假。判别网络说:我很强,来一个样本我就知道它是来自真样本集还是假样本集。•生成网络生成的假样本到判别网络以后,判别网络给出的结果是一个数值,极限情况是0.5,这时候判别不出来,称为纳什平衡。•由这个分析可以发现,生成网络与判别网络的目的正好相反,一个说我能判别的好,一个说我让你判别不好。所以叫做对抗。•那么最后的结果到底是谁赢呢?这就要归结到设计者,也就是我们希望谁赢了。下面是训练过程的目标函数:(1)公式(1)是一个最大最小优化问题,对应的就是上述的两个训练过程。我们先优化D,然后再优化G,公式(1)就可以拆解为下面两个公式:优化D:(2)优化G:(3)GANs的优缺点•优点:能更好建模数据分布(图像更锐利、清晰)。•理论上,GANs能训练任何一种生成器网络。其他的框架需要生成器网络有一些特定的函数形式,比如输出层是高斯的。无需利用马尔可夫链反复采样,无需在学习过程中进行推断,没有复杂的变分下界。•缺陷:难训练,不稳定。生成器和判别器之间需要很好的同步,但是在实际训练中很容易D收敛,G发散。D/G的训练需要精心的设计。•梯度消失(Gradientdisappeared)•模式崩塌(ModeCollapse)3SIGAN简介PARTTHREE在机器学习的任务中,有许多任务是对偶存在的,比如:英汉互译。现实中我们往往分别考虑两个过程,即对于汉语翻译成英语进行一个模型的训练,对于英语翻译成汉语进行另一个模型的训练。那这两个模型之间是否存在着什么关系呢?是否可以同时训练这两个过程,同时两者之间可以相互的促进?假如前面两个问题是true的话,回到本文的初衷,新的模型又是如何解决大量标记数据的问题的呢?•例如机器翻译中从中文到英文翻译和从英文到中文的翻译互为对偶•语音处理中语音识别和语音合成互为对偶•图像理解中基于图像生成文本和基于文本生成图像互为对偶•问答系统中回答问题和生成问题互为对偶•在搜索引擎中给检索词查找相关的网页和给网页生成关键词互为对偶我们注意到,很多人工智能的应用涉及两个互为对偶的任务。这些互为对偶的人工智能任务可以形成一个闭环,使从没有标注的数据中进行学习成为可能。Duallearning的整个过程可以看作两个代理人的交流游戏:1、第一个Agent只懂得语言A,可以将语言A的信息通过一个有噪声的信道发送给第二个Agent,这个有噪声的信道可以使用一个翻译模型将语言A翻译成第二个Agent懂得的语言B。2、第二个Agent只懂得语言B,她接收到第一个Agent发来的信息(已经被翻译成语言B),然后她会对该信息进行判断(比如语法是否正确,语句是否完整等),注意她并不能准确的判断该信息的正确性,因为原始的信息对她来说是不可见的。之后她将此时的信息通过另一个有噪声的信道再发送回第一个Agent,该信道使用另一个翻译模型将语言B的信息转换为语言A。3、第一个Agent接收到B传回来的信息后,就与原始的信息进行比对,看两者的一致性。通过这个反馈(feedback),两个Agent都可以知道两个信道(两个翻译模型)是否执行的比较好(performwell)以及是否可以相互促进。4.、当然也可以从第二个Agent开始。这两个Agent通过这个闭环的过程,根据反馈可以不断的提升两个翻译模型。从上述描述中可以看出,尽管这两个Agent都没有与之标记的双语的标签,但是她们依然可以得到关于这两个翻译模型的反馈,并依据此反馈来提高模型的翻译能力。由此也可以看出,我们并不需要大量的双语对的训练集。手写字的识别也是这个道理,这种对偶学习的方式就类似于强化学习,在训练的过程中并非单纯利用梯度下降法,而是利用一种策略梯度的方法。•策略梯度方法思想十分简单:如果我们在执行某个动作之后,观测到了一个很大的回报,我们就通过调整策略(在当前策略函数的参数上加上它的梯度)来增加这个状态下执行这个动作的概率;相反,如果我们在执行某个动作之后,观测到了一个很小的回报,甚至是负的回报,那么我们就需要调整策略(在当前策略函数的参数上减去它的梯度),以降低在这个状态下执行这个动作的概率。(1)生成器GA将标准的汉字(宋体)图像转换为手写签名图像,并使用其相应的鉴别器DA将手写签名图像与真实图像或GA转换的图像进行区分。(2)生成器GB将手写签名翻译为标准中文字符(宋体)名称,并使用其对应的鉴别器DB来区分标准中文字符(宋体)图像为真实图像或由GB翻译的图像。(3)生成器GA转换的结果发送到生成器GB。结果是标准汉字(宋体)图像的重新配置;将发电机GB的转换结果给出给发电机GA。结果是对手写签名图像的重新配置。该网络通过连续迭代使重构误差最小化。4实验结果PARTFOUR•本研究的实验数据集由五种硬笔式签名组成,包括真实签名和刻意模仿签名。•实验结果表明,基于签名的签名识别模型的平均准确率为91.2%,比传统的图像分类方法提高了3.6%。实验图像库包含640张签名图像,其中320张阳性样本是刘严娇自己用5种笔(中性笔、圆珠笔、铅笔、蓝笔、黑笔)和64张自己签名的。阴性样本320支,另外4名学生分别用5支笔模仿刘严娇,如图所示。训练集,验证集和测试集的比例为4:1:5,测试集的包含320个签名图像,是由160个随机样本特征图像和随机选择160负样本,和所有剩余的图像形成训练集和验证集。实验应用通过本文的学习,我们利用SIGAN进行了手写数字的识别,利用该对抗网络训练1000次得到了生成的手写数字的图片,如下图所示,左图为初次生成图片,左图为训练100次之后生成的图片,右图为训练1000次之后生成的图片:生成图片动态演示5总结PARTFIVE本文研究了一种基于SIGAN的签名识别方法。将生成对抗网与对偶学习相结合,充分利用生成器与鉴别器的相互博弈,实现签名笔迹的识别任务。识别器识别签名的有效性高达91.2%,大大降低了手工笔迹识别的时间和成本。本文还需要进一步完善以下几个方面:(1)如何在训练样本较少的情况下训练笔迹识别模型;(2)如何利用笔迹识别的先验知识提高SIGAN的性能;(3)本文的图像库和算法只涉及到硬笔汉字。在未来,我们将收集毛笔和各种外国笔迹的样本,并对算法进行测试。THANKS