在前面的文章中,我们介绍了 一种可解释性神经网络——xNN,而在本篇博客中,我们将要介绍一种针对前面文章的一种改进方法,使网络结构的可解释性更强,预测准确率更高。

文章名称:Enhancing Explainability of Neural Networks through Architecture Constraints


Enhancing Explainability of Neural Networks through Architecture Constraints

模型介绍

本博客所介绍的模型主体结构在上一篇博客(一种可解释性神经网络——xNN)已经介绍过,因此针对 xNN 基础模型不再做过多介绍。

其主体模型如下:

模型结构示意图:

但相较之前添加了下述一系列约束条件:

  • 条件①表示L1正则化,使得参数W具有稀疏性,从而达到针对每个子网络变量筛选的目的。
  • 条件②则是对相当于对子网络进行稀疏,选取部分重要的网络。
  • 条件③对 ridge function ( h h h) 进行约束,控制函数的光滑程度。
  • 条件④限制投影两两相互正交,可以减轻多重共线性因素对模型造成的影响,避免出现完全相同的 projection indexes( w j , j = 1 , … , k {w_j },j=1,…,k wj​,j=1,…,k)。
  • ⑤为规范化约束,保证模型的可识别性。

此外,文章还引入了 Importance Ratio (IR),可以直观展示每个子网络的重要性。

针对参数的优化,模型通过梯度下降法,对 W \bf{W} W 与除 W \bf{W} W 之外的参数进行交替优化。

而后文章进行了多种不同的模拟(2种可加模型模拟;4种非可加模型模拟),并将每一行按照IR由大到小进行排序。


模拟实验

两种可加模型结果如下:模型都能够真实刻画出实际的 ridges functions 与对应的 projection indexs ,这是上一代 xNN 所做不到的。

而针对非可加模型,限于模型的假设,其可解释性依旧相对较弱,但却可以对 ridge functions 的重要性进行排序,同时结合每个子网络中选择的变量,间接对变量的重要性进行排序。并且还保持着较高的预测准确率。

但由于模型的假设所限,文章所提出的模型只是针对部分可加模型有非常好的可解释性,针对其他模型的解释性效果相对较差。


更多的模型细节请参见原文,传送门:Enhancing Explainability of Neural Networks through Architecture Constraints

可解释性神经网络——2.添加约束的xNN相关推荐

  1. 可解释性神经网络——3.一种新的可解释性神经网络GAMI-Net

    在之前,我们介绍了两种可解释性神经网络: 可解释性神经网络--1.xNN 可解释性神经网络--2.添加约束的xNN 这里我们再介绍另一种网络结构:GAMI-Net,对应的文章为 GAMI-Net: A ...

  2. 可解释性神经网络——1.xNN

    引言 随着深度学习的兴起,其在许多领域都能够取得远胜于传统方法的表现,如今许多行业都已经用到了深度学习以及神经网络来进行分析或者预测,解决实际的一些问题.但其可解释性差也一直是令人所诟病的一点,也就是 ...

  3. 怎样使用AutoLayOut为UIScrollView添加约束

    1.在ViewController中拖入1个UIScrollView,并为其添加约束 约束为上下左右四边与superview对齐 2.在scrollview中,拖入1个UIView,为了便于区分将其设 ...

  4. MYSQL:约束?添加约束?删除约束?以及一些其他修饰?

    MySQL中的约束,添加约束,删除约束,以及其他的一些修饰: 一.NOT NULL(非空约束) 添加非空约束 1)建表时直接添加 CREATE TABLE t_user(user_id INT(10) ...

  5. angr学习笔记(9)(添加约束)

    angr系列 00_angr_find 01_angr_avoid 02_angr_find_condition 03_angr_symbolic_registers 04_angr_symbolic ...

  6. 修改数据表——添加约束(二十二)

    比如,原来数据表根本就没有约束,或者说,约束不够.那么如何来添加约束呢? 添加约束 1.添加主键约束(只能一个) 2.添加唯一约束(可以多个) 3.添加外键约束() 4.添加默认约束() 现在,先创建 ...

  7. 编程学习记录12:Oracle数据库的一些基本操作2,表相关操作,添加约束

    数据库中表的创建一般需要考虑三部分:表名.列名及类型.列的约束 表名:没什么要求,只要不重名就行. 常用数据类型: 1.字符类型 1)CHAR(长度):定长字符串,位数不足时用空格填充 2)VARCH ...

  8. IOS开发基础之屏幕组件适配添加约束

    IOS开发基础之屏幕组件适配添加约束 使得横屏显示也能自动适配 对齐我们可以按住Ctrl键,把控件连线至view中 如果我们不小心添加错了.可以清除掉约束 具体约束可以在右边查看 by johnson ...

  9. 为view添加约束constraints

    在相应要设置约束的view中按住鼠标右键进行拖拽,然后向指定的方向添加约束,如图: 拖拽的时候会显示一条蓝线,如上图所示,然后手指离开鼠标的时候会弹出向对应的约束供添加约束的时候进行使用如图: 转载于 ...

最新文章

  1. 将spark默认日志log4j替换为logback
  2. MyBatis-16MyBatis动态SQL之【支持多种数据库】
  3. python爬虫Scrapy框架之增量式爬虫
  4. Job make U funck Uself!!!
  5. 说说关于JVM三色标记算法
  6. CTSC2017酱油记
  7. [JavaME]利用java.util.TimerTask来做Splash Screen的N种方法
  8. postgresql使用pg_rman备份恢复
  9. java1.7环境_java1.7环境变量设置
  10. 系统可用性量表评估问卷
  11. 语言abline画不出线_北师大版八下数学 2.1不等关系 知识点精讲
  12. 电话面试的技巧和注意事项
  13. IntelliJ IDEA激吗? 活 ——集火吗
  14. html静态页面兼职,兼职.html · teayork/master - Gitee.com
  15. Cmd 移动文件夹及文件
  16. php session 自定义到数据库,PHP 自定义session储存 数据库 方式类   高洛峰 细说PHP...
  17. 《脑机接口导论》学习笔记 3.记录大脑的信号和刺激大脑
  18. http 状态详细说明
  19. MySQL数据库开发规范
  20. might和could的区别用法_cancould和maymight的用法有什么区别?

热门文章

  1. m35c android 4.4,透明带回来了!索尼中端“双雄”国内登场
  2. 编译器、汇编器、链接器
  3. 讯搜 配置mysql_迅搜使用指南
  4. 新媒体运营教程:活动运营方案必备的4大要素!
  5. vue导出excel (兼容ie)
  6. python整形是什么,什么是整型?怎样理解Python的整型?
  7. linux水仙花代码,C语言实现对水仙花数的判断
  8. 辐射光电流测试软件,辐照度测量与评估教程.pptx
  9. android studio 引入vitamio,Android studio3.0导入vitamio结果报错,求大神看看问题怎么解决...
  10. 如何用vscode调试ts代码