(2024,基于熵的激活函数动态优化,具有边界条件的最差激活函数,修正正则化 ReLU)寻找更优激活函数

news2024/11/14 18:55:27

A Method on Searching Better Activation Functions

公众号:EDPJ(进 Q 交流群:922230617 或加 VX:CV_EDPJ 进 V 交流群)

目录

0. 摘要

3. 动机

4. 方法论

4.1 问题设定

4.1.1 贝叶斯错误率和信息熵

4.1.2 激活函数和信息熵

4.2 具有边界条件的最差激活函数 (WAFBC)

4.3 基于熵的激活函数优化 (EAFO)

4.4 修正正则化 ReLU (CRReLU):从 ReLU 到更优

5. 实验

6. 局限性和未来工作


0. 摘要

人工神经网络(artificial neural networks,ANN)的成功在很大程度上依赖于激活函数的明智选择,这引入了网络的非线性能力,使其能够建模数据中的复杂关系。然而,过去对激活函数的搜索主要依赖于经验知识,缺乏理论指导,这阻碍了更有效激活函数的识别。在这项工作中,我们为这一问题提供了一个恰当的解决方案。首先,我们从信息熵的角度理论证明了具有边界条件的最差激活函数(the worst activation function with boundary conditions,WAFBC)的存在。此外,受信息熵泛函泰勒展开形式(Taylor expansion form of information entropy functional)的启发,我们提出了基于熵的激活函数优化(Entropy-based Activation Function Optimization,EAFO)方法。EAFO 方法为设计深度神经网络中的静态激活函数提供了一种新颖的视角,并具有在迭代训练过程中动态优化激活的潜力。利用 EAFO 方法,我们从 ReLU 导出了一种新的激活函数,称为修正正则化 ReLU(Correction Regularized ReLU,CRReLU)。在CIFAR-10、CIFAR-100 和 ImageNet-1K 数据集上,使用 ViT 及其变体进行的实验表明,CRReLU 优于现有的ReLU 修正。在大语言模型(LLM)微调任务上的广泛实证研究中,CRReLU 表现出比 GELU 更优越的性能,表明其在实际应用中的更广泛潜力。 

3. 动机

研究人员已经投入了大量努力探索改进的激活函数,这些激活函数被广泛认为对深度学习的发展具有重要意义。然而,我们也注意到,这些激活函数的提出缺乏理论框架,这表明这样的搜索在某种程度上是低效且盲目的。

GELU(Gaussian Error Linear Unit)[24] 首次提出于 2016 年,自那时起在多个领域取得了显著成功,尤其是在近年来大语言模型的出现中。它已成功应用于多种前沿神经网络架构中,如 BERT [25]、ViT [4]、GPT-4 [10] 等,展示了其多功能性和有效性。在 Lee [26](2023)的工作中,GELU 的数学性质得到了深入揭示,包括其可微性、有界性、平稳性和光滑性。因此,新的激活函数所表现出的优越性能通常缺乏数学解释。理解往往仅限于其表现出更好的性能,这妨碍了对更好激活函数的探索和神经网络的可解释性。

鉴于上述挑战,我们的工作旨在提出一种方法来搜索更好的激活函数,不仅能发现改进的激活函数,还能阐明其优越性能背后的原因。

4. 方法论

4.1 问题设定

4.1.1 贝叶斯错误率和信息熵

一个深度神经网络可以简化为包含一个特征提取层,随后是一个全连接层进行最终分类。从概率的角度来看,在二元分类中,特征提取层可以被概念化为转换混合分布(mixture distribution)的形状,从而使最终的全连接层能够用超平面分离两个分布。因此,两个分布的重叠越多,贝叶斯错误率越高,分类性能越差。此外,信息熵越低,形成两个独立峰的可能性越大(即分类不确定性越小,越容易分类);两个分布的重叠增加也会导致信息熵的增加(即分类不确定性越大,越难分类)。上述论述可以扩展到多类分类,这里不再详细说明。

