Signature Verification using a Siamese Time Delay Neural Network

Paper : Signature Verification using a “Siamese” Time Delay Neural Network
Code :

摘要

LeCun在“Signature Verification using a “Siamese” Time Delay Neural Network” 一文中首次提出孪生神经网络的概念。对于孪生神经网络(非伪孪生神经网络),与其说它是一种网络结构,不如说Siamese Network 是一种针对特定任务训练特征提取器的损失函数(类比于triplet loss)。孪生神经网络的主要用途是面向形式相同的输入数据,衡量两个输入的相似程度。孪生神经网络将两个输入映射到新的空间,形成输入在新的空间中的表示。通过Loss的计算,评价两个输入的相似度。本文主要介绍孪生神经网络结构,忽略签名验证任务相关部分。

算法

孪生神经网络的结构如下图所示

在这里插入图片描述
孪生神经网络有两个输入端,对应比较的两个签名;一个输出端,对应两个签名之间的相似度距离衡量。在签名验证的任务中使用时延神经网络进行特征提取,使用cosine距离函数进行特征距离的计算。**对于两个子网络,参数是完全相同的。**因此,在代码实现的时候,甚至可以是同一个网络,不用实现另外一个,因为权值都一样。因此,孪生神经网络更像是一种类似于triplet loss的二元损失函数的定义。

在训练过程中,将真实的签名对的输出距离赋值为cosine = 1.0,将仿造的签名对的输出距离赋值为cosine = -0.9 / -1.0,训练用的签名对包括50%真实签名对,40%伪造签名对和10%真实签名:非刻意模仿输入(zero effort forgeries)对。

在测试过程中,使用一个任意一个子网络进行特征提取,简化起见,假定提取出的特征维度之间是相对独立的,每一个维度具有相同的方差。假定一个签名是真实签名的概率密度ρ-yes为正态分布,是仿造的签名的概率密度ρ-no是一个与召回集中签名不相关的定值。一种方式为设ρ-no等于所有仿造签名的ρ-yes的平均值,那么测试签名属于真实签名 j j j 的概率为 ρ j − yes ρ − no + ρ j − yes \frac{\rho_j-\textrm{yes}}{\rho-\textrm{no}+\rho_j-\textrm{yes}} ρno+ρjyesρjyes

总结

个人理解孪生神经网络(pairwise loss)与三元组损失(triplet loss)相比,triplet loss更强调将训练集中同类样本映射到特征空间中相近的位置,同时增大类与类之间的距离;而pairwise loss在这篇文章中的应用场景是每一个签名自己就是一个类,因此使用对比损失即可。不过也看到了一篇文章尝试将triplet loss应用到孪生神经网络上,总的来说两者从训练方式上区别不大。

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值