小样本学习记录————四种相似性计算经典网络结构

  • 小样本学习记录————四种相似性计算经典网络结构
    • 孪生网络(Siamese network)
    • 匹配网络(Matching network)
    • 原型网络(Prototypical Networks)
    • 关系网络(Relation Network)

小样本学习记录————四种相似性计算经典网络结构

人类可以通过很少的样本就能学会分辨事务,所以使用较少的样本就可以训练得到一个有不错效果的模型,一直是机器学习特别期待实现的。在读小样本学习文章总会涉及以下几个经典的模型结构,在此进行一一总结。

孪生网络(Siamese network)

孪生网络在2015年被提出使用在one-shot识别中,一般是基于神经网络获得的特征向量,相似度用欧氏距离来度量。网络的结构很简单,如下图所示:通过共享权重的卷积网络(一般网络一致)得到输入图像的特征向量,通过最小化相同类别之间loss,最大化不同类别物体loss进行迭代训练得到一个可以判断两个物体是否相似的网络。

L=12lD2+12(1−l){max(0,m−D)}2\mathcal L = \frac 1 2 lD^2 + \frac 1 2(1-l)\{max(0,m-D)\}^2L=21lD2+21(1l){max(0,mD)}2

  • lll:如果I1和I2I_1和I_2I1I2相同类别为1,否则为0
  • DDD:表示I1和I2I_1和I_2I1I2特征向量的欧式距离
  • mmm:不相似向量之间最小的距离

在小样本学习中,查询集和支持集中图片进行比对得到相似度最高的图片,往往可以得到比较不错的结果。我们可以发现,如果进行多类别识别的问题中,这个比对过程效率比较低下,所以才有了后续的改进模型。

匹配网络(Matching network)

匹配网络在embedding得到特征向量后,通过引入注意力分析两者的相似性。在Matching networks for one shot learning文章中的注意力计算公式。

a(x^,xi)=ecf(x^),g(xi)∑j=1kecf(x^),g(xj)a(\hat x,x_i)= \frac {e^{cf(\hat x),g(x_i)} } {\sum_{j=1}^k e^{cf(\hat x),g(x_j)}}a(x^,xi)=j=1kecf(x^),g(xj)ecf(x^),g(xi)

  • x^\hat xx^是查询集
  • xix_ixi是支持集
  • c表示计算两者的余弦距离

计算每一个余弦距离再进行softmax

模型最后的输出为是y^\hat yy^为每一种标签的概率

P(y^∣x^,S)=∑i=1ka(x^,xi)yiP(\hat y|\hat x, S)=\sum_{i=1}^k a(\hat x,x_i)y_iP(y^x^,S)=i=1ka(x^,xi)yi

神经网络中的这样的非参数结构使得网络更容易记忆和适应同一任务中的新训练集,但是如果支持集的增多训练的代价就变大了,这是为什么后续又继续改进的原因之一。

如果对注意力机制不是很清楚可以看这篇文章注意力机制的基本思想和实现原理

原型网络(Prototypical Networks)

原型网络提出,先把样本投影到一个空间,计算每个样本类别的中心,在分类的时候,通过对比目标到每个中心的距离,从而分析出目标的类别。

ck=1∣Sk∣∑(xi,ti)∈Skfϕ(xi)c_k=\frac 1 {|S_k|} \sum_{(x_i,t_i)\in S_k }f_\phi(x_i)ck=Sk1(xi,ti)Skfϕ(xi)

  • ckc_kck:表示k类样本的嵌入空间
  • SkS_kSk:表示标签为k的集合
  • fϕf_\phifϕ:表示一种embedding方式

可以理解为其实这就是一个算k类样本中心的函数

对于一个样本可以通过softmax它与每一类的距离,得到最有可能的类,公式如下。

P(y=k∣x)=exp(−d(f(x),ck))∑k′exp(−d(f(x),ck′))P(y=k|x)=\frac {exp(-d(f(x),c_k))} {\sum_{k'}exp(-d(f(x), c_{k'}))}P(y=kx)=kexp(d(f(x),ck))exp(d(f(x),ck))

关系网络(Relation Network)

不论是孪生网络,匹配网络,还是原型网络,在分析两个样本的时候都是通过embedding后的特征向量距离(比如欧氏距离)来反映,而关系网络则是通过构建神经网络来计算两个样本之间的距离从而分析匹配程度,关系网络可以看成提供了一个可学习的非线性分类器用于判断关系,而上述三个网络的距离只是一种线性的关系分类器。

样本j与类别i之间的关系可以用公式表示为

ri,j=gφ(C(fϕ(xi),fϕ(xj)))r_{i,j}=g_\varphi(C(f_\phi(x_i),f_\phi(x_j)))ri,j=gφ(C(fϕ(xi),fϕ(xj)))

  • ri,jr_{i,j}ri,j:表示样本j与类别i的相关分数
  • gφg_\varphigφ:表示相关性计算模型
  • CCC:这里的C表示拼接操作,不是计算距离
  • fϕf_\phifϕ:表示一种embedding方式

在面对k-shot问题时,将同一类别特征向量按位求和,形成特征图,在进行后续操作。

