Py学习  »  机器学习算法

小白学深度学习:使用Captum可视化模型

Coggle数据科学 • 2 年前 • 935 次点击  

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

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

Captum介绍

https://captum.ai/

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

# conda 安装
conda install captum -c pytorch

# pip安装
pip install captum

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

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

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

案例:CNN图像分类

https://captum.ai/tutorials/CIFAR_TorchVision_Interpret

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

案例:CNN消融实验

https://captum.ai/tutorials/Resnet_TorchVision_Ablation

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

案例:结构化特征重要性

https://captum.ai/tutorials/House_Prices_Regression_Interpret

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

案例:BERT注意力机制

https://captum.ai/tutorials/Bert_SQUAD_Interpret2

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





 竞赛交流群 邀请函  #

△长按添加竞赛小助手
添加Coggle小助手微信领取代码(ID : coggle666)

每天Kaggle算法竞赛、干货资讯汇总

与 28000+来自竞赛爱好者一起交流~

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/148672
 
935 次点击