ICML 2017 Best Paper Award论文解读(1)

ICML 2017 Best Paper Award论文解读(1)

------2017.12.16 更新PPT 链接-------

(本系列解读文章涉及较多细节,篇幅较长,故分为三个部分,本篇为第一部分。)

ICML 2017 基本已经落下帷幕,在大会第一天就公布今年的Best Paper,课题组上周组会要讨论这篇文章,于是我就花了几天时间仔细的研究了这篇Best Paper:Understanding Black-box Predictions via Influence Functions。

为了组会讲解方便,我也做了粗糙的一个PPT,传送门在此

目录


第一部分

  1. 总体工作介绍
  2. 机器学习基本概念的数学表述

第二部分

  1. Influence Function算法介绍(二阶可微和强凸条件下)
  2. Influence Function快速计算(二阶优化技巧)
    1. HVPs
    2. Conjecture Gradient Method
    3. Stochastic estimation

第三部分

  1. Influence Function扩展至非可微(Non-differentiable)和非凸(Non-convex)模型
  2. Influence Function 应用举例
    1. 辅助理解机器学习模型到底学到了什么
    2. 针对神经网络模型进行Training-Attacks
    3. 用于debug数据集的分布是否一致
    4. 用于对数据集中的错误标注进行修复

正文

1. 总体工作介绍

这篇工作最大的亮点,就是直面了一个许多深度学习和计算机视觉研究人员十分关心的一个问题,就是对于一个深度神经网络,它为什么能输出这样的预测结果(Why did it make this prediction?)。换言之,就是我们一直以为是Black-box深度神经网络到底从训练集中到底学到了什么?。

更重要的是这篇文章所采用的一套非常严谨和规范化的做machine learning研究的范式。我想这也是它之所以被选为Best paper 的重要原因之一,也是各位大佬希望能对于机器学习和计算机视觉的研究风气起到一个引领的作用,现在很多的研究只重视实验数据的漂亮,而忽略了 对算法本身的探讨,比如很多研究会回避掉为什么这样的模型和网络结构会work的问题,当然这也只是我个人的猜测。

1.1 提出问题

回到刚才提到的做研究的范式,首先是大家都经常说的一个话题,就是要能够提一个好问题,同时把问题细化和分解,这篇文章的作者在Black-box的问题背景下提了一个非常好(counterfactual)的问题:既然决定一个模型预测结果的是模型的参数(或者称之为权重),而模型的参数是取决于选用的算法和数据,那我们更能不能进一步的通过跟踪训练数据的变化来观察预测结果有什么变化?

这篇文章更具体的来把问题分解,第一步,如果我们把训练集中的一个样本去掉,那我们重新训练得到的新模型做出的预测会有什么样的变化?第二步,如果我们只是对训练集中的一个样本数据进行一个微小的扰动,那我的新的模型参数带来的预测结果会有什么样的变化?为什么要分两步呢?其实第一步是第二步的基础,在后续的算法解读的部分会进行细节的解读。

除了提一个好的问题,这篇文章在理论推导和证明上也是可圈可点,首先提出了在二次可微和强凸条件下的证明,再通过一些优化的技巧,将方法推广至非可微和非凸模型上。这种渐进的研究方式也是机器学习领域常用的套路。

1.2 引入Influence Function

在这样的问题背景下,作者借鉴了robust statistics中的influence function的技术,用来对模型参数的变化进行衡量。具体的讲就是,使用influence function研究了两个问题,(1)是对training set中一个样本数据加入一个扰动,观察模型参数产生的变化;(2)是对tranining set中的一个样本数据加入一个扰动,观察对于test set中的一个样本,相应的loss的变化。

这样,通过influence function就可以判断出训练集中的样本对于算法模型的训练有没有影响,有多大的影响,是好的影响还是坏的影响。

对于很多研究者来说,更关心的是influence function能怎么用,能怎么样帮助我修改我的算法或者实验过程,我们就先对应用场景进行简单介绍,数学证明和推导放在后边进行解读。

1.3 Influence Function应用举例

文章主要提了四个方面的应用:

(1)使用influence function,来判断一个算法模型到底学到了什么信息。文章首先在SVM和CNN模型上分别训练一个二分类分类器,然后通过influence function 计算得出哪些训练集中图片对模型参数影响较大,进而通过判断不同的模型学到的到底是图片的层次的信息。

(2)Security in Machine Learning也是最近机器学习领域比较热门的研究方向,文章提出influence function可以指导如何进行Training-attacks,区别于Test-attacks,对于针对测试集中的图片,选取训练集中的一张或几张图片,在influence function的指导下,对训练集中选取的图片进行处理,得到视觉上几乎不可见,却又能是模型参数发生较大变化的新的训练数据,进而使模型将测试集中的图片误判。通过这种方式,也可以指导我们涉及出一些安全保护机制,提升机器学习模型的安全性。

