Dropout Feature Ranking for Deep Learning Models

摘要

深度神经网络( deep neural networks,DNNs )在多个领域取得了最新的研究成果。不幸的是,DNNs因其不可解释性而臭名昭著,从而限制了其在生物和医疗保健等假说驱动领域的适用性。此外,在资源受限的环境下,设计依赖更少信息特征的测试是至关重要的,这将在合理的预算范围内实现高精度的性能。我们旨在通过提出一种新的面向深度学习的通用特征排序方法来弥合这一差距。我们展示了我们的简单而有效的方法在静态和时间序列场景中,在从分类到回归的任务中,在两个模拟和5个非常不同的数据集上,与8个“草人”、经典和深度学习的特征排序方法进行了比较。我们还说明了我们的方法在药物反应数据集上的使用,并表明它识别了与药物反应性相关的基因。

简介

深度神经网络( Deep Neural Networks,DNNs )已经开始在生物学和医疗保健领域崭露头角,包括基因组学( Xiong et al . , 2015)、医学影像( Esteva et al , 2017)、EEG ( Rajpurkar et al , 2017)和EHR ( Futoma et al , 2017)。然而,DNNs是黑盒模型,因其不可解释性而臭名昭著。在生物学和医疗保健领域,为了推导出可以通过实验验证的假设,提供关于哪些生物学或临床特征驱动预测的信息是至关重要的。所需的数据收集可能非常昂贵,因此,在合理的预算范围内生成收集最有效数据的实验设计也很重要。因此,对de进行特征排序有很强的需求。我们旨在通过提出一种新的面向深度学习的通用特征排序方法来弥合这一鸿沟。
在这项工作中,我们提出了通过变分dropout ( Gal et al , 2017)对特征进行排序。Dropout是一种常用于正则化神经网络的有效技术,通过随机移除隐藏节点值的子集并将其设置为0。在这项工作中,我们在输入特征层上使用Dropout概念,并优化相应的特征级Dropout率。由于每个特征都是随机移除的,因此我们的方法产生了类似于特征装袋( Ho , 1995)的效果,并且能够比其他非装袋方法(如LASSO )更好地对相关特征进行排序。我们将我们的方法与随机森林( RF ),LASSO,ElasticNet,Marginal排序和几种导出重要性的技术在DNN中,如深度特征选择和各种启发式进行了比较。我们首先在2个仿真数据集上进行了测试,表明我们的方法能够在非线性特征交互中,特别是在重要特征之间,对特征进行正确的排序。然后我们在4个真实世界的数据集上进行了测试,并表明我们的方法在深度神经网络中相同的特征数量下具有更高的性能。然后我们在多变量临床时间序列数据集上进行了测试,并表明我们的方法在循环神经网络设置中也能与其他方法竞争或优于其他方法。最后,我们使用先前提出的变分自编码器( Variational Autoencoder,VAE ) ( Kingma和韦林, 2013)在真实世界的药物反应预测问题上测试了我们的方法。

最近工作

许多先前提出的解释DNNs的方法集中于解释一个决策(例如在图像中指定一个特定的分类标签) (针对手边的一个具体例子( e.g . (西蒙尼扬et al , 2013 ; Zeiler and Fergus , 2014 ;里韦罗et al , 2016 ; Zhou et al , 2016 ; Selvaraju et al , 2016 ; Shrikumar et al , 2017 ; Zintgraf et al , 2017 ; Fong and韦达尔迪, 2017 ; Dabkowski and Gal , 2017 ) ) )。在这种情况下,一种方法的目的是确定给定图像的哪些部分使分类器认为该特定图像应该被分类为狗。不幸的是,这些方法不容易用于特征选择或排序的目的,其中特征的重要性应该在整个数据集中收集。
一些工作提到了使用变分dropout来实现更好的性能( Gal et al , 2017) Kingma et al ( 2015 ),对dropout进行贝叶斯解释( Maeda , 2014),或者压缩模型架构(莫尔恰诺夫等, 2017)。这些工作侧重于调整辍学率以自动获得最佳性能,但没有考虑将其应用于特征排序问题。
Li等人( 2016 )提出了深度特征选择( Deep Feature Selection,Deep FS )。Deep FS在网络中添加了另一个隐藏层,每个输入节点有一个连接到这个隐藏层(与输入大小相同),并在这个层上使用一个1惩罚。这些层之间的权重被初始化为1,但由于它们不受[ 0、1 ]的限制,它们可以成为大的正值和负值。因此,这个附加层可以放大特定的输入,并且需要在原有的网络架构内进行平衡。此外,使用' 1惩罚可以防止Deep FS选择相关特征,这在许多生物和健康应用中非常重要。
最后,几部著作还针对临床环境下的口译特点进行了分析。Che等人( 2015 )使用梯度提升树( Gradient-Boosted Trees )在医疗数据集上模拟循环神经网络以达到可比的性能。Nezhad等人( 2016 )通过自动编码器和随机森林来解释临床特征。Suresh等人( 2017 )使用循环神经网络来预测临床数据集,并在我们的设置中使用名为" Mean "的排序启发式。这些方法依赖于额外的决策树结构来学习特征,或者使用在我们的实验中排名性能较弱的启发式。

