神经网络中非线性激活函数相关解析

本文探讨了非线性激活函数对于神经网络的重要性,并详细介绍了常见的两类非线性激活函数:有界激活函数(如sigmoid和tanh)及无上界激活函数(如ReLU)。重点分析了ReLU函数的优势,包括计算简便、避免梯度消失及有助于减少过拟合等问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

引入非线性激活函数的作用

引入非线性激活函数的主要目的是增加神经网络的非线性性。因为如果没有非线性激活函数的话,每一层输出都是上层输入的线性函数,因此,无论神经网络有多少层,得到的输出都是线性函数,这就是原始的感知机模型,这种线性性不利于发挥神经网络的优势。

非线性激活函数的类别

非线性函数在历史的长河中有多种,主要讲以下两类:

有界激活函数

有界激活函数用得相对较多的是sigmoid函数和tanh(双曲正切函数),他们都带有同步正则化的效果,将激活函数的输出限定在[-1,1]之间,同时可以满足非线性性特征。

无上界激活函数

用得比较多的无上界激活函数是ReLU, 是随着AlexNet火起来的,这一函数当输入为非负时,输出不变,当输入为负数时,输出为0。

当前使用较多的是ReLU函数及其变体(如 PReLU, random ReLU)。

广泛使用ReLU函数的原因

计算量较小

由于上述提到的有界激活函数一方面反向传播的时候计算量都较大,而ReLu函数在大于零以及小于零的部分具有很好的线性性质,便于求导;另外一方面ReLU函数结构简单,也有利于做正向的inference。因而无论是训练过程还是测试过程计算量得到了大大降低。

不易出现梯度丢失问题

当网络层数较深时,上述两种有界激活函数在接近饱和区时,变化减缓,导数趋近于0,这种情况导致了梯度(信息)的丢失,不利于反向传播。而由于ReLu函数的正区间不饱和,因此减缓了梯度丢失问题的发生(我们更加关心正向样本)。

缓解过拟合现象的发生

由于ReLU函数使一部分神经元的输出为零,这样就导致了网络的稀疏化,减轻了参数之间的依赖关系,缓解了过拟合问题的产生。

前沿发展

当前基于ReLU函数有着许多使用性的改进,在训练速度以及准确率上得到了提升。入上述的PReLU, random ReLU等。后续会继续对ReLU函数的变种及其效果进行分析。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值