[通俗易懂]机器学习中的激活函数

十分形象地讲:神经网络的激活函数(activation function)是一群空间魔法师,扭曲翻转特征空间,在其中寻找线性的边界。

在这里插入图片描述
如果没有激活函数,那么神经网络的权重、偏置全是线性的仿射变(affine transformation):
在这里插入图片描述
这样的神经网络,甚至连下面这样的简单分类问题都解决不了:
在这里插入图片描述
在这里插入图片描述
在这个二维特征空间上,蓝线表示负面情形(y=0),绿线表示正面情形(y=1)

没有激活函数的加持,神经网络最多能做到这个程度:

在这里插入图片描述

线性边界——看起来不怎么好,是吧?

这时候,激活函数出手了,扭曲翻转一下空间:
在这里插入图片描述

线性边界出现了!再还原回去,不就得到了原特征空间中的边界?

当然,不同的激活函数,因为所属流派不同,所以施展的魔法也各不相同。

在这里插入图片描述
上图中,出场的三位空间魔法师,分别为sigmoid、tanh、relu

sigmoid

sigmoid是一位老奶奶,是激活函数中最有资历的。
在这里插入图片描述
虽然比较老迈、古板,已经不像当年那么受欢迎了,但在分类任务的输出层中,人们还是信赖sigmoid的丰富经验。
在这里插入图片描述
我们可以看到,sigmoid将输入挤压进0到1区间(这和概率的取值范围一致),这正是分类任务中sigmoid很受欢迎的原因。

tanh

tanh也是一位资深的空间魔法师:

在这里插入图片描述

等等,这不就是sigmoid?背过身去以为我们就不认识了吗?

没错,tanh就是乔装打扮的sigmoid:

在这里插入图片描述在这里插入图片描述
如上图所示,tanh的形状和sigmoid类似,只不过tanh将“挤压”输入至区间(-1, 1)。因此,中心为零,(某种程度上)激活值已经是下一层的正态分布输入了。

至于梯度,它有一个大得多的峰值1.0(同样位于z = 0处),但它下降得更快,当|z|的值到达3时就已经接近零了。这是所谓梯度消失(vanishing gradients)问题背后的原因,会导致网络的训练进展变慢。

ReLU

ReLU是一个守门人,凡是麻瓜(0)一律拒之门外(关闭神经元)。
在这里插入图片描述
它是今时今日寻常使用的激励函数。ReLU处理了它的sigmoid、tanh中常见的梯度消失问题,同时也是计算梯度最快的激励函数。
在这里插入图片描述
在这里插入图片描述如上图所示,ReLU是一头完全不同的野兽:它并不“挤压”值至某一区间——它只是保留正值,并将所有负值转化为零。

使用ReLU的积极方面是它的梯度要么是1(正值),要么是0(负值)——再也没有梯度消失了!这一模式使网络更快收敛。另一方面,这一表现导致所谓的“死亡神经元”问题,也就是输入持续为负的神经元激活值总是为零。

本博文改编自知乎评论区

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

nine_mink

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值