本文重点
前面的一篇文章中介绍了关于一次学习的问题,解决一次学习问题的关键在于学习到一个函数d,这个d可以计算出两张图片中的人脸是不是同一个人。那么我们需要搭建什么样的神经网络才可以让模型学习出这样的函数d呢?本文我们介绍一下Siamese神经网络结构,它可以帮助我们解决这个问题。
Siamese 网络
模型结构设计
Siamese网络由两个结构相同且权重共享的神经网络组成,这两个网络分别处理输入的对比样本。
子网络结构
每个子网络通常采用卷积神经网络(CNN)作为基本结构,通过多层卷积、池化和激活函数提取图像特征。
可以使用预训练的CNN模型(如VGG、ResNet等)作为特征提取器,以提高模型的泛化能力和效率。
特征嵌入
子网络将输入的图像转换为低维特征向量(嵌入)。这些特征向量应该能够捕捉到人脸的关键特征,以便于后续的比较。
神经网络接收一张图片x(1),然后输出一个特征向量f(x(1)),我们常常使用128维作为输出,所以特征向量的维度就是128,那么这个128维的特征向量f(x(1))就是图片x(1)的特征嵌入。
相似度计算
在特征嵌入层之后,通常