形象的解释神经网络激活函数的作用是什么?

 我来答
舒适还明净的海鸥i
2022-07-05 · TA获得超过1.7万个赞
知道小有建树答主
回答量:380
采纳率:0%
帮助的人:67.4万
展开全部

这篇文章首先回答了一个人们都忽略的问题:在神经网络中,一个小小的激活函数为何如此重要?它的作用到底是什么?然后我就目前主流的激活函数做了一个对比讨论,并提出一些建议。

这里首先引出结论: 激活函数是来向神经网络中引入非线性因素的,通过激活函数,神经网络就可以拟合各种曲线。 这里举一个例子来说明:假如我的任务是:将下面的这幅图中的三角形和圆形分开,也就是一个典型的二分类问题。

就是上图右边的直线,无论如何更改参数,它都不能很好的完成这个二分类问题,因为问题本身就是 线性不可分 的。

那么如何才能完美解决这个问题呢?我们试一试多感知器的表现

如果仔细观察,你就会发现,多感知器形成的方程其实也是一条直线(不信你把上面的那个式子因式分解一下),上面已经说了,该问题是线性不可分的,所以多感知器也不能解决这个问题。接下来,就让我们看看激活函数能不能解决。在每一层叠加完后,我们为输出与输入之间加上一个激活函数,此时的方程就变成了这样:

这样也许就能将这个线性不可分的问题解决了。最后也许就是这个样子:

从上面的分析来看,我们可以看出激活函数是神经网络在拟合函数方面超过传统机器学习方法的一个关键因素。对比传统机器学习方法中, 即使是最复杂的SVM, 在拟合方面非线性曲线差神经网络n条街。

常见的激活函数

除了以上介绍的几个激活函数外, 还有一些比较小众的激活函数,如 Leaky ReLU、PReLU 或者 Maxout。

如何选择激活函数是一门大学问, 我的研究还不够深,做的实验还不够多, 因此很难有所定论, 这里先引用几篇博客里面和吴恩达视频中的结论。
1.除非在二分类问题中,否则请小心使用sigmoid函数。
2.可以试试 tanh,不过大多数情况下它的效果会比不上 ReLU 和 Maxout。
3.如果你不知道应该使用哪个激活函数, 那么请优先选择Relu。
4.如果你使用了Relu, 需要注意一下Dead Relu问题, 此时你需要仔细选择 Learning rate, 避免出现大的梯度从而导致过多的神经元 “Dead” 。
5.如果发生了Dead Relu问题, 可以尝试一下leaky ReLU,ELU等Relu变体, 说不定会有惊喜。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式