孪生网络---学习条记

[复制链接]
查看1149 | 回复0 | 2023-8-23 12:02:29 | 显示全部楼层 |阅读模式
  1.                         孪生网络
复制代码
一、 什么是孪生网络(one-shot)
在人脸辨认中,存在所谓的one-shot问题。举例来说,就是对公司员工举行人脸辨认,每个员工只有一张照片(因为每个类别训练样本少),而且员工会离职、入职(每次变更都要重新训练模子是不现实的)。如果当身分类问题,直接训练模子举行人脸辨认在实际应用中是不可行。
为相识决one-shot问题,我们会训练一个模子来输出给定两张图像的相似度,以是模子学习得到的是similarity函数,通过对相似度设定一个阈值判定是否属于同一个人。
二、 孪生网络(one-shot)的意义
(1) 镌汰训练数据
深度学习必要大量的数据MNIST 为了 10 个类别的区分, 必要 60,000 张训练图像, 匀称一个类别必要6000张训练图像,One-Shot 试图将一个类别的训练图像镌汰, 极度情况时减小到一张图片
(2) 在新类别的数据出现时, 无需重新训练
传统的深度神经网络无法处置惩罚没有出如今训练集中的类别,以员工刷脸打卡为例, 利用传统深度神经网络, 每一个新员工入职, 都是一个新的 类别, 必要重新训练深度神经网络,如果天天都有新员工入职, 天天都要重新训练网络, 本钱非常高,One-Shot learning 可以无需重新训练即可应用于新的类别的数据
三、 孪生网络(one-shot)的原理
传统的神经网络试图学习某一个类别的图像的表达
One-Shot Learning 试图学习差别图像(可以同一类别大概差别类别)
的区别
给定图片A和图片B, 将A转换为一个表达(embedding vector) p, 将B转换为一个表达(embedding vector) q
如果 A 和 B 属于同一个类别, 那么我们渴望 p 和 q 是相似的
如果 A 和 B 不属于同一个类别, 那么我们渴望 p 和 q 是不相似的
相似度的度量, 欧几里得距离

四、 孪生网络(one-shot)的网络布局

  1.    Siamese Network有两个结构相同,且共享权值的子网络(同一个网络)。分别接收两个输入X1X1与X2X2,将其转换为向量Gw(X1)与Gw(X2),再通过某种距离度量的方式计算两个输出向量的距离Ew。
复制代码
假设图像A和图像B是同一个类别:

假设图像A和图像B是差别类别:

网络布局:
五、 孪生网络的损失函数
在孪生神经网络(siamese network)中,其接纳的损失函数是contrastive loss,这种损失函数可以有效的处置惩罚孪生神经网络中的paired data的关系。contrastive loss的表达式如下

代表两个样本特性X_1和X2的欧氏距离(二范数)P 表示样本的特性维数,Y 为两个样本是否匹配的标签,Y=1 代表两个样本相似大概匹配,Y=0 则代表不匹配,m 为设定的阈值,N 为样本个数。
当 Y=1(即样本相似时),损失函数只剩下:

当样本相似时,通过D欧氏距离盘算得出值越小,损失函数越小。
当 Y=0 (即样本不相似时),损失函数为:

[注意这里设置了一个阈值margin,表示我们只思量不相似特性欧式距离在0~margin之间的,当距离高出margin的,则把其loss看做为0(即不相似的特性离的很远,其loss应该是很低的;而对于相似的特性反而离的很远,我们就必要增长其loss,从而不绝更新成对样本的匹配程度)]

来源:https://blog.csdn.net/weixin_43391596/article/details/128062219
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则