Koh P W, Liang P. Understanding black-box predictions via influence functions[C]. international conference on machine learning, 2017: 1885-1894.

@article{koh2017understanding,

title={Understanding black-box predictions via influence functions},

author={Koh, Pang Wei and Liang, Percy},

pages={1885--1894},

year={2017}}

本文介绍了如果计算(估计)损失关于样本的一些影响因子, 并介绍了一些应用范围.

主要内容

假设样本\(z_1,\ldots, z_n\), \(z_i = (x_i,y_i) \in \mathcal{X} \times \mathcal{Y}\), 通过最小化经验损失

\[\hat{\theta} := \arg \min_{\theta \in \Theta} \frac{1}{n} \sum_{i=1}^n L(z_i, \theta),
\]

找到最优解.

且假设\(L\)关于样本和参数都是二阶可导且强凸的.

样本重要性分析

显然, 此时给定一个测试样本\(z_{test}\), 其对应的损失为\(L(z_{test},\hat{\theta})\), 那么衡量一个样本重要性的一个重要指标便是, 倘若在移除样本\(z\)的情况下重新训练模型, 对应的参数和损失的变化.

假设在移除样本\(z\)的情况下训练得到的最优参数为\(\hat{\theta}_{-z}\), 并引入

\[\hat{\theta}_{\epsilon, z} := \arg \min_{\theta \in \Theta} \frac{1}{n}\sum_{i=1}^n L(z_i, \theta)+\epsilon L(z,\theta),
\]

易得\(\hat{\theta}_{-z} = \hat{\theta}_{-\frac{1}{n},z}\).

\[\tag{1}
\mathcal{I}_{up, params} (z) := \frac{d \hat{\theta}_{\epsilon, z}}{d \epsilon}|_{\epsilon=0} = -H_{\hat{\theta}}^{-1} \nabla_{\theta} L(z, \hat{\theta}),
\]

其中\(H_{\theta}:= \frac{1}{n} \sum_{i=1}^n \nabla_{\theta}^2 L(z_i, \hat{\theta})\).

我们可以得到, 参数的变化量的一阶近似

\[\hat{\theta}_{-z} - \hat{\theta} \approx -\frac{1}{n} \mathcal{I}_{up,params} (z).
\]

进一步, 我们定义损失的变化量

\[\tag{2}
\begin{array}{ll}
\mathcal{I}_{up, loss} (z, z_{test})
& := \frac{dL(z_{test}, \hat{\theta}_{\epsilon, z})}{d \epsilon} |_{\epsilon = 0} \\
& = \nabla_{\theta} L(z_{test}, \hat{\theta})^T \frac{d \hat{\theta}_{\epsilon, z}}{d \epsilon} |_{\epsilon = 0} \\
& = -\nabla_{\theta} L(z_{test}, \hat{\theta})^T H_{\hat{\theta}}^{-1} \nabla_{\theta} L(z, \hat{\theta}).
\end{array}
\]

样本摄动对损失的影响

倘若我们对其中一个样本\(z\)添加一个扰动\(\delta\), 并在新的数据\(z_{\delta}:=(x+\delta,y)\)上训练, 得到模型, 其参数和损失会如何变化?

我们定义

\[\hat{\theta}_{\epsilon, z_{\delta}, -z}:= \arg \min_{\theta \in \Theta} \frac{1}{n} \sum_{i=1}^n L(z_i, \theta) + \epsilon L(z_{\delta},\theta)-\epsilon L(z,\theta),
\]

并令\(\hat{\theta}_{z_{\delta},-z}:= \hat{\theta}_{\frac{1}{n}, z_{\delta}, -z}\)

同样可以证明

\[\tag{3}
\frac{d \hat{\theta}_{\epsilon, z_{\delta}, -z}}{d \epsilon} |_{\epsilon=0} = -H_{\hat{\theta}}^{-1} (\nabla_{\theta} L(z_{\delta}, \hat{\theta}) -\nabla_{\theta} L(z, \hat{\theta})).
\]

\[\hat{\theta}_{z_{\delta}, -z}-\hat{\theta} \approx -\frac{1}{n}H_{\hat{\theta}}^{-1} (\nabla_{\theta} L(z_{\delta}, \hat{\theta}) -\nabla_{\theta} L(z, \hat{\theta})) \approx -\frac{1}{n} H_{\hat{\theta}}^{-1} \nabla_x \nabla_{\theta} L(z_{\delta}, \hat{\theta}) \delta.
\]

\[\tag{5}
\mathcal{I}_{pert, loss}(z, z_{test})^T:= \nabla_{\delta} L(z_{test}, \hat{\theta}_{z_{\delta},-z})^T \approx -\frac{1}{n} \nabla_{\theta} L(z_{test}, \hat{\theta})^T H_{\hat{\theta}}^{-1} \nabla_x \nabla_{\theta} L(z, \hat{\theta}).
\]