方法

3.1 Variational dropout

Dropout (斯里瓦斯塔瓦等, 2014)是神经网络最有效、应用最广泛的正则化技术之一。其机制是为神经网络中的每个隐藏单元注入一个乘性伯努利噪声。具体来说,在前向传递过程中,对于第j层的每个隐藏单元k,采样一个dropout掩码zjk⋅Bern ( z | θjk )。然后将原始隐藏节点值hjk乘以该掩码h′jk = hjkzjk,该掩码将隐藏节点值随机设置为hjk或0。
变异Dropout ( Maeda , 2014)将Dropout rate θ作为一个参数进行优化,而不是将其作为一个固定的超参数。对于一个神经网络f ( x ),给定一个大小为M的小批量(从训练集中抽取N个样本)和一个dropout掩码z,对dropout进行变分解释后得到的损失目标函数可以写为:
在这里插入图片描述
这里,zi┐qθ ( z ),其中q θ ( z )是变分掩码分布,p ( z )是先验分布.

3.2 使用Variational dropout进行特征排序

图1显示了我们的方法。为了分析哪些特征对于给定的预训练模型M正确预测其目标变量y是重要的,我们引入了Dropout Feature Ranking ( Dropout FR )方法。在我们的方法中,我们在M的输入层中加入了变分dropout正则化。为了达到最小的损失,Dropout FR模型应该学习小的dropout率,对于被分析模型M正确的目标预测很重要的特征,而对于其他不重要的特征,则增加dropout率。具体来说,给定D个特征,我们设定一个变量掩码分布q θ ( z ) =∏Dj = 1q ( zj | θj ) =∏Dj = 1Bern ( zj | θj )
为完全因式分解分布。这给了我们一个基于特征的辍学率θ j,其大小表示特征j的重要性。我们不在式( 1 )中使用KL ( qθ ( z ) | | p ( z ) )对dropout分布q θ ( z )进行正则化,而是直接对现有特征数量(特征不丢失)进行惩罚。这样就避免了事先设定辍学率p ( z )的需要,与线性回归(墨菲, 2012)的’ 0惩罚对齐。因此,我们的损失函数可以写为:
在这里插入图片描述
图1:Dropout特征排序图。训练前( Left ),每个特征的退学率初始化为0.5。经过训练( Right )后,每个特征得到不同的丢弃率。然后,我们根据辍学率的大小对所有特征进行排序- -幅度越低,排序越高。

