论文题目:Learning Data Manipulation for Augmentation and Weighting
来源:NIPS 2019
(1)主要思想
论文题目表明本文是通过学习数据操作的方法来进行数据增强和加权
这篇文章的主要思想可以概括为:
- 将数据集中 x → y x\rightarrow y x→y的对应关系当成一种行为(policy)
- 那训练集中的这种"行为"就可以与强化学习的reward function进行结合
- 这样,改变reward function就可以当作在奖励不同的policy(不同的预测模型),也就是训练出不同的操作数据的模式的同时训练出不同的预测模型
- 进一步,就可以想到将预测模式与操作数据的方法一起训练。
总之,就是对于小样本or样本标签不全的训练集,将训练预测模型和操作数据两个任务同时进行。
(2)目标函数
那reward function和policy如何一起训练呢,就需要把他们放在同一个目标函数中来一起优化,这样目标函数最优化了,这两个东西也就同时最优化了。
那么目标函数就是这个函数:
L函数的含义是:
- 要找出一个好的奖励函数 R R R,使得在真实的分布下(也就是 q ( x , y ) q(x,y) q(x,y)),得到的奖励要是最大的。其他与真实分布不一样的分布,奖励都要小。而奖励的计算是基于原始数据集和预测出的(x,y)进行对比得出的。
- 相似度要最大,也就是我预测出来的 x → y x\rightarrow y x→y行为模式要与真实分布模式 q ( x , y ) q(x,y) q(x,y)分布规律一样。
- β H ( q ) \beta H(q) βH(q)是一个用于平滑的正则项,可以先忽略
那想要满足这些要求,就要去找出一个合适的奖励函数 R R R和行为模式 p p p,找 p p p也就是找 θ \theta θ。那寻找的方法,就是下面要提的EM迭代法。
附:
- p θ p_{\theta} pθ是要学习的预测模型,并认为p由 θ \theta θ这一个参数决定
- R ϕ R_{\phi} Rϕ是要学习的奖励函数,并认为R由 ϕ \phi ϕ这一个参数决定
- E q ( R ) E_q(R) Eq(R)表示在q分布下,奖励的期望值
- K L KL KL表示KL散度,KL散度越小说明两个参数的分布模式越接近(这里是p和q,即要学的模型和真实的模型)
(3)EM优化
EM优化方法是一个训练和优化模型的常用方法。他需要输入训练数据(也就是我们已有的训练集),并定义一个最优化函数(刚刚提到的L),经多次迭代就可以得到我们需要的模型(就是 θ \theta θ,也就是 p p p)和 R R R函数。
具体来说操作方法是这样的:
- 先把数据输入目前已有的模型,得到计算结果,也就是得到了一个期望值,称为Estep
- 接着重新计算模型的参数,以最大化期望值,称为Mstep
计算期望值和调整模型参数的两步交替进行,最终就可以获得最优模型参数 θ \theta θ和最优的奖励函数 R R R
本文中,EM的优化函数如下:
经过以上步骤,这样得到了一个L函数的优化结果:
也就是只有预测的与原来训练集一模一样才能被奖励。
那Mstep也就可以写成这样:
也就是在实际数据分布的条件下,求 p θ p_\theta pθ的极大对数似然,也就是找最可能能达到正确分布的 θ \theta θ。
那虽然与原来一样才能使L最优化,但是这样其实完全没有新生成样本,所以就想到要去把R稍微放松一些,也就是把R的参数改变。那放松R后,优化的方法就可以用梯度下降法来找,而且调整R的不同就可以得到不同的操作数据的方法。
我们先不讨论如何调整R的参数来操作数据,先讨论在普适的R下如何利用梯度下降来优化。
(4) 梯度下降法
公式如下:
即:每次更新
θ
\theta
θ都往使得总奖励最大的梯度方向前进
γ
\gamma
γ的步长。
从上式又可以发现
θ
\theta
θ只与
ϕ
\phi
ϕ相关:
那就可以通过更新
ϕ
\phi
ϕ来更新
θ
\theta
θ:
那么,寻找p → \rightarrow →优化 θ \theta θ → \rightarrow →优化 ϕ \phi ϕ → \rightarrow →寻找R,也就变成了 p p p和 R R R同时优化的问题了。
附:
这里的 L i n L^{in} Lin是指在训练集上, L i n + e x L^{in+ex} Lin+ex是指在所有数据集上(训练集+验证集),二者是一个嵌套的过程。
以上的梯度更新法在算法上的具体实现就是这样:
注: 在验证集训练 ϕ \phi ϕ是为了提升模型在整体的使用效果
(5) 数据操作方法1 —— DATA AUGMENTATION
到目前我们已经讨论完了如何同时优化 R ϕ R_{\phi} Rϕ和 p θ p_{\theta} pθ,那接下来就具体实现两个操作函数。
第一个是数据强化 data augument方法。这个方法相当于是增加样本数量。
实现data augument只需要把R函数设置成这样:
也就是,当增强出来的x,与LM模型基于原始数据
(
x
∗
,
y
)
(x^*,y)
(x∗,y)产生的x一样时,就能得到奖励
注:LM是Language Model,是之前的一种方法,可以看作一个正确的增强数据的模型,拿它来作为评判标准
相应的,优化方法也变成了这样。
也就是在能被奖励的情况下,寻找最可能的 θ \theta θ值,也就是找出最优模型。
更新的总体流程也就是,从训练集中取一个样本出来 → \rightarrow →用LM产生一个强化的sample → \rightarrow →再把它用于更新目标模型的sita
注意,由于文本是离散的,x是用gumbel-softmax来近似表示的。
(6) 数据操作方法2 —— DATA WEIGHTING
另一种方法是data weighting,也就是给原来数据集的每个样本一个权重,来让他们在训练模型时产生不同大小的影响。
实现的方法是通过调节R的参数,也就是奖励函数变成了这样。
也就是,自动的对训练集的每个样本
(
x
i
∗
,
y
i
∗
)
(x_i^*,y_i^*)
(xi∗,yi∗),赋予一个
ϕ
i
\phi_i
ϕi的权重,那
ϕ
i
\phi_i
ϕi的值取多少,就是要与
p
θ
p_{\theta}
pθ模型同时训练共同优化,得到用之前提过的算法优化出来的R,也就能得到要给每个样本加权多少。
得到
ϕ
\phi
ϕ后,把R函数带入,
θ
\theta
θ更新的方法也变成了这样:
注意:以上的 θ ′ \theta^{'} θ′都表示更新出来的下一个 θ \theta θ值,而非求导
(7)实验1——低样本数量
本实验旨在验证在样本数量少的情况下,运用他提出的两种操作数据的方法,分别对小数据集进行操作并验证分类效果。
实验方法为从大数据集中取少量训练集和验证集,分别经augment和weighting方法操作后的模型效果。
- Augment法:与替换同义词法,固定标签法对比
- Weight法:与每轮都重新估计权重的方法对比
(8)实验2——类不平衡
本实验旨在验证在类不平衡情况下,运用他提出的data weighting方法,对小数据集进行操作并验证分类效果。
实验方法为进行二分类问题,并将一类的样本设置为1000个,另一类样本设置为20/50/100个,经data weighting方法操作数量少的样本后的模型效果。
(9)评价
创新点:
- 将𝑥 → \rightarrow →𝑦的对应关系看作一种行为模式
- 提出将预测模式与操作方法共同训练
- 设计出不同的R函数来实现不同的操作数据的方法
缺点:
- 只实现了2种操作数据的方法,还可以继续拓展
- 精度上效果一般
- R函数的来源可以解释的更清晰
- data weighting方法的每个 ϕ i \phi_i ϕi都是单独的,没有考虑数据之间的联系,数据量大的话训练 ϕ i \phi_i ϕi很麻烦