孪生神经网络
创始人
2024-03-16 18:03:28
0

孪生神经网络

孪生神经网络(Siamese network)主要用途是比较两图片的相似程度,其核心思想就是权值共享

卷积神将网络是通过卷积运算提取图像的特征进行训练的,如果想比较两个图像的相似程度,也要对两个图像分别进行特征提取,只判断特征的相似度就可以了。然而不同的卷积核运算后得到的特征很有可能不在一个域中,所以要使用同一个网络进行特征提取。

img

孪生神经网络的优点:对于类别不平衡问题鲁棒性更强,更易于做集成学习,可以从语义相似性上学习来估测两个输入的距离。

孪生神经网络的缺点,由于有两个输入,两个子网,其训练相对于常规网络运算量更大,需要的时间更长。输出的结果是两个类间的距离而不是概率

训练过程

训练集

孪生神经网络不需要每一类都有很多图片,其训练集叫做support set,数据集的类别可以很多,每个类别只需几张图片即可。

在这里插入图片描述

首先选择一个神经网络f,对输入图像进行特征提取,提取结果为h1和h2,z表示两个向量之间的区别,再加上全连接层处理z向量,最后用sigmoid函数输出为一个标量(如果两个图片是同一类,则输出应该接近1,如果不是同一类则应该接近0)。

在这里插入图片描述

损失函数

`Triplet Loss

Triplet Loss三元组损失函数,其应用见谷歌2015年发表在CVPR上的做人脸验证的论文facenet。该损失函数定义一个三元组作为输入,分别是(Xanchor,Xpositive,Xnegative)(X_{anchor},X_{positive},X_{negative})(Xanchor​,Xpositive​,Xnegative​)
这三个输入的通过如下方式构成,先从训练数据集中随机选一个样本作为Anchor,再随机选取一个和Anchor属于同一类的样本作为正样本XpositiveX_{positive}Xpositive​,和一个不同类的样本作为负样本XnegativeX_{negative}Xnegative​ ,通过这种方式定义一个输入的三元组Xanchor,Xpositive,XnegativeX_{anchor},X_{positive},X_{negative}Xanchor​,Xpositive​,Xnegative​,将其输入到网络可以得到对应的特征向量[f(Xanchor),f(Xpositive),f(Xnegative)][f(X_{anchor}),f(X_{positive}),f(X_{negative})][f(Xanchor​),f(Xpositive​),f(Xnegative​)]

Triplet Loss的目的是通过训练,使得同种类别的距离更近,不通类别的距离更大,即拉近anchor与positive;推远anchor和negative。

通过这种相似度比较式的学习,模型不仅与同类别更像,还学会了与不同类别增大区分度的信息。通常定义一个α\alphaα,使得Anchor距离Negative的距离比距离Positive大α\alphaα, 公式化表示为:

∣f(Xanchor)−f(Xnegative)∣∣−∣∣f(Xanchor)−f(Xpositive)∣∣>α|f(X_{anchor}) - f(X_{negative})|| - ||f(X_{anchor}) - f(X_{positive})|| \gt \alpha∣f(Xanchor​)−f(Xnegative​)∣∣−∣∣f(Xanchor​)−f(Xpositive​)∣∣>α

定义为:

L(Xanchor,Xpositive,Xnegative)=max(∣∣f(Xanchor)−f(Xpositive)∣∣−∣∣f(Xanchor)−f(Xnegative)∣∣+α,0)L(X_{anchor}, X_{positive}, X_{negative}) = max(||f(X_{anchor}) - f(X_{positive})|| - ||f(X_{anchor}) - f(X_{negative})|| + \alpha, 0)L(Xanchor​,Xpositive​,Xnegative​)=max(∣∣f(Xanchor​)−f(Xpositive​)∣∣−∣∣f(Xanchor​)−f(Xnegative​)∣∣+α,0)

Contrastive Loss

Contrastive Loss的输入是一对样本,基于相似的一对对象特征距离应该更小,不相似的一对对象特征距离应该较大来计算。从数据中选一对样本(Xa,Xb)(X_a, X_b)(Xa​,Xb​),这两个样本的欧式距离表示为$d=||X_a-X_b||_2=\sqrt{({X_a-X_b})^2}d=∣∣X $

则Contrastive Loss可表示为:
L(Xa,Xb)=(1−Y)12d2+Y12{max(0,m−d)}2L(X_a,X_b) = (1-Y)\frac{1}{2}d^2 + Y\frac{1}{2}\{max(0, m-d)\}^2L(Xa​,Xb​)=(1−Y)21​d2+Y21​{max(0,m−d)}2

Y表示Xa,Xb)X_a,X_b)Xa​,Xb​)是否匹配,匹配为1不匹配为0

m是设置的安全距离,当(Xa,Xb)(X_a, X_b)(Xa​,Xb​)的距离小于m 时,Contrasive Loss将变成0,这使得XaX_aXa​

与XbX_bXb​ 相似而不是相同,能保证算法的泛化能力

有了损失函数就可以通过反向传播进行参数更新了

相关内容

热门资讯

关于海南育儿补贴制度实施热点问... 户籍刚迁入海南的婴幼儿是否能享受育儿补贴;如何快速了解补贴申领流程……12月25日,海南省新闻办公室...
宋朝的中介制度 走进《清明上河图》中汴河两岸喧嚷的市集,除了林立的店铺与往来的舟车,还有一种身影穿梭其间——他们并非...
《西安市地下水条例》《西安历史... 央广网西安12月26日消息(记者侯凯奇)12月25日,西安市人大常委会召开新闻发布会,正式公布《西安...
三部门发文完善幼儿园收费政策 ... 近年来,人民群众对适龄儿童“上得起”“上好园”的诉求越来越强烈,幼儿园收费政策需要与时俱进。近日,为...
下一阶段货币政策如何发力?央行... 中国网财经12月26日讯 近日中国人民银行货币政策委员会召开2025年第四季度例会,分析国内外经济金...
跨省盗杀家犬 涉嫌犯罪终落网 山西晚报·山河+讯(记者 辛戈)套牌的汽车、70余支已经装填或待用的毒针、50余颗用剧毒物质自制的药...
政策宣传面对面 就业服务进社区 本报讯(记者 史治国 通讯员 张冬梅)“实实在在的就业创业政策、周边最新的招聘信息,有需要的都看过来...
300元就能看光员工的微信聊天... 据每日经济新闻报道,一款面向公司用户、单套价格或不足300元的监控软件正在被公开售卖。 记者深入调查...
罕见!深交所凌晨发函,剑指向日... 向日葵(300111)又摊上事儿了!12月26日凌晨,深交所对向日葵下发关注函。 2025年9月2...
阅读中的风景与旅途中的阅读:《... 2025年12月,《全民阅读促进条例》(以下简称《条例》)正式颁布,定于2026年2月1日起施行。这...