最全的激活函数详解

本文深入探讨了神经网络中的激活函数,解释了为什么需要非线性的激活函数,以及理想的激活函数应具备的特性。讨论了Sigmoid的饱和问题和非零均值问题,ReLU的Dead ReLU问题,以及Leaky ReLU和ELU等变种的解决方案。建议在实践中优先考虑ReLU作为激活函数。
摘要由CSDN通过智能技术生成

博客已迁至知乎,本文链接:https://zhuanlan.zhihu.com/p/70821070

前言

这篇文章首先讲了神经网络中为什么要引入激活函数,以及一个激活函数应该具有哪些性质。最后详细地对比了几种常见的激活函数的优缺点,其中重点讲了sigmoid函数的非0均值问题和ReLU函数的Dead ReLU问题。


神经元

图片来自:https://zhuanlan.zhihu.com/p/25110450

上图是一个神经元的设计,其传输模式类似于人类大脑神经元之间的信息传递。在一个神经元中,突触(synapse)接受其它神经元的轴突(axon)传来的信息,通过轴突将信息传递出去。

在这里,所有 x i x_i xi是其它神经元的轴突传来的信息,所有 w i w_i wi 是突触接收信息的程度,所有 w i x i w_ix_i wixi则是其它神经元轴突上传来的信息。这些信息经由神经元整合后, z = ∑ w i x i + b z=\sum w_ix_i+b z=wixi+b,再由激活函数 f ( z ) f(z) f(z)激活。

在这里,整合的过程是线性加权的过程,各输入特征 x i x_i xi之间没有相互作用。而激活函数都是非线性的,各输入特征 x i x_i xi在此处相互作用


在神经网络中,为什么要引入激活函数呢?

简而言之,只有线性的模型表达能力不够,不能拟合非线性函数,激活函数(Activation Function)是非线性的,只要给予网络足够的隐藏单元,线性+激活函数可以无限逼近任意函数(万能近似定理)。

万能近似定理:Hornik et al. 1989; Cybenko, 1989

加与不加的区别:
线性函数 f ( x ) = W x + b f(x)= Wx+b f(x)=Wx+b 之后添加激活函数 g ( a ) g(a) g(a),变成
a ( x ) = g ( f ( x ) ) = g ( W x + b ) a(x)=g(f(x))=g(Wx+b) a(x)=g(f(x))=g(Wx+b)

神经网络一般都是多层的,所以拿出前三层(包括输入层)来看:有
a 2 ( x ) = g 2 ( f 2 ( g 1 ( f 1 ( x ) ) ) a_2(x) = g_2(f_2(g_1(f_1(x))) a2(x)=g2(f2(g1(f1(x)))

而如果不加激活函数,这三层是这样的:
y ( x ) = f 2 ( f 1 ( x ) ) y(x)=f_2(f_1(x)) y(x)=f2(f1(x))

f ( x ) f(x) f(x)带入上一个表达式:
y ( x ) = f 2 ( f 1 ( x ) ) = W 2 ( W 1 x + b 1 ) + b 2 = W 2 W 1 x + ( W 2 b 1 + b 2 ) y(x)=f_2(f_1(x))=W_2(W_1x+b_1)+b_2=W_2W_1x+(W_2b_1+b_2) y(x)=f2(f1(x)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值