4.3 Siamese 网络(Siamese network)
Last updated
Last updated
函数d的作用是输入两张人脸,然后输出相似度。实现这个功能的一个方式是用Siamese网络
向量(编号1)是由网络深层的全连接层计算出来的,叫做。可以把看作是输入图像的编码,即取输入图像(编号2),然后表示成128维的向量
如果要比较两个图片,要做的是把第二张图片喂给有同样参数的同样的神经网络,得到一个不同的128维的向量(编号3),第二张图片的编码叫做
然后定义,将和的距离定义为两幅图片的编码之差的范数:
对于两个不同的输入,运行相同的卷积神经网络,然后比较它们,就叫做Siamese网络架构
训练Siamese神经网络:不同图片的CNN网络所有结构和参数都是一样的。所以要做的是训练一个网络,利用梯度下降算法不断调整网络参数,使得属于同一人的图片之间 很小,而不同人的图片之间很大
即神经网络的参数定义了一个编码函数,如果给定输入图像,这个网络会输出的128维的编码。然后要做的就是学习参数
使得如果两个图片和是同一个人,那么得到的两个编码的距离就小
如果和是不同的人,那么编码距离就大
如果改变这个网络所有层的参数,会得到不同的编码结果,要做的是用反向传播来改变这些所有的参数,以确保满足这些条件