我们不在式( 1 )中使用KL ( qθ ( z ) | | p ( z ) )对dropout分布q θ ( z )进行正则化,而是直接对现有特征数量(特征不丢失)进行惩罚。这就避免了事先设定辍学率p ( z )的需要,与线性回归(墨菲, 2012)的’ 0惩罚对齐。因此,我们的损失函数可以写为:
在这里插入图片描述
式中:zi⋅qθ ( z )
,λ由交叉验证确定。
具体松弛为了优化L ( θ )关于参数θ,我们需要通过离散变量z向后传播。我们采用与Gal et al . ( 2017 )相同的方法来优化我们的辍学率。具体来说,我们不是对离散的伯努利变量进行采样,而是对混凝土分布( Jang et al . , 2016 ;麦迪森等, 2016)进行温度t的采样,t的值在0到1之间。该分布将大部分质量置于0和1中,以近似离散分布。伯努利分布Bern ( z | θ )的具体松弛" z "为:
在这里插入图片描述
式中:u⋅Uniform( 0、1 )。我们将t固定为0.1,发现它在我们的所有实验中都是有效的。与传统的REINFORCE估计器(威廉姆斯, 1992)相比,这种具体的分布具有更低的方差和更好的性能(数据未显示),因此我们在所有的实验中都应用了它。
退火我们采用了退火技巧,以避免模型在完全优化之前被惩罚过重。具体来说,在优化过程中,我们在最初的几个阶段将λ从0线性地增加到指定的值。这与VAE中的KL退火技巧( Bowman et al , 2015)类似。
与强化学习的关系我们的方法可以看作是一种基于策略梯度的方法( Sutton et al , 2000) (强化学习技术之一),应用于特征选择设置。从这个角度来看,我们的策略是因式分解的伯努利分布,奖励由目标的对数概率和使用特征的数量组成。我们优化了使用 2P 组合在这个大型特征空间中输出最佳特征组合的策略,其中 P 是特征总数。为了获得特征方面的解释,我们采用因式分解伯努利分布来获得每个特征的重要性值作为我们的排名。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/2372.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux下的UDEV机制/守护进程

一. Udev机制概念引入 ( 需要在 etc/udev/rules.d/ 下创建设备的相关规则,不然有可能udev机制生成的设备文件不具备可读可写的权限,adb无法成功通过该设备文件访问设备 ) a. 创建文件夹 sudo vim Xiaomi-audroid.rules b. 添加规则 …

在vscode上面进行分支merge的记录

前言:在我们的项目中,有两个分支:master和liutielong。现在要将liutielong分支的改动merge到master分支中。 如果master分支已经更改了,所以要先pull(这是在git bash里面的命令)。 git pull origin master…

5分钟——快速搭建后端springboot项目

5分钟——快速搭建后端springboot项目 1. idea新建工程2. 构建pom.xml文件3. 构建application.yml配置文件4. 构建springboot启动类5. 补充增删改查代码6. 运行代码 1. idea新建工程 点击右上角新建一个代码工程 别的地方不太一样也不用太担心,先创建一个工程就好…

学习配置文件

1.yml的语法格式问题: 2.配置文件获取数据: Value方式: Environment: 获取自定义对象的方式: 设置get和set方法,还有toString方法。 3. 日志配置: logo的配置: 日志插件&#xff…

汽车纵染压制专用液压机比例阀放大器

汽车纵染压制专用液压机比例阀放大器是一种专门用于汽车纵梁拉伸工艺的设备,它也可以用于其他金属薄板的压制成型及校正工艺。该类型的液压机通常具备独立的动力机构和电气系统,采用PLC技术进行控制,以确保操作的准确性和稳定性。除了纵梁拉伸…

【iOS】分类,扩展与关联对象

文章目录 前言一、分类实现原理二、分类加载流程三、扩展四、类别与类扩展的区别五、关联对象动态添加取值移除关联对象应用 总结 前言 上一篇章我们探究了类与对象的底层,这一篇我们探究一下分类,扩展与关联对象 一、分类实现原理 首先我们知道扩展是…

CentOS-7安装grafana

一、通用设置(分别在4台虚拟机设置) 1、配置主机名 hostnamectl set-hostname --static 主机名2、修改hosts文件 vim /etc/hosts 输入: 192.168.15.129 master 192.168.15.133 node1 192.168.15.134 node2 192.168.15.136 node33、 保持服…

GaussianEditor:快速可控的3D编辑与高斯飞溅

GaussianEditor: Swift and Controllable 3D Editing with Gaussian Splatting GaussianEditor:快速可控的3D编辑与高斯飞溅 Yiwen Chen*​1,2   Zilong Chen*​3,5   Chi Zhang2   Feng Wang3   Xiaofeng Yang2 陈怡雯 *​1,2 陈子龙 *​3,5 张驰 2 王峰 3 杨晓…

