论文标题:
Retrieving and Classifying Affective Images via Deep Metric Learning (基于深度学习的情感图像检索与分类)
论文地址:http://users.cs.cf.ac.uk/Yukun.Lai/papers/retrieving-classifying-affective-AAAI18.pdf
Affective Image analysis(或Image sentiment analysis),顾名思义,就是挖掘图像所蕴含的情感类别的任务。图像是一种直观的表达方式,当人们看到一张图片时,不仅会关注图像包含的物体,往往也会被图片传达的情绪所感染或冲击。因此,在某些实际场景中,仅对图像做分类、识别等研究是不够的。比如广告图中,图像所传达的情感是影响顾客倾向的重要方面。由此可见图像情感分析是一项具有广泛应用价值的任务。
本文作者认为先前的工作都只是将图像进行多分类,每一个标签都是独立的。然而实际上,情感标签不同于具体的对象类别标签,具有相同极性(即积极或消极)的情感标签是高度相关的。因此该任务本身具有模糊性,但很少有方法专注于利用情感的这种特性来理解情感图像。
于是,作者在传统的分类损失基础上,加入了相似度损失,利用图片所属情感标签之间的相似程度解决传统方式的缺陷。
本文使用The Mikels’ emotion wheel的八种情感划分作为标签。
如上图所示,图像的八种情感标签分别是:愉悦、满足、敬畏、激动、害怕、悲伤、厌恶、愤怒 。
文章的主要贡献有以下几个方面:
上图对所提出的算法进行了展示。对于包含不同情绪的图像的小批量,生成一个情绪向量(SV)来测量情绪差异。具体来说,使用1×1卷积层在降低特征映射维数的同时生成非线性激活,然后计算情感向量中每对特征映射之间的相关性。本文的框架同时优化了情感图像理解的分类损失和相似性损失。
使用图像的情感向量(SV)的欧氏距离表示图像之间的情感度量(SV将在下一节具体介绍):
D ( x i , x j ) → ∣ ∣ S V i − S V j ∣ ∣ 2 2 D(x_i, x_j) → ||SV_i-SV_j||_2^2 D(xi,xj)→∣∣SVi−SVj∣∣22 其中 i i i和 j j j表示来自训练集 Γ Γ Γ的不同图像, S V i SV_i SVi和 S V j SV_j SVj指从卷积层计算出的情感向量。
不同情绪图像之间的距离可以说是主观的,但总体关系可以认为是明确的:具有相同极性的图像彼此接近,而具有相反极性的图像应该相距更远。
因此,将三重态约束推广到考虑情感关系的情感约束。
算法通常生成小批量的三元组,即锚 a i a_i ai、同一类的正实例 p i p_i pi和不同类的负实例 n i n_i ni。目标是学习一个嵌入函数,该函数将较小的距离分配给更相似的图像对,可以表示为: D ( a i , p i ) + α < D ( a i , n i ) D(a_i, p_i) + \alpha < D(a_i, n_i) D(ai,pi)+α<D(ai,ni) α > 0 \alpha>0 α>0是在正对和负对之间强制执行的边距。
情感标签之间存在层次关系,例如The Mikels’ emotion wheel八种情绪有四种积极情绪和四种消极情绪,即中上半圆的四种情绪()是同一个极性(积极),下半圆的四种情绪是另一个极性(消极)。
本文作者基于上述情感之间的关系对图片进行三档划分:
对于每一张图片,将其视作锚定图片(archor image),与它属于同一个情绪类别的图片记为正(positive),与它属于同一极性其他类别的图片记为相关(relative),与它情感极性不同的图片记作负(negative)
确保特定情绪的图像 a i a_i ai(锚定)与完全相同情绪的所有图像 p i p_i pi(正)更接近,这比具有相同极性情绪的任何相关图像 r i r_i ri更接近,而具有相反极性 n i n_i ni的图像保持最远的距离。
从形式上讲,情绪约束可以表示为
{ D ∗ ( a i , p i ) + α 1 < D ∗ ( a i , r i ) D ∗ ( a i , r i ) + α 2 < D ∗ ( a i , n i ) \left\{ \begin{array}{lr} D^*(a_i, p_i) + \alpha_1 < D^*(a_i, r_i)\\ D^*(a_i, r_i) + \alpha_2 < D^*(a_i, n_i)\\ \end{array} \right. {D∗(ai,pi)+α1<D∗(ai,ri)D∗(ai,ri)+α2<D∗(ai,ni) 其中 α 1 , α 2 > 0 \alpha_1, \alpha_2 >0 α1,α2>0
令y表示x对应的标签, D ∗ ( x i , x j ) = θ D ( x i , x j ) D^*(x_i, x_j)=\theta D(x_i, x_j) D∗(xi,xj)=θD(xi,xj), θ ∝ 1 d i s ( y i , y j ) \theta∝\frac{1}{dis(y_i, y_j)} θ∝dis(yi,yj)1,
d i s ( y i , y j ) dis(y_i, y_j) dis(yi,yj)=1 + “the number of steps required
to reach one emotion from another by the Mikels’ wheel” (从一种情感到另一种情感所需的步数)。
通过上述公式,情绪约束能够利用自然的情绪关系,即情绪不仅可以分为两个极性,而是进一步根据情绪之间的距离决定相关性。
通过最小化情绪损失函数来学习情绪度量: E s m l = ∑ i = 1 N [ D ∗ ( a i , p i ) − D ∗ ( a i , r i ) + α 1 ] + + ∑ i = 1 N [ D ∗ ( a i , r i ) − D ∗ ( a i , n i ) + α 2 ] + E_{sml}=\sum_{i=1}^{N} {[D^*(a_i, p_i) -D^*(a_i, r_i)+ \alpha_1]_+ }\\ + \sum_{i=1}^{N} {[D^*(a_i, r_i) -D^*(a_i, n_i)+ \alpha_2]_+} Esml=i=1∑N[D∗(ai,pi)−D∗(ai,ri)+α1]++i=1∑N[D∗(ai,ri)−D∗(ai,ni)+α2]+ 其中N表示训练图片数量, [ ⋅ ] + = m a x ( ⋅ , 0 ) [·]_+=max(· ,0) [⋅]+=max(⋅,0)
图像纹理(image texture)已被证明是与图像情感分类相关的重要视觉特征之一,为了有效地表示图像纹理,本文利用深度表示,提出了由多个Gram层组成的情感向量(SV),每个Gram层计算卷积层中滤波器响应(filter responses)的内积。
具体地说,首先将图像输入CNN并计算每个中间卷积层 l ∈ { 1 , 2 , … , L } l∈ \{1, 2, …, L\} l∈{1,2,…,L}的响应。假设层 l l l包含 N l N_l Nl个过滤器,因此包含 N l N_l Nl个特征映射(feature map),每个映射的大小为 W l × H l W_l×H_l Wl×Hl。
由于CNN通常在一层中有几十个甚至更多的过滤器,因此Gram矩阵中会有数千个元素,这会导致沉重的计算负担。
为了提高该框架的泛化能力,采用1×1卷积层,在减小Gram矩阵大小的同时加入了非线性激活。
因此,层 l l l中的响应可以存储在矩阵 F l ∈ R M L × N L ′ F^l∈\mathbb{R}^{M_L×N_L^{\prime}} Fl∈RML×NL′中,式中, F i j l F_{ij}^l Fijl是层 l l l中位置 i i i处第 j j j个过滤器的激活。 N L ′ N_L^{\prime} NL′是过滤器的数量, M L = W L × H L M_L=W_L\times H_L ML=WL×HL。
这些特征图可以表示为二维矩阵 Φ ∈ R N L ′ × N L ′ \Phi∈\mathbb{R}^{N_L^{\prime}×N_L^{\prime}} Φ∈RNL′×NL′, Gram矩阵中的每个元素表示每对特征映射(feature map)之间的相关性, Φ i j l = ∑ k = 1 M L F k i l F k j l \Phi_{ij}^l=\sum_{k=1}^{M_L} {F_{ki}^l F_{kj}^l} Φijl=∑k=1MLFkilFkjl是层l中第i个和第j个矢量化特征映射之间的内积。
由于矩阵是对称的,独立元素个数有 N L ′ × ( N L ′ + 1 ) N_L^{\prime}×(N_L^{\prime}+1) NL′×(NL′+1)个,将来自层 l l l的情感向量 S V SV SV定义为: S V l = [ Φ 1 , 1 l , Φ 2 , 1 l , … , Φ N L ′ , 1 l , … , Φ N L ′ , N L ′ l ] SV^l=[\Phi_{1,1}^l, \Phi_{2,1}^l, …, \Phi_{N_L^{\prime},1}^l, …, \Phi_{N_L^{\prime},N_L^{\prime}}^l] SVl=[Φ1,1l,Φ2,1l,…,ΦNL′,1l,…,ΦNL′,NL′l] 将来自多个卷积层的情感向量连接为 S V = [ S V 1 , S V 2 , … , S V L ] SV=[SV^1,SV^2, …, SV^L] SV=[SV1,SV2,…,SVL], 然后将其归一化为单位l2范数,形成用于情绪度量学习的情绪向量(sentiment vector, SV)。
在标准训练过程中,传统的分类约束(如softmax损失)以最大化正确分类的概率被优化, 给定训练集 { ( x ( i ) , y ( i ) ) } i = 1 N \{(x^{(i)}, y^{(i)})\}_{i=1}^N {(x(i),y(i))}i=1N,
令 { h j ( i ) ∣ j = 1 , 2 , … , C } \{h_j^{(i)}|j=1, 2, …, C\} {hj(i)∣j=1,2,…,C}表示 x ( i ) x^{(i)} x(i)最后一个完全连接层中单元 j j j的激活值(activation values), 通过最小化softmax loss对最后一层进行微调: E c l s = − 1 N [ ∑ i = 1 N ∑ j = 1 C 1 ( y ( i ) = j ln p j ( i ) ) ] E_{cls}=-\frac{1}{N} [\sum_{i=1}^N \sum_{j=1}^C {\textbf{1}(y^{(i)}=j \ln{p_j^{(i)}}) }] Ecls=−N1[i=1∑Nj=1∑C1(y(i)=jlnpj(i))]式中 1 ( δ ) \textbf{1}(\delta) 1(δ)在 δ \delta δ为真时取1,否则取0。
p j ( i ) p_j^{(i)} pj(i)表示 x ( i ) x^{(i)} x(i)标签为 j j j的概率, p j ( i ) = exp h j ( i ) ∑ k = 1 C exp h k ( i ) p_j^{(i)}=\frac{\exp{h_j^{(i)}}}{\sum_{k=1}^C {\exp{h_k^{(i)}}}} pj(i)=∑k=1Cexphk(i)exphj(i), 该softmax的损失可以看作是所有训练图像 { x ( i ) } \{x^{(i)}\} {x(i)}上的负对数似然的总和,这将平均惩罚每个类的分类错误,从而忽略类内方差。
给定情感三元组和图像标签作为输入,显式地训练深度模型来优化分类和相似性约束。损失函数是是这两种损失的加权组合: E = ( 1 − ω ) E c l s + ω E s m l E=(1-\omega)E_{cls}+\omega E_{sml} E=(1−ω)Ecls+ωEsml
在四个数据集Flickr and Instagram (FI)、IAPSa,、ArtPhoto
和Abstract Paintings上进行实验。
- FI是通过查询Mikels的八种情绪作为关键词从社交网站收集的, 共有23,308张图片
- 国际情感图片系统(IAPS)是一个广泛应用于视觉情感理解研究的常见刺激数据集,IAPSa从中选择了395张带有相同八种情感类别注释的图片
- ArtPhoto包括照片共享网站上的806张艺术照片
- Abstract Paintings包含228幅由颜色和纹理组成的抽象画
本文基于GoogleNet Inception构建框架,该框架在ImageNet上实现了大规模图像分类的最先进性能。首先使用在大规模数据集上训练的权重初始化网络,然后在FI数据集上进行微调。使用128个批次,通过随机梯度下降(SGD)在整个网络中对所有层进行微调,确保每个情感至少包含8幅图像。实验均在两个NVIDIA GTX 1080 GPU上进行(CPU内存为32 GB)。
首先在当前最大的FI数据集上,对不同的算法进行评估
下表展示了FI数据集上分类和检索任务的性能。'∗’, ‘•’, ‘ ⋄ \diamond ⋄’表示使用不同的抽样方法(即随机抽样、硬抽样、半硬抽样)。使用不同的嵌入来表示情感,即完全连接层(FC)、情感向量(SV)
为了更加直观地体现SV的效果,在FI的测试集上使用t-SNE对不同方式的embedding进行可视化。
如下图所示,不同的颜色代表不同的情感标签,(a)(b)表示使用FC层作为嵌入的特征空间,而©表示在框架中使用情感向量SV的特征空间。
根据可视化结果,可以看出使用本文提出的方式能够更好地区分不同类别的图像。情感约束的特征始终比传统softmax损失的特征分离得更好,而本文的方法进一步扩大了类间方差,这得益于将情感关系纳入特征学习过程。
作者比较了以往算法与本文提出的算法在FI数据集上的分类和检索性能,下表展示了学习情绪表征的不同baseline,包括传统方法和基于CNN的方法。此处“S+T”表示使用softmax和triple loss联合训练模型。(ImageNet是唯一没有微调的模型,其他模型已在FI数据集上进行了微调)
与baseline进行比较,结果表明本文提出的方法在各项任务上都取得了更好的效果。
作者在文章中给出了检索任务的几个例子:上图是使用本文提出方法的检索结果实例,给定查询图像(第一列),显示前3名检索结果和相应的欧几里德距离。此外,最后一行展示了检索错误的例子(红色边框的图片)。
借助迁移学习,在另外三个较小的数据集上重复上述实验,并与其他几种最先进的方法进行了比较
实验结果表明,在这三个数据集中,本文提出的框架均达到了最优结果,这也体现出了对小规模数据集的泛化能力。