IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> Embedding Label Structures:细粒度特征表示的标签结构嵌入 -> 正文阅读

[人工智能]Embedding Label Structures:细粒度特征表示的标签结构嵌入

  • 文章解决什么问题?现有方法很少关注到结构性的特征表示。为了获得细粒度特征表示,一种方法是学习相似性度量,但是这种方法受到两个限制:1)分类精度可能比不上在分类loss上微调的深度模型,收敛速度慢,2)没有利用标签的结构
  • 针对这个问题,文章的贡献:1)一个多任务深度学习框架,在不需要牺牲分类精确度的前提下,有效地学习细粒度特征表示。具体来说,我们在CNN中联合优化分类loss(即softmax)和相似性loss(即:triplet),这既可以产生分类结果,也可以产生具有区分度的特征表示。2)此外,基于这个框架,我们提出了无缝嵌入标签结构,例如层次结构(e.g.make,model和years)或者属性(例如食物成分)我们在三个细粒度数据集上评估我们的方法,它们都包括层
    次标签或者共享属性。实验结果证实了我们的特征表示可以精确地区分细粒度类别,也可以有效发现在不同层次相关性的图像。

图1:细粒度汽车数据集中的例子,相似性可以在不同的level上定义,例如车型、模型甚至视点,通过中心的query表示。在圆圈中的图像有相同的细粒度标签,即型号和模型,最相近的两个也共享相同的视点。?

? 图上的这些车可能在外观上很相似,但是具有不同的细粒度标签。这样的层次相似性会在细粒度特征表示中研究,因为它可以有很多用途。例如:对比信息或三元组(triplets)

? 为了获得细粒度特征表示,一种方法是插入相似性约束,然而这种方法存在一些限制:1)尽管从triplet约束中学习到的特征对于发现相似样例有效,它的分类精确度可能比不上在分类loss上微
调的深度模型,像我们实验中论述的那样。此外,使用这种约束的收敛速度常常很慢。2)更重要的是,以前的细粒度特征的方法不嵌入标签结构,但是标签结构对于定位在不同层次有相关性的图像很关键

?联合优化策略:可以生成更好的特征表示,用于细粒度图像理解。同时,我们提出的框架还可以很容易地支持在框架中嵌入标签结构,比如层次结构或者共享属性。

方法部分

? 传统的分类约束例如softmax常常在CNN细粒度图像分类中使用,它可以高精度区分子类差异。假设我们有N张训练图像\left \{r_{i},l_{i} \right \}^{N}_{i=1},包含C个类别,每张图像r_{i}的标签是l_{i}。给定最后一个全全连接层的输出f_{s}(r_{1},c),c是C个类别中的一个,softmax的loss可以被定义为所有训练图像\left \{ r_{i} \right \}_{i}的负对数似然:

? 其中P(l_{i}|r_{i})编码了图像r_{i}被分类为第l_{i}个类别的后验概率。简而言之,公式(1)目的是将类中的数据“压缩”到特征空间的一角。因此,类内差异不会被保留,而这种差异对于发现视觉上和语义上相似的实例是必不可少的。
? 为了解决这个局限,我们直接使用一个多任务学习策略对CNN中的相似性约束建模。具体来说,将三元组loss与分类目标作为相似性约束进行融合。三元组由三个图像组成,表示为(r_{i},p_{i},n_{i}),其中ri是特定类别的参考图像,pi是来自同一类别的图像,ni是来自不同类别的图像。给定输入图像ri(类似于pi和ni),此三元组驱动的网络可以生成特征向量f_{t}(r_{i})\in \mathbb{R}^{D},其中超参数D是嵌入后的特征维度。理想情况下,对于每个参考ri,我们期望其与不同类别的任何ni之间的距离比同一类别内的pi大一定幅度m>0

?其中D(·,·)是triplet网络的两个l2正则化向量f_{t}(\cdot)之间的平方欧氏距离。