MySQL学习笔记7——视图和存储过程

视图和存储过程 一、视图1、视图的作用2、如何操作视图和视图中的数据3、视图的优缺点 二、存储过程1、如何创建存储过程2、调用存储过程3、修改和删除存储过程 一、视图 1、视图的作用 视图是一种虚拟表,我们可以把一段查询语句作为视图存储在数据库中&#xff0…

liqo学习及安装,k8s,kubernetes多集群互联

先按照官方的教程在虚拟机安装学习 在开始以下教程之前,您应该确保您的系统上安装了以下软件: Docker,容器运行时。Kubectl,Kubernetes 的命令行工具。 curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.…

基于Python利用zhconv模块进行简繁体字转换

在处理中文文本时,简繁体字之间的转换是一项常见的任务。Python提供了许多库来实现这个目的,其中之一就是zhconv。zhconv是一个Python库,提供了简体字和繁体字之间的转换功能。本教程将向你展示如何使用zhconv模块来实现简繁体字的互转&#…

Redis底层数据结构之Dict

目录 一、概述二、Dict结构三、Dictht结构四、DictEntry结构五、核心特性 上一篇文章 reids底层数据结构之quicklist 一、概述 Redis 的 Dict 是一个高效的键值对映射数据结构,采用双哈希表实现以支持无锁的渐进式 Rehash,确保扩容或缩容时的高效性能。…

想冲宇宙厂,直接挂了。。。

宇宙厂实际是字节,这个称呼是因为字节跳动主宰了宇宙内一切App,有点家大业大的意思。 今天分享一位字节春招凉经,问了一些数据库和Java八股,没出算法题,直接挂了,竟然最喜欢出算法题的字节,这次…

iptables实现docker容器动态端口映射实操

背景 之前在《Docker 动态修改容器端口映射的方法》一文中,说明了如何使用修改配置和加防火墙规则实现动态端口映射。但是没有具体分享加防火墙实现动态端口映射的实际案例。今天就分享一下实际操作案例,供大家参考。 分析 动态端口映射的用途 容器端口…

(2024)Visual Studio的介绍、安装与使用

Visual Studio介绍 1.Visual Studio是什么? Visual Studio是微软公司推出的一款开发工具包系列产品,它是一个基本完整的开发工具集,为软件开发者提供了整个软件生命周期中所需的大部分工具。 2.Visual Studio的定义 Visual Studio是美国微软公…

网盘_游戏_博客自动化部署(Nginx多项目部署)

目录 一.前提介绍 二.环境介绍 三.自述(脚本) 四.关于Nginx多项目部署 一.前提介绍 在我之前的博客里详细介绍了上述项目的部署,那么如何使用简单脚本自动部署和使用Nginx多项目部署是本文来介绍的基础篇章。 二.环境介绍 CentOS Linux…

fawawf

c语言中的小小白-CSDN博客c语言中的小小白关注算法,c,c语言,贪心算法,链表,mysql,动态规划,后端,线性回归,数据结构,排序算法领域.https://blog.csdn.net/bhbcdxb123?spm1001.2014.3001.5343 给大家分享一句我很喜欢我话: 知不足而奋进,望远山而前行&am…

【Linux】文件目录及路径表示

1. Linux目录结构 在 Linux 系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。 /etc: 这个是系统中的配置文件,如果更改了该目录下的某个文件可能会导致系统不能启动。 /bin, /sbin, /usr/bin, /usr…

java泛型介绍

Java 泛型是 JDK 5 引入的一个特性,它允许我们在定义类、接口和方法时使用类型参数,从而使代码更加灵活和类型安全。泛型的主要目的是在编译期提供类型参数,让程序员能够在编译期间就捕获类型错误,而不是在运行时才发现。这样做提…

小程序AI智能名片S2B2C商城系统:解锁内容深耕新境界,助力品牌企业高效定制内容策略

在数字化时代,内容营销已成为品牌企业获取市场份额、增强用户黏性的关键武器。然而,面对海量的互联网信息和复杂多样的社交媒体平台,如何有效地深耕内容,成为众多品牌企业面临的难题。 传统的内容分类与识别方式,往往依…