真棒啊,Facebook 官方推出一个模型解释 & 可视化工具 Captum

深度学习一致被诟病为黑盒,很难从精度之外的角度去理解模型。但现在还有一个研究方向,可解释性机器学习关注解释模型的决策和内部。

如果你使用PyTorch那么恭喜你,现在Facebook官方出品了一个模型解释 & 可视化工具Captum。本文将介绍Captum功能和基础原理。

文章目录

    • 技术探讨
    • Captum介绍
    • 案例:TextCNN文本分类
    • 案例:CNN图像分类
    • 案例:CNN消融实验
    • 案例:结构化特征重要性
    • 案例:BERT注意力机制

技术探讨

目前开通了技术探讨群,群友已超过3000人,添加时最好的备注方式为:来源+兴趣方向,方便找到更快获取资料、入群

方式①、添加微信号:dkl88191,备注:来自CSDN+模型可解释性
方式②、微信搜索公众号:Python学习与数据挖掘,后台回复:入群

Captum介绍

https://captum.ai/

Captum的英文介绍为Model Interpretability for PyTorch,字面意思就是解释Pytorch模型。安装方法也很简单:

# conda 安装
conda install captum -c pytorch

# pip安装
pip install captum

Captum主要受众是模型开发人员,可以了解哪些特征很重要,以便设计更好的模型。

真棒啊,Facebook 官方推出一个模型解释 & 可视化工具 Captum_第1张图片

Captum中的归因算法分为三组,主要属性、层属性和神经元属性,定义如下:

  • 主要归因:评估每个输入特征对模型输出的贡献。

  • 层归因:评估给定层中每个神经元对模型输出的贡献。

  • 神经元属性:评估每个输入特征对激活特定隐藏神经元的贡献。

Captum支持的功能可以从下面两个链接找到更多的算法介绍:

https://captum.ai/docs/attribution_algorithms

https://captum.ai/docs/algorithms_comparison_matrix

如果不了解具体的原理,不用担心。这里给你简单解释一下:Captum会使用训练好的模型,不改变模型的权重来解释模型的决策过程和参数功能。

Captum会使用到梯度计算和多次预测,因此在可视化时需要可能需要较多的计算时间。

案例:TextCNN文本分类

https://captum.ai/tutorials/IMDB_TorchText_Interpret

如果要在句子上应用梯度可解释性算法,需要为句子及其单词创进行封装。

真棒啊,Facebook 官方推出一个模型解释 & 可视化工具 Captum_第2张图片

案例:CNN图像分类

https://captum.ai/tutorials/CIFAR_TorchVision_Interpret

如果要在图像上应用梯度可视化算法,只需要计算像素对结果的贡献度即可。

真棒啊,Facebook 官方推出一个模型解释 & 可视化工具 Captum_第3张图片

案例:CNN消融实验

https://captum.ai/tutorials/Resnet_TorchVision_Ablation

每个像素如何影响语义分割模型输出。

真棒啊,Facebook 官方推出一个模型解释 & 可视化工具 Captum_第4张图片

案例:结构化特征重要性

https://captum.ai/tutorials/House_Prices_Regression_Interpret

定义全连接模型,并对房价进行回归预测,最终计算得到特征的贡献度。

真棒啊,Facebook 官方推出一个模型解释 & 可视化工具 Captum_第5张图片

案例:BERT注意力机制

https://captum.ai/tutorials/Bert_SQUAD_Interpret2

加载预训练BERT权重,计算注意力权重。

真棒啊,Facebook 官方推出一个模型解释 & 可视化工具 Captum_第6张图片

你可能感兴趣的:(python,机器学习,深度学习,人工智能)