社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

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

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

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

如果你使用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
 
930 次点击