深度学习--孪生神经网络(Siamese Neural Network)--基础理论

目录

一 解决问题

二 网络架构

三 损失函数(使用contrastive loss处理paired data)

1 当Y=1时

2 当Y=0时


一 解决问题

数据集中类别数较多(即无法确认具体类别数或者类别数很多很多),并且每个类别对应的样本数量较少

注意:人脸识别(验证)属于该种问题

二 网络架构

深度学习--孪生神经网络(Siamese Neural Network)--基础理论_第1张图片

第一点:拥有两个相同的子神经网络,且权值W共享

第二点:属于有监督学习,样本为paired data:((X_{1},X_{2}),Y)

注意:

  • X_{1}X_{2}为相似样本,Y=1
  • X_{1}X_{2}为不相似样本,Y=0

第三点:子网络接受两个输入,并由神经网络转化为向量,再计算两个向量的距离(根据需求选择距离度量)

X_{1},X_{2}\overset{vector}{\Rightarrow} G_{w}(X_{1}),G_{w}(X_{2})\Rightarrow Distance(G_{w}(X_{1}),G_{w}(X_{2}))

三 损失函数(使用contrastive loss处理paired data

loss =\frac{1}{2}*\frac{1}{N}\sum_{n=1}^{N}[YE_{w}^{2}+(1-Y)max(0,m-E_{w})^{2}]

注意:

  • N:表示样本数量,即paired data数量
  • Y:表示标签,即Y=0或者Y=1
  • E_{w}:表示欧式距离,即E_{w}=|X_{1}-X_{2}|_{2}
  • m:表示不相似样本的距离阈值,即两个不相似样本的距离在[0,m],超过m时,两个不相似样本的loss可以看作0

1 当Y=1时

loss =\frac{1}{2}*\frac{1}{N}\sum_{n=1}^{N}YE_{w}^{2}

注意:极小化损失函数,也就是减小E_{w},使得相似样本距离变小

2 当Y=0时

loss =\frac{1}{2}*\frac{1}{N}\sum_{n=1}^{N}(1-Y)max(0,m-E_{w})^{2}

注意:极小化损失函数,也就是增大E_{w},是的不相似样本距离变大

你可能感兴趣的:(深度学习--孪生神经网络(Siamese Neural Network)--基础理论)