21、简述孪生随机网络(Siamese Network)
简单来说,Siamese Network就是“连体的神经网络”,神经网络的“连体”是通过共享权值来实现的,如下图所示:
大家可能会有疑问:共享权值是什么意思?左右两个神经网络的权重一模一样?
答:是的,在代码实现的时候,甚至可以是同一个网络,不用实现另外一个,因为权值都一样。对于Siamese Network,两边可以是LSTM或者CNN,都可以。
大家可能还有疑问:如果左右两边不共享权值,而是两个不同的神经网络,叫什么呢?
答:Pseudo-Siamese Network,伪孪生神经网络,如下图所示。对于Pseudo-Siamese Network,两边可以是不同的神经网络(如一个是LSTM,一个是CNN),也可以是相同类型的神经网络。
Yann LeCun养乐村同志在NIPS 1993上发表了论文《Signature Verification using a ‘Siamese’ Time Delay Neural Network》用于美国支票上的签名验证,即验证支票上的签名与银行预留签名是否一致。1993年,Yann LeCun就在用两个卷积神经网络做签名验证了。
随着SVM等算法的兴起,Neural Network被人们遗忘,还好有一些执着的人们,坚守在了神经网络研究的阵地。2010年Hinton在ICML上发表了文章《Rectified Linear Units Improve Restricted Boltzmann Machines》,用来做人脸验证,效果很好。其原理很简单,将两个人脸feed进卷积神经网络,输出same or different。