深度学习中的函数

Catalogue
  1. 激活函数
    1. 1. 激活函数满足的条件
      1. 激活函数使用建议
    2. 函数详解
      1. 1. softmax
      2. 2. ReLU
        1. 2.2 函数公式
        2. 2.3 数学特性

激活函数

定义:激活函数是神经网络中的一种非线性函数,用于在神经网络的各个层之间引入非线性变换。
目的:激活函数是用来加入非线性因素的, 因为线性模型的表达能力不够。引入非线性激活函数,可使深层神经网络的表达能力更为强大.

将神经元的输入信号转换为输出信号,从而引入非线性因素,使得神经网络能够学习和表示更加复杂的函数关系。

激活函数通常应用在神经网络的隐藏层和输出层,以及某些特殊的网络结构中。

常见的激活函数包括 Sigmoid 函数、Tanh 函数、ReLU 函数等。

1
2
3
4
线性激活函数是指激活函数本身是线性的情况。
例如,线性函数 $f(x) = ax + b$ 就是一种线性激活函数。
但是,线性激活函数在深度神经网络中并不常用,因为它们的组合等价于一层线性变换,
无法引入非线性因素,从而限制了神经网络的表达能力。

1. 激活函数满足的条件

  • 非线性
  • 可微性:优化器大多用梯度下降更新参数
  • 单调性:当激活函数是单调的,能保证 单层网络的损失函数是凸函数
  • 近似恒等性:当参数初始化为随机小值时,神经网络更稳定.

激活函数输出值的范围:

  • 输出为有限值时,基于梯度的优化方法更稳定
  • 输出为无限值时,建议调小学习率

藏剑的激活函数有:sigmoid,tanh,ReLU,Leaky ReLU,PReLU,RReLU

激活函数使用建议

  1. 初学者 首选 ReLU激活函数
  2. 学习率 设置较小值
  3. 输入特征标准化,即让输入特征满足以0为均值,1位标准差的正态分布.
  4. 初始化问题:初始化参数中心化, 即让随机生成的参数满足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函数具有非线性、简单、稀疏激活、简单导数和抑制梯度消失等数学特性,使得它成为深度学习中一种常用的激活函数。

资料:https://blog.csdn.net/in546/article/details/119621649