在ft(`)特征空间中,通过最小化Et(r,p,n,m),可以将r和p分组在一起,同时排斥n。梯度可计算为:

?

?仅当D(r,n)-D(r,p)<m,否则为0。

? 与两两对比损失[10]不同的是,两两对比损失迫使同一类别的数据以固定的边距保持接近,triplet损失允许一定程度的类内差异。尽管最小化识别任务的等式3在学习特征表示方面有优点,但它仍然有一些缺点。例如,给定一个具有N个图像的数据集,所有可能的三元组的数量都是N的立方,与在C类中提供特定标签的分类约束相比,每个三元组包含的信息(即,具有边距的类似或不同约束)要少得多。这可能导致收敛缓慢。此外,如果没有明确的分类约束,区分类的准确性可能不如使用softmax的传统CNN,特别是在细粒度问题中,其中下级类的差异非常细微。

? 考虑到单独使用三重损失(等式3)进行训练的局限性,我们建议使用多任务学习策略联合优化两种类型的损失。图2显示了我们联合学习的CNN架构。在训练期间,R、P、N网络共享相同的参数。之后?2归一化后,将三个网络(即ft(r)、ft(p)、ft(n))的输出传输到三重态损失层,以计算相似性损失Et(r、p、n、m)。同时,网络R的输出fs(R)被转发到softmax损耗层以计算分类误差Es(R,l)。然后,我们通过加权组合将这两种损失进行整合:

? 其中\lambda_{s}是控制两种loss的权值。我们使用标准随机梯度下降来优化公式(5)。最后的梯度计算是一个λ加权的\triangledown W_{s}分类约束?和相似性约束的\triangledown W_{t},然后反向传播到低层。这个框架通过公式5统一三个网络,不仅学习有区分度的特征,也保存类内差异,而不牺牲分类精确度。此外,它解决了仅使用triplet loss时收敛缓慢的问题。考虑到采样策略,也可以选择Facenet的方法,或使用挖掘方法来探索训练数据中的有挑战性的例子。这两种方法在我们的框架中都是有效的,因为联合优化了E_{s}(r,l)促进了对好的解决方法的搜索,允许确定的采样灵活度。

? 在测试阶段,这个框架的输入是一个图像,通过softmax层生成分类结果,或者在l2正则化后的细粒度特征表示。有区分度的特征表示可以被用于多种任务,例如分类,检索,这比单独优化softmax更有效。?

?3.2 嵌入标签结构

? 像之前讨论的那样,一个有效的特征表示应该能够搜索不同层次的相关样例(例如图1),甚至不包含相同的细粒度类别。我们的框架是一个baseline,在不牺牲分类准确度的情况下,自然地嵌入标签的结构。特别地,我们的目的是处理两个类型的标签结构,即层次标签和共享属性,这两种在实践中都有宽泛的应用。

3.2.1 生成层次标签的三元组

? 在第一个例子中,细粒度标签可以被自然分组为一个基于语义或者领域知识的树形结构。层级可以包括多个层次。为了,我们用一个两级结构解释算法,接下来泛化到多层级。图3说明了一个汽车数据集中两层标签的例子,叶结点上细粒度的汽车模型通过他们根结点上的车型被分组。

? 为了建模这个层次的粗和细类别标签,我们提出泛化triplet的概念。特别地,引入了quadruplet来建模二级结构。每个四元组(r_{i},p_{i}^{+},p_{i}^{-},n_{i}),包括四张图像。与三元组类似,p_{i}^{+}表示和参考图像r_{i}属于相同细粒度类别的图像。主要的区别是在四元组中,所有的负样本被分类到两个子类:最相似的一个p_{i}^{-}r_{i}共享相同的粗类别,区别更大的一个n_{i}是从不同的粗类别中采样得到的。

? 给定一个四元组,这四张图像的层次关系可以被定义为两个不等式:

? 其中有两个超参数m1和m2,满足m1>m2>0,控制两个层次的距离。值得注意的是如果公式6满足,那么……自动成立。和三元组比较,四元组能够在不同层次间建模更丰富的标签结构,即粗标签和细粒度标签。总之,学习到的特征表示可以发现相关实例,例如:一个特定的模型和制造年份,或者从不同的车型中找到SUV。

? 考虑采样策略,所有的训练图像被用于每个epoch的参考。对每个参考图像r_{i},我们在精细和粗糙标签上选择p_{i}^{+},p_{i}^{-}和来自其他相关类别的n_{i}?。为了将这个四元组约束插入到CNN训练中,我们提出将公式(6)解构到两个三元组,(r_{i},p_{i}^{+},p_{i}^{-}),(r_{i},p_{i}^{-},n_{i}),称为泛化三元组。和公式(3)相似,我们的方法寻找可以使采样的四元组的联合损失最小的最优参数:

? 更清晰地,这个泛化三元组可以自然地插入到我们的多任务学习框架(公式5)

? 迄今为止我们主要通过泛化三元组来表示四元组,讨论了两个层级的层次关系。实际上,我们的方法也适用于更泛化的多层级样例。与四元组采样策略相似,每个元组被标示为从不同相似性的层次选出的类别。因此,一个从x层级中的四元组包含x+2张图像。这个元组被解构为x个三元组,通过将参考图像和两个相邻的层次的图像放在一起。这意味着多个三元组被采样用于表示不同层次的相似度,即, 细粒度层次标签的图像比那些共享相同的粗层级标签的图像更相似。与两级样例相同,使用基于三元组的多任务学习框架可以进行优化。值得一提的是,传统的三元组是泛化三元组的一个特殊形式,即只有一层的层次结构。

3.2.2 共享属性的泛化三元组

? 第二个样例,细粒度的对象可以共享共有的属性。举个例子,图4说明了细粒度的食物可以共享相同的成分,?表示不同层级的相关性。直观地,共享更多属性的类别比共享比较少属性的类别更相似。与第一个样例中的树形层次结构不同,我们不能直接用公式6来建模标签的依赖,因为一些细粒度类别可以拥有多种属性标签。取而代之,我们用一种改进的三元关系来建模这种图依赖关系。为了对我们的方法有更好的理解,我们考虑图4种的前三种菜肴。尽管第二个和第三个菜肴和第一个相比属于不同的类别,第二个菜肴和第一个共享更多的属性(牛肉、胡萝卜)。这种属性重叠的差异启发我们重新定义差额m,即D(r,p)和D(r,n) 之间的距离,称为不同类别的属性的Jaccard相似性:?

? ?其中m_{b}是一个常数因子,是基础差额,Ap和An分别是属于正和负类别的属性。因此,这些类别共享越多的属性,这个三元组就拥有越小的margin。使用这样的三元组loss的适应性margin,学习到的特征可以发现和查询图像包含共有的属性的那些图像。相似地,公式8可以自然地嵌入到我们基于三元loss的多任务学习框架种。实际上,原始三元组约束也是一个多属性约束的特例,当每个细粒度标签之和一个属性相关。

实验部分

? 在这一节中,我们在三个具有标签结构的细粒度数据集上进行了全面的实验来评估这个框架。我们旨在证实我们学习的特征表示可以被用于检索不同相关度层次的图像,同时比其他基于CNN的方法具有显著更高的精确度。此外。我们也报告了它期望的在这些细粒度数据集上的分类精确度。

? 我们关注四种可以产生细粒度特征表示的方法的对比:1)通过三元组loss的深度特征学习,2)softmax之后基于三元组的微调,即不进行联合优化,3)?我们的多任务学习框架,4)我们的学习框架,含标签结构。

?在分类任务中,除了这四种方法之外,我们也报告了使用传统softmax分类的CNN的准确率。所有的CNN基于GoogleNet,在这些细粒度数据集上微调进行公平比较。考虑到我们的超参数,我们一句经验将特征维度设为200,margin为0.2,λs为0.8.

??4.1 两层层次结构的斯坦福汽车

? 第一个实验关注嵌入层次标签的有效性,使用斯坦福汽车数据集。它包含196种汽车的16185张图像(含有标注框)?,8144张图像用于训练,剩下的用于测试。类别,即细粒度类别标签,被定义为make,model和年份,例如Audi S4 Sedan 2012。接着,我们将每个细粒度标签分配给九个粗略的车型中的一个,例如SUV,Coupe和Sedan。(图3),构成两级层次结构。

? 图5展示了使用从各种CNN中提取出的特征表示的检索精确度,包含细粒度和粗略层次。在细粒度层次,我们的多任务学习方法的结果比其他的要好,即在top40检索上高出至少13.5%的精确度。原因是联合优化策略使用三元组的相似性约束,这可以加强训练信息,帮助网络达到更好的效果。不管是在我们的框架中用传统的还是泛化的三元组(也即不使用或使用标签结构),准确度的差异有0.5%,这是由于采样策略导致的。在粗糙层次,我们的方法(不含标签结构)也不能达到高精确度,使用泛化的三元组显著超过了其他的方法,即高出至少12.4%,证实了我们的嵌入方法的有效性。为了给我们在粗级别检索上期望的结果提出见解,我们从我们的多任务学习框架中使用传统的和泛化的三元组提取特征,在降维后在图6中可视化。随机选取了六个粗粒度类别,和五个从每个粗类别中采样出的细层次类别。泛化三元组的特征更好的分离,这也是由于标签结构的嵌入。

?

?

?

?

?

?

?

?

?

?

? ?

?

?

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-11-14 21:38:18  更:2021-11-14 21:44:48 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 6:33:58-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码