4.1.2 激活函数和信息熵

假设激活函数的反函数为 y(x),且激活函数是单调递增的。许多以前的激活函数,如 Sigmoid 和Tanh [17],满足函数在整个定义域内具有反函数的假设。此外,当激活函数不满足该假设时,我们可以变换满足该假设的部分,如 ReLU 的正值部分。

然后我们设定在通过激活函数之前的数据分布服从分布 p(x)。因此,通过激活函数后的数据分布为 q(x) = p(y(x))y'(x)(注,此处已换元,变量 x 与 p(x) 中的 x 不是同一个。下文中依然如此,请自行根据语境理解 x 所表示的含义),其中 y'(x) 代表 y(x) 的导数。因此,我们可以将信息熵表示为:

因此,信息熵可以视为一个泛函(functional),它以函数 y(x) 为输入,产生一个实数作为输出。

4.2 具有边界条件的最差激活函数 (WAFBC)

首先,我们希望确定泛函 H(y(x)) 的极值(无论是最大值还是最小值)。为了进一步推导,考虑最简单的泛函,例如设定

为了研究函数 y(x) 变化带来的影响,我们对函数 y(x) 施加一个小扰动 ϵη(x),然后泛函 H(y(x)+ϵη(x)) 的形式如下:

我们对泛函 H(y(x)+ϵη(x)) 进行泰勒展开,可以得到以下方程:

如 4.1.2 节所示,经过激活函数后的数据分布为 q(x)=p(y(x))y′(x)。我们可以容易地得出,对于激活函数的反函数 y(x),当 x 接近下界时(例如初始激活函数值接近下界),y(x) 应该接近负无穷;而当 x 接近上界时(例如初始激活函数值接近上界),y(x) 应该接近正无穷。由于 ϵη(x) 是施加到 y(x) 上的小扰动,我们可以得出结论 η(x) 在边界处必须为 0。

利用分部积分法和方程 1 的边界条件,我们可以得到以下结果:

因此,H(y(x)+ϵη(x)) 的表达式为:

类似于普通函数的极值,期望在极值点的一阶项应为 0。这种对任意 η(x) 的要求导致了欧拉-拉格朗日方程: 

命题1:如果 G 与 x 无关,即 G=G(y,y′),基于方程 2 中表示的欧拉-拉格朗日方程,我们有: 

命题 1 的详细证明见附录 A。

将 G = p(y(x))y′(x)·log⁡(p(y(x))y′(x)) 代入方程 3 并进行计算,最终结果是:

同时对方程的两边进行积分,最终解为:

根据方程 (3) 得到的解,由于 y(x) 是激活函数的反函数,第一个积分方程最终可以通过获得激活函数的形式来解出:

其中,C_1 和 C_2 是基于激活函数的上界和下界的两个常数。方程 (5) 显示了具有边界条件的最差激活函数的解析形式。我们在附录 B 中对此形式进行了进一步讨论。通过上述推导,确定了泛函的极值。此外,我们想推导出它是最大值还是最小值。将 Legendre 条件应用于泛函极值,那么我们有:

因此,所得到的极值是一个最大极值,实际上是一个全局最大极值,这意味着推导出的激活函数具有最差的性能。实际上,WAFBC 具有一些有趣的性质,例如,它本质上具有上下界,这可以解释为什么像 Sigmoid 和 Tanh 这样的有界激活函数不如像 ReLU 这样的无界函数表现得好

4.3 基于熵的激活函数优化 (EAFO)

在第 4.2 节中,我们推导了泛函的极值,展示了方程 (5) 中的解析形式。然而,所获得的解是全局最大值,而不是最小值。如果我们想获得最佳激活函数,则需要泛函的最小值。然而,根据计算,实际情况是该泛函只有一个全局最大值,但不存在全局最小值。因此,没有最佳激活函数,只有更好的激活函数。在这种情况下,WAFBC 代表了泛函的全局最大值,这意味着激活函数的性能从 WAFBC 到任何替代激活函数都会持续改善。因此,我们提出了以下问题:是否有一种方法可以从现有的高性能激活函数开始,随后开发出具有更高性能的激活函数?

