【DataWhale可解释机器学习笔记】
项目地址:https://github.com/TommyZihao/zihao_course/tree/main/XAI
谢谢子豪兄的分享和讲解!!
一、 为什么要学可解释机器学习
大白话:当数据量越来越大以及数据维度越来越高,AI在高维的处理是看不到的,就像一个黑盒子,背后的决策到底是怎么做出来的我们看不到。因此,通过可解释机器学习,来研究AI的本质。
另,补充:
二、从Machine Learning到Machine Teaching
举例说明:
- AI通过大量的数据和算法学习到,不同品种花朵的特征或特征组合,然后把学到的经验教给人类,教人类通过观察这些花朵的某些特征或特征组合,来判断此花属于什么品种,或与其他品种作区分
- 从通过数据和算法准确预测工艺参数,到将对算法贡献较大的区域进行标记,进而教会人类如何预测工艺参数。(专家或工人应将注意力放在所标记的区域,根据这些区域的变化或规律来制定工艺参数)
三、细粒度图像分类
示例:
通过图像分类问题,解决图像中缺陷定位的问题,不仅告诉我们“有没有”,而且还能告诉我们缺陷“在哪里”
四、传统可解释性算法
KNN(K最近邻)
Logistic Regression(逻辑回归): 解决二分类问题
线性回归: 二分类问题(最小二乘法、梯度下降)
决策树
最简单的分类算法: if…elif…elif…else…
五、传统机器学习算法的可解释性分析
算法自带的可视化: 如上所示
算法自带的特征权重: 将某特征值打乱顺序,看对结果是否有影响(如果影响很大,表示该特征很重要;如果影响不大则表示不重要)
Permutation Importance置换重要度: 也就是上述所讲的将特征值打乱顺序后,反而结果更准确了,说明这是一些噪声
PDP图: 单个特征对结果的影响
ICE图: 多个变量共同影响下,对算法结果的影响
六、深度学习的可解释性差
6.1、卷积神经网络的可解释性分析
- 可视化卷积核、特征图
- 遮挡、缩放、平移、旋转:找到影响算法结果的重要区域
- 找到能使某个神经元激活的原图像素,或者小图
- 基于类激活热力图(CAM)的可视化: 1、重要,;2、对于AI为什么预测错误也有很好的解释性,通过CAM可以看到预测错误时所关注的重点是什么;3、帮助修改数据集或算法
- 语义编码降维可视化
- 由语义编码倒推输入的原图
- 生成满足某些要求的图像(某类别预测概率最大)
注: 后三个还不太理解,之后继续补充