机器学习(李宏毅)——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!

相关推荐
开源技术11 小时前
深入了解Turso,这个“用Rust重写的SQLite”
人工智能·python
初恋叫萱萱11 小时前
构建高性能生成式AI应用:基于Rust Axum与蓝耘DeepSeek-V3.2大模型服务的全栈开发实战
开发语言·人工智能·rust
水如烟19 小时前
孤能子视角:“组织行为学–组织文化“
人工智能
大山同学19 小时前
图片补全-Context Encoder
人工智能·机器学习·计算机视觉
薛定谔的猫198219 小时前
十七、用 GPT2 中文对联模型实现经典上联自动对下联:
人工智能·深度学习·gpt2·大模型 训练 调优
壮Sir不壮19 小时前
2026年奇点:Clawdbot引爆个人AI代理
人工智能·ai·大模型·claude·clawdbot·moltbot·openclaw
PaperRed ai写作降重助手19 小时前
高性价比 AI 论文写作软件推荐:2026 年预算友好型
人工智能·aigc·论文·写作·ai写作·智能降重
玉梅小洋19 小时前
Claude Code 从入门到精通(七):Sub Agent 与 Skill 终极PK
人工智能·ai·大模型·ai编程·claude·ai工具
-嘟囔着拯救世界-19 小时前
【保姆级教程】Win11 下从零部署 Claude Code:本地环境配置 + VSCode 可视化界面全流程指南
人工智能·vscode·ai·编辑器·html5·ai编程·claude code
正见TrueView19 小时前
程一笑的价值选择:AI金玉其外,“收割”老人败絮其中
人工智能