(3)Debug domian mismatch, 文章以测试集和训练集数据分布不一致为例,举例讲解了如何使用influence function来找到哪些样本对模型参数影响最大,对数据分布影响最大,可以帮助我们检查和修正我们设计的数据库。

(4)修正被错误标注的数据;现在数据标注的需求越来越大,而无论是专家标注,还是众包平台的标注,都难免产生数据标注错误的情况,我们也可以使用influence function 来找到这些被标注错误的数据,进行修正。

1.4 Influence function 高效计算

在引入了influence function的基础上,作者花了相当的笔墨在如何高效计算influence function上,通过使用二阶优化(second-order optimization)的一些技巧,使influence function能够基于现有的深度学习框架实现快速计算,作者也已经将相关的代码开源。


2.机器学习基本概念的数学表述

作为一个搞视觉的孩子,初读这种Machine Learning的文章,分分钟被虐哭,也终于体会到数学基础薄弱的痛苦。于是在这里从头对机器学习的一些概念,从统计学和概率角度进行简单复盘,部分表述来自MIT 9.520(链接在最下方)和李航博士的统计学习方法。

2.1 统计学习定义

Learning is viewed as a generalization/inference problem from
usually small sets of high dimensional, noisy data.(from MIT 9.520 Lecture 2)

我们现在常说的机器学习,其实就是统计机器学习。

对于我们常说的监督学习(supervised learning),训练集S ,输入数据 X ,标签为 Y ,定义我们用于训练的数据是独立地从满足分布 \mu(z)Z=X\times Y 中采样得到的,训练集定义 S_n : (x_1,y_1),......,(x_n,y_n) 。也即 z_1,......,z_n 。我们假设数据是满足独立同分布(i.i.d)的。

我们有以下两点需要注意:

  • 联合数据分布 \mu(z)=p(x,y) 是固定的,同时也是未知的
  • 我们的目标是得到条件概率 p(y|x)\mu(z)=p(x,y)=p(y|x) \cdot p(x)

2.2 泛化能力

机器学习的目标是能够通过在训练集训练得到一个能在测试集或者未来数据上做出正确预测的模型,而我们常常用泛化能力(Gener)一词来衡量一个模型的在测试集或者未来数据上的预测能力。

回到我们刚才提到的机器学习的目标,我们希望通过训练得到一个函数 f ,给定一个输入 x ,给出结果 y 。我们定义一个模型的假设空间(Hypothesis Spach) \mathcal{H} ,其中包含所有的函数 f ,因此我们的目标就是找到 \mathcal{H} 中,预测性能最好,泛化能力最强的函数 f 。因此定义损失函数 V(f(x),y) 作为对预测性能的度量,针对Classification 和 Regression通常使用不同的损失函数。

有了Loss function,我们就可以通过它来找到最好的模型,由于模型的输入输出是随机变量,且满足联合概率分布 p(x,y) ,我们就可以得到损失函数的期望: I[f]=\int_{X\times Y}V(f(x),y)p(x,y)dxdy ,这个也是理论上模型 f(X) 关于联合概率分布 p(x,y) 的平均意义下的损失,我们称之为期望风险(Expectd Risk),由于联合概率是未知的,我们无法计算得到 I[f] 。于是我们引入另一个定义,经验风险(Empirical Risk),记作 I_n[f] ,定义式为: I_{n}[f]=\frac{1}{n}\sum_{i=1}^{n}V(f(x_i),y_i) ,根据大数定理,当样本容量趋于无穷大的时候,经验风险趋于期望风险,于是我们用经验风险来近似估计期望风险。

2.3 ERM 与 SRM

基于上面谈的几点,在假设空间,损失函数和训练数据都确定的情况下,我们可以采用ERM(Empirical Risk Minimization)策略来确定最优的模型,公式化的表达为: f_* = arg min_{f\in\mathcal{H}} I_n[f] 当样本容量足够大时,ERM可以得到不错的学习效果;但是当样本容量很小时,ERM就容易出现过拟合。

SRM(Structural Risk Minimization)就是为了防止过拟合而提出来的策略,公式化表示为: f_* = arg min_{f\in\mathcal{H}} \frac{1}{n}\sum_{i=1}^{n}V(f(x_i),y_i) + \lambda J(f) ,其中 \lambda J(f) 是惩罚项(或正则化项), \lambda 是系数。

通过以上的基本概念,我们看到监督学习问题也就变成了ERM或者SRM的优化问题。

(第一部分完)


参考文献

[1] 统计学习方法 李航 清华大学出版社

[2] 9.520/6.860: Statistical Learning Theory and Applications, Fall 2016

[3] Understanding Black-box Predictions via Influence Functions

编辑于 2017-12-16 23:18