最近看到triplet loss小有收获
简写为L=max(0,Δ+D(s,+)-D(s,-) )
要最小化L,min(L)=0。也就是要
1. min( Δ+D(s,+)-D(s,-) )
2. Δ+D(s,+)-D(s,-)>=0.
即Δ+D(s,+)-D(s,-)=0.
在这种情况下s到负样本的距离比到正样本的距离大Δ(Δ为手工定义的阈值)
这里为什么要加2.的限制呢?
主要有三个原因:
1.便于对网络的人为干预,如果不加限制,点到正负样本距离差最小值是正负样本之间的距离,相当于固定Δ,人为设定Δ,可以控制拟合程度。
2.防止过拟合,对于一些样本,Δ过大反而有过拟合风险,因此去掉大于0限制更容易过拟合。
3.便于训练,网路梯度下降越训练收敛的越慢,在满足要求的情况下取一个小的Δ(去掉大于0限制相当于取Δ最大值)使网络快速达到要求。
相比孪生网络,三分支网络的优点:
1.极大丰富了数据量(有数量级的提升),正是有了丰富的数据,才有之后难样本选择的余地
2.用margen防止过拟合,二分支没有这个机制都是尽可能近(负样本是远,因此迭代次数过多很容易过拟合)。