激活函数

为什么我们需要激活函数

  设想一下,如果没有激活函数,神经网络就是一个线性模型,其中输入到输出都是一个线性函数,线性函数是很容易解决的,但是它们的复杂性有限,并且从数据中学习复杂函数映射的能力更小。一个没有激活函数的神经网络只是一个线性回归模型(Linear regression Model),并且即使网络层有很多层,每层有很多神经元,网络结构多复杂,它终归是一个线性模型,跟单层的神经网络比较,学习能力跟复杂度不成正比。
   行,我们引入非线性函数可以带来那些优点?首先我们得到一个可以学习和表示几乎任何东西的神经网络模型,以及可以将输入映射到输出的任意复杂函数。使其成为通用函数近似器(Universal Function Approximators)。这意味着神经网络可以计算和学习任何函数。几乎我们可以想到的任何过程都可以表示为神经网络中的函数计算。而这一切都归结于激活函数,它使网络更加强大,增加网络的能力,使网络可以学习复杂的事物,复杂的表单数据,以及表示输入输出之间非线性的复杂的任意函数映射。因此,使用非线性激活函数,我们便能够从输入输出之间生成非线性映射。激活函数的另一个重要特征是:它应该是可以区分的。我们需要这样做,以便在网络中向后推进以计算相对于权重的误差(丢失)梯度时执行反向优化策略,然后相应地使用梯度下降或任何其他优化技术优化权重以减少误差。

有那些激活函数


比较常见的Tanh、Relu函数等。激活函数的一些可取的属性包括:

  • 非线性:当激活函数是非线性的,然后一个两层神经网络可以证明是一个通用函数近似值.而identity激活函数不满足这个属性.当多层网络使用identity激活函数,整个网络就相当于一个单层模型.

  • 连续可微的:这个属性对基于梯度优化方法是必要的.二进制激活函数在0点没有可微性,它在其他值上全部可导为0,基于梯度优化方法对于它毫无进展,其实可微还要讲究导数求解简单,因为做反向传播的时候需要计算。

  • 范围:当激活函数的范围是有限的,基于梯度的训练方法往往更稳定,因为模式显著影响几个有限权重.当范围是无限的,训练通常更有效率,因为模式显著影响大部分权重.在后一种情况下,较小的学习利率通常是必要的.

  • 单调:当激活函数是单调时,与单层模型相关的错误表面是凸的.

  • 平滑性:有单调导数的平滑函数已经被证明在某些情况下推广地更好.这些属性表明这些激活函数和Occam’s razor更一致.

  • 原点附近近似identity:当激活函数有这个属性,对于小的随机值初始化权重,神经网络将有效地学习.当激活函数没有这个属性,在初始化权值必须使用特殊例子.在下面的表中,激活函数,表明有该属性.

参考博客

神经网络与深度学习之激活函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值