💡 博客地址:https://1nnoh.top/3W8VFN4/
🥇 版权: 本文由【1nnoh】原创 各位大佬敬请查阅
🎉 声明: 本博文禁止转载 感谢尊重和理解
❤️ 如果文章对你有帮助 欢迎一键三连
可解释机器学习-Task01-导论
- 0x00 Abstract
- 0x01 什么是可解释机器学习
- 1. 人工智能黑箱子灵魂之问
- 2. 黑箱子案例:
- 0x02 为什么要学可解释机器学习
- 1. 可解释学习是一个很好的研究方向
- 2. 推荐的细分领域
- 2.1 Machine Teaching
- 2.2 细粒度图像分类
- 2.3 一些前沿 AI 方向
- 0x03 怎么学可解释机器学习
- 1. 本身可解释性好的机器学习算法
- 2. 对可解释性很差的深度学习做可解释性分析
- Conclusion
- References
0x00 Abstract
从以下角度来认识可解释机器学习:
- 什么是可解释人工智能?
- 学可解释机器学习有什么用?
- 如何对传统机器学习、深度学习做可解释性分析?
0x01 什么是可解释机器学习
是打开人工智能的黑箱子,洞悉人工智能的脑回路与注意力,进而解释它,了解它,改进它,信赖他的一门学科。
1. 人工智能黑箱子灵魂之问
- AI 的脑回路是怎样的?AI 如何做出决策?是否符合人类的直觉和常识?
- AI 会重点关注哪些特征,这些特征是不是真的有用?
- 如何衡量不同特征对 AI 预测结果的不同贡献?
- Al 什么时候 work, 什么时候不 work?
- AI 有没有过拟合?泛化能力如何?
- 会不会被黑客误导,让 AI 指鹿为马?
- 如果样本的某个特征变大 15,会对 AI 预测结果产生什么影响?
- 如果 AI 误判,为什么会犯错?如何能不犯错?
- 两个 AI 预测结果不同,该信哪一个?
- 能让 AI 把学到的特征教给人类吗?
2. 黑箱子案例:
- AI 在关注哪些区域,哪里的特征对于 AI 识别坦克来说最重要
- 将一张大熊猫的照片,加上一些看似随机的噪声后,AI 以较高的置信度将其识别为长臂猿(即使在人类看来没有很多区别,明显仍然是一个熊猫)
- AI 绘画的偏差,经不起严谨的推敲:比如要求画出游在溪水中的三文鱼,AI 将日料店里的三文鱼刺身画在了溪水里;或者只能知道大概模样的握手照片。
因此目前的 AI 大多是黑箱,而且是经常会犯错误的黑箱,如果在医疗、无人驾驶、金融等领域,如何才能放心的将身家性命托付给人工智能?
0x02 为什么要学可解释机器学习
1. 可解释学习是一个很好的研究方向
- 选择人工智能研究方向的建议(同济子豪兄)
- 尽可能通用,与其它研究方向交叉
- 顺应主流发展趋势,长期存在且有用
- 有高质量的数据集
- 不过分小众,但也好发 paper, 没有疯狂内卷
- 能应用到产业界垂直细分行业
- 有商业应用价值,容易“讲故事”
而可解释机器学习恰好都符合这些要求 ^ ^
总结一下,可解释机器学习的意义:
- 研究 AI 的脑回路,就是研究 AI 的本质。
- 可解释分析是机器学习和数据挖掘的通用研究方法。
- 和所有 AI 方向交叉融合:数据挖掘、计算机视觉、自然语言处理、强化学习、知识图谱、联邦学习。
- 包括但不限于:大模型、弱监督、缺陷异常检测、细粒度分类、决策 AI 和强化学习、图神经网络、AI 纠偏、AI4Science、Machine Teaching、对抗样本、可信计算、联邦学习。
2. 推荐的细分领域
2.1 Machine Teaching
从 Machine Learning 到 Machine Teaching,人工智能教人类学习
这里挺有意思的,先用海量数据训练 AI,使其学习某一项任务并达到较高的标准,随后反过来以可视化的形式,将其学习到的重要特征展示给人类,指导人类的学习、生活与工作。
- AI 以热力图的形式,将鸟类的区别特征展示给人类,教会人类如何去分辨各种类别的鸟。
- 使用神经网络预测激光切割断面的工艺参数(准确度远胜于人类专家),并且以可视化的方法,教会人类切割断面上的哪些特征是对预测起到关键作用的。
- 绝艺围棋 AI 指导棋(腾讯)
- 钢轨伤损智能检测(同济大学轨道系 张子豪):指导铁路维修工人制定轨道定损的规范与策略
- 补全、复原未完成或缺损的古画(百度文心)=》指导人类书法、绘画技巧
2.2 细粒度图像分类
什么是细粒度图像分类:对属于同一大类,已经高度相似,做进一步的细分小类。(已经非常像,但又彼此不同)
-
比如荔枝、海洋生物、奥特曼…
-
肺炎(细菌性肺炎、病毒性肺炎、新冠肺炎…)
- 指导影像科医生应该关注哪些区域,从而做出判断。
-
使用图像分类解决图像定位(甚至图像分割)的问题(这个角度好有意思)
- 分类告诉人类有没有缺陷
- 进一步通过可解释分析,定位缺陷位置,告诉人类是哪里有缺陷
=》通过可解释机器学习,验证 AI 关注到了应该关注到的特征(或者区域),甚至进一步指导人类应该去关注哪些特征。
2.3 一些前沿 AI 方向
值得使用可解释机器学习去解释、探究的大型的深度学习模型
- ChatGPT
- AI 绘画
- 目标检测
- 关键点检测
0x03 怎么学可解释机器学习
1. 本身可解释性好的机器学习算法
- KNN
- 根据距离新样本最近的 K 个样本是什么类别,从而判断新样本的类别(近朱者赤近墨者黑)
- 逻辑回归
- 使用一定的权重,将所有特征加权求和,通过 Sigmoid 函数,获得概率。
- 线性回归
- IF ELSE=》决策树(非常接近人类的脑回路)
- 朴素贝叶斯
传统机器学习算法的可解释性分析(【子豪兄Kaggle】玩转UCI心脏病二分类数据集):
- 算法自带的可视化
- 算法自带的特征权重
- Permutation Importance 置换重要度
- 将某一列的特征随机打乱,若打乱后严重降低算法准确度,说明该特征比较重要;
- 若打乱后没什么影响,说明不怎么重要;
- 若打乱后反而提升了算法,说明该特征属于噪音,更加不重要。
- PDP 图、ICE图
- PDP 图(看一个人)随着年龄的增长,患病几率的变化
- ICE 图(看多个人)
- PDP 图(看一个人)随着年龄的增长,患病几率的变化
- Shapley 值
- Lime
总结:目前的一些机器学习算法的可解释性是比较好的,但能力有限,深度网络有较强的能力,但可解释性尚且需要探究,因此很有必要对例如深度学习的模型做可解释性分析。
2. 对可解释性很差的深度学习做可解释性分析
卷积神经网络的可解释性分析:
- 可视化卷积核、特征图(最早追溯到 AlexNet)
- 卷积核的作用
- 每个卷积核提取不同的特征,每个卷积核对输入进行卷积,生成一个 feature map,这个 feature map 即提现了该卷积核从输入中提取的特征,不同的 feature map 显示了图像中不同的特征。
- 浅层卷积核提取:边缘、颜色、斑块等底层像素特征;中层卷积核提取:条纹、纹路、形状等中层纹理特征;高层卷积核提取:眼睛、轮胎、文字等高层语义特征;最后的分类输出层输出最抽象的分类结果。
- 但人类只能理解浅层的卷积核,对于深层的卷积核是无法解释的
- 卷积核的作用
- 遮挡、缩放、平移、旋转(ZFNet)
- 使用灰色块遮挡图像的不同区域,根据对预测结果与置信度的影响,判断各个区域对于预测的重要性
- 对图像做缩放、平移、旋转,探究对预测结果的影响
- 统一遮挡住图像(狗)的右眼,若相比于随机遮挡,产生了一致性影响,那么说明神经网络确实学习到了右眼的特征。
- 找到能使某个神经元激活的原图像素,或者小图
- 基于类激活热力图(CAM)的可视化
- 把 AI 认为重要的特征高亮出来
- 从而可以解释 AI 为什么会犯错,是最终关注在了哪个区域导致判断错误
- 并且可以根据神经网络关注的区域,判断是不是带有 Bias 的,从而指导人类修改数据集
- 把 AI 认为重要的特征高亮出来
- 语义编码降维可视化
- 由语义编码倒推输入的原图
- 生成满足某些要求的图像(某类别预测概率最大)
Conclusion
- 《深度学习的可解释性研究综述》 ——李凌敏,侯梦然,陈琨,刘军民
- 《深度学习可解释性研究综述》——雷霞,罗雄麟
思考题:
- 为什么要对机器学习、深度学习模型做可解释性分析和显著性分析?
- 打开人工智能的黑箱子,探究其脑回路,了解、解释 AI,从而改进它,信赖它。
- 如何回答〝人工智能黑箱子灵魂之问"?
- 对算法做可解释性分析
- 人工智能的可解释性分析有哪些应用场景?
- Machine Teaching
- 对大模型做可解释性分析
- 哪些机器学习算法本身可解释性就好?为什么?
- KNN、LR、决策树等。
- 这些算法的本质容易被人类理解,比如最近邻的样本点、对特征做加权求和、通过 IF ELSE 判断。
- 对计算机视觉、自然语言处理、知识图谱、强化学习,分别如何做可解释性分析?
- 计算机视觉:可视化卷积核、CAM 等。
- 在你自己的研究领域和行业,如何使用可解释性分析?
- 对三维模型的 Embedding 做降维可视化。
- 探究神经网络关注到了三维模型的哪些拓扑特征与几何特征。
- 可以从哪几个角度实现可解释性分析?
- CAM、卷积核可视化、Embedding 降维可视化等。
- Machine Teaching 有哪些应用场景?
- AI 指导棋、书法绘画、各种物体或医学图像的细粒度分类等。
真的是蛮有意思并且很实用的一个方向,感谢子豪兄的分享 ^ ^
References
-
课程:可解释机器学习公开课_哔哩哔哩_bilibili
-
实践:
- Train_Custom_Dataset/图像分类 at main · TommyZihao/Train_Custom_Dataset · GitHub
- GitHub - utkuozbulak/pytorch-cnn-visualizations: Pytorch implementation of convolutional neural network visualization techniques
-
可解释性分析论文:可解释性分析-论文集