机器学习(李宏毅)——Explainable AI

一、前言

本文章作为学习2023年《李宏毅机器学习课程》的笔记,感谢台湾大学李宏毅教授的课程,respect!!!

二、大纲

  1. Why we need Explainable ML?
  2. Interpretable v.s. Powerful
  3. Goal of Explainable ML
  4. Explainable ML

三、Why we need Explainable ML?

一直以来,我们都在学机器学习,最简单的就是图像分类,但是机器(模型)为什么能够work?大家都说它是个黑箱子,它是不是欠我们一个理由呢?

会不会是一种巧合,模型只是巧合地猜对了答案,而不是真的智能呢?如果是在无人车驾驶、医学诊断等领域应用上,那更应该得给出人们可以接受的理由!

所以,这次课就来讨论讨论AI可解释性问题。

四、Interpretable v.s. Powerful

1、简单的模型好解释,但不够powerful。举例而言:线性模型我们可以清楚知道哪些权重是重要的,但不够powerful。

2、复杂的模型powerful,但不好解释。举例而言,深度学习神经网络很难解释,但确实会比线性模型更加powerful。

今天而言,我们人类只是"神识"还没那么强大到能够看透神经网络,但也更不应该说看不透就不用它!

那有没有模型,兼具可解释性和强大能力呢?比如decision tree?

确实决策树很强大,但使用过程,往往也不是只用一棵,而是一片森林(随机森林),也不见得好解释。

五、Goal of Explainable ML

那对于深度学习神经网络可解释这件事,我们的目标就一定要完完全全搞到它的详细原理吗?人脑这么多神经元错综复杂做出决策,我们不也是相信大脑的决策吗,所以其实我们就是想得到在关注的case上一个有说服力的理由而已!

六、Explainable ML

为了得到上述的理由,我们从对象层面进行划分:

  • 外物(Local Explanation)
  • 本身(Global Explanation)

1、Local Explanation

所谓的外物是相对于模型本身而言,即从输入层面来看。

2、Global Explanation

本身即指模型本身。

如下图所示:

1、Local Explanation

接下来就仔细研究下Local Explanation。

对于分类器而言,从输入的图片来看,模型真的知道输入的图片是什么类别吗?

  • which component is critical?

有一种做法是:把输入的图片每次遮住一点,看模型输出的变化情况,如下图:

说明:把输入是猫的图片,一个pixel一个pixel地遮住,看分类器分类结果变化,输出哪些是重要的像素,就能推断模型是否知道哪些特征是重要的。

  • Saliency Map
    另外一种做法是在梯度上做文章,基本思想就是把每个pixel加上一点杂讯,看对loss的影响如何,说白了就是敏不敏感(有没有捅到模型的胳肢窝),越敏感反应就越强烈,图上表现就越白,如下图:

    基于这种方法,大家觉得有点毛毛躁噪的,于是多做几次加杂讯的动作,并把结果平均起来,这就是SmoothGrad。

但还有一个局限性,意思就是说你要是一直捅胳肢窝,捅多了也就不敏感了呀,举了个大象鼻子长度和是大象的关系:

所以这里有人提出了另一种方法,叫IG(Integrated gradient)。

  • How a network processes the input data
    这种方法就是直接把输入数据在模型里面是啥样,可视化看看。
    1、Visualization
    可以是纯纯的把每一层的特征可视化出来瞅瞅:

    2、Probing
    也可以是像探针一样把某一层的特征丢进去诊断器中看看输出结果。前提是你有一个好的诊断器。诊断器根据具体任务设定,可以是分类器啥的...

2、Global Explanation

基本思想就是走入模型的内心,看其所想。

我们知道图像识别中CNN有很多的卷积核filter,其实就是用来侦测特征的,如果相应的特征输入,侦测该特征的卷积核所对应的权重就会越大。

反过来推导,假设此时此刻某个卷积核权重很大,那应该对应什么样的图片输入呢?(你动了我的心,那你应该是啥样的)

上图就是在求最大化卷积核特征所对应的输入图片。最大化问题,用gradient ascent。

以MNIST为例,如下图:

上图确实是求出来输入图片长啥样,但你可别期待和数字长得一样,明显就是经过拆解的,还是可以看出是在检测笔画笔顺。

如果你从输出结果反向求是输入,那可能求得输入就是一堆杂讯:

其实这就是机器心中所想,但人类还是傻眼了,看不懂呀,所以需要做个转换映射,让求得的输入图片要越像数字越好,那这件事情怎么做呢,就是加入限制条件约束它(强迫它)。

还有一种方法就是用GAN!

相关推荐
零炻大礼包4 分钟前
【coze】意图识别(售前售后问题、搜索引擎去广告)
人工智能·coze
小小毛桃5 分钟前
使用PyTorch训练马里奥强化学习代理的完整指南
人工智能·pytorch·python
南玖yy13 分钟前
内存安全革命:工具、AI 与政策驱动的 C 语言转型之路
c语言·开发语言·c++·人工智能·安全·c++23·c++基础语法
Dipeak数巅科技16 分钟前
数巅智能携手北京昇腾创新中心深耕行业大模型应用
人工智能·数据分析·商业智能bi
明朝百晓生17 分钟前
【Survival Analysis】【机器学习】【3】deepseek流程图
人工智能·机器学习
mzak18 分钟前
Linux系统(OpenEuler22.03-LTS)部署FastGPT
linux·人工智能·fastgpt
仙人掌_lz43 分钟前
为特定领域微调嵌入模型:打造专属的自然语言处理利器
人工智能·ai·自然语言处理·embedding·强化学习·rl·bge
亚里随笔1 小时前
StreamRL:弹性、可扩展、异构的RLHF架构
人工智能·架构·大语言模型·rlhf·推理加速
RUZHUA1 小时前
阿里打通内网权限,变革再出发
人工智能
陈奕昆2 小时前
4.3【LLaMA-Factory实战】教育大模型:个性化学习路径生成系统全解析
人工智能·python·学习·llama·大模型微调