摘要
如今人们训练出的模型越来越庞大,特别是神经网络等等,像黑盒子一般,无法了解其学习过程以及学到什么。Explainable ML想解释一些机器学习的过程,采用正向与逆向两种思路,正向是改变输入,通过遮挡输入元素或者改变输入向量等方法确定各个元素的重要性。逆向是Activation Maximization思想,即固定模型参数,改变输入使待解释类型的输出结果最大。实做中加入GAN等生成器或训练Generative CNN会得到较好结果。还可以使用linear model或者简单的decision tree等等可解释的模型做Explainable ML。
Explainable ML分为两大类,一类是Local Explanation,另一类是Global Explanation。以猫图像识别为例,Local Explanation解释为什么它认为这张图是一只猫,Global Explanation解释它认为的猫是什么样子。
1 Local Explanation
1.1 基本思想
Local Explanation做的事情是解释各个Components的重要性。将输入Object x分解成若干Components:
{
x
1
,
?
?
?
,
x
n
,
?
?
?
,
x
N
}
\{x_1,\cdot\cdot\cdot,x_n,\cdot\cdot\cdot,x_N\}
{x1?,???,xn?,???,xN?},拿掉或改变某些Components的值,观察对结果造成的影响,如果影响大,则那些Components是重要的。下图中的灰色方块在图片上移动,逐个拿掉Components,计算结果,蓝色表示拿掉移动到该位置上的灰色方块后的辨识结果与原结果不一致,红色表示与原结果一致。 可以看出,机器真的可以识别出物体。遮挡方块的颜色与大小的选择需要我们调试。在使用Explainable Machine Learning时会有一些参数要调,不同的参数会得到不同的解释的结果。
1.2 Saliency Map(用Gradient的方法)
Local Explanation应用:Saliency Map,找出重要的Components,以解释机器学到了什么。对于比较重要的元素,按道理更有可能是对最后的结果影响越大,那么对输入元素做相同的改变,重要的元素改变量应该大。以图像辨识为例,改变输入向量,比如为分量增加一个小扰动,遍历输入图片的每个像素,找到输出变化大的,即
∣
?
y
k
?
x
n
∣
|\dfrac{\partial y_k}{\partial x_n}|
∣?xn??yk??∣变化大的,使用高亮度表示重要的像素。 上图为输入向量变化绘制的显著图。
但是用Gradient有一个潜在问题是Gradient Saturation(梯度饱和),解决办法为Integrated gradient和DeepLIFT
tip:Explanation技术是可以被恶意攻击的。给输入增加某些精巧的噪声,该噪声不改变分类结果,却使解释结果出错。
2 Global Explanation
2.1 Activation Maximization
找到一个输入,此输入可使待解释神经元的输出值最大。定义
x
?
=
a
r
g
max
?
x
y
i
x^*=arg\max\limits_x y_i
x?=argxmax?yi?,即找到一个
x
x
x,使得
y
i
y_i
yi?最大,记作
x
?
x^*
x?。在分类问题中,就解释了机器认为的猫是什么样子。但是这样的输入可能是一堆噪声混杂其中的,并不能让我们知道机器心里理想的猫是什么样子,我们需要向函数中增加一些限制,做Regularization,如
x
?
=
a
r
g
max
?
x
y
i
+
R
(
x
)
x^*=arg\max\limits_x y_i+R(x)
x?=argxmax?yi?+R(x),
R
(
x
)
=
?
∑
i
,
j
∣
x
i
j
∣
R(x)=-\displaystyle\sum_{i,j}|x_{ij}|
R(x)=?i,j∑?∣xij?∣,才能真正看出来机器学到的是什么。
2.2 Regularization from Generator
2.1的思想实现起来想得到好的结果是比较难的。因此我们训练一个生成器代替人类找可使待解释神经元的输出值最大的输入,生成器包含GAN、VAE等等。 其中z为低维向量,一般由随机变量的分布函数(高斯分布、正态分布)随机生成,
z
?
=
a
r
g
max
?
z
y
i
z^*=arg\max\limits_z y_i
z?=argzmax?yi?,图像为
x
?
=
G
(
z
?
)
x^*=G(z^*)
x?=G(z?),而Generator就是一种限制,Generator生成的图片往往看起来都是正常的图片。
2.3 Generative CNN
由于Activation map的复杂性,不太容易直接看出有意义的信息,所以Global Explanation有难度。传统的CNN的解释效果比较差,因其为Discriminative model,使用条件概率
P
(
Y
∣
X
)
P(Y|X)
P(Y∣X);Generative model使用联合概率
P
(
X
,
Y
)
P(X,Y)
P(X,Y),
P
(
X
,
Y
)
=
P
(
Y
∣
X
)
?
P
(
X
)
P(X,Y)=P(Y|X)*P(X)
P(X,Y)=P(Y∣X)?P(X),P(X)代表图片的机率,即图片好或不好,所以效果较好。Generative CNN采用联合概率,如下图。它Forward为Classifier,Backward为Image generator。
小结:Local与Global在实做中侧重点不同,Local Explanation计算weight的大小,侧重系数的影响;Global Explanation计算每一项的大小,侧重当前的贡献值。
3 Using a model to explain another
3.1 Using linear model
用一个具有解释能力的模型去模仿没有解释能力的模型,令可解释模型的输出去接近没有解释能力的模型的输出。比如,Linear Model就是可解释模型,但是其局限性明显,不能精准模仿Neural Network等模型,只能用于分析复杂模型的某一部分,属于Local Explanation。 Local Interpretable Model-Agnostic Explanations(LIME): step1.决定想要分析的data point step2.在附近范围内抽样一些样本点 step3.训练一个可解释模型模仿复杂模型在附近范围内的行为 step4.解释可解释模型 LIME中附近范围的大小等参数需要自己调。 LIME对图像识别做Local Explanation,通常将待解释图片切分成段,随机丢弃一些段,剩下的段作为样本点。在训练可解释模型模仿复杂模型时,往往要加入自己的设计,如在将样本点输入Linear前,把图像转换成低维向量,才能容易分析。最后需要训练出线性模型,根据weight的值即可判断对应片段的重要性。
3.2 Using decision tree
再比如,不过于复杂的Decision Tree也是可解释模型。设待解释模型的参数为
θ
\theta
θ;
O
(
T
θ
)
O(T_{\theta})
O(Tθ?)代表决策树的复杂程度,可以是决策树的平均深度。在训练待解释模型时,Loss Function定义为
θ
?
=
a
r
g
min
?
θ
L
(
θ
)
+
λ
O
(
T
θ
)
\theta^*=arg\min\limits_{\theta}L(\theta)+\lambda O(T_{\theta})
θ?=argθmin?L(θ)+λO(Tθ?),这样训练出来的待解释模型,转成决策树以后很好解释。提出此方法的论文思路清奇,因为
λ
O
(
T
θ
)
\lambda O(T_{\theta})
λO(Tθ?)无法微分,所以提出者训练了一个神经网络去估测决策树的复杂程度,进而可以继续用Gradient训练待解释模型。
总结与展望
机器学习的模型越来越强,其结构也越来越复杂,Explainable Machine Learning就是进一步了解模型的性质、了解它学到什么东西,进而做到给模型除错、熟练控制和改进模型。
|