Learning with Pseudo-Ensembles
Pseudo-Ensembles
Learning with Pseudo-Ensembles 是2014年的NIPS文章,其提出了一个概念:pseudo-ensembles。【论文】【代码】。传统方法考虑到了在输入空间上的扰动(就是在输入样本中添加噪声,构成原本数据集上的一个超集),该文章中考虑到了在模型空间上的扰动。
文章目的
(1)通过pseudo-ensembles方法,是的神经网络模型具有抗干扰的能力。这个干扰笔者认为,(以图片分类为例)就是在图片上增加了噪声,是的原本为猫的样本,在添加噪声后,分类结果可能是狗。
(2)使得模型成为一个鲁棒的模型(毕竟采用的ensemble learning)。
pseudo-ensemble 在文章中以 Dropout 为例子,认为 Dropout 方法是建立在 parent model 的模型基础上, parent model 通过对输入层/隐藏层的神经元随机抛弃,从而产生不同于的 child model 。 child model 通过它们的公共 parent model 共享的参数被用来最小化 child model 的预期损失。
和传统集成学习的比较(boosting,random forest)
(1)boosting求解的是整体损失最小,而 pseudo-ensemble 求解的是单个 child model 期望损失最小。
(2)child model 通过其 parent model 共享参数和结构。
The Pseudo-Ensemble Agreement regularizer
Pseudo-Ensemble Agreement(PEA) 的含义笔者认为:对于一个输入,增添扰动后,其所有的中间表示,都应该一致。PEA 的目的是,使得模型对扰动具有鲁棒性,因为鲁棒的模型泛化性能更好,同时还能学习数据的内在不变性。
监督学习下 pseudo-ensemble 的目标函数
m
i
n
i
m
i
z
e
θ
E
(
x
,
y
)
∼
p
x
y
E
ξ
∼
p
ξ
L
(
f
θ
(
x
;
ξ
)
,
y
)
\underset{\theta}{minimize} \underset{(x,y)\sim{p_{xy}}}{E}\underset{\xi\sim{p_{\xi}}}{E}L(f_{\theta}(x;\xi),y)
θminimize(x,y)∼pxyEξ∼pξEL(fθ(x;ξ),y)
(
x
,
y
)
∼
p
x
y
(x,y)\sim{p_{xy}}
(x,y)∼pxy 是从
p
x
y
p_{xy}
pxy分布中采样的样本,
ξ
∼
p
ξ
{\xi}\sim{p_{\xi}}
ξ∼pξ是从
p
ξ
p_{\xi}
pξ中采样得到的噪声。
f
θ
(
x
;
ξ
)
f_{\theta}(x;\xi)
fθ(x;ξ)表示child model的输出。在
ξ
{\xi}
ξ 扰动下,
y
{y}
y是真实标签。
半监督学习下pseudo-ensemble 的目标函数
首先我们来解释以下pseudo-ensemble 正则化项,其公式表示如下
R
(
f
θ
,
p
x
,
p
ξ
)
=
E
x
∼
p
x
E
ξ
∼
p
ξ
∑
i
=
2
d
λ
i
ν
i
(
f
θ
i
(
x
)
,
f
θ
i
(
x
;
ξ
)
)
R(f_{\theta},p_{x},p_{\xi})= \underset{x\sim{p_{x}}}{E}\underset{\xi\sim{p_{\xi}}}{E}\sum_{i=2}^{d}\lambda_{i}\nu_{i}(f_{\theta}^{i}(x),f_{\theta}^{i}(x;\xi))
R(fθ,px,pξ)=x∼pxEξ∼pξEi=2∑dλiνi(fθi(x),fθi(x;ξ))
x
∼
p
x
x\sim p_{x}
x∼px是无标签样本,
ν
i
(
.
.
)
\nu_{i}(..)
νi(..)是一个惩罚项,用于在神经网络
i
t
h
i^{th}
ith层的
(
f
θ
i
(
x
)
(f_{\theta}^{i}(x)
(fθi(x)和
f
θ
i
(
x
;
ξ
)
f_{\theta}^{i}(x;\xi)
fθi(x;ξ)的差异。
λ
i
\lambda_{i}
λi衡量
ν
i
\nu_{i}
νi的重要性。笔者个人理解,这个pseudo-ensemble 正则化项的思想是:神经网络中的每一层,不管是在添加扰动或者未添加扰动的这两种情况下,其对于特征的表示应该是相同的。
m
i
n
i
m
i
z
e
θ
E
(
x
,
y
)
∼
p
x
y
E
ξ
∼
p
ξ
L
(
f
θ
(
x
;
ξ
)
,
y
)
+
E
x
∼
p
x
E
ξ
∼
p
ξ
∑
i
=
2
d
λ
i
ν
i
(
f
θ
i
(
x
)
,
f
θ
i
(
x
;
ξ
)
)
\underset{\theta}{minimize} \underset{(x,y)\sim{p_{xy}}}{E}\underset{\xi\sim{p_{\xi}}}{E}L(f_{\theta}(x;\xi),y)+ \underset{x\sim{p_{x}}}{E}\underset{\xi\sim{p_{\xi}}}{E}\sum_{i=2}^{d}\lambda_{i}\nu_{i}(f_{\theta}^{i}(x),f_{\theta}^{i}(x;\xi))
θminimize(x,y)∼pxyEξ∼pξEL(fθ(x;ξ),y)+x∼pxEξ∼pξEi=2∑dλiνi(fθi(x),fθi(x;ξ))
在加号前面部分采用监督学习的模式,而在加号后边采用半监督学习的模式,后边部分就是正则化项,在正则化项部分无需利用样本的标签信息。然后文章中简单介绍了一些计算差异性的公式,以及损失函数(交叉熵损失函数)
实验
(1)监督学习
数据集 MNIST 60K的训练集,10K的测试集,达到1.08%的错误率。
(2)半监督学习
数据集 MNIST {100, 600, 1000, 3000} 的训练集,10K的测试集,错误率。取得了当年的state-of-the-art 结果。
(3)迁移学习
解决的问题相同,都是采用小部分有标签数据来进行分类,往往一篇好点的半监督学习文章会和迁移学习的分类结果进行比较,这篇文章也是。具体请参考文章。
(4)实际应用
这部分可以说是为论文添彩的地方,可有可无。
结果分析
笔者研究方向是半监督学习,对于文章中通过正则化项来利用无标记数据的想法感觉不错,可以认为是用有标签数据训练了一个神经网络模型(监督学习),然后通过无标签数据来修正之前有标签训练的模型。
以上属于个人读后观点,有不对的地方欢迎讨论。