合肥建设银行网站,crm做的比较好的公司,咸宁网站设计,做网站分流Hi#xff0c;大家好#xff0c;我是半亩花海。本文主要介绍神经网络中必要的激活函数的定义、分类、作用以及常见的激活函数的功能。 目录
一、激活函数定义
二、激活函数分类
三、常见的几种激活函数
1. Sigmoid 函数
#xff08;1#xff09;公式
#xff08;2大家好我是半亩花海。本文主要介绍神经网络中必要的激活函数的定义、分类、作用以及常见的激活函数的功能。 目录
一、激活函数定义
二、激活函数分类
三、常见的几种激活函数
1. Sigmoid 函数
1公式
2图像
3优点与不足
2. Tanh 函数
1公式
2图像
3优点与不足
3. ReLU 函数
1公式
2图像
3优点与不足
4. Softmax 函数
1公式
2图像
3特点与不足 一、激活函数定义
激活函数Activation Function就是在人工神经网络的神经元上运行的函数负责将神经元的输入映射到输出端旨在帮助网络学习数据中的复杂模式。
激活函数是神经网络中的一种非线性变换它定义在每个神经元上将神经元输入信号转换为输出信号。在深度学习中激活函数非常重要因为它们使神经网络能够捕捉到非线性关系从而能够更好地逼近复杂的函数或映射。
下图展示了一个神经元是如何输入激活函数以及如何得到该神经元最终的输出 二、激活函数分类
激活函数可以分成两类——饱和激活函数和非饱和激活函数。 饱和激活函数 Sigmoid、 Tanh...非饱和激活函数: ReLU 、Leaky Relu 、ELU、PReLU、RReLU...
了解一下饱和
假设 h(x) 是一个激活函数。 当我们的 n 趋近于正无穷激活函数的导数趋近于 0那么我们称之为右饱和。 当我们的 n 趋近于负无穷激活函数的导数趋近于 0那么我们称之为左饱和。 当一个函数既满足左饱和又满足右饱和的时候我们就称之为饱和典型的函数有 Sigmoid、Tanh 函数。 反之不满足以上条件的函数则称为非饱和激活函数。 Sigmoid 函数需要一个实值输入压缩至 [0,1] 的范围。tanh 函数需要讲一个实值输入压缩至 [-1, 1] 的范围。 相对于饱和激活函数使用非饱和激活函数的优势在于两点
非饱和激活函数能解决深度神经网络层数非常多带来的梯度消失问题。使用非饱和激活函数能加快收敛速度。 三、常见的几种激活函数
在深度学习中最常用的激活函数包括 Sigmoid函数、ReLU函数Rectified Linear Unit、Tanh 函数、Softmax 函数等。这些激活函数不同的特点和优缺点应根据具体的问题选择合适的激活函数。
例如Sigmoid 函数在输出处的值域为 [0,1]可以将输出解释为概率因此常用于二分类问题ReLU 函数在输入为负数时输出为 0可以有效地解决梯度消失问题因此广泛应用于卷积神经网络中。
1. Sigmoid 函数
1公式
Sigmoid 激活函数的数学表达式为 导数表达式为 2图像 3优点与不足
Sigmoid 优点
值域为 [0, 1]非常适合作为模型的输出函数用于输出一个 (0,1) 范围内的概率值可用于将预测概率作为输出的模型比如用于表示二分类的类别或者用于表示置信度。Sigmoid 函数的输出范围是 0 到 1。由于输出值限定在 0 到 1因此它对每个神经元的输出进行了归一化。该函数是连续可导的即可微可以提供非常平滑的梯度值防止模型训练过程中出现突变的梯度即避免“跳跃”的输出值。
Sigmoid 不足
从其导数的函数图像上可以看到其导数的最大值只有 0.25而且当 x 在 [-5, 5] 的范围外时其导数值就已经几乎接近于 0 了。这种情况会导致训练过程中神经元处于一种饱和状态反向传播时其权重几乎得不到更新从而使得模型变得难以训练这种现象被称为梯度消失问题。其输出不是以 0 为中心而是都大于 0 的这会降低权重更新的效率这样下一层的神经元会得到上一层输出的全正信号作为输入所以 Sigmoid 激活函数不适合放在神经网络的前面层而一般是放在最后的输出层中使用。需要进行指数运算计算机运行得较慢计算量大及计算复杂度高训练耗时指数的越大其倒数就越小容易产生梯度消失。
2. Tanh 函数
1公式
Tanh 激活函数的数学表达式为 导数表达式为 2图像 3优点与不足
Tanh 优点
在分类任务中双曲正切函数Tanh逐渐取代 Sigmoid 函数作为标准的激活函数其具有很多神经网络所钟爱的特征。它是完全可微分的反对称对称中心在原点。输出是 S 型曲线具备打破网络层与网络层之间的线性关系可以把网络层输出非线形地映射到 (−1,1) 区间里。负输入将被强映射为负而零输入被映射为接近零Tanh 的输出间隔为 1 且值域是以 0 为中心的 [-1,1]可以解决 Sigmoid 激活函数输出不以 0 为中心的问题。在一般的二元分类问题中Tanh 函数一般用于隐藏层而 Sigmoid 函数用于输出层但这并不是固定的需要根据特定问题进行调整。
Tanh 不足
当输入较大或较小时输出几乎是平滑的并且梯度较小这不利于权重更新。Tanh 函数也需要进行指数运算所以其也会存在计算复杂度高且计算量大的问题。当神经网络的层数增多的时候由于在进行反向传播的时候链式求导多项相乘函数进入饱和区导数接近于零的地方就会逐层传递这种现象被称为梯度消失。
3. ReLU 函数
1公式
ReLU 激活函数的数学表达式为 导数表达式为 2图像 3优点与不足
① ReLU 优点
ReLU 函数在正输入时是线性的收敛速度快计算速度快同时符合恒等性的特点。当输入为正时由于导数是1能够完整传递梯度不存在梯度消失的问题梯度饱和问题。计算速度快。ReLU 函数中只存在线性关系且无论是函数还是其导数都不包含复杂的数学运算因此它的计算速度比 Sigmoid 和 Tanh 更快。当输入大于0时梯度为1能够有效避免链式求导法则梯度相乘引起的梯度消失和梯度爆炸计算成本低。它保留了 step 函数的生物学启发只有输入超出阈值时神经元才激活不过当输入为正的时候导数不为零从而允许基于梯度的学习尽管在 x0 的时候导数是未定义的。当输入为负值的时候ReLU 的学习速度可能会变得很慢甚至使神经元直接无效。因为此时输入小于零而梯度为零从而其权重无法得到更新在剩下的训练过程中会一直保持静默。
② ReLU 不足
ReLU 的输入值为负的时候输出始终为 0其一阶导数也始终为 0这样会导致神经元不能更新参数也就是神经元不学习了这种现象叫做“Dead Neuron”。为了解决 ReLU 函数这个缺点在 ReLU 函数的负半区间引入一个泄露Leaky值所以称为 Leaky ReLU 函数。与 Sigmoid 一样其输出不是以 0 为中心的ReLU 的输出为 0 或正数。ReLU 在小于 0 的时候梯度为零导致了某些神经元永远被抑制最终造成特征的学习不充分这是典型的 Dead ReLU 问题所以需要改进随机初始化避免将过多的负数特征送入ReLU。
4. Softmax 函数
1公式
Softmax 激活函数的数学表达式为 这里使用梯度无法求导所以导函数图像是一个 y0 的直线。
2图像 3特点与不足
① Softmax 特点
在零点不可微负输入的梯度为零。这意味着对于该区域的激活权重不会在反向传播期间更新因此会产生永不激活的死亡神经元。将预测结果转化为非负数、预测结果概率之和等于1。经过使用指数形式的 Softmax 函数能够将差距大的数值距离拉的更大。在深度学习中通常使用反向传播求解梯度进而使用梯度下降进行参数更新的过程而指数函数在求导的时候比较方便.
② Softmax 不足
使用指数函数当输出值非常大的话计算得到的数值也会变的非常大数值可能会溢出。