论文笔记understanding black-box predictions via influence functions

来源:互联网 发布:c 俄罗斯方块源码 编辑:程序博客网 时间:2024/06/05 14:46

Purpose


**To formalize the impact of a training point on a
prediction, we ask the counterfactual: what would happen
if we did not have this training point, or if the values of this
training point were changed slightly?**

Main method

Answering this question by perturbing the data and retraining the model can be prohibitively expensive. To overcome this problem, we use influence functions, a classic technique from robust statistics (Cook & Weisberg, 1980) that tells us how the model parameters change as we upweight a training point by an infinitesimal amount.

Approach

这里写图片描述

1.Upweighting a training point

how would the model’s predictions change if we did not have this training point?

1.1删去一个样本后,模型参数的变化(参数增大了多少)

将某个样本z从训练集中删去后,模型新参数与原来参数相比,变化了:


这里写图片描述
其中:
这里写图片描述

如果把每个样本都去掉后各自训练一个新模型,再分别计算参数变化,显然需要很大的计算量。influence fucntions可以帮助我们解决这个问题。

首先,考虑将某一个样本z的权重增加一点点,计算新的模型的参数:


这里写图片描述

那么,样本z的权重增加的大小对模型参数变化的影响可以用下式表示表示:


这里写图片描述

其中:


这里写图片描述

为Hessian矩阵,而且满足正定的假设。
删去一个样本,就等同于将这个样本的权重增加(-1/n),n为总样本数目。
因此,删除样本z后模型参数的变化(新参数-原来参数)就可以用下式估计:


这里写图片描述

1.2 删去一个样本z后,模型在测试样本test上预测误差的变化(误差增加了多少)

首先,样本z权重增加的大小,对模型在测试样本上loss变化的影响程度为:


这里写图片描述

那么,由于删去一个样本等同于权重增加(-1/n),因此,删除一个样本z后,模型在测试样本上的loss会增加(-1/n)*Iup,loss(z,test)

2.Perturbing a training point

how would the model’s predictions change if a training input were modified?

2.1 对样本z增加扰动后,模型参数会变化多少?

给训练样本z增加扰动,使其变成z_delta:


这里写图片描述

将样本z的权重移动一点点到新样本上,权重移动的大小对模型参数变化的影响为:


这里写图片描述

当样本z被删去,取而代之的是样本z_delta时,就相当于把样本z的权重都移动到新样本上了,此时,模型参数的变化量为:


这里写图片描述

2.2 样本z增加扰动后,模型在测试样本上的预测loss会增大多少?

如果样本数据x连续,扰动量delta很小很小,公式3可以进一步写成:


这里写图片描述

此时,若将样本z替换成扰动后的样本z_delta,模型的参数会有如下的变化:


这里写图片描述

扰动量delta的大小对新模型在测试样本z_test上面的loss变化量的影响可以用如下方式衡量:


这里写图片描述

那么,当扰动量大小为delta时,模型在z_test上面的预测loss会增大这么多:


这里写图片描述

因此,沿着公式5的方向调整delta的大小,就可以构建出使模型对z_test的预测loss最大的z的扰动样本。

分析影响influence的因素


这里写图片描述

1.sigma(-y*theta^T*x)越大——>L(z,theta)越大——>训练误差越大的样本,I_up,loss越大,即影响越大。因此,外点(outliers)也可以dominate模型的参数。
2.如果这里写图片描述指向一个变化很小的方向,意味着L(z,theta^)不怎么被theta的变化影响,那么这个样本z就是一个具有higher influence的样本,因为沿着这个方向移动不会显著增加其他训练样本的loss。

实例

1.understanding model behavior

we wanna find a training sample that is the most responsible for a given prediction on a test image


将每个样本都删去后,都计算一下新模型在test image上的预测loss的变化,若I_up,loss为正,则说明删去这个样本后预测误差增大,即这个样本z对test image是helpful的。反之则为harmful。


这里写图片描述

用RBF-SVM 和 Inception分别构建一个dog-fish二分类分类器,可以看出:
对RBF-SVM,与test image的欧几里得距离越大的train image,influence越小;反之,与test image欧几里得距离最小的train image,删去后模型在test image上的预测loss变化越大。(正方向上的代表loss变大,即为helpful training images,如绿色的训练样本;反方向为harmful training images,如红色的训练样本)
对Inception,模型在test image上的预测loss基本上与训练样本的种类关系不大,dog样本也会对模型正确预测出鱼有帮助。

2.对抗训练样本

对抗测试样本:在视觉上难以明显区分,且具有不同label,但可以完全愚弄分类器的测试样本。
对抗训练样本:视觉上难以明显区分,但却可以使分类器在同一个test样本上的预测结果完全相反的训练样本。
如何利用influence function生成对抗训练样本呢?

由于这里写图片描述指的是loss对扰动的梯度,我们就知道了如何调整扰动量,可以使得在test上的预测loss增长最快啦。
对于每个test image,都可以给training images的几个image加入扰动,从而使得新模型在这个test image的预测结果完全颠倒。

经过attacks的training sets虽然在像素上变化很小,但是Inception 的feature layer上面的区别确实很大。说明inception model可以capture到这种attacks,可以通过检测feature vector来检测样本是否被attacked。另外,通过检查这里写图片描述的数量级也可以量化模型对training sets attacks的抗击能力:越小,代表对training sets加入扰动后的变化越小,即在test image上的预测loss变化越小,模型就越难被training sets attacked。


这里写图片描述

3.检查领域误匹配

Domain mismatch:训练样本与测试样本不同分布时,会造成训练loss小,测试loss大。我们可以通过influence function找到使得test error最大的training example。
分别把每个training example删去,计算这里写图片描述,若计算结果为正,则次training example对此test example为helpful;否则harmful。

4.修正错误标签

关键是找出对模型产生最大influence这里写图片描述(可能为正 helpful,可能为负 harmful)的训练样本。由于我们没有测试样本,就计算
这里写图片描述估计出将第i个训练样本z_i删去后,在z_i上的预测loss的变化。即用这个z_i来当测试样本。

阅读全文
0 0
原创粉丝点击