TIM阅读笔记

TIM阅读笔记

Boudiaf M, Masud Z I, Rony J, et al. Transductive information maximization for few-shot learning[J]. arXiv preprint arXiv:2008.11297, 2020.

昨天下午出去蹦跶去了,今天来赶工。今天这篇论文是 NeurIPS 2020 的一个工作,乍一看还是一个Tim?腾讯的那个?不是哈哈哈,Transductive Information Maximization For Few-Shot Learning,这篇文章上周看的时候脑子基本上就是蒙的,很多东西都忘了,下来补了一下信息论基础和前天那篇先验工作才能勉强看懂,可能有很多不足的地方,欢迎大佬指正啊。

一些pre-knowledge

Transductive Learning

这个其实我都不知道怎么翻译,这方面的工作近两年在FSL领域比较火,明天会出一篇这个相关的paper,这里简单的介绍一下,注意不要把这个和半监督学习搞混了。

监督学习中的train和test集是不交叉的,这种叫做inductive learning。
半监督学习中我们添加了额外的未标记数据辅助训练,它的train和test集依然是不交叉的,叫做inductive semi-supervise learning。
假设我们添加的这部分未标注的数据部分或者全部来自test set,那么这时候很明显train和test就相交了,这种叫做transductive learning。

文章主要思想

这篇文章其实就是上一篇文章在FSL领域的一次应用,这篇文章也是希望通过最大化输入和输出之间的互信息,这里的输入指的是embed后的query feature,输出指的是label,这个前天那篇文章提到的思想很相似。作者采用了交替方向乘子法solver( alternating-direction solver ,不知道怎么翻译)来加速推理,也能够提升精度。

Details

这里author还是采用了两阶段metrics learning的方式来做,首先是一个feature extractor: f ϕ : X ⟶ Z ⊂ R d f_{\phi}: \mathcal{X} \longrightarrow \mathcal{Z} \subset \mathbb{R}^{d} fϕ:XZRd,作者对这个特征向量 Z \mathcal{Z} Z也做了normalization: z i = f ϕ ( x i ) ∥ f ϕ ( x i ) ∥ 2 \boldsymbol{z}_{i}=\frac{f_{\boldsymbol{\phi}}\left(\boldsymbol{x}_{i}\right)}{\left\|f_{\boldsymbol{\phi}}\left(\boldsymbol{x}_{i}\right)\right\|_{2}} zi=fϕ(xi)2fϕ(xi),对于分类器作者直接选择了一个soft分类器,直接将利用一个权重矩阵对输出特征进行映射,那么对于第i个样本标签为k的概率分布就为: p i k : = P ( Y = k ∣ X = x i ; W , ϕ ) p_{i k}:=\mathbb{P}\left(Y=k \mid X=\boldsymbol{x}_{i} ; \mathbf{W}, \boldsymbol{\phi}\right) pik:=P(Y=kX=xi;W,ϕ)。中间变量 Z \mathcal{Z} Z是一个d维的向量, p i k p_{ik} pik表示第i个样本为标签k的概率,那么在权重分类上就相当于是特征向量 Z \mathcal{Z} Z乘以对应第k个权重向量 w k w_k wk,那么 p i k ∝ exp ⁡ ( − τ 2 ∥ w k − z i ∥ 2 ) p_{i k} \propto \exp \left(-\frac{\tau}{2}\left\|\boldsymbol{w}_{k}-\boldsymbol{z}_{i}\right\|^{2}\right) pikexp(2τwkzi2),其中这个 τ \tau τ是一个温度参数,那么$p_{i k} 在 q u e r y s e t 上 的 边 缘 分 布 为 在query set上的边缘分布为 queryset\widehat{p}{k}=\frac{1}{|\mathcal{Q}|} \sum\limits{ i \in \mathcal{Q}} p_{i k}$,

