前言:

{

之前深度学习不流行的时候,一般像指纹鉴别这种任务都需要很复杂的特征工程(比如寻找角点[1])来完成。我在谷歌搜索了深度学习的指纹识别解决方案,之后搜到了[2],便因此了解到了孪生网络Siamese network

}

正文:

{

由于[2]的内容很少,我就继续搜索,之后搜索到了[3]。

图3是一个简单的孪生网络。

其中输入层(input layer)和隐含层(hidden layer)部分有两条路线,这两条路线上的权值共享和偏置[4](或者也可以说这两个分支是同一部分,只不过被复用了),之后的距离层表示这两个分支得出的特征(或者说其输入)的距离向量,再之后的节点则表示这两个特征的相似度(距离,相似概率等)。

权值共享部分可以被很多结构替换(inception?),其实际上是特征提取部分,起到特征提取的作用。

另外,如果上述两条分支不共享权值,这此网络被称为伪孪生网络pseudo-Siamese network)[5]。

内容太少,下面介绍一下[3]和[5]的具体实现

[3]的目的是图像识别,其网络架构如图4。

其中,从最开始到4096维的特征层是特征提取网络;图中省略了另一个共享权值的特征提取网络和后面的距离层;最后的输出为,可以看出,特征提取网络的输出还会经过上述距离层,两个h为特征提取网络的两个输出,α为距离层到输出层的权值。

使用的损失函数是正则化交叉熵损失,如式1。

式1

其中代表两个batch的样本;y和p都是向量,y代表两个batch的样本是否同源(即标签,1代表是,0代表不是),p是网络的输出;最后一项是正则项[6]。

关于优化,batch大小为128;对于不同层,learning rate分别设置在[0.0001, 0.1]中,并且每个epoch减少1%(乘99%),momentum初始统一设为0.5,并且之后分别线性靠近(?问题1)[0, 1],regularization penalty分别设置在[0, 0.1]中;如果20个epoch内validation error不下降,则把模型参数复位到效果最好的epoch时的状态。

另外,也使用仿射扭曲来扩充数据,非网络部分我就不罗嗦了,想看的话可以去[3]。

表2是在某数据集上不同方法的效果对比。

表2

其中的Hierarchical Bayesian Program Learning[7]很复杂,貌似没用到深度学习, 所以我没有细看。

[5]的目的是识别不同模态的对应图像块,其网络架构如图2。

其中两条支路的参数不共享;值得注意的是,最终的输出是一个二维的向量,而不是一个标量。

使用的损失函数见式2。

式2

其中θ代表模型参数,f()代表模型输出后面接的softmax函数,有正则项但没写出。按照我的理解,此损失函数和去掉第二项的式(1)类似。

在训练中,使用了batch normalization;regularization的λ = 0.001;dropout rate = 0.7。

表1为不同图像块尺寸下的部分结果。

}

结语:

{

?问题1:不知道我理解的对不对,原文是increasing,但从0.5到小于0.5的值应该只能说是接近。

这对我来说算是一个新的方向,下一次更新有可能还和这种网络有关。

参考资料其实是我直接在谷歌上搜到的(打不开的话建议科学上网),我所引用的其中的概念很多都不是源于此。

参考资料:

{

[1]https://www.acsu.buffalo.edu/~tulyakov/papers/Wu_ICB07_Segmentation.pdf

[2]http://sergioescalera.com/wp-content/uploads/2016/12/NIPSDemoFinger.pdf

[3]https://www.cs.cmu.edu/~rsalakhu/papers/oneshot1.pdf

[4]https://towardsdatascience.com/siamese-network-triplet-loss-b4ca82c1aec8

[5]https://arxiv.org/pdf/1801.08467.pdf

[6]https://en.wikipedia.org/wiki/Regularization_(mathematics)

[7]https://cims.nyu.edu/~brenden/LakeEtAlNips2013.pdf

}

}