让我们重新考虑泛函的泰勒展开:

为了最小化新激活函数的信息熵,建议减少泰勒展开的一阶项。为了确保新激活函数的信息熵确实减少,我们希望将 η(x) 设置为与

的相反符号,这意味着我们设置:

将泛函 G(y′(x),y(x)) 的解析形式代入方程 (6),进行计算,我们可以得到以下方程:

其中,p(x) 是数据分布在通过激活函数前的概率密度函数 (PDF);p′(x) 是 PDF 的一阶导数;y(x) 是激活函数的逆函数;y′(x) 是 y(x) 的一阶导数;y′′(x) 是 y(x) 的二阶导数。因此,我们推导出一个能够减少信息熵的修正项,其通用形式如方程 7 所示。随后,我们可以得到优化激活函数的逆函数,表示为 g(x) = y(x) + η(x)。最后,通过推导 g(x) 的逆函数可以获得优化的激活函数

EAFO 方法概要。总结而言,我们将理论上的 EAFO 方法论表述如下:

  • 利用方程 7 并根据数据分布 p(y) 和激活函数的逆函数 y(x) 推导修正项 η(x)。
  • 将修正项与逆函数相加得到优化函数的逆函数,即 g(x) = y(x) + η(x)。
  • 推导 g(x) 的严格或近似逆函数,得到优化的激活函数。

此外,EAFO 方法还显示了在迭代训练过程中动态优化激活函数的潜力。我们认识到具有多层感知器 (MLP) 架构的神经网络的激活函数通常是固定的。最近的研究,如刘等人 [27] 的工作,建议在创新的网络架构 (Kolmogorov-Arnold Networks) 中优化激活函数。此外,针对真实数据分布 p(y),利用 EAFO 方法论,我们可以在多层感知器 (MLP) 架构下,通过数值方法实际连续优化激活 y(x)。理论上,通过数值方法优化信息熵泛函,也可以使用梯度下降优化激活函数;然而,我们也意识到,这会导致大型神经网络中的计算复杂性爆炸,因此需要实际高效的算法。因此,EAFO 方法论目前仍处于理论阶段,为计算更好的激活函数的解析形式提供指导。

4.4 修正正则化 ReLU (CRReLU):从 ReLU 到更优

如第 4.2 节所述,从理论上讲,最差的激活函数确实存在,我们可以确定其确切形式。实际上,从最差激活函数开始,函数 G 的值持续下降,表明激活函数的性能得到改善。这揭示了搜索改进激活函数的可行性,这构成了 “优化” 的关键。在第 4.3 节中,提出了 EAFO 作为优化方法。因此,我们可以轻松地想到从 WAFBC 优化以获得性能更好的激活函数。虽然这种想法是可行的,但我们也观察到 WAFBC 本身采用了变上限积分的形式,这产生了复杂的 η(x) 形式,使得推导结果在实际意义上并不显著。此外,从 WAFBC 开始的优化也导致了缓慢的进展。因此,在实际应用中,我们倾向于从已经表现出相对较好性能的激活函数开始。

在这里,我们希望从 ReLU [1–3] 开始,展示找到更好激活函数的过程。在推导之前,我们也注意到 ReLU 在整个定义域上缺乏逆函数。在本节中,我们希望利用以下策略来缓解上述困境:初始激活函数只需在特定区域内有逆函数;而在没有逆函数的部分,我们可以采用实际的近似方法。因此,我们首先检查 ReLU 中 x 为正的区域。如方程 7 所示,修正项 η(x) 的推导仅需要原始分布 p(y) 和激活函数的逆函数 y(x)。激活函数的知识很容易获得,而原始分布仍未被探索。然而,在实际实验中,实验数据的原始分布肯定会表现出相当大的形态变异,因此缺乏完美的解析形式。因此,我们假设网络足够大,根据中心极限定理,网络处理的数据可以近似为高斯分布 [28–31][32]。当然,这种假设在实际实验的网络中并不总是成立;然而,对逆函数的近似解和可学习参数 ε 的存在显著减轻了这种假设的影响,这也可以通过第 5 节中显示的 CRReLU 对数据分布的不敏感性得到证明。

