深度学习中的激活函数一览
作者:互联网
激活函数概念
所谓激活函数(Activation Function),就是在人工神经网络的神经元上运行的函数,负责将神经元的输入映射到输出端。
什么是激活函数
激活函数(Activation functions)对于人工神经网络模型去学习、理解非常复杂和非线性的函数来说具有十分重要的作用。它们将非线性特性引入到我们的网络中。如图1,在神经元中,输入的 inputs 通过加权,求和后,还被作用了一个函数,这个函数就是激活函数。引入激活函数是为了增 加神经网络模型的非线性。没有激活函数的每层都相当于矩阵相乘。就算你叠加了若干层之后,无非还是个矩阵相乘罢了。
为什么使用激活函数
如果不用激活函数,每一层输出都是上层输入的线性函数,无论神经网络有多少层,输出都是输入的线性组合,这种情况就是最原始的感知机(Perceptron)。 如果使用的话,激活函数给神经元引入了非线性因素,使得神经网络可以任意逼近任何非线性函数,这样神经网络就可以应用到众多的非线性模型中。
个人认知与理解
我觉得机器学习的传统算法与深度学习算法的比较重要的区别是:
从广义上来讲,机器学习的传统算法一般只能使用一种目标模型函数,比如逻辑回归使用logistic函数、只能解决单维度问题;而深度学习可以在不同神经层使用不同或者多种激活函数、因此拥有多种或者不同函数的特性,所以解决问题具有多维度、线性、非线性等处理能力
深度学习的激活函数使得深度学习算法既能解决简单的线性问题、也能处理复杂的非线性问题
数据中的特征往往具有不同的特性、特征与不同模型之间也有较大的辨识差异,机器学习的传统算法的单一模型可能只能对部分特征产生重要作用,而深度学习的多种激活函数则比较全面、多维度对特征进行学习
常用的激活函数
sigmoid 函数
tanh 函数
relu 函数
leaky relu 函数
elu 函数
softmax 函数
饱和激活函数与非饱和激活函数
饱和函数是指当自变量 x 达到某个值(或者说趋于无穷小、无穷大)的时候,因变量 y 就不再发生变化,而是趋于某一个固定的值
sigmoid 函数就是一个饱和激活函数,当自变量 z 趋于无穷小时,因变量 y 趋于 0;当自变量 z 趋于无穷大时,因变量 y 趋于 1
tanh 函数就是一个饱和激活函数,当自变量 z 趋于无穷小时,因变量 y 趋于 -1;当自变量 z 趋于无穷大时,因变量 y 趋于 1
非饱和函数是指当自变量 x 达到某个值(或者说趋于无穷小、无穷大)的时候,因变量 y 就依然发生变化,并不是趋于某一个固定的值
relu 函数就是一个非饱和激活函数,当自变量 z 小于 0 时,因变量 y 等于 0;但当自变量 z 大于 0 时,因变量 y 是一个 z 的变化值
relu 的变种激活函数
非饱和激活函数的优势
首先,“非饱和激活函数”能解决所谓的“梯度消失”问题
其次,它能加快收敛速度
标签:因变量,函数,一览,非线性,趋于,激活,自变量 来源: https://blog.csdn.net/weixin_43798170/article/details/106698255