罗湖网站建设联系电话,广州网站建设类岗位,wordpress 站点换域名,舆情监测系统永久免费为什么需要激活函数#xff1f;激活函数的作用#xff1f;
激活函数可以引入非线性因素#xff0c;可以学习到复杂的任务或函数。如果不使用激活函数#xff0c;则输出信号仅是一个简单的线性函数。线性函数一个一级多项式#xff0c;线性方程的复杂度有限#xff0c;从…为什么需要激活函数激活函数的作用
激活函数可以引入非线性因素可以学习到复杂的任务或函数。如果不使用激活函数则输出信号仅是一个简单的线性函数。线性函数一个一级多项式线性方程的复杂度有限从数据中学习复杂函数映射的能力很小。激活函数可以把当前特征空间通过一定的线性映射转换到另一个空间让数据能够更 好的被分类
为什么激活函数需要非线性函数
假若网络中全部是线性部件那么线性的组合还是线性与单独一个线性分类器无异。这样就做不到用非线性来逼近任意函数使用非线性激活函数 f ( x ) f(x) f(x)以便使网络更加强大增加它的能力使它可以学习复杂 的事物复杂的表单数据以及表示输入输出之间非线性的复杂的任意函数映射。使用非线性 激活函数能够从输入输出之间生成非线性映射
激活函数的选择
如果输出是0、1 值二分类问题则输出层选择sigmoid 函数然后其它的所有单元都选择Relu 函数。如果在隐藏层上不确定使用哪个激活函数那么通常会使用Relu 激活函数。有时也会使用tanh 激活函数但Relu 的一个优点是当是负值的时候导数等于0。sigmoid 激活函数除了输出层是一个二分类问题基本不会用它。tanh 激活函数tanh 是非常优秀的几乎适合所有场合。ReLu 激活函数最常用的默认函数如果不确定用哪个激活函数就使用ReLu 或者Leaky ReLu再去尝试其他的激活函数。
ReLu 激活函数的优点
计算更快学习更快 ReLu 激活函数的导数都会远大于0在程序实现就是一个if-else 语句而sigmoid 函数需要进行浮点四则运算在实践中使用ReLu 激活函数神经网络通常会比使用sigmoid 或者tanh 激活函数学习的更快。防止梯度弥散 sigmoid 和tanh 函数的导数在正负饱和区的梯度都会接近于0这会造成梯度弥散而Relu 和Leaky ReLu 函数大于0 部分都为常数不会产生梯度弥散现象。稀疏激活性 从信号方面来看即神经元同时只对输入信号的少部分选择性响应大量信号被刻意的屏蔽了这样可以提高学习的精度更好更快地提取稀疏特征。当 x 0 x0 x0 时梯度为0ReLU硬饱和而当 x 0 x0 x0 时则不存在饱和问题。ReLU 能够在 x 0 x0 x0 时保持梯度不衰减从而缓解梯度消失问题。
常见的激活函数
1、Sigmod函数 f ( x ) 1 1 e − x f(x) \frac {1}{1e^{-x}} f(x)1e−x1
2、Relu函数 f ( x ) m a x ( 0 , x ) f(x)max(0,x) f(x)max(0,x)
3、tanh函数 f ( x ) e x − e − x e x e − x f(x)\frac {e^{x}-e^{-x}}{e^{x}e^{-x}} f(x)exe−xex−e−x
4、Leak Relu函数 f ( x ) { α x , x 0 x , x 0 f(x)\left\{ \begin{aligned} \alpha x, x0\\ x,x0 \\ \end{aligned} \right. f(x){αx,x0x,x0 图为 α 0.5 \alpha0.5 α0.5
5、softmax函数
softmax多用于多分类神经网络的输出 σ ( z ) j e z j ∑ k 1 K e z k \sigma(z)_{j}\frac {e^{z_{j}}}{\sum _{k1}^{K} e^{z_{k}}} σ(z)j∑k1Kezkezj