现在,让我们考虑从 ReLU 到 CRReLU 的推导。为了简洁起见,我们重新书写数据分布和数据分布的导数:

此外,ReLU 的数学函数定义为 y = x 当 x 为正时,这意味着我们有 y(x) = x, y′(x) = 1 和 y′′(x) = 0。因此,

最终,通过将

代入方程 7,我们可以得到:

此外,我们将常数 C 设为一个可学习参数 ε,以实现网络中的自我优化。根据 EAFO 方法,我们可以得到修正激活函数的逆函数如下:

最终,通过推导 g(x) 的逆函数,可以获得优化后的激活函数 CRReLU。然而,使用常规方法获得方程 (8) 的逆函数存在挑战;因此,我们使用以下函数作为实际近似形式:

在命题 2 中,我们展示了使用方程 (9) 作为方程 (8) 的近似逆函数的合理性和可靠性。

命题 2:已知

g(f(x)) 和 x 之间的误差绝对值有以下界限:

命题 2 的详细证明见附录 C。

如第 4.2 节所述,εη(x) 是一个小扰动;因此,从理论上讲,我们可以将 εη(x) 设为一个无穷小。此外,在这种情况下,考虑到 η(x) 是一个有界函数,我们可以很容易地推断出 ε 也是一个无穷小。因此,g(f(x)) 和 x 之间的误差绝对值是一个高阶无穷小。在实践中,我们通常将 ε 初始化为一个小值,例如 0.01(如第 5 节所述),这意味着误差绝对值是一个小值。

最后,让我们考虑 x 为负的部分。当 x 为负时,ReLU 的逆函数可以看作是一条从原点发出并延伸到无穷远的射线,具有无限斜率;当 x 为正时,它是一条斜率为 1 的射线。因此,正负 x 值的修正项解可以认为是相同的,仅在常数 C 上有所不同。在方程 (9) 和命题 2 中,表明将修正项引入线性激活函数可以通过减少信息熵产生有益效果。因此,我们可以得到修正正则化 ReLU 的完整形式:

对引入的可学习参数 ε 的讨论。在第 4.2 节中,我们成功证明了最差激活函数的存在,从最差激活函数开始,无论采取哪个方向,它总是朝着改进方向前进。然而,从特定激活函数(如 ReLU)开始,并不总是会在所有方向上改进,即某些优化路径可能导致结果恶化。因此,从实际角度出发,我们引入可学习参数 ε,以实现网络的自我优化。从另一个角度看,在从 ReLU 到 CRReLU 的推导过程中,我们假设数据遵循高斯分布,但在实际实验中可能不成立。可学习参数 ε 的存在在某种程度上也削弱了这一假设。

最后,我们在附录 D 中提供了 CRReLU 的更多细节,包括附录 D.1 中类似 Python 的 CRReLU 伪代码,以及附录 D.2 中对 CRReLU 特性的进一步讨论。 

5. 实验

6. 局限性和未来工作

我们的发现提出了一些未来工作中的重要问题。

首先,如何将 EAFO 框架系统地推广到不可逆激活函数?在 EAFO 方法论的初始设置中,激活函数的选择局限于具有可逆对应物的函数。尽管 ReLU 是一个没有逆函数的突出例子,我们利用 EAFO 推导出了 CRReLU;然而,这个推导也在一定程度上受益于 ReLU 的形式简单和几种启发式方法。

