从0单排:学风侏儒——小样本学习11-18年
好久没更博客。。。主要是被安排了新的track——小样本学习,所以都在看论文和学习,note也写了很多内容,就一次性更了。汇报完工作估计又得开始研究异常检测和视频分类相关的了。估计小样本学习这边的论文还是不能停,但是不会重点看了(毕竟看了一堆了,可能接下来就是把18年一些论文大概领略一下。。所以以后就叫从0单排好了,这样也不用改了
Class Imbalance Problem
It is the problem in machine learning where the total number of a class of data (positive) is far less than the total number of another class of data (negative).
better metrics than just counting the number of mistakes made:
- True Positive (TP) – An example that is positive and is classified correctly as positive
- True Negative (TN) – An example that is negative and is classified correctly as negative
- False Positive (FP) – An example that is negative but is classified wrongly as positive
- False Negative (FN) – An example that is positive but is classified wrongly as negative
roughly classify the approaches into two major categories:
- cost function based approaches: count that one false negative as, e.g., 100 false negatives instead. For example, in the case of SVM, the generic formula is:\(\frac{\left\|w\right\|^2}{2}+C\sum^n_{i=1}\epsilon_i\). And we can modify the formula to as follows:\(\frac{\left\|w\right\|^2}{2} + C^+\sum^{n_+}_{i|yi=+1}\epsilon_i+C^-\sum^{n_-}_{j|yj=-1}\epsilon_j\)
- algorithmic Ensemble based approches: Modifying existing classification algorithms to make them appropriate for imbalanced data sets
- bagging based: Bagging is used for reducing Overfitting in order to create strong learners for generating accurate predictions. generating 'n' different bootstrap training samples with replacement.
- boosting based: combine weak learners to create a strong learner that can make accurate predictions
- sampling based approaches:
- Oversampling, by adding more of the minority class so it has more effect on the machine learning algorithm, e.g, Random Over-Sampling, Cluster-Based Over Sampling
- Undersampling, by removing some of the majority class so it has less effect on the machine learning algorithm, e.g, Random Under-Sampling,
- Hybrid, a mix of oversampling and undersampling
- e.g. SMOTE (Synthetic Minority Over-Sampling Technique), RUSBoost, SMOTEBagging and Underbagging
Zero-shot learning
假设小暗(纯粹因为不想用小明)和爸爸,到了动物园,看到了马,然后爸爸告诉他,这就是马;之后,又看到了老虎,告诉他:“看,这种身上有条纹的动物就是老虎。”;最后,又带他去看了熊猫,对他说:“你看这熊猫是黑白色的。”然后,爸爸给小暗安排了一个任务,让他在动物园里找一种他从没见过的动物,叫斑马,并告诉了小暗有关于斑马的信息:“斑马有着马的轮廓,身上有像老虎一样的条纹,而且它像熊猫一样是黑白色的。”最后,小暗根据爸爸的提示,在动物园里找到了斑马(意料之中的结局。。。)。
- 训练集数据\(X_{tr}\) 及其标签 \(Y_{tr}\) ,包含了模型需要学习的类别(马、老虎和熊猫),这里和传统的监督学习中的定义一致;
- 测试集数据\(X_{te}\) 及其标签 \(Y_{te}\) ,包含了模型需要辨识的类别(斑马),这里和传统的监督学习中也定义一直;
- 训练集类别的描述\(A_{tr}\) ,以及测试集类别的描述 \(A_{te}\) ;我们将每一个类别 \(y_{i}\in Y\) ,都表示成一个语义向量\(a_{i}\in A\) 的形式,而这个语义向量的每一个维度都表示一种高级的属性,比如“黑白色”、“有尾巴”、“有羽毛”等等,当这个类别包含这种属性时,那在其维度上被设置为非零值。对于一个数据集来说,语义向量的维度是固定的,它包含了能够较充分描述数据集中类别的属性。
在ZSL中,我们希望利用 \(X_{tr}\) 和 \(Y_{tr}\) 来训练模型,而模型能够具有识别 \(X_{te}\) 的能力,因此模型需要知道所有类别的描述 \(A_{tr}\) 和 \(A_{te}\) 。ZSL这样的设置其实就是上文中小暗识别斑马的过程中,爸爸为他提供的条件。
One-shot learning & Few-shot learning
我们已经通过些许动物(狗除外)的样本训练出来了模型,我们想让模型识别新的类-----狗。显然,这就是要把源知识(source)迁移到包含狗的知识领域来(target).为了完成识别新类(狗)的问题,于是需要新来一张标好 label 的样本(如 :有 label,样本是田园土狗, 称作 sample set 或 support set)用来泛化模型,那么再来 test 样本时候(如:无 label,样本是哈士奇,称作 query set 或者 test set),我们就可以把这个 哈士奇的样本 label 标出来,达到分类的目的。这种学习叫做 one-shot learning,即单样本学习。同样的,如果刚才来的是一堆标好 label 的样本(除了田园土狗,可能还有京巴、吉娃娃、泰迪等做 support set),这种学习叫做 few-shot learning,即小样本学习,一般 few 不会大于 20。
Our model is given a tiny labelled training set \(S\), which has \(N\) examples, each vectors of the same dimension with a distinct label \(y\) : \(S=\{(x_1,y_1),..,(x_N,y_N)\}\). It is also given \(\hat{x}\), the test example it has to classify. Since exactly one example in the support set has the right class, the aim is to correctly predict which \(y\in S\) is the same as \(\hat{x}\)'s label, \(\hat{y}\).
few-shot 的训练集中包含了很多的类别,每个类别中有多个样本。在训练阶段,会在训练集中随机抽取 C 个类别,每个类别 K 个样本(总共 CK 个数据),构建⼀个 meta-task,作为模型的⽀撑集(support set)输⼊;再从这 C 个类中剩余的数据中抽取⼀批(batch)样本作为模型的预测对象(batch set)。即要求模型从 C*K 个数据中学会如何区分这 C 个类别,这样的任务被称为 C-way K-shot 问题。
元学习meta learning: 希望AI系统能获得多种技能并能适应各种环境,但针对每种技能都从0开始训练是无法承受的。因此,我们希望它能够从之前的经验快速地学习新的技能,而不是把新的任务孤立地考虑。这个方法,我们称为元学习。如果指代技术的话,meta learning 就是对优化器进行优化学习,从而使得能快速的学习后来的数据
迁移学习transfer learning: 利用一个场景中已经学到的内容(分布p1)去改善另一个情景(分布p2)中的泛化情况。我们假设能够解释p1变化的许多因素和学习p2需要抓住的变化相关。学习表示的网络架构越深,在新场景的新类别上学习到的曲线就越好,对于深度表示而言,迁移任务只需要少量标注样本就能显著地提升泛化性能。
元学习是希望利用之前的经验从而使得自己快速的学习新的技能,迁移学习是希望能在之前学习到的经验改善之后学习的效果。这两者的定义如此相近,但是又有一点微妙的区别,这两者可能是包含的关系,也可能是有所重叠的关系?
Mode Based: 通过模型结构的设计快速在少量样本上更新参数,直接建⽴输⼊ x 和预测值 P 的映射函数,
Metric Based: 通过度量 batch 集中的样本和 support 集中样本的距离,借助最近邻的思想完成分类
- metric: 对样本间距离分布进行建模,使得属于同类样本靠近,异类样本远离
- 匹配网络matching net: 在不改变网络模型的前提下能对未知类别生成标签,其主要创新体现在建模过程和训练过程上。对于建模过程的创新,文章提出了基于memory和attantion的matching nets,使得可以快速学习
- 孪生网络(Siamese Neural Networks): 通过一个有监督的基于孪生网络的度量学习来训练,然后重用那个网络所提取的特征进行one/few-shot学习。双路的神经网络,训练时,通过组合不同类的样本成对,同时输入网络进行训练,在最上层通过一个距离的交叉熵进行loss的计算
- 原型网络 (Prototypical Networks): 通过计算和每个类别的原型表达的距离来进行分类。文章基于这样的想法:每个类别都存在一个聚在某单个原型表达周围的embedding,该类的原型是support set在embedding空间中的均值。
Meta Based:
Optimization Based: 普通的梯度下降⽅法难以在 fewshot 场景下拟合,因此通过调整优化⽅法来完成⼩样本分类的任务
- finetune: 获得一定量的标注数据,然后基于一个基础网络进行微调。
1. 06.One-shot Learning of object categories
最早的one shot learning 论文,采用贝叶斯、概率模型(最大似然、最大后验概率)的办法实现
图像分类,没有大量的图片数据信息,从先前学习的分类获得一般化知识在参数空间运用其构建先验概率密度函数,利用新分类更新后验概率密度。
贝叶斯模型:如果图像包含一个目标实体的概率高于纯背景的概率,则认为图像包含目标实体。
特征表示方法:对于给定的一系列图像,寻找N个感兴趣的区域获得相应的区域位置和区域形态信息(外观APP和形状SHAPE),极大似然估计的办法估计相应的先验概率。
2. 16.Matching Network for One shot learning
在少量数据上快速学习新的概念。
基于度量学习Metric learning和具有外部记忆能力的神经网络,也具有meta-learning的形式
将带有标签的支撑集(训练集)和无标签样本映射到其所对应的标签,避免了为适应新类型而对网络采取fine-tuning。参数化模型会因为模型对于训练样本到参数的训练过程而学习新样本缓慢,而非参数模型(e.g. 近邻)则可以快速吸收新样本。
Match Network 采用了注意力和记忆机制来加速学习,训练时只对每个类别的少量样本经行长时间训练,其他的则采用minibatch快速切换,效仿其在测试时的状态。
\(S=\{(x_i,y_i)\}^k_{i=1}\) 具有k张样本的支撑集样本对,x为样本data,y为样本label
\(c_S(\hat{x})\) 根据输入的\(\hat{x}\),输出特定的样本类别\(\hat{y}\)对应的概率分布,有点类似于李老师之前的贝叶斯,也是生成概率分布,只不过李老师的做法是根据样本更新后验来做到的,而此处是使用一个具有记忆能力的网络实现。而标签具体输出则是由公式 \(\hat{y}=\sum^k_{i=1}a(\hat{x},x_i)y_i\) 计算,也就是说每个输出标签是作为一个支撑集标签的线性组和,其中a是注意力机制。 \(a(\hat{x},x_i)=e^{c(f(\hat{x}),g(x_i))}/\sum^k_{j=1}e^{c(f(\hat{x},g(x_j)))}\) 其中c代表的是余弦距离,f、g代表的是一种用于评估x的神经网络的嵌入函数。
为了方便在学习文本样本时更好的利用之前的信息而不是独立的学习每个样本并且为了更好的修改潜入函数,所以采用了LSTM去编码每个支撑集中样本,将其作为一个序列。
训练过程中,对类别采样,用采样类别去支撑集采样和batch批次,然后Matching Net用在批次B中最小预测误差策略去训练,这种学习使得net学到如何从支撑集中学习以最小化批次误差。
Omiglot 98-94%的准确率
图片测试集miniImageNet(自制) 46-60%
ImageNet 5way-1shot up 6% 96%
3. 17.Meta Network
在任务中学习meta-level知识,变换它的归纳偏差。分为快慢两个层次的学习,慢学习slow learning 学习任务过程中meta-level的模型表现,快学习rapid leadning 学习在每次任务上模型的base-level表现。通过允许神经网络从动态单样本中学习,MetaNet支持meta-level连续性学习(?。每次任务结束,基学习器base learner 会提供给元学习器meta learner自己在如今任务空间中的状态信息(meta information。基于这些信息,元学习器快速参数化自身和基学习器,从而让MetaNet可以识别输入任务的新概念。快权重fast weight会在每次任务尺寸进行更新,而慢权重slow weight则是随着整个学习算法结束更新。
- meta learner 元学习器: \(W^*_i=m(Z,\nabla_i)\) m是以\(Z\)作为参数的神经网络,则处理元信息,将由基学习器b得到的损失梯度与快权重建立映射。表示学习函数(元学习器)\(u\)是以慢权重\(Q\)和快权重\(Q^*\)为参数。\(L_i={loss}_{emb}(u(Q,{x_i}'),{y_i}'), \nabla_i=\nabla_QL_i,Q^*=d(G,\{\nabla\}^T_{i=1})\),其中d函数以G作为参数的神经网络,观测每个样本的梯度总结为具体任务参数。然后,以此计算依赖于任务的输入表示\({r_i}'=u(Q,Q^*,{x_i}')\),然后将\(r\)和\(w\)存储作为\(R\)\(M\)记忆。R会根据相似度计算输入表示所对应的注意力向量\(a\),并根据此计算\(M\),元学习器就会用得到的快权重来参数化基学习器。
- base learner 基学习器:基学习器具有快权重\(W^*\)和慢权重\(W\),慢权重会在学习算法后更新,快权重则有元学习器在每次输入后都会更新。
4. 16. One-Shot Learning of Scene Locations via Feature Trajectory(轨迹) Transfer
户外景色会因为一些瞬息变幻的属性(transient attribute),如下雨、晴天、夜晚等,影响到场景识别的表现。
研究这些瞬间属性,从而在新的图像表达上使用,从而利用瞬息属性所生成的空间维度来合成新的数据,最后用以增强one-shot场景位置识别的表现。因为不充足的瞬息属性收集,导致部分瞬息属性的训练会极大的影响场景位置识别以及场景类别分类。
大量小场景数据集被收集,但是对于大场景而言,大部分的数据来自于网络,所以这些数据因为收集时状况不同而有相应的用户偏差(user bias),例如雨天的沙滩就会很少出现。挑战就是:能不能利用现有的数据让学习过程能从单一实例中辨别场景。
是否我们可以通过学习图像表示是如何因瞬息属性而变化,从而数据合成来人工的增加可变性
先学习不同的实例在不同瞬息属性变化情况下的表示空间变化,从而根据他们与新图像相似性加权修改新图像的表示空间,从而得到新的瞬息属性下新图像的表示情况,然后更具度量学习,寻找到测试图像的最近邻居来分类。
5. 16.One-shot Learning with Memory-Augmented Neural Networks
具有增强记忆能力的结构,如Neural Turing Machines,具有快速编码和检索信息的能力,因此可以避免传统结构对新数据需要重新学习的能力。并且新的方式,会更加专注于记忆内容,而非聚焦于记忆本身的位置。
传统CNN在大量监督学习任务中取得了优秀的结果,但是许多问题更关注于快速的从少量数据中得到新的推断inference,而在OSL中,单一观察结果要求在行为模式中采取一个快速的迁移abrupt shifts。例如,对于一个新单词,在只听过一两次后推断其用法。传统的基于梯度的办法会根据可用数据而彻底的重新学习参数,这样的策略会导致poor learning 和 灾难推断 catastrophic interference。
拥有记忆机制的神经网络(如LSTM结构)可以胜任meta learning——learning to learn。他们即会通过权重更新转移自己的bias,同时也会根据存储记忆的缓存表达cache representation 而快速的调整输出。但是,使用非结构化的循环结构体系中的固有记忆策略不利于扩展到每个新任务都需要显著的数量的新信息用以快速编码的状态。
提出了MANN可以保留长期和短期的记忆需求,胜任meta-learning任务,快速学习新的类别。网络具备两个特点:1.通过梯度的下降办法缓慢学习到从新数据中获取有用表示的抽象方法 2.通过额外的记忆模块,快速结合单个展示的新信息
meta-learning中期望降低期望学习花费通过分布\(p(D)\):\(\theta^*=\arg\min_\theta E_{D \sim p(D)}[L(D;\theta)]\)。 具体的学习策略就是学习时,并不是输入样本\(x_i\)和标签\(y_i\)而是带一定偏差的\((x_i,y_{i-1})\),这样学习的目的是让外部记忆既可以将样本表示-类别信息存储,用以后续的已见过样本的类别检索,避免网络缓慢的将样本类别和权重绑定,而是学习保持记忆中的样本直到后续的准确标签出现。对于每次的预测,错误信号会从预测阶段反向传播到先前的步骤中更新权重来提升这种结合策略。一次学习结束后,会再次洗乱新类别的标签、样本再用以学习。在这种学习过程,最开始的表现近似于一种随机猜测,但是随着记忆模块的使用而逐渐完美。同时,这种学习使得记忆模块并不专注于每次样本表示的具体内容,而更专注于样本表示与正确类别之间的结合。
网络中的控制模块负责和记忆模块交互,用余弦距离快速检索,根据相似度累计所有记忆矩阵得出对应的记忆。记忆通过LRUA的方式,写在最少使用或最近使用的两个位置,通过一个退化算法\(w^u_t\Leftarrow \gamma w^u_{t-1}+w^r_t+w_t^w\),不断更新阅读权重\(w^u_t\),从而确保一个新的记忆会依照他的相关性信息写入记忆模块中保留编码方式的较少使用位置或作为较新的相关信息更新写在最近使用的位置,其中\(M_t(i)\Leftarrow M_{t-1}(i)+w^w_t(i)k_t\)。
6. 11.One shot learning of simple visual concepts
什么知识抽象的结构是什么样的?一种假设认为:相似共享是OSL的核心部分。
手写字母包含丰富的笔锋内在部分结构,提供了一个使用基于parts的表示学习方法的先验理由。通过对字母的笔锋结构建模,使得先前的字母有助于推断新字母的潜在笔锋。
许多笔者认为实现OSL的一个方法:迁移抽象知识从老到新概念,transfer learning 迁移学习、 representation learning 表示学习、 meta learning 元学习。相关的相似性维度可以在元学习课程中构建。通过对物体结构的解析表示,物体部分和关系组建成了一个极为有效的表示基础。联合学习许多概念和高级结构(构成概念基础的)语法。
字母类别由包含笔锋知识的一般知识生成。使用数量、identity特征和一般结构来抽象的描述笔锋。通过混乱的笔锋位置和着墨像素,从类别生成具体的字母记号(图像):
- 生成字母类别: 一个字母类别由一个笔锋集合和他们的位置定义,以及混淆强度。后续笔锋\(P(S_{i+1}|S_i)\)和位置\(P(W_{i+1}|W_i)\)由转移模型得出。
- 生成字母记号: 一个字母记号由字母类别生成。由字母类别定义中的位置定义和全局迁移控制\(\tau^{(j)}\)生成具体位置。利用ink模型,计算像素着墨概率。
- 学习笔锋库: 从绘制数据中学习笔锋的一般化知识。用三次函数B样条去降维笔锋轨迹长度到同一的10个控制点维度并在新空间中聚类
- 从OSL推断: 对于OSL,用MAP估计图像\(P(I^{(t)}|I^{(e)})\)。用马尔科夫蒙特卡罗估计最有可能的50000个参数候选,然后计算对应的概率。
7. 17.Few-Shot Object Recognition From Machine-Labeled Web Images
我们可以轻松的获得大量的由机器标注的标记数据。基于“abstraction memory 抽象记忆”的框架用于fews shot learning。将大量的机器标注数据集作为外部记忆库,信息按照图像特征值和标签被存储在记忆槽中。当少量样本查询时,模型会挑选视觉相似的数据然后将从相关外部数据中获得的有用信息写入另一个记忆库,如:抽象库。使用网络上机器标注的图片去快速处理只有少量样本的新类别物体识别。
抽象库关注于根据少量样本从外部库中查找得出的信息。我们采用了基于内容匹配器的LSTM控制模块去自动的决定阅读和写入。抽象库会根据具体任务表示记录对于少量样本识别有用的抽象信息,从而利用这些信息去辅助新类别的识别。如果在视觉匹配阶段,外部记忆数据和其标签不匹配,这个样本就会被拒绝。当新的类别到来时,整个网络会接入并检索外部网络,寻找相关信息,写入到抽象库。我们提出的Key Value Memory Networks,其会将图像作为key,将标签作为value。
Memory Network 是使用外部记忆强化的神经网络。使用了long-term长阶段记忆模块\(M\)使得神经网络可以接入到长期存储中推理,而非被限制在少量的外部记忆中。
对于一个输入图像,其会在LSTM中迭代\(T\)次,每次迭代结果都会与所有Key值点乘得到相似度距离,然后利用相似度累积记忆\(z^t_{key}\),其结果与本轮查找\(q_t\)结合成新的\(q^*_t\)用于下一轮跌代,由此得到T组记忆数据。抽象记忆部分则使用LSTM产生两个擦粗变量\(e_{key}\)和\(e_{val}\)和增添变量\(a_{key}\)\(a_{val}\),分别控制写入记忆槽的内容。
8. 15. Siamese Neural Networks for One-shot Image Recognition
孪生网络Siamese Neural Network 具备特殊的结构可以自然的在输入间排列相似度。在输入结构方面作出限制假设,使得网络可以自动获取少量样本中的特征用于归纳。用一个监督的基于度量metric的孪生神经网络方法去学习图像表示。首先,我们的目标是让神经网络学习从而可以辨别一对图像的类别。根据两张图片属于同一类别的概率,辨别模型学习如何辨别输入对。如果辨别模型学习到的特征足以用于辨别类别时,那么对于新的类别辨别模型也可以在辨别测试集与训练集类别的相似性。
孪生网络具有两个相同的网络接受不同的输入但是在顶层能量函数处联合,网络可以计算高维特征表示的度量距离。
9. 17. Model-Agnostic(不可知) Mete-Learning for Fast Adaptation of Deep Networks
meta-learning,可以兼容任何使用梯度下降的模型,可用于大量不同学习模型:分类、回归、强化学习。
因为先验经验和新数据依赖于具体任务,所以为了更好的运用,meta-learning框架对于任务和计算要求具有一般性。构成我们方法的基础是:训练模型初始参数,从而使模型在经过新任务的少量数据的梯度步骤更新后有最好的表现。从特征学习角度,如果内在表示方法适应于任何任务,那么轻微修改fine-tuning参数就可以产生好结果。所以,模型的优化应该可以让模型在快速学习中向正确的方向适应。从动态系统角度,学习步骤应该视为最大化对新任务关于参数的损失函数的敏感度,敏感度高则小小的参数改动都会在任务损失方面取得巨大提升。
学习器会在meta-learning阶段学习一系列的任务,从而可以在新任务中快速适应。模型通过考虑在分布\(q_i\)的新数据产生的测试误差是如何改变参数的来提升性能.为了鼓励神经网络获得更具有一般化的表示模式,我们采用一个显示的办法:因为我们要在新任务上用梯度下降的学习规则来fine-tuned模型,所以我们目标学习一个用梯度学习规则在新任务中可以快速进步而不过拟合的模型,实际上,就是旨在找到对任务中的改变敏感的参数模型
对于每个任务: \({\theta_i}'=\theta-\alpha\nabla_\theta L_{T_i}(f_{\theta})\), 其中\(\alpha\)是超参数或者经过meta学习.而我们需要寻找\(\min_{\theta}\sum_{T_i\sim p(T)}L_{T_i}(f_{{\theta_i}'})\).为了实现这点,采用随机梯度的办法,在全部任务结束后优化\(\theta \Leftarrow \theta - \beta \nabla_{\theta}\sum_{T_i\sim p(T)}L_{T_i}(f_{{\theta_i}'})\),\(\beta\)是meta步长.
10. 17. Low-shot Visual Recognition by Shrinking and Hallucinating Features
表示正则化技术、幻觉增量训练样本技术techniques to hallucinate additional training example。我们认为内在模式变换的具体模型归纳于不同类别之中,通过转变基本类别的变换模式来幻象出额外的新类别样本。我们采用非参数的方法,任何同类别的两个样本代表着一种变换。给出新类别样本时,我们会运用这种变换在其上。首先,聚类每个基本类别的特征向量成100个群。某类两质心(pair of centroids),寻找在别的类中对应的余弦距离最近的两质心。然后训练网络\(G\)使其用四元组三个作为输入,生成的输出,计算其和实际的平方误差以及他和对应类别的损失。训练后\(G\)就可以用于在新类别样本数少于所需样本数\(k\)时生成样本。直观目标是:减少在大型数据集训练和在小样本上不同分类器的差别,从而使其训练结果具有更好的归纳。平方梯度量级损失 Squared gradient magnitude loss SGM, \(L^{SGM}_{D}(\phi,W)=\frac{1}{\|D\|}\sum_{(x,y)\in D \alpha(W,\phi(x),y)\left\|\phi(x)\right\|^2}\), 去\(\min_{W,\phi}L_D(\phi,W)+\lambda L_D^{SGM}(\phi,W)\)
11. 17. Multi-attention Network for One Shot Learning
12. 17. One Shot Metric Learning for Person Re-identification
行人重识别需要解决色彩、背景、视角、行人姿态等方面猛烈的变换问题。只使用灰度图训练一个用于纹理表示的CNN,还用单对ColorChecker 帮助图像学习色彩度量。我们假设对于一对摄像机,度量学习metric learning可以分为纹理和色彩两个部分。纹理部分,我们学习一个不变性深度表示 invariant deep representation,具有良好归纳性而无需fine-tuning。而色彩部分则需要fine-tuning,因为数据集不可能包含了所有摄像内在色彩变化。但这样色彩部分还是需要大量数据,所以我们使用一个不依赖于纹理的手工色彩特征来学习color。
使用不同深度特征的欧氏距离学习纹理,使用马氏距离学习色彩metric learning, \(d^2(i,j)=(1-\gamma)\left\|T_i-T_j\right\|_2+\gamma\Phi^2(c_i,c_j;G)\),\(\Phi()\)是马氏似然度量Mahalanobis-like metric。因为使用灰度图训练纹理CNN需要大量的类别,所以大量公开数据集联合作为一个任务训练CNN。将从一对不同摄像头提取的一对图像特征相减,分为正类\(c^+_{ij}\)(具有同一人)和负类\(c^-_{ij}\)(不具有同一人),计算相关度量:\(G=(\sum^+)^{-1}-(\sum^-)^{-1},\sum^+=(c^+_{ij})(c^+_{ij})^T,\sum^-=(c^-_{ij})(c^-_{ij})^T\),最后\(\phi^2(c_i,c_j;G)=(c_i-c_j)^TG(c_i-c_j)\)。对于正协方差,我们将他分成了前景和背景两个部分\(c_i^A=\mu_i+\sigma^A_i+\epsilon^A_i\)。将图像分为n个部分patch,计算图像背景模型的分布时会将其考虑进入,其\(a^{(n)}\)定义上与背景的混乱程度有关且依赖于监测人物在\(n\)位置所提取的特征差异。我们希望其依赖于检测器(依赖于检测器能生成有多准确的检测框)。所以让\(\sum^{+(n)}_R\)作为从n位置计算的特征差异,让其\(a^{(n)}=\arg\min_a\left\|\sum^+_\sigma+a\sum^+_\epsilon-\sum^{+(n)}_R\right\|\)。因为patch也可能有空间位置变化,所以网格 grid 也可以调整自己的位置。
13. 17. One-Shot Video Object Segmentation
半监督视频目标分割。在全卷积神经网络fully-convolutional neural network框架上,迁移一般化分割信息,在学习了测试序列的单标记物体后进行前景分割。我们让CNN预训练在图像识别上,然后在一系列人工标注的分割物体视频上训练,使其适应视频物体分割。最后,在测试时对于特定帧的特定物体进行fine-tuned。从一般化的大量类别的语义信息,经过物体通常形状的知识,最后到分割时具体物体具体属性。我们的方法OSVOS是独立处理视频每一帧。在过去,动作评估是一个优秀的视频分割算法的关键要素。所以,相比较于过去的模型,OSVOS可以分割被遮挡的目标,也不限制具体的动作范围,也不需要按帧处理,误差也不会因此沿时序传播。第三,OSVOS具有一定的可调节的速度和准确度的动态状态。“It is an object” “It is this particular object”。
- Foreground FCN:VGG,采用像素级的交叉熵损失。Offline训练:分类在ImageNet “base network”,然后在DAVIS训练分割“parent network”。Online训练\测试:根据给定的图像与标注对,对网络进行fine tuning
- Contour snapping:无论目标位置,分类都会给出一样的答案。所以为了获得用以视频分割的物体轮廓具体位置有两种策略:快速双边处理Fast Bilateral Solver FBS、使用CNN轮廓学习。只需要线下学习,而不需要线上学习。
14. 17. Optimization as a model for few-shot learning
基于LSTM的 meta learning 模型去学习精确优化算法用于训练另一个学习器神经网络分类器在few-shot域。基于梯度的优化办法并不能在少量更新下表现良好,特别是非凸优化问题。对于迁移学习的fine-tuning,如果网络预训练任务和目标任务相悖,其效果则会大大减小。所以,我们所需的是学习一个对于目标数据集而言是一个良好的训练起始点的统一有利的初始化状态的系统办法。
\(c_t=f_t\odot c_{t-1}+i_t\odot\tilde{c_t},i_t=\sigma(W_I\cdot[\nabla_{\theta_{t-1}}L_t,L_t,\theta_{t-1},i_{t-1}]+b_I)\)。为了更好的表现,我们要做的就是让训练场景和测试场景相匹配 training conditions match those of test time。
15. 17. Prototypical Networks for Few shot Learning
原型网络学习一个metric空间,通过计算每个类别的原型表示距离来分类。其基于:对于每一个类别存在一个集成在点聚类的原型表示附近。使用一个神经网络学习一个非线性的从输入到集成空间的映射,然后使用在集成空间中支撑集的平均值作为一个类别原型。
\(c_k=\frac{1}{|S_k|}\sum_{(x_i,y_i)\in S_k}f_\phi(x_i),p_\phi(y=k|x)=\frac{{exp}(-d(f_\phi(x),c_k))}{\sum_{k'}exp(-d*(f_\phi(x),c_{k'}))},d_\phi(z,z')=\phi(z)-\phi(z')-(z-z')^T\nabla_\phi(z')\)
16. 18. CLEAR: Cumulative LEARning for One-Shot One-Class Image Recognition
One Shot One Class OSOC 就是指只有一个新类别的一个样本,但是没有其他的类别和样本(感觉和One shot没什么本质区别?甚至可以算是简化版的问题?。重复或多次尝试同类任务会提高能力——识别系统学习过的类别越多,学习下一个类别的速度就越快。用神经网络提取特征,transfer learning 迁移学习学习一个特征表示和决策面的迁移映射,再用决策面去分类。从而对于单一的输入新类别图像,迁移学习也可以生成对应的决策面。
17. 18. Compound(复合) Memory Networks for Few-shot Video Classification
这篇文章很切题啊,而且方法有意思,效果也很不错
复合记忆网络compound memory network CMN,key-value的记忆形式,其中key包含多种关键字成分,其和抽象化的记忆构成了更具效率和扩展性的平面形式。多种显著性集成的算法编码一个可变化长度视频序列变为固定大小的具有多种显著性的表示矩阵。
视频具有比图像更加复杂的结构:时序信息、噪声。CMN可以方便的将新信息写入记忆,可以长时间的记忆一个只出现过一次的样本。为了强化视频特征,所以使用复数个特征向量作为组成key,组成key堆积成2D矩阵,这将方便在较大搜索空间中找到最佳视频特征。
These works focus on image few-shot recognition, whereas we aim to learn a few-shot cideo model.
Many efforts have been made to train a video classification model using large amounts of video data.
meta-training用于meta-learning最小化训练阶段损失,meta-validation用于超参数调节,meta-test用于测试正确率。
- Multi-saliency Embedding Function: 视频长\(m'\)帧。隐变量\(H\),具有m个成分\(h\),每个成分用于检测视频中的某一种特定的显著性。\(a\)作为软权重,用于评估输入和成分之间的关联性。\(a_i={softmax}(\frac{p_iH^T}{\sqrt{d_{hidden-size}}}),q_j=\sum^{m’}_{i=1}a_{ij}(p_j-h_j)\),最后扁平化和正则化
- Compound Memory Structure: 其记忆网络是Key-Value记忆网络的一种变种。value存储label信息。\(M=(C_{ns\times nc\times cs},A_{ns\times as},V_{ns},u_{ns})\) C是组成key,A是抽象记忆 abstract memory,V是value记忆,U是用来追踪每个slot使用的更新记忆 age memory。ns是记忆大小(多少个记忆槽),nc是组成key的数量,cs是key大小,as是抽象记忆大小。使用抽象记忆存储压缩成向量的组成key,从而可以采用快速近邻的方法查询。
- reading:\(z={normalize}(Q),(n_1,,,n_k)={NN}_k(z,A)\)
- writing:记忆不会通过反向传播方法更新,\(n_1\)是最近记忆槽的编号。如果返回正确的标签,就只更新最近记忆槽,\(C[n_1][i]\Leftarrow q_i+C[n_1][i],for i = 1,...,nc, A[n_1]\Leftarrow {normalize}(C[n_1]),U[n_1]\Leftarrow 0\)。如果返回标签不正确,就选择最久没更新的记忆槽\(n'=\arg\max_i(U[i]+r_i)\)更新\(C[n'][i]\Leftarrow q_i for i = 1,...,nc, A[n']\Leftarrow {normalize}(C[n']),V[n']\Leftarrow y, U[n']\Leftarrow 0\)
18. 18. Dynamic Conditional Networks for Few-Shot Learning
条件模型,多模态学习、条件生成模型。条件小样本学习场景:训练总样本很大,但是训练样本由于高维条件空间的每种条件导致数量限制。判别模型、生成模型。采用双子网联合的DyConNet,其中包含:1.Dynamic Convolutional layer 包含一堆可训练的basis filters 2. CondiNet 对于给定输入,预测一系列的可适应权重去线性的结合basis filters。因此对于每一种条件输入,可以动态的获得一个具体的卷积核。
\(\min_W\frac{1}{N}\sum^N_{i=1}L(h(x_i|y_i;W)) \Rightarrow \min_\varphi\frac{1}{N}\sum^N_{i=1}L(h(x_i;\varphi(y_i;W'))),f=W(y)*x+b(y)\)
19. 18. Dynamic Few-Shot Visual Learning without Forgetting
用具有注意力机制的小样本分类权重生成器扩展了目标识别系统,用余弦相似度重新设计了卷积网络模型分类器。学习新类别足够快、不牺牲卷积网络训练的初始类别精度。在训练阶段,学习基础类别的分类权重向量和提取特征,然后在few-shot时,根据输入样本的特征和基础类别权重向量,权重生成器生成对应的分类权重向量,然后结合few-shot的权重向量和基础类别的权重向量,就可以同时分类了。
- 基于注意力的few-shot分类权重生成器,基于输入的新类别样本利用通过吸收一个在基础类别权重向量上的注意力机制得到的先前的视觉知识从而生成一个分类权重向量。\(w'=G(Z',W_{base}|\phi)\),通过一个类别所有训练样本的分类权重向量求平均\(w'_{avg}=\frac{1}{N'}\sum^{N'}_{i=1}\bar{z_i}',z=F(x|\theta)\)。基于注意力的分类权重向量\(w'_{att}=\frac{1}{N'}\sum^{N'}_{i=1}\sum^{K_{base}}_{b=1}{Att}(\phi_q\bar{z_i}',k_b)\cdot \bar{w_b}\),其中\(\phi_q\)是一个可学习权重矩阵,\(k_b\)是\(K_{base}\)集合的可学习key用于指示记忆。\(w'=\phi_{avg}\cdot w'_{avg}+\phi_{att}\cdot w'_{att}\),\(\phi_{avg}\)是一个学习得到的参数
- 基于余弦相似度的卷积识别模型,通过分类权重向量和表示特征的相似度来进行分类\(s_k=\tau \cdot {cos}(z,w_k^*)\)。
20. 18. Exploit the Unknown Gradually: One-Shot Video-Based Person Re-Identification by Stepwise Learning
行人重识别,步行检测和跟踪。首先用标注数据训练网络,然后取样少量的最可信候选伪标签,根据数据更新网络,不断地迭代这两步,直到收敛。关注于只有一个跟踪片段被标注 tracklet。
21. 18. Few-Shot Human Motion Prediction via Meta-Learning
预测人毫秒级行动的3D骨架序列。其一,行为难以建模,其二,现在缺少大规模被标注的动作数据