1 简介
论文题目:Deep Value Networks Learn to Evaluate and Iteratively Refine Structured Outputs
论文来源:ICML 2017
论文链接:https://arxiv.org/pdf/1703.04363.pdf
代码链接:https://github.com/gyglim/dvn
1.2 创新
- 提出一个deep value network(DVN)模型,将x和y作为输入,输出一个标量,衡量x和y的一致性。(学习批判不同的输出比学习直接提出最佳预测更容易)
- 在文本分类和图像分割任务上达到sota。
2 背景知识
Structured output prediction学习一个input到多元离散output的映射,loss函数如下(对于多分类任务使用负F1值;图像分割任务使用负IOU):
优化得分函数,使预测得分接近负损失值:
在预测时:
3 方法
提出一个deep value network为
v
(
x
,
y
;
θ
)
v(x,y;\theta)
v(x,y;θ),预测一个标量,评估x和y的一致性,在训练期间假设oracle value function为:
用于图像分割和多标签分类的oracle value function包括 IOU 和 F1 指标:
使用简单的梯度下降优化器进行推理,将
y
∈
{
0
,
1
}
M
y \in \{0,1\}^M
y∈{0,1}M替换为
y
∈
[
0
,
1
]
M
y \in [0,1]^M
y∈[0,1]M,经过多次梯度上升:
为了训练DVN,需要扩展
v
∗
(
y
,
y
∗
)
v*(y,y*)
v∗(y,y∗)的范围(以适应连续的输出y),对于IOU和F1分数,通过max和min扩展交集和并集的概念。
loss函数如下:
训练DVN的算法过程如下:
每一个训练样本包括input,output和oracle value,如
(
x
,
y
,
v
∗
)
(x,y,v^*)
(x,y,v∗),生成训练样本有下面三种方式:
- 在训练期间进行基于梯度的推理
- 生成对抗样本( v ( x , y ; θ ) v(x,y;\theta) v(x,y;θ)和 ( x , y , v ∗ ) (x,y,v^*) (x,y,v∗)有很大的差异,通过最大化loss生成)
- 随机取样(可能与 y ∗ y^* y∗有偏差, p ( y ) ∝ e x p { v ∗ ( y , y ∗ ) / τ } p(y)\propto exp\{v^*(y,y^*)/\tau \} p(y)∝exp{v∗(y,y∗)/τ})
4 实验
多标签分类选择的数据集为Bibtex和Bookmarks(使用SPENs作为模型结构),实验结果如下图:
图像分割选择的数据集为Weizmann horses,使用的模型结构和实验效果如下图:
可视化结果:
在Labeled Faces in theWild数据集上进行图像分割的实验效果如下图:
可视化结果:
消融实验结果:
在Weizmann数据集上可视化模型学到的内容:
|
|
|
|
|