【论文阅读记录】孪生网络(Siamese network)相关推荐

  1. 【论文阅读笔记】Occlusion-Aware Siamese Network for Human Pose Estimation

    论文地址:Occlusion-Aware Siamese Network for Human Pose Estimation 论文总结   本文的网络名,作者命名为OASNet.本文的出发点就如名字所 ...

  2. 论文笔记:孪生神经网络(Siamese Network)

    Siamese Network 原文:<Learning a Similarity Metric Discriminatively, with Application to Face Verif ...

  3. Life Long Learning论文阅读记录之LwF

    Life Long Learning论文阅读记录之LwF 写在前面 获取原文 问题 难点 目标 符号说明 现有方法 不使用旧数据集的方法 Learning without Forgetting(LwF ...

  4. 【论文笔记】A Transformer-based Siamese network for change detection

    论文 论文题目:A TRANSFORMER-BASED SIAMESE NETWORK FOR CHANGE DETECTION 收录:IGARSS 2022 论文地址:https://arxiv.o ...

  5. 论文阅读Batch Normalization: Accelerating Deep Network Training byReducing Internal Covariate Shift

    论文阅读Batch Normalization: Accelerating Deep Network Training byReducing Internal Covariate Shift 全文翻译 ...

  6. 论文阅读11——《Mutual Boost Network for Attributed Graph Clustering》

    是聚类让我们"聚类",我整理了部分深度图聚类代码,希望大家多多支持(GitHub代码):A-Unified-Framework-for-Deep-Attribute-Graph-C ...

  7. 论文阅读:Saliency-Guided Region Proposal Network for CNN Based Object Detection

    论文阅读:Saliency-Guided Region Proposal Network for CNN Based Object Detection (1)Author (2)Abstract (3 ...

  8. 孪生网络 Siamese Networks

    元学习论文总结||小样本学习论文总结 2017-2019年计算机视觉顶会文章收录 AAAI2017-2019 CVPR2017-2019 ECCV2018 ICCV2017-2019 ICLR2017 ...

  9. MapReduce论文阅读记录

    本文为阅读MapReduce论文的记录,内容主要是论文的第三部分--实现.方便本人今后查看. 1. 运行概述 下图展示了 MapReduce 过程的整体情况 当用户程序执行 MapReduce 时,会 ...

最新文章

  1. pandas对缺失值NaN处理
  2. 2018QBXT刷题游记(15)
  3. 梯度累加策略对准确率的影响
  4. 图片三:numpy制作雪碧图(如何将多个图片拼接成一张图片)
  5. LeetCode 1771. 由子序列构造的最长回文串的长度(最长回文子序)
  6. 日报 18/06/25 26
  7. Maven知识点整理
  8. 运用基础班知识做一个网页
  9. html 属性存储对象,在HTML5 localStorage中存储对象
  10. DECLARE_DYNAMIC IMPLEMENT_DYNAMIC
  11. oracle四大索引类型,oracle 索引类型
  12. Qt 中Socket编程实例
  13. 数据结构与算法(三):链表
  14. Exchange邮箱爆破和信息收集
  15. 1132: 数字字符统计
  16. css能更换图片颜色的,css改变图片的颜色
  17. 【区块链论文整理】SIGMOD 篇 (二)
  18. ECshop商品详情页显示可赠送积分和购买使用金额积分
  19. 我是如何学习安卓开发的
  20. iOS使用TestFlight进行内部和外部人员测试

热门文章

  1. 万能数据库查询分析器使用技巧之(十三)
  2. ie收藏夹在电脑什么位置
  3. 数据库-SQL-相关使用
  4. 数据结构 ---- 哈夫曼树****
  5. 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言—— 1060:均值
  6. shell脚本:exit 0 和 exit 1有什么区别?他们和return不同,return是关键字,exit是一个shell函数
  7. android+微信语音,android 仿微信按住语音说话(语音聊天)源码下载
  8. 通信系统的组成(精简介绍)
  9. git版本回退的几种方式
  10. 【trick 5】warmup —— 一种学习率调优方法