机器学习10-如何用一个模型去解释另一个模型(Desicion Tree)

东阳的学习记录,坚持就是胜利!

基本思想

  • 有一些model是比较容易去解释的(比如现行model)
  • 我们可以使用这些比较好解释的model去试着解释那些不好理解的model

机器学习10-如何用一个模型去解释另一个模型(Desicion Tree)

LIME方法

我们显然无法用线性模型来完全模拟这个黑盒子的行为,但是我们能够用Linear Model来模仿这个黑盒子 某一部分的行为。

  • 给定需要解释的数据点;
  • 在其附近进行采样,将采样的点扔进黑盒子,得出对应的y;
  • 然后将第二步得出的样本点和与其对应的黑盒子给出的预测值扔进一个Linear Model中进行训练,以此来模仿这个黑盒子在给定的数据点附近的局部区域内的行为;
  • 对得出的Linear Model进行解释。

机器学习10-如何用一个模型去解释另一个模型(Desicion Tree)

在图片上面的应用

  1. 给定需要解释的数据点;
  2. 在其附近进行采样:
    • 先对图片做实例分割
    • 随机去除一些部分
    • 计算去除后的图片经过黑盒子的预测结果

机器学习10-如何用一个模型去解释另一个模型(Desicion Tree)
3. 将得出的结果作为Linear Model的groud truth,用x表示是否去除该部分(0 或者 1),进行训练。
机器学习10-如何用一个模型去解释另一个模型(Desicion Tree)

Decision Tree

  • 用一个能够解释的模型去模拟无法解释的模型
    机器学习10-如何用一个模型去解释另一个模型(Desicion Tree)
    我们不太希望decision tree太过庞大

Tree regularization

  • 通过Decision Tree训练出一个容易解释的模型
  • 我们希望越简单越好
  • 我们需要参数θ,同时使得原模型的loss最小,同时将其转成Decision Tree后,Decision Tree的层数也要最小。(又另外train了一个可微分的network)
    机器学习10-如何用一个模型去解释另一个模型(Desicion Tree)

https://arxiv.org/pdf/1711.06178.pdf