机器学习(十五):常见的激活函数及如何选择

一、常用的几种激活函数

1、线性激活函数

a_{2}^{[1]}=g(z) = g(\vec{w}_{2}^{[1]}\cdot \vec{x}+b_{2}^{[1]}) = \vec{w}_{2}^{[1]}\cdot \vec{x}+b_{2}^{[1]}

2、Sigmoid激活函数

g(z)=\frac{1}{1+e^{^{-z}}}z = \vec{w}_{2}^{[1]}\cdot \vec{x}+b_{2}^{[1]}0<g(z)<1

3、ReLU激活函数

当 z ≥ 0时,g(z) = z,当 z<0时,g(z) = 0。也可以写成g(z) = max(0,z)

二、选择激活函数

1、选择输出层的激活函数,依据目标值y的类型:

  • 当处理二进制分类问题时,激活函数优先选择Sigmoid函数,预测y=1的概率。
  • 当处理回归问题,y可以是正数,也可以是负数时,激活函数优先选择线性函数。
  • 当处理回归问题,y只能取非负数时,激活函数优先选择ReLU函数。

2、选择隐藏层的激活函数,目前最常用的是ReLU激活函数,原因:

  • ReLU函数计算速度更快,只需要计算0和z的最大值
  • ReLU函数只在图的一部分变得非常平坦,而Sigmoid函数在图的两侧会变得非常平坦,导致梯度下降会很慢

在TensorFlow中,代码实现如下:

隐藏层激活函数不要选择线性函数,原因:

示例1:输入一个值x,如果隐藏层和输出层的激活函数都选择线性函数:g(z)=z

\vec{a}^{[1]}的激活函数代入到输出层的激活函数\vec{a}^{[2]}中计算得到,\vec{a}^{[2]}本质上是输入值x的线性函数,那就不需要隐藏层了。

可以得到,线性函数的线性函数本身是线性函数。

示例2:如果隐藏层的激活函数都是线性函数,输出层的激活函数是Sigmoid函数

\vec{a}^{[1]}\vec{a}^{[2]}激活函数代入计算到\vec{a}^{[3]}\vec{a}^{[3]}仍然是输入值x的线性函数,输出层的激活函数仍然是Sigmoid函数\vec{a}^{[4]}=\frac{1}{1+e^{-(\vec{w}_{1}^{[4]}\cdot \vec{a}^{[3]}+\vec{b}_{1}^{[4]})}},相当于隐藏层没有起什么作用。

因此,隐藏层激活函数不要选择线性函数。

学习来源:吴恩达机器学习,P61-P63,8.1-8.3节

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值