小样本论文笔记2:Model Based - [4] --Siamese neural networks-- for one-shot image recognition.

小样本论文笔记2:Model Based - [4] Siamese neural networks for one-shot image recognition.


0. 前言

  • 相关资料:

  • 论文基本信息

    • 领域:小样本学习
    • 作者单位:多伦多大学
    • 发表期刊和时间:ICML2015
  • 一句话总结

    • 提出了Siamese neural networks结构,通过Siamese网络提取两个输入的特征,然后通过计算两者之间的L1距离判断相似性,用sigmoid函数判断两者是否同类。在Omniglot数据集上达到了92%的效果,与当时的State-of-the-art方法95.2%相差3.2%,但作者声称Siamese优点是不需要提供任何关于字符的先验知识。同时,该模型在不需要微调的基础上,在MNIST数据集上能达到70.3%的精度。

1. 要解决什么问题

  • 核心思想
    • 设计了一种利用孪生网络结构解决小样本分类任务的方法,其思想非常简单,用相同的网络结构分别对两幅图像提取特征,如果两幅图像的特征信息非常接近(L1距离小)那么他们很可能属于同一类物体,否则他们属于不同类的物体。
    • 其采用了两个结构完全相同,权重彼此共享的卷积网络分支,称为孪生网络,分别从两幅图像中提取特征信息,并利用全连接层展开成一维特征向量。然后计算两幅图像对应的特征向量之间的L1距离(差值的绝对值),并乘以一个权重值(该权重值是利用网络训练得到的参数,在一定程度上可以看做特征值维度上的注意力机制,假设某个特征值比较重要,其对应的权重也会更大),再将所有加权后的特征值求和。最后用Sigmoid函数将其转化为[0,1]范围内的相似程度得分。训练过程则是希望孪生网络能够提取出更加有效,更加抽象的特征信息,在测试过程中需要同时输入一个支持集和一个测试对象,与 Matching Network 相同,该网络也允许使用训练集中没有出现过得类别进行测试,但支持集中必须包含与测试对象同类别的图片。

2. 用了什么方法

2.1 创新点
  • 利用孪生网络结构分别提取两幅图片特征,并采用L1距离度量特征之间的差异。
  • 无需依赖先验知识,可以在少样本的数据集上实现有效的特征提取,并最终实现分类任务 。
2.2 网络结构
  • 在这里插入图片描述
  • 整个孪生网络的两个分支是完全相同的,因此仅对其中一个的结构进行简要介绍。如图所示,该网络是由多个卷积层和最大池化层堆叠而成,卷积层的通道数均是64的倍数,卷积核尺寸由10 * 10,下降到7 * 7,再降到 4 * 4(这是早期卷积神经网络常用的模式,后来逐渐被多层3 * 3的卷积层所取代),卷积步长均为1,最大池化层的池化窗口为2 * 2。最后两层为全连接层,第一个全连接层将特征图展开成长度为4096的一维特征向量,并计算与另一个分支的L1距离;第二个全连接层则是将距离向量压缩为一个值,并利用sigmoid函数转化为相似程度得分(上文中提到的加权求和过程正是描述此处的第二个全连接层)。除最后两个全连接层采用sigmoid激活函数外,其与各卷积层均采用ReLU激活函数。
2.3 损失函数
  • 采用了带有正则化项的交叉熵损失函数,式子 y ( x 1 i , x 2 i ) y(x_1^{i},x_2^{i}) y(x1i,x2i),当 x 1 i x_1^{i} x1i x 2 i x_2^{i} x2i属于同类物体时, y ( x 1 i , x 2 i ) = 1 y(x_1^i, x_2^i)=1 y(x1i,x2i)=1,否则为0.
    L ( x 1 ( i ) , x 2 ( i ) ) = y ( x 1 ( i ) , x 2 ( i ) ) log ⁡ p ( x 1 ( i ) , x 2 ( i ) ) + ( 1 − y ( x 1 ( i ) , x 2 ( i ) ) ) log ⁡ ( 1 − p ( x 1 ( i ) , x 2 ( i ) ) ) + λ T ∣ w ∣ 2 \begin{array}{c} \mathcal{L}\left(x_{1}^{(i)}, x_{2}^{(i)}\right)=\mathbf{y}\left(x_{1}^{(i)}, x_{2}^{(i)}\right) \log \mathbf{p}\left(x_{1}^{(i)}, x_{2}^{(i)}\right)+ \\ \left(1-\mathbf{y}\left(x_{1}^{(i)}, x_{2}^{(i)}\right)\right) \log \left(1-\mathbf{p}\left(x_{1}^{(i)}, x_{2}^{(i)}\right)\right)+\boldsymbol{\lambda}^{T}|\mathbf{w}|^{2} \end{array} L(x1(i),x2(i))=y(x1(i),x2(i))logp(x1(i),x2(i))+(1y(x1(i),x2(i)))log(1p(x1(i),x2(i)))+λTw2
    λ T ∣ w ∣ 2 \lambda^T|w|^2 λTw2 是正则化项。
