明明相似,特征值相减应该接近0,最后输出数值不应该是0代表相似吗?为什么在预测的时候加上两个全连接层经过激活函数得到的输出数值越靠近1代表越相似?(看up Bubbliiiing的孪生神经网络时的困惑)
由上述图可以看到E为两个图像相减的特征值,若两个图图像越相似,得到的特征向量值越偏向0是正确的。
先从模型训练上来说,经过两个全连接网络以后,最后一个全连接层输出的是一个【0,1】的数值,这个数值也就是相似度。
在开始的时候,代码就生成了样本对做伪标签,相似为1,不相似为0.所以这个就是最后的真实标签。而网络进行训练的时候是根据预测值和真实标签的损失一步一步进行调参w,b.
结合上图。
那么为了准确率,网络最后肯定会调节参数w,b以达到预测值(也就是E经过两次全连接的值)接近真实值。也就是说,如果样本对是同一类,即生成的伪标签为1(也是真实值),由于是同一类代表相似,在特征值相减时E的特征值(这里还是向量)接近或者为0,但是经过全连接层输出一个值要朝着1(真实标签)进行调整网络参数。那么在测试的时候,如果是同一类,预测值经过调好的参数计算以后肯定也是接近1的。
这里有个情况,如果是两个完全相同的图片,那么在E的时候,向量里面的值不就都是0了吗?0×w,无论参数是多少,最后得到的肯定也是0.那么在最后一层全连接网络输出预测值的时候不也是0吗?所以别忘记b这个参数。wx+b才是最后值,调节的不光是w,还有b.
所以这是我理解的为什么经过特征值相减,相似输出值为什么不是0,而是1代表相似。