其次,在神经网络训练过程中如何有效地实现激活函数迭代优化?尽管已经证明了在神经网络训练过程中进行迭代激活函数优化的可行性,但目前受到计算复杂性的限制,特别是在大规模神经网络中。EAFO 方法论在优化其他网络结构(如 Kolmogorov-Arnold Networks,KANs)中的激活函数的适用性也值得进一步深入研究。

因此,开发实用和高效的算法是未来工作的一个激动人心的方向。最后,虽然我们已经从实证角度验证了 CRReLU 在图像分类任务和大型语言模型微调任务中的出色性能,但其在其他任务中的性能仍有待探索,因此需要进一步的调查。

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

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

相关文章

关于linux磁盘告警问题

案例:我们在执行df命令时,查看到磁盘利用率很高,但是到相对应的目录执行du -sh *来找大文件时进行删除时,发现各个目录相加并不大,如下图: 使用df命令查看到根(/)目录使用到33G,而du命令显示只使…

IBM db2数据库初体验(有图有真相保姆级教程)

前提摘要: 直接安装的是windows 系统版本, 没有安装可视化操作数据库的工具, 直接使用windows中类似cmd窗口输入命令进行操作 1. 安装好windows版本后, 鼠标单击windows最左下角的windows图标, 找到IBM DB2文件夹--> 选择单击展开下拉款--> 单击选中DB2命令窗口, 会出现…

在没有dubbo-admin情况下如何判断zk中注册的dubbo服务是否注册成功

通常我们都是通过dubbo-admin来查看dubbo服务是否注册成功,那么如果没有部署dubbo-admind的情况下,我们如何来判断dubbo服务是否注册成功: 一、首先我们进入到zookeeper bin目录下使用以下指令连接到zk: ./zkCli.sh -server ip:port ip&…

强大的医院绩效考核管理系统源码,支持行业内所有绩效方案,且每步核算都可自主进行方案的新建、调整。

医院绩效考核管理系统是采用B/S架构模式设计、使用JAVA语言开发、后台使用MySql数据库进行管理的一整套计算机应用软件源码。 系统和his系统进行对接,按照设定周期,从his系统获取医院科室和医生、护士、其他人员工作量,对没有录入信息化系统…

从Python代码到pip包:打包Python项目

大家好,在软件开发的世界中,共享和重用代码是至关重要的。Python社区为我们提供了丰富的资源,使得我们能够轻松地与他人分享我们的工作,并从他人的工作中受益。将代码打包成pip包(Python包管理器)是一种常见…

函数调用时长的关键点:揭秘参数位置的秘密

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、默认参数的秘密 示例代码 二、关键字参数与位置参数的舞蹈 示例代码 总结 一、默认参…

如何编辑 PDF 中的文本

使用 PDF 格式时最常见的挑战之一是弄清楚如何编辑 PDF 文档中的现有文本。该问题不仅影响新手,还影响多年来处理各种文档的专业人士。 PDF 格式专为处理数字纸张而设计。它以原始形式保留所有数据,例如表格、图章和签名。对于需要安全可靠地分发文档的…

香橙派 Kunpeng Pro 上手初体验

香橙派 Kunpeng Pro 上手初体验 目录 香橙派 Kunpeng Pro 上手初体验1.前言2.开箱3.开发板资源介绍硬件规格参数外观规格参数4.系统环境搭建系统镜像烧录ssh连接5.简单测试6.总结 1.前言 我很荣幸能收到了来自CSDN的测评邀请,让我有机会对香橙派最新推出的Kunpeng …

深度学习实战-yolox训练ExDark数据集所遇到的错误合集

跳转深度学习实战-yolox训练ExDark数据集(附全过程代码,超详细教程,无坑!) 一、 训练时出现ap为零 情况1.数据集没导进去 修改exps/example/yolox_voc/yolox_voc_s.py 当然由于image_sets只有一个元素因此修改yolox/data/datasets/voc.py 情况2.iou设置过高 修改yolo…

InteractiveGraph图谱中vue项目中如何使用

