神经网络不再需要激活函数 Layer Normalization具有非线性表达

Scan me!

用微信扫码二维码

分享至好友和朋友圈

本文作者均来自北京航空航天大学人工智能学院和复杂关键软件环境全国重点实验室黄雷副教授团队。一作倪云昊为研一学生,二作郭宇芯为大三学生,三作贾俊龙为研二学生,通讯作者为黄雷副教授(主页:https://huangleibuaa.github.io/)

神经网络通常由三部分组成:线性层、非线性层(激活函数)和标准化层。线性层是网络参数的主要存在位置,非线性层提升神经网络的表达能力,而标准化层(Normalization)主要用于稳定和加速神经网络训练,很少有工作研究它们的表达能力,例如,以Batch Normalization为例,它在预测阶段可以认为是线性变换,从表达上并未引入非线性。因此研究人员普遍认为Normalization并不能够提升模型的表达能力。

然而,最近由北京航空航天大学人工智能学院黄雷老师团队发表在ICML2024上的论文《On the Nonlinearity of Layer Normalization》指出,层标准化(Layer Normlization,LN)以及其计算退化版本RMSNorm具有非线性表达能力,并详细讨论了LN的万能近似分类能力。

该论文对LN的非线性进行了数学证明。并且提出了仅含线性层和LN的简单神经网络LN-Net,在足够深的情况下,理论上,可以任意分类给定的样本和样本类别。这一发现打破了人们将各种Normalization视为不具有拟合能力的线性变换的惯性认知,而非线性层和标准化层也不再是互不相交的神经网络模块。

目前,随着transformer的广泛使用,LN作为其中的固定组成部分,已经成为了一种普遍使用的技术,该研究在未来可能为神经网络架构提供新的理论依据,在这个方向上,具有开创性意义。

LN非线性的数学发现

对于非线性研究,文章并没有直接讨论LN本身的分析性质,而是更具有实用意义地探究了LN与数据之间的交互。

作者首先提出了统计量SSR(Sum of Squares Ratio),描述两个类别下样本的线性可分性。当对样本进行线性变换时,SSR也会发生变化。因此,定义样本在所有线性变换下对应的最小的SSR为LSSR。文章指出,当LSSR越小时,样本之间的线性可分性越强。

然而,当对样本施加的线性变化替换为“线性变换-LN-线性变换”的结构时,发现得到的新的SSR有可能低于LSSR,这验证了LN的非线性表达——如果LN是线性的,那么“线性变换-LN-线性变换”也是线性的,得到的新SSR不可能会低于LSSR。

LN在分类问题中的任意可分性

为了进一步研究,作者将LN拆分为两个步骤:中心化(centering)和尺度缩放(scaling)。中心化从数学上是一个线性变换,因此LN的非线性主要存在于尺度缩放操作当中(文章中也称之为球面投影,是RMSNorm执行的操作)。作者以最为简单的线性不可分的异或数据为例,通过线性变换和球面投影将这四个点进行了正确分类。

更一般地,作者提出了使用LN和线性层对任意数目样本进行正确分类的算法,探究了LN-Net的万能近似能力。

通过构造算法步骤,将神经网络的逐层变换转换为同类样本合并问题,将万能近似分类问题转换为样例归并问题,并指出——对于任意标签的m个样本,都可以构造一个O(m)层的LN-Net,对这m个样本进行正确分类。这一构造方法为计算神经网络的VC维也提供了新的思路。作者指出,在此基础上,可以推断出有L个层标准化层的LN-Net,VC维至少有L+2。

LN非线性加强与实际应用

作者在证明了LN非线性的基础上,为进一步加强LN的非线性以便于实际应用,提出了分组层标准化技术(LN-G)。作者在数学上从海森矩阵的角度预测分组能强化LN的非线性,并从实验上初步探测了LN-G的表达能力。

作者指出,在CIFAR-10随机标签数据集上,对于通常的线性层模型,其准确率不超过20%;而使用线性层和LN-G构成的神经网络(不引入传统的激活函数作为非线性单元)能够取得55.85%的准确率。

作者进一步探究了LN-G在无激活函数的卷积神经网络的分类效果,并实验上证明了这种没有激活函数的神经网络的确有着强大的拟合能力。此外,作者类比MLP上GN作用于整个样本上(将单个样本拉伸成一维向量,再进行GN),提出了LN-G-Position。在没有非线性层的ResNet网络上使用LN-G-Position方法在CIFAR-10数据集上能够取得86.66%的准确率,体现了LN-G-Position强大的表达能力。

作者接下来在Transformer上进行了实验探究,将原本的LN替换为LN-G,根据实验结果发现了分组层标准化能有效性提升Transformer网络的性能,证明了真实网络中,该理论的可行性。

结论与展望

作者在《On the Nonlinearity of Layer Normalization》论文中,理论上首次证明了仅含有线性层和LN的模型的万能分类能力以及给定特定深度的模型的VC维下界,这里面最重要的意义是将传统深度神经网络的表达能力的分析朝广泛使用的现代真实网络迈出了一大步,这一点可能为未来的神经网络结构设计提供新的思路。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

网易跟贴

注册 手机发跟贴 登录并发贴

网友评论仅供其表达个人看法,并不表明网易立场。

人工智能的用处生产制造灵敏杀人,样样优武器:导弹,导弹防御系统,大无人机扔导弹,小无人机扔手榴弹(3000元替你上前线,也就一个月工资),战斗机,机器人,等武器终究自动化,像反导手动根本忙不过来。流水线:更智能。更高效。人工智能应用之灵魂永生,可以进行长达1亿年时间跨度的星系群之间的飞行超级大脑的建立,解决各种生活问题全智能化时代的到来,万物更快,更智能,更有竞争力,更有优势害怕AI,就像怕士兵不听话一样

对灵魂的一点见解意识的本质就是时时好坏感知,然后趋利避害人判断好坏的依据就是感受。如:好的感受,就像打了鸡血,人很爽。坏的感受,就像累,苦,饿,的感受。感受好,那趋利避害。感受就是系统释放的好坏信号加告知好坏的因果。有时不理智分析,系统告知好坏因果,你会认为自己判断的没毛病。如很难,绝望。然后就放弃,堕落,消极,变流浪汉。意识动机只有一条预设逻辑:如果是真理,如果是真的好,那判断是好,那做。如果让对方认为是对,就看你的真理能否说服他。说服了就跟你一样。新认知之信息对错辨别动机判断,诚恳的,那对。眼见为实的,那对。符合经验,符合逻辑的那对。大家多怎么说,那对。说的有理有据的有详细,那对。如果新的真的那记住,记住因果属性就完成了认知预设好坏逻辑,带来了什么可以让社会向好的发展,向文明发展,向美发展,向智慧发展,是对好坏评判的标准(好的维度分很多种,如时间空间数量大小美丑智笨爱善恶情感利己利国和对比)美就是一种智慧的体现(如花瓶,跑车)本能就是先天会的。人刚出生,没有对好的概念。但脑子里有预设好坏逻辑(自己看不到)。但遇到事件后,本能会产生好坏感受。回顾感知自己因果反应,就会知道背后逻辑。就像甜苦,只是味蕾的一段信号,如果是苦的信号,那判断不好。识别到反应,中间的判断,全由预设逻辑做出。好坏对错美丑智笨全是预设逻辑,符合好的标准,那判断是好的对大脑的一点理解左脑因果逻辑,右脑3D感知因万事万物多有他的因果逻辑。因果可分为:以自己想法为目的的因果判断,本能上的因果反应,事件因果的判断,属性的因果判断,时间上的因果关系。思考:因果关系经历多,就能进行因果思考。物体远动见多了,就能回忆进行想象判断过程:有新的认知,那建立新的因果逻辑,遇事主动搜索关联因果,进行因果匹配因为一个因果逻辑,一个3D感知,就能对这宇宙产生认知一个逻辑想象,一个三维想象就能产生创造目的,好坏,预判,联想,系统为你的人生路,主动保驾护航,主动想你所想,主动为你着想,并告知缘由给意识设置以上逻辑,机器人不光有了人的心,也有了人的智设置什么样的逻辑,就有什么样的AI影响人工智能,让一切设备拥有了智能。应用无处不在。人类将拥有一个强大的助手。彻底解放双手AI对人的本能和情感投其所好,市场将一片大好服务人类是暂时的,人类终将永生

克制自私,团体才会越聚越大不克制兽性,不克制自我,放纵自我得寸进尺趋利避害,就是亲兄弟也会争斗不止,何况一个银河系跨度多在十万光年,一次旅行多要几万年,如果不克制自我克制自私,几万年后,就算500年前是一家,见面时依然会摩擦不断,争斗不止。结局就是永远一盘散沙。散沙只会任人欺负,团结才会更大更强,更好生存。

克制自私,团体才会越聚越大不克制兽性,不克制自我,放纵自我得寸进尺趋利避害,就是亲兄弟也会争斗不止,何况一个银河系跨度多在十万光年,一次旅行多要几万年,如果不克制自我克制自私,几万年后,就算500年前是一家,见面时依然会摩擦不断,争斗不止。结局就是永远一盘散沙。散沙只会任人欺负,团结才会更大更强,更好生存。

人工智能的用处生产制造灵敏杀人,样样优武器:导弹,导弹防御系统,大无人机扔导弹,小无人机扔手榴弹(3000元替你上前线,也就一个月工资),战斗机,机器人,等武器终究自动化,像反导手动根本忙不过来。流水线:更智能。更高效。人工智能应用之灵魂永生,可以进行长达1亿年时间跨度的星系群之间的飞行超级大脑的建立,解决各种生活问题全智能化时代的到来,万物更快,更智能,更有竞争力,更有优势害怕AI,就像怕士兵不听话一样

目前没有跟贴,欢迎你发表观点

全球首个神经连接机械腿,截肢者恢复自然行走,还带空间感

返回网易首页 下载网易新闻客户端

ReLU激活函数

深入了解ReLU激活函数之前,让我们先深入探讨激活函数在神经网络中的核心作用。

激活函数的基石

想象一下,神经网络的神经元就像一个个小小的计算单元,它们接收上一层的信号,并通过激活函数这个“转换器”,将其转化为更有意义的输出。 这个转换过程就像信号的滤波和增强,激活函数就是这个过程的关键。

非线性之需:为何引入ReLU?

如果神经网络中没有激活函数,每一层的输出都将简单地是输入的线性组合,这就像原始的感知机,无法捕捉到复杂的模式。 正是为了突破这种线性限制,引入非线性的ReLU激活函数,赋予神经网络无限可能,使其能够逼近任何函数,从而构建出深度学习的强大架构。

ReLU的独特魅力 ReLU的挑战与改进

尽管ReLU在许多场景下表现优异,但也存在神经元“死亡”(神经元输出始终为0)的问题。 这要求谨慎调整学习率以确保网络稳定。 但现代实践通常会结合batch normalization来保持输入分布的一致性,甚至有些研究提出了更复杂的改进,如PReLU和随机ReLU,以适应不同数据集的特性。

ReLU的优势与局限

ReLU的优势在于:无饱和区,避免梯度消失,计算快速,且更符合生物神经元的工作原理。 然而,它的脆弱性在训练时可能会导致神经元失效,尤其是在高学习率下。 这提醒我们,在实际应用中要权衡其优点与潜在问题。

ReLU与sigmoid/tanh的比较

尽管sigmoid和tanh全程可导,且在输出区间表达上更直观,但ReLU的非饱和特性使其在深度学习中的收敛速度更快,且更贴近神经生物学的特性。 ReLU的梯度特性使其在深层网络中表现出更强的学习能力,而sigmoid和tanh的梯度平缓则可能导致收敛问题。

综上所述,ReLU凭借其效率、稀疏性及适应深度学习的特性,已成为激活函数中的翘楚。然而,理解其局限性以及如何优化使用,是深入学习和应用的关键。在实际的神经网络设计中,选择合适的激活函数是构建强大模型的关键一步。

手机上运行的深度神经网络模型-MobileNet

文章引用自《 从MobileNet看轻量级神经网络的发展 》,详情请点击原文观看 前言 随着深度学习的火热,计算机视觉领域内的卷积神经网络模型也层出不穷。 从1998年的LeNet,到2012年引爆深度学习热潮的AlexNet,再到后来2014年的VGG,2015年的ResNet,深度学习网络模型在图像处理中应用的效果越来越好。 神经网络体积越来越大,结构越来越复杂,预测和训练需要的硬件资源也逐步增多,往往只能在高算力的服务器中运行深度学习神经网络模型。 移动设备因硬件资源和算力的限制,很难运行复杂的深度学习网络模型。 深度学习领域内也在努力促使神经网络向小型化发展。 在保证模型准确率的同时体积更小,速度更快。 到了2016年直至现在,业内提出了SqueezeNet、ShuffleNet、NasNet、MnasNet以及MobileNet等轻量级网络模型。 这些模型使移动终端、嵌入式设备运行神经网络模型成为可能。 而MobileNet在轻量级神经网络中较具代表性。 谷歌在2019年5月份推出了最新的MobileNetV3。 新版MobileNet使用了更多新特性,使得MobileNet非常具有研究和分析意义,本文将对MobileNet进行详细解析。 MobileNet的优势 MobileNet网络拥有更小的体积,更少的计算量,更高的精度。 在轻量级神经网络中拥有极大的优势。 1更小的体积 MobileNet相比经典的大型网络,参数量明显更少,参数量越少模型体积越小。 2更少的计算量 MobileNet优化网络结构使模型计算量成倍下降。 3更高的准确率 MobileNet凭借网络结构优化,在更少的参数及更少的计算量情况下,网络精度反而超过了部分大型神经网络。 在最新的MobileNetV3-Large中,实现ImageNet数据集Top1准确率达到75.2%。 4更快的速度 使用Google Pixel-1手机测试,MobileNet各版本都能保持运行时间在120ms以下,最新版MobileNetV3-Large运行时间达到66ms,参数量和计算量更低的MobileNetV3-Small更是能达到22ms;GoogleNet运行速度约为250ms,而VGG-16由于一次性需要加载至内存的空间已超过500MB,手机系统会报内存溢出错误导致无法运行。 5多种应用场景 MobileNet可以在移动终端实现众多的应用,包括目标检测,目标分类,人脸属性识别和人脸识别等。 MobileNet各版本介绍 1MobileNetV1网络结构 整个网络不算平均池化层与softmax层,共28层; 在整个网络结构中步长为2的卷积较有特点,卷积的同时充当下采样的功能; 第一层之后的26层都为深度可分离卷积的重复卷积操作; 每一个卷积层(含常规卷积、深度卷积、逐点卷积)之后都紧跟着批规范化和ReLU激活函数; 最后一层全连接层不使用激活函数。 2MobileNetV2网络结构 MobileNetV2中主要引入线性瓶颈结构和反向残差结构。 MobileNetV2网络模型中有共有17个Bottleneck层(每个Bottleneck包含两个逐点卷积层和一个深度卷积层),一个标准卷积层(conv),两个逐点卷积层(pw conv),共计有54层可训练参数层。 MobileNetV2中使用线性瓶颈(Linear Bottleneck)和反向残差(Inverted Residuals)结构优化了网络,使得网络层次更深了,但是模型体积更小,速度更快了。 3MobileNetV3网络结构 MobileNetV3分为Large和Small两个版本,Large版本适用于计算和存储性能较高的平台,Small版本适用于硬件性能较低的平台。 Large版本共有15个bottleneck层,一个标准卷积层,三个逐点卷积层。 Small版本共有12个bottleneck层,一个标准卷积层,两个逐点卷积层。 MobileNetV3中引入了5×5大小的深度卷积代替部分3×3的深度卷积。 引入Squeeze-and-excitation(SE)模块和h-swish(HS)激活函数以提高模型精度。 结尾两层逐点卷积不使用批规范化(Batch Norm),MobileNetV3结构图中使用NBN标识。 (图片来源)网络结构上相对于MobileNetV2的结尾部分做了优化,去除三个高阶层,如上图所示。 去除后减少了计算量和参数量,但是模型的精度并没有损失。 值得一提的是,不论是Large还是Small版本,都是使用神经架构搜索(NAS)技术生成的网络结构。 4 MobileNet各版本特性 MobileNet实现计算量减小、参数量减少的同时保证了较高的准确率,这和其拥有的特性息息相关:MobileNetV1提出的特性 MobileNetV2提出的特性 MobileNetV3提出的特性 MobileNet各个版本拥有的特性汇总 下文将对上表中的各个特性详细阐述。 MobileNet的特性详解 1深度可分离卷积 从MobileNetV1开始,到V2、V3的线性瓶颈结构都大量使用了深度可分离卷积。 深度可分离卷积(Depthwise Separable Convolution)是一种卷积结构。 它是由一层深度卷积(Depthwise convolution)与一层逐点卷积(Pointwise Convolution)组合而成的,每一层卷积之后都紧跟着批规范化和ReLU激活函数。 跟标准卷积的区别就是精度基本不变的情况下,参数与计算量都明显减少。 深度卷积 深度卷积(Depthwise convolution, DW)不同于常规卷积操作,深度卷积中一个卷积核只有一维,负责一个通道,一个通道只被一个卷积核卷积;常规卷积每个卷积核的维度与输入维度相同,每个通道单独做卷积运算后相加。 以一张5x5x3(长和宽为5,RGB3通道)的彩色图片举例。 每层深度卷积卷积核的数量与上一层的通道数相同(通道和卷积核一一对应)。 设padding=1,stride=1,一个三通道的图像经过运算后生成了3个特征图,如下图所示: 深度卷积完成后的输出特征图通道数与输入层的通道数相同,无法扩展通道数。 而且这种运算对输入层的每个通道独立进行卷积运算,没有有效的利用不同通道在相同空间位置上的特征信息。 因此需要逐点卷积来将生成的特征图进行组合生成新的特征图。 逐点卷积 逐点卷积(Pointwise Convolution, PW)的运算与标准卷积运算非常相似。 逐点卷积卷积核大小为1×1xM(M为输入数据的维度),每次卷积一个像素的区域。 逐点卷积运算会将上一层的特征图在深度方向上进行加权组合,生成新的特征图,新的特征图的大小与输入数据大小一致;然后组合各通道的特征图,以较少的计算量进行降维或升维操作(改变输出数据的维度)。 以一张5x5x3(长和宽为5,RGB3通道)的彩色图片举例,使用4个1x1x3的逐点卷积核进行卷积,逐点卷积运算后生成了4个特征图。 这个例子是使用逐点卷积进行升维的操作,特征图从5x5x3 升维到5x5x4。 如下图所示:深度可分离卷积结构解析 将深度卷积和逐点卷积组成深度可分离卷积后的示意图,如下图所示: 首先进行深度卷积操作,得出的特征图各通道之间是不关联的。 接着进行逐点卷积把深度卷积输出的特征图各通道关联起来。 深度可分离卷积使用了更小的空间代价(参数减少)和更少的时间代价(计算量更少)实现了标准卷积层一样的效果(提取特征)。 一般的设Df为输入特征图边长,Dk为卷积核边长,特征图和卷积核均为长宽一致,输入通道数为M,输出通道数为N,则:标准卷积计算量为:Df×Df×Dk×Dk×M×N 深度卷积的计算量为:Df×Df×Dk×Dk×M 逐点卷积的计算量为:Df×Df×M×N 上图所示实现输入特征图大小为5×5×3,输出特成图大小为5×5×4,设padding=1,stride=1,深度卷积卷积核大小为3×3,标准卷积也使用3×3尺寸卷积核。 实现相同的卷积效果,参数量(不包含偏置)与计算量对比如下表所示:深度可分离卷积的演变 事实上深度可分离卷积不是在MobileNetV1中第一次提出的,而是在2016年由谷歌的Xception网络结构中提出的。 MobileNetV1在Xception的基础上,对深度可分离卷积进行了改进,做到了计算量与参数量的下降: 假定M为输入层的通道数,N为输出层的通道数。 Xcenption的深度可分离卷积是由输入参数开始,使用1x1xMxN卷积将输入层的通道数转换为目标通道数,再通过3x3x1卷积核对每个通道进行卷积,每次卷积过后使用ReLU进行激活。 MobileNetV1的深度可分离卷积则是先使用3x3x1xM对输入层的每个通道分别卷积,之后通过1x1xMxN将输入层通道数转换为输出层通道数,每次卷积过后做一次批规范化操作,再使用ReLU进行激活。 这里我们使用MobileNetV1网络结构的第一个深度可分离卷积层来举例,输入层维度为112x112x32,输出层维度为112x112x64,Xception与MobileNet的深度可分离卷积的计算量与参数个数对比如下表: 由此可知将PW卷积与DW卷积的顺序调整后,优化了网络的空间复杂度和时间复杂度。 2宽度因子 MobileNet本身的网络结构已经比较小并且执行延迟较低,但为了适配更定制化的场景,MobileNet提供了称为宽度因子(Width Multiplier)的超参数给我们调整。 宽度因子在MobileNetV1、V2、V3都可以运用。 通过宽度因子,可以调整神经网络中间产生的特征的大小,调整的是特征数据通道数大小,从而调整了运算量的大小。 宽度因子简单来说就是新网络中每一个模块要使用的卷积核数量相较于标准的MobileNet比例。 对于深度卷积结合1x1方式的卷积核,计算量为: 算式中α即为宽度因子,α常用的配置为1,0.75,0.5,0.25;当α等于1时就是标准的MobileNet。 通过参数α可以非常有效的将计算量和参数数量约减到α的平方倍。 下图为MobileNetV1使用不同α系数进行网络参数的调整时,在ImageNet上的准确率、计算量、参数数量之间的关系(每一个项中最前面的数字表示α的取值)。 (数据来源) 可以看到当输入分辨率固定为224x224时,随着宽度因子的减少,模型的计算量和参数越来越小。 从上表可以看到, 0.25 MobileNet的正确率比标准版1.0MobileNet低20%,但计算量和参数量几乎只有标准版1.0MobileNet计算量、参数量的10%!对于计算资源和存储资源都十分紧张的移动端平台,可以通过α宽度因子调节网络的餐数量是非常实用的,在真正使用时我们可以按需调整α宽度因子达到准确率与性能的平衡。 3分辨率因子 MobileNet还提供了另一个超参数分辨率因子(Resolution Multiplier)供我们自定义网络结构,分辨率因子同样在MobileNetV1、V2、V3都可以运用。 分辨率因子一般用β来指代,β的取值范围在(0,1]之间,是作用于每一个模块输入尺寸的约减因子,简单来说就是将输入数据以及由此在每一个模块产生的特征图都变小了,结合宽度因子α,深度卷积结合1x1方式的卷积核计算量为: 下图为MobileNetV1使用不同的β系数作用于标准MobileNet时,在ImageNet上对精度和计算量的影响(α固定1.0) (数据来源) 上图中的 224、192、160、128 对应的分辨率因子分别为 1、 6/7、5/7、4/7。 β=1时,输入图片的分辨率为224x224,卷积后的图像大小变化为: 224x224 、112x112、56x56、28x28、14x14、7x7。 β= 6/7时,输入图片的分辨率为192x192,卷积后各层特征图像大小变化为:192x192、96x96、48x48、24x24、12x12、6x6。 卷积特征图像的大小变化不会引起参数量的变化,只改变模型M-Adds计算量。 上图中 224分辨率模型测试ImageNet数据集准确率为70.6%,192分辨率的模型准确率为69.1%,但是M-Adds计算量减少了151M,对移动平台计算资源紧张的情况下,同样可以通过β分辨率因子调节网络输入特征图的分辨率,做模型精度与计算量的取舍。 4规范化 深度学习中的规范化操作(Normalization),有助于加快基于梯度下降法或随机梯度下降法模型的收敛速度,提升模型的精度,规范化的参数能够提升模型泛化能力,提高模型的可压缩性。 按照规范化操作涉及对象的不同可以分为两大类,一类是对输入值进行规范化操作,比如批规范化(Batch Normalization)、层规范化(Layer Normalization)、实例规范化(Instance Normalization)、组规范化(Group Normalization)方法都属于这一类。 另外一类是对神经网络中参数进行规范化操作,比如使用L0,L1范数。 批规范化 批规范化(Batch Normalization)几乎存在于MobileNetV1、V2、V3的每个卷积层的后面,目的是加快训练收敛速度,提升准确率。 批规范化是一种对数值的特殊函数变换方法,也就是说假设原始的某个数值是 x,套上一个起到规范化作用的函数,对规范化之前的数值 x 进行转换,形成一个规范化后的数值,即: 所谓规范化,是希望转换后的数值满足一定的特性,至于对数值具体如何变换,跟规范化目标有关,不同的规范化目标导致具体方法中函数所采用的形式不同。 通过自适应的重新参数化的方法,克服神经网络层数加深导致模型难以训练的问题。 参数规范化 参数规范化(Weight Normalization, WN)是规范化的一种, 通过人为的设定稀疏算法,去除模型中多余的参数(置为0)使得模型参数稀疏化,可以通过L1范式实现。 参数规范化是防止模型过分拟合训练数据。 当训练一批样本的时候,随着训练的推移模型会越来越趋向于拟合样本数据。 因为参数太多,会导致模型复杂度上升,容易过拟合。 需要保证模型简单的基础上最小化训练误差,这样得到的参数才具有好的泛化性能(也就是测试误差也小),而模型简单就是通过规则函数来实现的。 如上图所示,左侧分类明显的是欠拟合,模型并没有能够拟合数据。 中间图示为合适的拟合,右边图示是过拟合,模型在训练样本中拟合度是很好的,但是却违背了特征分类规律,在新的测试样本中表现糟糕,影响模型的泛化能力。 显然右侧模型在训练是受到额外参数干扰。 参数规则化能够使参数稀疏,减少额外参数的干扰,提高泛化能力。 模型拥有稀疏的参数(模型中有大量参数为0),也有利于通过压缩算法压缩模型的大小。 5线性瓶颈 线性瓶颈英文为Linear Bottleneck,是从Bottleneck结构演变而来的,被用于MobileNetV2与V3。 Bottleneck结构首次被提出是在ResNet网络中。 该结构第一层使用逐点卷积,第二层使用3×3大小卷积核进行深度卷积,第三层再使用逐点卷积。 MobileNet中的瓶颈结构最后一层逐点卷积使用的激活函数是Linear,所以称其为线性瓶颈结构(Linear Bottleneck)。 线性瓶颈结构有两种,第一种是步长为1时使用残差结构,第二种是步长为2时不使用残差结构。 其中输入通道数为M,扩大倍数系数为T。 T的值为大于0 的正数,当 0<T<1时,第一层逐点卷积起到的作用是降维。 当 1<T时,第一层逐点卷积起到的作用是升维。 第二层为深度卷积,输入通道数 = 输出通道数 = M×T。 第三层为逐点卷积,作用是关联深度卷积后的特征图并输出指定通道数N。 线性瓶颈结构相对标准卷积能够减少参数数量,减少卷积计算量。 从空间和时间上优化了网络。 6反向残差 MobileNetV2中以ResNet的残差(Residuals)结构为基础进行优化,提出了反向残差(Inverted Residuals)的概念,之后也同样运用与MobileNetV3中。 ResNet中提出的残差结构解决训练中随着网络深度增加而出现的梯度消失问题,使反向传播过程中深度网络的浅层网络也能得到梯度,使浅层网络的参数也可训练,从而增加特征表达能力。 ResNet的残差结构实际是在线性瓶颈结构的基础上增加残差传播。 如下图所示: ResNet中的残差结构使用第一层逐点卷积降维,后使用深度卷积,再使用逐点卷积升维。 MobileNetV2版本中的残差结构使用第一层逐点卷积升维并使用Relu6激活函数代替Relu,之后使用深度卷积,同样使用Relu6激活函数,再使用逐点卷积降维,降维后使用Linear激活函数。 这样的卷积操作方式更有利于移动端使用(有利于减少参数与M-Adds计算量),因维度升降方式与ResNet中的残差结构刚好相反,MobileNetV2将其称之为反向残差(Inverted Residuals)。 75x5 的深度卷积 MobileNetV3中,深度卷积大量使用5x5大小的卷积核。 这是因为使用神经结构搜索(NAS)技术计算出的MobileNetV3网络结构的过程中,发现了在深度卷积中使用5x5大小的卷积核比使用3x3大小的卷积核效果更好,准确率更高。 关于NAS技术将会在下文的单独章节中做介绍。 8Squeeze-and-excitation 模块 Squeeze-and-Excitation模块(简称SE模块)的首次提出是在2017年的Squeeze-and-Excitation Networks(SENet)网络结构中,在MNasNet中进行了改进,之后在MobileNetV3中大量使用。 研究人员期望通过精确的建模卷积特征各个通道之间的作用关系来改善网络模型的表达能力。 为了达到这个期望,提出了一种能够让网络模型对特征进行校准的机制,使得有效的权重大,无效或效果小的权重小的效果,这就是SE模块。 (图片来源)如上图,MobileNetV3的SE模块被运用在线性瓶颈结构最后一层上,代替V2中最后的逐点卷积,改为先进行SE操作再逐点卷积。 这样保持了网络结构每层的输入和输出,仅在中间做处理,类似于软件开发中的钩子。 SE模块结构详解 下图表示一个SE 模块。 主要包含Squeeze和Excitation两部分。 W,H表示特征图宽,高。 C表示通道数,输入特征图大小为W×H×C。 压缩(Squeeze) 第一步是压缩(Squeeze)操作,如下图所示 这个操作就是一个全局平均池化(global average pooling)。 经过压缩操作后特征图被压缩为1×1×C向量。 激励(Excitation) 接下来就是激励(Excitation)操作,如下图所示 由两个全连接层组成,其中SERatio是一个缩放参数,这个参数的目的是为了减少通道个数从而降低计算量。 第一个全连接层有C*SERatio个神经元,输入为1×1×C,输出1×1×C×SERadio。 第二个全连接层有C个神经元,输入为1×1×C×SERadio,输出为1×1×C。 scale操作 最后是scale操作,在得到1×1×C向量之后,就可以对原来的特征图进行scale操作了。 很简单,就是通道权重相乘,原有特征向量为W×H×C,将SE模块计算出来的各通道权重值分别和原特征图对应通道的二维矩阵相乘,得出的结果输出。 这里我们可以得出SE模块的属性:参数量 = 2×C×C×SERatio 计算量 = 2×C×C×SERatio 总体来讲SE模块会增加网络的总参数量,总计算量,因为使用的是全连接层计算量相比卷积层并不大,但是参数量会有明显上升,所以MobileNetV3-Large中的总参数量比MobileNetV2多了2M。 MobileNetV3中的SE模块 SE模块的使用是很灵活的,可以在已有网络上添加而不打乱网络原有的主体结构。 ResNet中添加SE模块形成SE-ResNet网络,SE模块是在bottleneck结构之后加入的,如下图左边所示。 MobileNetV3版本中SE模块加在了bottleneck结构的内部,在深度卷积后增加SE块,scale操作后再做逐点卷积,如上图右边所示。 MobileNetV3版本的SERadio系数为0.25。 使用SE模块后的MobileNetV3的参数量相比MobileNetV2多了约2M,达到5.4M,但是MobileNetV3的精度得到了很大的提升,在图像分类和目标检测中准确率都有明显提升。 9h-swish激活函数 MobileNetV3中发现swish激活函数能够有效提高网络的精度,但是swish的计算量太大了,并不适合轻量级神经网络。 MobileNetV3找到了类似swish激活函数但是计算量却少很多的替代激活函数h-swish(hard version of swish)如下所示: sigmoid、h-sigmoid、swish、h-swish激活函数的比较: (图片来源) 这种非线性在保持精度的情况下带来了很多优势,首先ReLU6在众多软硬件框架中都可以实现,其次量化时避免了数值精度的损失,运行快。 这一非线性改变将模型的延时增加了15%。 但它带来的网络效应对于精度和延时具有正向促进,剩下的开销可以通过融合非线性与先前层来消除。

matlab循环神经网络的增强方法有哪些?

循环神经网络(Recurrent Neural Network,RNN)是一种具有记忆功能的神经网络,它在处理序列数据时具有很强的优势。 然而,传统的RNN存在梯度消失和梯度爆炸的问题,这限制了其性能的提高。 为了解决这些问题,研究人员提出了许多增强RNN的方法。 以下是一些常见的RNN增强方法:1. 长短时记忆网络(Long Short-Term Memory,LSTM):LSTM是一种特殊的RNN结构,它通过引入门控机制来解决梯度消失和梯度爆炸问题。 LSTM包含输入门、遗忘门和输出门,这些门的开闭状态由sigmoid函数决定。 通过这种方式,LSTM可以有效地学习长期依赖关系。 2. 门控循环单元(Gated Recurrent Unit,GRU):GRU是另一种改进的RNN结构,它比LSTM更简单。 GRU将LSTM中的输入门和遗忘门合并为一个更新门,同时保留输出门。 这使得GRU在计算效率上优于LSTM,但在处理长序列时可能不如LSTM。 3. 双向循环神经网络(Bidirectional RNN):双向RNN是一种同时考虑过去和未来信息的RNN结构。 它通过将正向和反向的两个RNN连接在一起来实现这一点。 这使得双向RNN能够更好地捕捉序列中的长期依赖关系。 4. 残差连接(Residual Connection):残差连接是一种在深层神经网络中常用的技术,它可以缓解梯度消失和梯度爆炸问题。 在RNN中,残差连接可以通过将前一层的输出直接连接到后一层的输入来实现。 这种方法可以使得网络更容易训练,并且可以提高模型的性能。 5. 注意力机制(Attention Mechanism):注意力机制是一种让模型在处理序列数据时关注重要部分的技术。 在RNN中,注意力机制可以通过计算序列中每个元素对当前输出的贡献来实现。 这使得RNN能够更好地捕捉序列中的长期依赖关系,并且可以提高模型的性能。 6. 批归一化(Batch Normalization):批归一化是一种在深度学习中常用的技术,它可以加速模型的训练过程,并且可以提高模型的性能。 在RNN中,批归一化可以通过对每一层的输出进行归一化来实现。 这种方法可以使得网络更容易训练,并且可以提高模型的性能。 7. 层归一化(Layer Normalization):层归一化是一种在深度学习中常用的技术,它可以加速模型的训练过程,并且可以提高模型的性能。 在RNN中,层归一化可以通过对每一层的输出进行归一化来实现。 这种方法可以使得网络更容易训练,并且可以提高模型的性能。 总之,这些增强方法可以帮助我们构建更强大、更高效的循环神经网络。 然而,需要注意的是,并非所有的方法都适用于所有类型的任务。 在实际应用中,我们需要根据具体的需求和场景来选择合适的方法。

  • 声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
  • 本文地址:https://srwj168.com.cn/chuangtou/38660.html
茅台 泸州老窖 开始像房地产 去库存
30个重大问题发布 境内发现的古人类是现代国人的祖先吗