Understanding Black-box Predictions via Influence Functions
@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}\), 通过最小化经验损失
\]
找到最优解.
且假设\(L\)关于样本和参数都是二阶可导且强凸的.
样本重要性分析
显然, 此时给定一个测试样本\(z_{test}\), 其对应的损失为\(L(z_{test},\hat{\theta})\), 那么衡量一个样本重要性的一个重要指标便是, 倘若在移除样本\(z\)的情况下重新训练模型, 对应的参数和损失的变化.
假设在移除样本\(z\)的情况下训练得到的最优参数为\(\hat{\theta}_{-z}\), 并引入
\]
易得\(\hat{\theta}_{-z} = \hat{\theta}_{-\frac{1}{n},z}\).
则
\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})\).
我们可以得到, 参数的变化量的一阶近似
\]
进一步, 我们定义损失的变化量
\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}_{z_{\delta},-z}:= \hat{\theta}_{\frac{1}{n}, z_{\delta}, -z}\)
同样可以证明
\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})).
\]
则
\]
故
\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})\), 避免了重复运算.
即求解
\]
假设第\(k\)步为
\]
则利用精确直线搜索
\]
得
\]
随机估计
这里是估计\(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\)项的和, 易知
\]
我们从样本中均匀挑选, 计算\(\nabla_{\theta}^2 L(z_i, \hat{\theta})\) 作为\(H\)的替代, 则
\]
当然, 处于稳定性的考虑, 我们可以一次性采样多个来作为\(H\)的替代.
一些应用
- 探索模型关于样本的内在解释, 即什么样的样本模型会更加偏好之类的;
- 生成对抗样本;
- 检测目标数据分布和训练分布是否一致;
- 检测训练数据的标签是否正确.
附录
(1)的证明
定义\(\Delta_{\epsilon}:= \hat{\theta}_{\epsilon, z}-\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}\)处的泰勒展式为
\]
故
\]
因为\(\epsilon \rightarrow 0\), \(\Delta_{\epsilon} \rightarrow0\) 易知,
\]
Understanding Black-box Predictions via Influence Functions的更多相关文章
- THE BOX MODEL
Review In this lesson, we covered the four properties of the box model: height and width, padding, b ...
- [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 ...
- 【54】目标检测之Bounding Box预测
Bounding Box预测(Bounding box predictions) 在上一篇笔记中,你们学到了滑动窗口法的卷积实现,这个算法效率更高,但仍然存在问题,不能输出最精准的边界框.在这个笔记中 ...
- [C6] Andrew Ng - Convolutional Neural Networks
About this Course This course will teach you how to build convolutional neural networks and apply it ...
- Coursera机器学习+deeplearning.ai+斯坦福CS231n
日志 20170410 Coursera机器学习 2017.11.28 update deeplearning 台大的机器学习课程:台湾大学林轩田和李宏毅机器学习课程 Coursera机器学习 Wee ...
- directive(指令里的)的compile,pre-link,post-link,link,transclude
The nitty-gritty of compile and link functions inside AngularJS directives The nitty-gritty of comp ...
- What is “Neural Network”
Modern neuroscientists often discuss the brain as a type of computer. Neural networks aim to do the ...
- 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 ...
- Convolution Fundamental II
Practical Advice Using Open-Source Implementation We have learned a lot of NNs and ConvNets architec ...
随机推荐
- LeetCode移除元素
LeetCode 移除元素 题目描述 给你一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,并返回移除后数组的新长度. 不需要使用额外的数组空间,你必须仅使用 O(1) ...
- 用前端表格技术构建医疗SaaS 解决方案
电子健康档案(Electronic Health Records, EHR)是将患者在所有医疗机构产生的数据(病历.心电图.医疗影像等)以电子化的方式存储,通过在不同的医疗机构之间共享,让患者面对不同 ...
- acute
In Euclidean geometry, an angle is the figure formed by two rays, called the sides of the angle, sha ...
- day06 视图层
day06 视图层 今日内容 视图层 小白必会三板斧 JsonResponse form表单发送文件 FBV与CBV FBV基于函数的视图 CBV基于类的视图 模板层 模板语法的传值 模板语法之过滤器 ...
- javaIO——输入输出流
字节流与字符流 File类不支持对文件内容进行相关的操作,所有若要处理文件的内容,则需要通过流操作模式来完成. 流的基本操作步骤: Step1:根据文件路径创建File类对象. Step2:根据字节流 ...
- OC-引用计数器,内存管理,野指针
总结 全局断点 →-->+-->Add Exception Breakpoint 开启僵尸监听 打开Edit scheme -->Diagnostics-->Enable Zo ...
- “==” 和 equals()的区别
※ "==" 和 equals()的区别 ※ == :比较. 基本数据类型比较的是值:. 引用类型比较的是地址值. ※ equals(Object o):1)不能比较基本数据类型, ...
- 10、Redis三种特殊的数据类型
一.Geospatail地理位置 1.Geospatail的应用 朋友的位置,附近的人,打车距离 2.相关命令 1.geoadd:增加某个地理位置的坐标(可批量添加). 语法: GEOADD key ...
- shell脚本 Linux系统巡检
一.简介 源码地址 日期:2018/4/12 介绍:非常详细的Linux系统巡检脚本,截图为一部分输出 效果图: 二.使用 适用:centos6+ 语言:中文 注意:无 下载 wget https:/ ...
- TSN 时间敏感网络:缘起 (TSN历史与现状)
前言 随着工业物联网(IIoT)的兴起和工业4.0的提出,越来越多的设计师.工程师和最终用户关注时间敏感网络(Time-Sensitive Networking,下简称为TSN).TSN为以太网提供确 ...