这篇博客为阅读论文后的总结与感受,方便日后翻阅,查缺补漏,侵删!
零样本学习,零样本学习迁移学习的一种特殊场景,在零样本学习的过程中。训练集和测试集之间没有交集,需要通过训练类与测试类之间的知识迁移来完成学习。使在训练类上训练得到的模型能够成功识别测试类输入样例的类标签。更一般地说,零样本学习如果模型在训练过程中,只使用训练类的样本进行训练,且在测试阶段可以识别从未见过的测试类样例,那么就认为该样本实现了零样本学习。
迁移学习简单来说,就是将一个学习任务A建立的模型可以迁移到学习任务B中,这里举个例子:人在实际生活中,有很多迁移学习,比如学会了骑自行车,就比较容易学会骑摩托车,学会了C语言,在学一些其他的变成语言就会简单的多。
在机器视觉领域,你如果想实现一个应用,而不想从零开始实现权重,比方从随机初始化开始训练,实现最快的方式通常**是下载已经训练好的权重的网络结构,**把其当做预训练迁移到你感兴趣的新任务上,这样可以节省大量的训练时间。如下图:
如上图所示,已经有一个模型,该模型输入 x x x最后经过Simoid处理可以输出猫和狗的概率,但现在,我们有一个新任务分类:猫、狗、猪其他动物。这时候,我们不需要重新训练模型的参数,只需要训练模型最后一层并训练改层的参数。
当然这不是绝对的,如果我们的训练集比较充分,可以选择从零开始训练我们的模型参数,这样分类效果可能更高,但如果我们的数据集较少,也可以选择冻结模型参数的一部分,训练模型的其他参数,实现特定任务的分配。
零样本的学习利用训练集中的样本,和样本对应的辅助信息(例如文本描述或属性特征等)对模型进行训练,在测试阶段利用训练过程中得到的信息,以及模型的测试类辅助信息对模型进行补足。使得模型能够成功的对测试集中的样例进行分类。我的理解,在训练样本中假设有个牛的样本,我们可以利用改样本集对神经网络模型进行训练,我们知道神经网络可以将输入样本压缩为隐空间的一个向量表示,如果在训练过程还得知,对应得隐空间的第 i i i维度值表示待识别动物的体重,第 j j j维度值表示待识别动物鼻子的长短,当我们如果规定,在隐空间对应的牛和训练样本距离很近,且第 j j j维数值较大,我们有理由相信待识别的图像为大象图像。
通俗来讲:训练阶段,如果可以利用给定的$ x_{i}、y_{i}$以及 d ( y ) i d(y)^{i} d(y)i对函数 g g g 进行充分的训练,在测试阶段,假定每一个测试类都具有给定的$ d(y) 时 , 就 可 以 利 用 训 练 阶 段 学 习 到 的 函 数 g , 计 算 每 个 测 试 类 样 例 所 对 应 的 分 类 函 数 时,就可以利用训练阶段学习到的函数 g, 计算每个测试类样例所对应的分类函数 时,就可以利用训练阶段学习到的函数g,计算每个测试类样例所对应的分类函数g_{d(y)}(x)KaTeX parse error: Expected 'EOF', got '#' at position 245: …lor_FFFFFF,t_70#̲pic_center) 个人感…gd(y)(x) = g(x,d(y)) , 可 以 看 作 模 型 空 间 方 法 特 例 , 模 型 空 间 方 法 将 ,可以看作模型空间方法特例,模型空间方法将 ,可以看作模型空间方法特例,模型空间方法将d(y) 作 为 调 整 模 型 作为调整模型 作为调整模型gd(y)(x)$的参数,不太理解。
假定 y 1 , y 2 , . . . y k y_1,y_2,...y_k y1,y2,...yk为训练类, y k + 1 , y k + 2 , . . . y k + L y_{k+1},y_{k+2},...y_{k+L} yk+1,yk+2,...yk+L为测试类, a 1 , a 2 , . . . . , a M a_1,a_2,....,a_M a1,a2,....,aM为全部属性特征的集合,在测试阶段时候,尽管模型从未针对测试类进行训练,但属性层仍然可以利用训练阶段得到的属性分类器 β \beta β对输入的测试类图像所具有的属性进行判断,得到输入图像的属性特征估计之后,就可以利用得到测试样例的属性特征估计以及测试类的属性指示对输入样例进行分类判断,通俗来讲:假设我们要通过(有无尾巴、体积大小、头有没有角)来对动物种类识别,属性分类器 β \beta β,可以提取输入图像有无尾巴,体积有多大,头有没有角?得到的结果与测试类的属性指示对输入样例进行分类判断。
f分类公式如下图所示:
f ( x ) = a r g m a x l = 1 , . . . . , L P ( y ∣ x ) = a r g m a x l = 1 , . . . , L ∏ m = 1 M p ( a m l ∣ x ) p ( a m l ) f(x) = arg max_{l = 1,....,L}P(y|x) \\= argmax_{l = 1,...,L} \prod^M_{m = 1}\frac{p(a^l_m | x)}{p(a^l_m)} f(x)=argmaxl=1,....,LP(y∣x)=argmaxl=1,...,Lm=1∏Mp(aml)p(aml∣x)
跨模态迁移学习的核心思想是将图像和类标签同时映射到相同的子空间内,且通常是将图像和类标签同时映射(或称为嵌入到语义空间中)并在语义空间内,利用一定的相似度度量方法,去确定测试类输入图像的类标签。
上图五边形白点代表测试类 “猫” 的输入图像在语义空间中的表示, 除此之外的白点代表训练类的输入图像在语义空间中的映射向量。在该方法中,黑点代表所有类标签的语义向量,所有的语义向量都是预先给定的辅助信息,这些语义向量可以是 属性向量,也可以是使用文本描述生成的单词语义向量。 训练阶段,首先利用训练类标签对应的语义向量和训练类的样例对跨模态映射模型进行训练。训练后,映射模型可以成功地将输入样例映射到语义空间中,并准确地映射到输入样例所对应的类标签的语义向量附近,测试阶段,输入测试类的样例时, 首先利用训练阶段得到的跨模态映射模型将测试类输入样例映射到语义空间中,并根据相似性判断方法 (如余弦相 似性、K 近邻方法等), 将与输入样例的的语义向量估计最为相似的语义向量的类标签, 作为测试类图 像的类标签估计。
简单来说,将类标签映射到语义空间中,根据训练集依据一定原则来训练样例到语义空间的映射关系,原则即:“样例映射到语义空间中应该在类标签向量周围”,依据映射关系将测试集也映射到语义空间中,并根据相似性判断方法确定其类别。
目前的零样本学习方法一般都沿袭了将输入和输出映射到子空间的思路,在这一思路下的零样本学习方法可以分为两类:“相容性模型” (主要是DAP 模型)和 “混合模型”(主要是IAP 模型)。
相容性模型又分为线性相容性模型和非线性相容性模型,非线性相容性模型使用非线性相容函数,与线性相容性模型相比具有着更强的表达能力;因此, 目前的零样本学习研究中,非线性相容性模型在相容性模型中占据主流地位。
F ( θ ( x ) , ψ ( y ) , w ) = θ T ( x ) W ψ ( y ) F(\theta(x),\psi(y),w) = \theta^T(x)W\psi(y) F(θ(x),ψ(y),w)=θT(x)Wψ(y)
线性相容性零样本学习模型,分别是深度语义嵌入模型,属性标签嵌入模型,属性描述替换模型,文本描述替换模型,多视图零样本学习模型和细粒度数据视觉描述的深度表示模型。
顾名思义,非线性相容性模型的相容性函数是非线性的, 一般来说有两种常见形式:(1)距离函数形式 (2)概率形式。我们将介绍 7 种典型非线性相容性模型:语义自编码器模型、语义嵌入一致 性度量模型、联合隐变量相似嵌入模型、隐嵌 入模型、反向深度嵌入模型、基于文本描述的 深度零样本卷积神经网络和基于随机森林的零 样本学习模型。
利用训练类类标签所对应的特征子空间映射的混合组合来表示测试类输入样例在特征子空间中的映射,进而判断输入样例的映射与测试类类标签映射之间的相似性,得到输入样例类标签估计的模型,称为混合模型。简单来说:训练样例映射到特征子空间中,测试阶段过来一个测试样例同样方法可以映射到特征子空间中,且可以用其他已知样例的特征向量表示出来,比如熊猫 = 猫+熊,这样我们就可以预测输入的类别。
慢慢的将各种,模型啥的全部都搞定,以及学习的各种标准都好好研究透彻!