L=∑i=1m∑j=1n(ri,j−1(yi==yj))2\mathcal L = \sum_{i=1}^m\sum_{j=1}^n(r_{i,j}-1(y_i==y_j))^2 L=i=1mj=1n(ri,j1(yi==yj))2

关系网络的创新点就是提出用神经网络,而不是欧氏距离去计算两个特征变量之间的匹配程度。

小样本学习记录————相似性计算经典网络结构(孪生网络、匹配网络、原型网络、 关系网络)相关推荐

  1. 小样本学习记录————利用所有数据的元学习Few-shot Text Classification with Distributional Signatures

    小样本学习记录----利用所有数据的元学习Few-shot Text Classification with Distributional Signatures 在计算机视觉中,低水平的模式是可以跨学 ...

  2. 小样本学习记录————用于深度网络快速适应的模型不可知元学习(MAML)

    小样本学习记录----MAML用于深度网络快速适应的模型不可知元学习 相关概念 小样本学习(Few-Shot Learning) 元学习(Meta-Learning) MAML思想 MAML算法 论文 ...

  3. 小样本学习记录————文本中特征空间的数据增强MEDA: Meta-Learning with Data Augmentation for Few-Shot Text Classification

    MEDA: Meta-Learning with Data Augmentation for Few-Shot Text Classification 出发点 数据增强 球合成器 合成模块Synthe ...

  4. 学习记录 Python 计算图片集的像素总平均值

    注意stat.mean是一个list,不能直接和int相加,需要写成stat.mean[0]. 得到最后的sum之后除以图片的总数就是整个图片集的总平均像素值.

  5. 计算机视觉中的小样本学习综述

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 前言: 如今,在使用数十亿张图像来解决特定任务方面,计算机可以做到超过人类.尽管如此,在现实世界中,很 ...

  6. 小样本学习元学习经典论文整理||持续更新

      本文整理了近些年来有关小样本学习的经典文章,并附上了原文下载链接以及论文解读链接.关注公众号"深视",回复"小样本学习",可以打包下载全部文章.该文我会持续 ...

  7. 基于小样本学习的图像分类技术综述

    基于小样本学习的图像分类技术综述 人工智能技术与咨询 昨天 本文来自<自动化学报>,作者李颖等 关注微信公众号:人工智能技术与咨询.了解更多咨询! 图像分类是一个经典的研究课题, 典型的图 ...

  8. 2023.2.9,周四【图神经网络 学习记录23】动态图算法 之 SGNN(DGNN):更新组件(update component),传播组件(propagation component)

    路虽远,行则将至. 声明:仅学习使用. 前情提要: 2023.2.9,周四[图神经网络 学习记录22]动态图算法 之 EvolveGCN:离散型动态GNN网络,将GNN和RNN结合到同一层,结合时间和 ...

  9. 元学习—关系网络和匹配网络

    元学习-关系网络和匹配网络 1 关系网络(Relation Network) 1.1 关系网络的基本函数 一个关系网络至少需要包含两个核心的函数,第一个核心的函数是编码函数f,该函数经支持集(Supp ...

最新文章

  1. 全国计算机等级考试评卷、成绩处理和证书管理办法
  2. Win32编程day04 学习笔记
  3. 利用Matlab优化工具箱求解旅行商最短路径问题
  4. 【ABAP】SAP供应商自定义决裁生成实现
  5. python内置函数用来打开或创建文件_2020年《python程序设计》基础知识及程序设计598题XS[含参考答案]...
  6. oracle字符集查看、修改、版本查看
  7. C#总结(二)事件Event 介绍总结
  8. 基于python技术的自动化运维是干嘛的_《Python自动化运维 技术与最佳实践》.pdf...
  9. 宝塔更换域名_阿里云如何建站、域名、搭建网站?
  10. 在Hibernate中使用存储过程
  11. MVC3 学习总结一(未发布)
  12. java 多态_Java基础深度总结:多态
  13. UITextField 文字垂直居中
  14. 使用yo -v查看yeoman版本号
  15. 如何创建带有.的文件夹
  16. led数字字体_led电视质量排行榜
  17. GitHub创建仓库
  18. 笔记本计算机声卡开关,笔记本电脑没声音了怎么回事
  19. 运动轨迹绘制页面的设计与实现:仿照运动APP的轨迹记录功能将HTML5地理定位技术用于移动设备,实现地图显示与用户打车从起点到终点的运动轨迹绘制效果。
  20. MII、RMII、SMII、GMII接口简介

热门文章

  1. OpenCV 中用cv::IMREAD_GRAYSCALE与cv::cvtColor转灰度得到灰度图不一致问题
  2. Javaweb切换中英文功能
  3. 【经典论文阅读】DeepSort论文阅读与思路分析
  4. Java架构师学习路线-脑图
  5. 2013 数字与智能油气田(国际)会议暨展会征文
  6. 素数(质数)判断的五种方法
  7. 每日干货分享:扫描文字识别软件哪个好?
  8. 学生信息管理系统之------书签(mybookmark)的作用
  9. 二阶巴特沃斯滤波器代码
  10. java合并excel文件_Java 合并Excel文档