按照我们的目标就是最大化这个输入输出之间的互信息,作者将它定义为下面所示的样子:
I ^ α ( X Q ; Y Q ) : = − ∑ k = 1 K p ^ k log ⁡ p ^ k ⏟ H ^ ( Y Q ) :  marginal entropy  + α 1 ∣ Q ∣ ∑ i ∈ Q ∑ k = 1 K p i k log ⁡ ( p i k ) ⏟ − H ^ ( Y Q ∣ X Q ) :  conditional entropy  \widehat{\mathcal{I}}_{\alpha}\left(X_{\mathcal{Q}} ; Y_{\mathcal{Q}}\right):=\underbrace{-\sum_{k=1}^{K} \widehat{p}_{k} \log \widehat{p}_{k}}_{\widehat{\mathcal{H}}\left(Y_{\mathcal{Q}}\right): \text { marginal entropy }}+\alpha \underbrace{\frac{1}{|\mathcal{Q}|} \sum_{i \in \mathcal{Q}} \sum_{k=1}^{K} p_{i k} \log \left(p_{i k}\right)}_{-\widehat{\mathcal{H}}\left(Y_{\mathcal{Q}} \mid X_{\mathcal{Q}}\right): \text { conditional entropy }} I α(XQ;YQ):=H (YQ): marginal entropy  k=1Kp klogp k+αH (YQXQ): conditional entropy  Q1iQk=1Kpiklog(pik)

这是不是认不到为什么这样设计???这就是前面我们的互信息啊,前面是 H ^ ( Y Q ) \hat{H}(Y_Q) H^(YQ),后面是 H ^ ( Y Q ∣ X Q ) \hat{H}(Y_Q|X_Q) H^(YQXQ),这一部分是 P ( Y Q ∣ X Q ) P(Y_Q|X_Q) P(YQXQ)条件熵,熵是不确定性的期望。熵越大,变量的不确定性越大,也就是说我们要最小化query set中无标签数据的后验概率,从数学公式上讲,被减数不变,减数减小了,差肯定变大。去年的ICLR上也有一片类似的工作就单独只用了这一部分作为损失函数,这一部分很重要。由互信息的定义可得,这两者的差就是互信息。作者加了一个正则项 α \alpha α,如果 α = 1 \alpha=1 α=1就是原本的互信息。

但是你发现没,即使到这个时候我们也只是利用了query set的信息,别忘了FSL本质上还是Supervised learning,support set仍然可以提供监督信息,于是在loss中还添加了一个CE来保证监督信息的编码,我们需要最小化CE,最大化互信息,为了保证训练的一致性,我们把互信息作相反数,与CE相加。

作者选用的特征提取板块是预训练的模型,除了使用梯度下降,作者还提出了一种优化方案ADMM,作者提出这种方案能过够极大程度提高模型的速度。思路是在原始的loss上加了一个正则项,就是p,q的KL散度,即当前的损失函数就变成了:

min ⁡ W , q − λ ∣ S ∣ ∑ i ∈ S ∑ k = 1 K y i k log ⁡ ( p i k ) ⏟ C E + ∑ k = 1 K q ^ k log ⁡ q ^ k ⏟ ∼ H ^ ( Y Q ) α ∣ Q ∣ ∑ i ∈ Q ∑ k = 1 K q i k log ⁡ ( p i k ) ⏟ ∼ H ^ ( Y Q ∣ X Q ) + 1 ∣ Q ∣ ∑ i ∈ Q ∑ k = 1 K q i k log ⁡ q i k p i k ⏟ Penalty  ≡ D K L ( q ∥ p ) \min _{\mathbf{W}, \boldsymbol{q}} \underbrace{-\frac{\lambda}{|\mathcal{S}|} \sum_{i \in \mathcal{S}} \sum_{k=1}^{K} y_{i k} \log \left(p_{i k}\right)}_{\mathrm{CE}}+\underbrace{\sum_{k=1}^{K} \widehat{q}_{k} \log \widehat{q}_{k}}_{\sim \widehat{\mathcal{H}}\left(Y_{\mathcal{Q}}\right)} \underbrace{\frac{\alpha}{|\mathcal{Q}|} \sum_{i \in \mathcal{Q}} \sum_{k=1}^{K} q_{i k} \log \left(p_{i k}\right)}_{\sim \widehat{\mathcal{H}}\left(Y_{\mathcal{Q}} \mid X_{\mathcal{Q}}\right)}+\underbrace{\frac{1}{|\mathcal{Q}|} \sum_{i \in \mathcal{Q}} \sum_{k=1}^{K} q_{i k} \log \frac{q_{i k}}{p_{i k}}}_{\text {Penalty } \equiv \mathcal{D}_{\mathrm{KL}}(\mathbf{q} \| \mathbf{p})} W,qminCE SλiSk=1Kyiklog(pik)+H (YQ) k=1Kq klogq kH (YQXQ) QαiQk=1Kqiklog(pik)+Penalty DKL(qp) Q1iQk=1Kqiklogpikqik
当且仅当, q i , k = p i , k q_{i,k}=p_{i,k} qi,k=pi,k的时候散度为0,然后ADMM的思路是将这个问题尝试分割成基于W,q的两个子问题,如下所示。作者在论文中给出了形式化的证明,网上也有很多关于ADMM在凸优化领域的介绍,这里不再赘述。
q i k ( t + 1 ) ∝ ( p i k ( t ) ) 1 + α ( ∑ i ∈ Q ( p i k ( t ) ) 1 + α ) 1 / 2 w k ( t + 1 ) ← λ 1 + α ∑ i ∈ S ( y i k z i + p i k ( t ) ( w k ( t ) − z i ) ) + ∣ S ∣ ∣ Q ∣ ∑ i ∈ Q ( q i k ( t + 1 ) z i + p i k ( t ) ( w k ( t ) − z i ) ) λ 1 + α ∑ i ∈ S y i k + ∣ S ∣ ∣ Q ∣ ∑ i ∈ Q q i k ( t + 1 ) \begin{array}{l} q_{i k}^{(t+1)} \propto \frac{\left(p_{i k}^{(t)}\right)^{1+\alpha}}{\left(\sum_{i \in \mathcal{Q}}\left(p_{i k}^{(t)}\right)^{1+\alpha}\right)^{1 / 2}} \\ \boldsymbol{w}_{k}^{(t+1)} \leftarrow \frac{\frac{\lambda}{1+\alpha} \sum_{i \in \mathcal{S}}\left(y_{i k} \boldsymbol{z}_{i}+p_{i k}^{(t)}\left(\boldsymbol{w}_{k}^{(t)}-\boldsymbol{z}_{i}\right)\right)+\frac{|\mathcal{S}|}{|\mathcal{Q}|} \sum_{i \in \mathcal{Q}}\left(q_{i k}^{(t+1)} \boldsymbol{z}_{i}+p_{i k}^{(t)}\left(\boldsymbol{w}_{k}^{(t)}-\boldsymbol{z}_{i}\right)\right)}{\frac{\lambda}{1+\alpha} \sum_{i \in \mathcal{S}} y_{i k}+\frac{|\mathcal{S}|}{|\mathcal{Q}|} \sum_{i \in \mathcal{Q}} q_{i k}^{(t+1)}} \end{array} qik(t+1)(iQ(pik(t))1+α)1/2(pik(t))1+αwk(t+1)1+αλiSyik+QSiQqik(t+1)1+αλiS(yikzi+pik(t)(wk(t)zi))+QSiQ(qik(t+1)zi+pik(t)(wk(t)zi))

结果

贴一贴实验结果,这是在作者的结果:
在这里插入图片描述

后记

如果你觉得我的文章写的不错的话,麻烦帮忙向大家推广关注我的公众号啊(名称:洋可喵)!!!

在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值