2.4 训练策略
  • 权重初始化方面,卷积层采用均值为0,方差为 1 0 − 2 10^{-2} 102的正态分布,偏差采用均值为0.5,方差为 1 0 − 2 10^{-2} 102的正态分布,全连接层采用均值为0,方差为 1 0 − 1 10^{-1} 101的正态分布。学习率每个epoch下降 1 1% 1,初始动量为0.5,随着训练过程线性增长直至达到 μ j \mu j μj
    (作为超参数)。超参数优化策略采用一种贝叶斯优化框架Whetlab进行选择。超参数包括学习率、动量、L2正则化项大小、卷积核尺寸和通道数、全连接层维度等参数的选择。数据集扩充是利用放射变化将图像数量增长为原来的8倍。训练时将图像两两组合,若来自同一类别则标记为1,否则标记为0.
2.5 网络推广
  • 作者尝试将在Omniglot数据集(一个包含多种语言手写字母的数据集)上训练得到的网络在不经过微调训练的条件下,直接应用与MNIST数据集(一个手写数字数据集),其依旧达到了70.3%的准确率,说明该网络具备一定的泛化能力。

3. 效果如何

  • 实验设置

    • 训练数据集:Omniglot数据集子集,为每个字符做了8种数据增强,数据量扩展为原来的9倍。
    • 测试数据集:Omniglot, MNIST
    • 任务:验证,小样本
  • 验证任务结果

    • 设置3种不同尺寸的训练集样本,分别为30000,90000和150000.选出60%作为训练集,比如50个字符中挑出30个,20个画手中挑出12个。
    • 固定每个字母的训练样本数量,这样每个字母就会在优化时以相同的概率被优化。为每个训练样本添加8个增强操作,因此,最终会有270000,810000和1350000个有效样本。
    • 在这里插入图片描述
  • One-shot learning

    • 以下为方便个人理解,用字母A\B\I指代各个角色,原文并没有这么说:字母表从验证集中选取,然后从保留为验证集的“画手”中挑出两位,让这两位“画手“根据字母表画出对应的20个字母。将画手A制作的字符作为测试图片I,逐一与画手B制作的20个字母比较,目标是从画手B画出的20个字符中预测出测试图片I的类别(看测试图片与Bde 哪个字符最相近即为哪个类)。接下来这个不太懂,为啥要为每个字符重复两次?为啥有10个验证字符?个人理解是A和B每个都画出来20个字符,按理说应该是2020=400,为啥是1040=400?总之有400次One-Shot Learning Trials
    • 在这里插入图片描述
  • MNIST One-shot Trial

    • 作者在MNIST数据集上进行测试,在模型没有在MNIST数据集上进行微调的情况下,MNIST的10比1的One-Shot Trial任务依旧达到了70.3%的精度。MNIST的验证设置与Omniglot相同,也是400次One-Shot Trials。(这里盲猜1040=400?10重复4次=40?文中没仔细说明)将MNIST的10个数字作为字母表,然后产生一个10-way的One-Shot分类任务。将MNIST的2828的图片上采样为35*35,使用下采样因子为3的简化Siamese模型,结果下图所示。
    • 在这里插入图片描述

4. 还存在什么问题&有什么可以借鉴

  • 提供了小样本学习的新思路,虽然现在看来很普通,但在当时属于很先进的算法
  • 问题:比较有顾虑的是,该网络仅在字符识别这种简单任务上效果较好,扩展到视频应该如何做呢?用3D卷积提取测试视频的特征,然后与支撑集中视频特征相比较相似性吗?
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值