注:文章这里没有\(\frac{1}{n}\)且是等号(我卡在这个地方了, 推不出来).

高效计算\(H^{-1}\)

共轭梯度

此时我们不是计算\(H_{\hat{\theta}}^{-1}\), 而是计算\(s:=H_{\hat{\theta}}^{-1}v\), 比如在计算\(\mathcal{I}_{up, loss}\)的时候, \(v=\nabla_{\theta} L(z_{test}, \hat{\theta})\), 则对于固定的\(z_{test}\)想要知道不同的\(z_i\)的影响可以直接用\(s^T \nabla_{\theta} L(z_i, \hat{\theta})\), 避免了重复运算.

即求解

\[\arg \min_t \quad \frac{1}{2} t^TH_{\hat{\theta}}t - v^Tt,
\]

假设第\(k\)步为

\[t=t_k,
\]

则利用精确直线搜索

\[\arg \min_{p} \frac{1}{2} t_{k+1}^T H_{\hat{\theta}}t_{k+1}-v^Tt_{k+1}, \: \mathrm{s.t.} \: t_{k+1}=t_k + p(H_{\theta}t_k -v),
\]

\[p= -\frac{\Delta^T H_{\hat{\theta}}t_k-v^T\Delta}{\Delta^T H_{\hat{\theta}} \Delta}, \Delta=H_{\hat{\theta}}t_k-v.
\]

随机估计

这里是估计\(H_{\hat{\theta}}^{-1}\), 为了符号简便省略下表, 因为\(H^{-1}=\sum_{i=0}^{+\infty}(I-H)^i\), 用\(H_j^{-1}= \sum_{i=0}^j (I - H)^i\)表示前\(j+1\)项的和, 易知

\[H_j^{-1} = I + (I -H)H_{j-1}^{-1}, H_j^{-1} \rightarrow H^{-1}.
\]

我们从样本中均匀挑选, 计算\(\nabla_{\theta}^2 L(z_i, \hat{\theta})\) 作为\(H\)的替代, 则

\[\tilde{H}_j^{-1}=I+(I-\nabla_{\theta}^2 L(z_{s_j}, \hat{\theta}))\tilde{H}_{j-1}^{-1}.
\]

当然, 处于稳定性的考虑, 我们可以一次性采样多个来作为\(H\)的替代.

一些应用

  1. 探索模型关于样本的内在解释, 即什么样的样本模型会更加偏好之类的;
  2. 生成对抗样本;
  3. 检测目标数据分布和训练分布是否一致;
  4. 检测训练数据的标签是否正确.

附录

(1)的证明

定义\(\Delta_{\epsilon}:= \hat{\theta}_{\epsilon, z}-\hat{\theta}\), 则

\[\mathcal{I}_{up, params} (z) = \frac{d \Delta_{\epsilon}}{d \epsilon} |_{\epsilon =0}.
\]

由一阶最优条件可知

\[0= \frac{1}{n} \sum_{i=1}^n \nabla_{\theta} L(z_i, \hat{\theta}) := R(\hat{\theta}), \\
0= R(\hat{\theta}_{\epsilon, z}) + \epsilon \nabla_{\theta} L(z, \hat{\theta}_{\epsilon, z}),
\]

把\(\hat{\theta}_{\epsilon, \theta}\)看成自变量(固定\(\epsilon\)), 第二个等式右边是关于这个变量的一个函数, 则其在\(\hat{\theta}_{\epsilon, \theta}=\hat{\theta}\)处的泰勒展式为

\[R(\hat{\theta}) + \epsilon \nabla_{\theta} L(z, \hat{\theta})+ [\nabla_{\theta} R(\hat{\theta}) + \epsilon \nabla_{\theta}^2 L(z, \hat{\theta})] \Delta_{\epsilon} + o(\Delta_{\epsilon})=0
\]

\[\Delta_{\epsilon} = -[\nabla_{\theta} R(\hat{\theta}) + \epsilon \nabla_{\theta}^2 L(z, \hat{\theta})] ^{-1} [0 + \epsilon \nabla_{\theta} L(z, \hat{\theta})+o(\Delta_{\epsilon})],
\]

因为\(\epsilon \rightarrow 0\), \(\Delta_{\epsilon} \rightarrow0\) 易知,

\[\frac{d \Delta_{\epsilon}}{d \epsilon |_{\epsilon =0}} = -H_{\hat{\theta}}^{-1} \nabla_{\theta} L(z, \hat{\theta}).
\]

