跳到主内容
快讯直播
AI智模界
AI 词典

孪生网络:两支一模一样的“笔”判断像不像

一句话定义

孪生网络(Siamese Network)是一类神经网络结构:用两个结构相同、权重共享的编码器分别处理两个输入,把它们各压成一个向量,再比较这两个向量有多相似。

关键在“共享权重”

打个比方。你要比较两个人的身高,一个用厘米尺量,一个用英寸尺量,两个数字放在一起没法比。孪生网络的做法是:同一个人、拿同一把尺子,先量 A 再量 B,读数才可比。

技术上它并没有真的训练两个网络。实现时通常只有一个编码器,把输入 A 和输入 B 分别喂进去(常组成一个批次并行计算),得到向量 a 和 b。因为用的是同一套参数,两个向量天然落在同一个向量空间里,距离才有意义。接着用距离函数衡量:欧氏距离越小越像,或者AI 词典:余弦相似度">余弦相似度越大越像。

训练靠成对样本。相似的一对(同一个人的人脸、同一个问题的两种问法)要被拉近,不相似的一对要被推远。常见损失函数有对比损失(contrastive loss)和三元组损失(triplet loss)——后者一次看三份:锚点、正样本、负样本,要求正样本比负样本离锚点更近。

和相邻概念的区别

最容易混的是双塔模型(two-tower model)。两者外形很像,差别在权重是否共享:孪生网络强调两侧参数完全一致;双塔模型允许两侧各自独立,典型场景是推荐系统里的用户塔和物品塔,用户特征与物品特征本来就不同,硬共享反而别扭。实践中边界并不严格,很多被称为“双塔”的结构其实就是共享权重的孪生网络。

与普通分类网络的区别更本质:分类网络回答“这是哪一类”,类别数在训练时就固定了;孪生网络回答“这两个像不像”,不需要事先知道有哪些类别,新类别直接比对即可,这也是它常被用在小样本场景的原因。

对比项普通分类网络孪生网络
输出固定类别的概率两个输入的相似度分数
参数单套两条分支共享同一套
遇到新类别通常要重新训练直接比对即可
训练数据形态单样本 + 标签成对或三元组样本

对实际工作的意义

人脸核验、指纹比对、以图搜图、语义检索、推荐召回,背后都可能有孪生结构。它的好处是“一次训练、到处比对”:只要能把对象编码成向量,新增数据不必重训模型。

两个常见坑。第一是忘了共享权重,两边各学各的,向量不在同一空间,距离就失去意义;第二是样本构造,正负对怎么配、难负样本怎么挖,往往比网络结构更影响最终效果。具体实现和超参数以官方文档与论文页面为准。

如果只记一句:孪生网络的价值不在于网络更深,而在于让两个输入落在同一把尺子下。

AI 生成本文由 AI 基于公开信息自动生成,仅供参考。