InteractiveGraph图谱中vue项目中如何使用 一、下载js和css和字体二、vue2.0项目中引用三、grap组件 一、下载js和css和字体 //在这里面找 https://github.com/grapheco/InteractiveGraph/blob/master/dist/examples/example1.html二、vue2.0项目中引用 //main.js中全局引入$ …

Pytorch深度学习实践笔记8(b站刘二大人)

🎬个人简介:一个全栈工程师的升级之路! 📋个人专栏:pytorch深度学习 🎀CSDN主页 发狂的小花 🌄人生秘诀:学习的本质就是极致重复! 《PyTorch深度学习实践》完结合集_哔哩哔哩_bilibi…

新窃密软件 NodeStealer 可以窃取所有浏览器 Cookie

Netskope 的研究人员正在跟踪一个使用恶意 Python 脚本窃取 Facebook 用户凭据与浏览器数据的攻击行动。攻击针对 Facebook 企业账户,包含虚假 Facebook 消息并带有恶意文件。攻击的受害者主要集中在南欧与北美,以制造业和技术服务行业为主。 2023 年 1 …

二维前缀和[模版]

题目链接 题目: 分析: 求二维数组的区间和问题, 可以使用二维前缀和算法注意: 下标从1开始计数第一步: 预处理出来一个前缀和矩阵dp[i][j] 表示: 从[1,1] 位置到[i,j] 位置, 这段区间里面所有元素的和 dp[i][j] 就等于ABCD, A好求, 就是dp[i-1][j-1], 但BC不好求, 所以我们AB…

D - Permutation Subsequence(AtCoder Beginner Contest 352)

题目链接: D - Permutation Subsequence (atcoder.jp) 题目大意: 分析: 相对于是记录一下每个数的位置 然后再长度为k的区间进行移动 然后看最大的pos和最小的pos的最小值是多少 有点类似于滑动窗口 用到了java里面的 TreeSet和Map TreeSet存的是数…

删除edge浏览器文本框储存记录值以及关闭自动填充

当我们点击输入框时总会出现许多以前输入过的信息。 一、删除edge浏览器文本框储存记录值 1、首先按下↓键选中你想删除的信息 二、关闭自动填充。 1、在地址栏输入edge://wallet/settings跳转到以下界面 2、往下滑找到 全部取消即可

区块链技术引领:Web3时代的新网络革命

随着区块链技术的快速发展和不断成熟,人们已经开始意识到它所带来的潜在影响,尤其是在构建一个更加去中心化、安全和透明的互联网时。这个新的互联网时代被称为Web3,它将不再受制于传统的中心化平台,而是更多地依赖于去中心化的网…

水电站泄水预警广播系统解决方案

一、背景 随着水电站不断发展,泄水预警成为确保周边地区安全的重要环节。为了有效应对泄水事件,提高预警效率,本方案提出建设水电站泄水预警广播系统。该系统通过先进的技术手段,实现快速、准确的泄水预警信息传达,保…

产品推荐-光学镜片镀膜自动上下料设备

随着现代化工业生产的浪潮,智能化和自动化已成为工业发展的必然趋势。在精密制造领域,高精度和高效率更是工艺流程中不可或缺的要素。为满足这一需求,富唯推出了引领行业潮流的智能设备——富唯智能镀膜上下料设备。 一、多功能操作&#xff…

spring suite gitlab使用手册

一、gitlab介绍 GitLab是一个功能丰富的开源代码管理平台,基于Git进行版本控制,并提供了一系列用于团队协作、项目管理、持续集成/持续部署(CI/CD)等工具。以下是关于GitLab的详细介绍: 基础信息: GitLab…

Text Control 控件 中 Service Pack 3:MailMerge 支持 SVG 图像

图像的合并方式与报告模板中的合并字段相同。占位符在设计时添加,并与文件、数据库或内存中的数据合并。可以将图像对象添加到具有指定名称的模板中。数据列必须包含字节数组形式的二进制图像数据、System.Drawing.Image 类型的对象、文件名、十六进制或 Base64 编码…