Understanding Black-box Predictions via Influence Functions的更多相关文章

  1. THE BOX MODEL

    Review In this lesson, we covered the four properties of the box model: height and width, padding, b ...

  2. [JS Compose] 1. Refactor imperative code to a single composed expression using Box

    After understanding how Box is, then we are going to see how to use Box to refacotr code, to un-nest ...

  3. 【54】目标检测之Bounding Box预测

    Bounding Box预测(Bounding box predictions) 在上一篇笔记中,你们学到了滑动窗口法的卷积实现,这个算法效率更高,但仍然存在问题,不能输出最精准的边界框.在这个笔记中 ...

  4. [C6] Andrew Ng - Convolutional Neural Networks

    About this Course This course will teach you how to build convolutional neural networks and apply it ...

  5. Coursera机器学习+deeplearning.ai+斯坦福CS231n

    日志 20170410 Coursera机器学习 2017.11.28 update deeplearning 台大的机器学习课程:台湾大学林轩田和李宏毅机器学习课程 Coursera机器学习 Wee ...

  6. directive(指令里的)的compile,pre-link,post-link,link,transclude

    The nitty-gritty of compile and link functions inside AngularJS directives  The nitty-gritty of comp ...

  7. What is “Neural Network”

    Modern neuroscientists often discuss the brain as a type of computer. Neural networks aim to do the ...

  8. Angular1.x directive(指令里的)的compile,pre-link,post-link,link,transclude

    The nitty-gritty of compile and link functions inside AngularJS directives  The nitty-gritty of comp ...

  9. Convolution Fundamental II

    Practical Advice Using Open-Source Implementation We have learned a lot of NNs and ConvNets architec ...

随机推荐

  1. LeetCode33题——搜索旋转排序数组

    1.题目描述 假设按照升序排序的数组在预先未知的某个点上进行了旋转. ( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] ). 搜索一个给定的目标值,如果数组中存 ...

  2. linux vi(vim)常用命令汇总(转)

    前言 首先解析一个vim vi是unix/linux下极为普遍的一种文本编辑器,大部分机器上都有vi的各种变种,在不同的机器上常用不同的变种软件,其中vim比较好用也用的比较广泛.vim是Vi Imp ...

  3. 全网最详细的AbstractQueuedSynchronizer(AQS)源码剖析(一)AQS基础

    AbstractQueuedSynchronizer(以下简称AQS)的内容确实有点多,博主考虑再三,还是决定把它拆成三期.原因有三,一是放入同一篇博客势必影响阅读体验,而是为了表达对这个伟大基础并发 ...

  4. 让你用Markdown的方式来做PPT

    也许你是以为代码高手,Markdown写作高手,但你是PPT高手吗? 你的成绩有没有被PPT高手抢走过呢? 不会作精美PPT是不是很头疼呢? 今天就给大家介绍了一款PPT制作利器:Slidev~ 说S ...

  5. Excel里的格式会自动变成日期或会计专用吗?(Excel技巧集团)

    Excel里的格式会自动变成日期或会计专用? 正常情况下当然不会了,可是最近却有很多很多同学问这样的问题,并把这个问题列成了Excel2007和2010的一个Bug,可是小妖同学却从来没遇到过这样的问 ...

  6. Spring事务什么时候会失效?

    面试官:Spring事务什么时候会失效? 应聘者: 访问权限问题 方法用final修饰 未被Spring管理 错误的传播特性 自己吞了异常 手动抛了别的异常 自定义了回滚异常 方法内部调用 1.访问权 ...

  7. CF83A Magical Array 题解

    Content 有一个长度为 \(n\) 的序列 \(a_1,a_2,a_3,...,a_n\).定义一个"神奇数组"为在上面的序列中最大值和最小值相等的子序列.求出这个序列中&q ...

  8. CF740B Alyona and flowers 题解

    Content 有 \(n\) 个数 \(a_1,a_2,a_3,...,a_n\),给定 \(m\) 个区间,你可以选择一些区间使得它们的总和最大(也可以不选),求这个最大的总和. 数据范围:\(1 ...

  9. UVA12412 师兄帮帮忙 A Typical Homework (a.k.a Shi Xiong Bang Bang Mang) 题解

    Content 自己去看题面去. Solution 算不上很繁琐的一道大模拟. 首先,既然是输出 \(0\) 才退出,那么在此之前程序应当会执行菜单 \(\Rightarrow\) 子操作 \(\Ri ...

  10. CF1092B Teams Forming 题解

    Content 有 \(n\) 个学生,每个学生有一个能力值 \(a_i\).现在想把学生两两分成一组,但是不能让每个组里面的学生能力值不相同,因此可以通过刷题来提升自己的能力值,每次解出一道题,能力 ...