深度学习中的函数
激活函数
定义:激活函数是神经网络中的一种非线性函数,用于在神经网络的各个层之间引入非线性变换。
目的:激活函数是用来加入非线性因素的, 因为线性模型的表达能力不够。引入非线性激活函数,可使深层神经网络的表达能力更为强大.
将神经元的输入信号转换为输出信号,从而引入非线性因素,使得神经网络能够学习和表示更加复杂的函数关系。
激活函数通常应用在神经网络的隐藏层和输出层,以及某些特殊的网络结构中。
常见的激活函数包括 Sigmoid 函数、Tanh 函数、ReLU 函数等。
1 | 线性激活函数是指激活函数本身是线性的情况。 |
1. 激活函数满足的条件
- 非线性
- 可微性:优化器大多用梯度下降更新参数
- 单调性:当激活函数是单调的,能保证 单层网络的损失函数是凸函数
- 近似恒等性:当参数初始化为随机小值时,神经网络更稳定.
激活函数输出值的范围:
- 输出为有限值时,基于梯度的优化方法更稳定
- 输出为无限值时,建议调小学习率
藏剑的激活函数有:sigmoid,tanh,ReLU,Leaky ReLU,PReLU,RReLU
激活函数使用建议
- 初学者 首选 ReLU激活函数
- 学习率 设置较小值
- 输入特征标准化,即让输入特征满足以0为均值,1位标准差的正态分布.
- 初始化问题:初始化参数中心化, 即让随机生成的参数满足0为均值,2/当前层输入特征个数开根号下为标准差的正态分布.
函数详解
1. softmax
Softmax函数是一种常用的激活函数,通常用于多分类问题的神经网络输出层,将神经网络的原始输出转换为表示概率分布的向量。
对神经网络 全连接层输出进行变换,使其服从概率分布,即每个值都位于[0,1]区间且和为1.
与其他激活函数(如ReLU、Sigmoid等)相比,Softmax函数的主要不同之处在于它的输出是一个概率分布,而不是单个神经元的激活值。
详解见下一篇.
2. ReLU
ReLU(Rectified Linear Unit)函数是一种常用的非线性激活函数
2.2 函数公式
$ f(x) = \max(0, x) $
2.3 数学特性
- 非线性:因为它在 $x$ ≤ 0 时输出为零,而在 $x$ > 0 时输出与输入 $x$ 相等。
- 简单:计算非常简单(只需要比较输入 $x$ 和零的大小,并输出较大的那个值).这种简单性质使得ReLU函数在计算上非常高效,可以加速神经网络的训练和推断过程。
- 稀疏激活性:…
- 导数的简单性:ReLU函数在 $x$ = 0 处不可导,但在其他地方是可导的,导数为单位阶跃函数。这种简单的导数性质使得反向传播算法可以高效地计算梯度,从而实现神经网络的训练。
- 抑制梯度消失:ReLU函数的性质使得它能够在一定程度上抑制梯度消失问题,有助于训练深度神经网络。ReLU函数使得正的梯度可以直接传播到输入,从而在一定程度上缓解了深层网络中梯度消失的问题。
ReLU函数具有非线性、简单、稀疏激活、简单导数和抑制梯度消失等数学特性,使得它成为深度学习中一种常用的激活函数。