只要你用ReLU,就是“浅度学习”:任意ReLU神经网络都有等效3层网络

人工智能 新闻
伦敦国王学院的研究团队还提出一种为任意ReLU网络找到相应浅层网络的算法。

本文经AI新媒体量子位(公众号ID:QbitAI)授权转载,转载请联系出处。

只要你用了ReLU,我们就是好朋就是“浅度学习”。

最近有研究证明,所有基于ReLU的深度神经网络都可以重写为功能相同的3层神经网络。

基于这个证明,伦敦国王学院的研究团队还提出一种为任意ReLU网络找到相应浅层网络的算法。

由此产生的浅层网络是透明的,可用于解释网络的行为。

只要通过算法,就能找到任意深度ReLU网络的对应浅层网络。

图片图片

对此网友惊呼:我要读这篇论文,立刻马上!

图片图片

任何深度ReLU网络都是浅层的

ReLU是深度学习领域最常用的一种激活函数,由Nair & Hintonw在2010为限制玻尔兹曼机(restricted Boltzmann machines)提出的。

由于常常在实践中有着比其他常用激励函数(例如逻辑函数)更好的效果,而被深度神经网络广泛用于图像识别等计算机视觉人工智能领域。

论文指出,每个深度ReLU网络都可以转换为一个功能相同且具有“三个隐藏层”的浅层网络。并提供了一个找到对应浅层网络权重的算法,提高神经网络的全局可解释性。

简单来说就是,通过划分输入空间,使用线性函数对每个分区进行建模,来实现深层网络浅化。

图片图片

具体分为这三步。

图片图片

首先,需要构建一个将线性模型和半空间编码的第一层,通过使用一个矩阵来表示半空间条件,其中每个行向量表示一个半空间的线性方程。

然后,构建第二层,该层根据输入的所属区域决定哪些边界是活跃的。

最后,构建第三层,通过将输入与每个线性模型相乘并使用指示函数来选择正确的模型。

基于此,每一个深度ReLU网络都可以被转换为一个功能上相同的三层网络,其权重值在扩展实数中。

当然要完成浅化,还需要一些咒(suan)语(fa)。

根据论文,使用算法时只需找到H、c、α、β这些参数,并知道每个区域所需的半空间就可以,主要分三步。

首先,识别可行的模式集,对于每个可行模式,计算全局线性规划的参数A(l)和d(l)。

然后,确定半空间条件,将这些矩阵堆叠起来,确定每个激活模式的半空间条件。最终得到矩阵H和向量c。

最后,计算局部线性模型,根据模型的权重和激活模式,使用显式公式,计算局部线性模型α和β。

图片图片

简单理解,就是根据已训练好的网络,通过启发式搜索在可能的神经元激活空间中找到合适的权重值。

通过构建浅层白盒网络,能够快速计算出每个数据点的SHAP值,大大提高数据的可解释性。

实验表明,通过上面算法就可以找到给定深度ReLU网络对应的浅层网络的显式权重。

网友:实验很酷,但也有些问题

论文很新颖的提出一个算法,可以实现“深转浅”,不过该方法仍有一些缺点。

比如构建浅层网络使用了无限权重,尽管这些权重可以在Python中实现,但不能使用梯度下降进行微调。

当然,“找茬儿”这块,怎能少得了热心肠的网友。

根据论文可以发现,如果使用团队提供的算法,实验过程中计算时间其实是会随着神经元数量增加呈指数增长。

所以就有网友提出疑惑:算法运行时间与神经元数量成指数关系,12个神经元需要近10分钟,那计算一个普通大小的DNN所需时间岂不是长了去了……

图片图片

网友指出:假设单层神经网络可以计算任何函数,那么对于任何神经网络来说,这不是都成立吗?

图片图片

对于这个研究,也有网友犀利表示:这就是个「普遍逼近定理」,没什么大惊小怪的。

不过无论网友怎么说,这篇论文仍然有一些出彩点。

比如,通过这个方式得到的浅层网络是透明的,可以用来生成模型行为的解释。

此外还提供了用于复现实验的代码,供其他研究人员使用来探索和实验。

论文地址已经贴在下面,感兴趣可以去看看~

论文传送门:https://arxiv.org/abs/2306.11827

责任编辑:张燕妮 来源: 量子位
相关推荐

2017-10-11 23:07:00

神经网络激活函数可视化

2019-08-29 10:10:52

神经网络激活函数人工智能

2017-11-24 11:10:39

神经网络卷积神经网络全连接神经网络

2020-08-06 10:11:13

神经网络机器学习算法

2020-07-22 18:11:07

神经网络函数代码

2018-05-14 10:50:13

SQL查询语句神经网络

2018-07-03 16:10:04

神经网络生物神经网络人工神经网络

2018-03-22 13:34:59

TensorFlow神经网络

2016-12-27 14:24:57

课程笔记神经网络

2018-04-08 11:20:43

深度学习

2023-04-19 10:17:35

机器学习深度学习

2022-02-15 23:38:22

Python机器学习算法

2018-10-18 10:27:15

机器学习神经网络python

2021-03-29 09:02:24

深度学习预测间隔

2017-09-10 07:07:32

神经网络数据集可视化

2020-12-19 11:05:57

循环神经网络PyTorch神经网络

2021-09-24 09:45:27

Python神经网络人工智能

2020-09-08 13:02:00

Python神经网络感知器

2020-05-27 11:10:54

KerasLSTM神经网络

2021-02-07 09:40:19

Python神经网络人工智能
点赞
收藏

51CTO技术栈公众号