专栏名称: AI科技评论
「AI科技评论」是国内顶尖人工智能媒体和产业服务平台,专注全球 AI 业界、学术和开发三大方向的深度报道。
目录
相关文章推荐
云技术  ·  20万元,DeepSeek系统硬件及AI服务 ... ·  21 小时前  
云技术  ·  20万元,DeepSeek系统硬件及AI服务 ... ·  21 小时前  
宝玉xp  ·  回复@Edger_scorpior:Clau ... ·  23 小时前  
爱可可-爱生活  ·  【[443星]imprecv:一个简洁高效的 ... ·  昨天  
财联社AI daily  ·  Anthropic:成熟的AI该学着自己写博客了 ·  2 天前  
财联社AI daily  ·  Anthropic:成熟的AI该学着自己写博客了 ·  2 天前  
51好读  ›  专栏  ›  AI科技评论

神经网络为何非激活函数不可?

AI科技评论  · 公众号  · AI  · 2020-01-31 20:05

正文

请到「今天看啥」查看全文


线性函数有三个属性(在这个图中分别是体重,收缩压和年龄),它使我们得到一条贯穿三维空间的直线,但它永远也无法学会一种模式来将一个人准确地区分为吸烟者和不吸烟者(以手头上现有的分类问题为例)。原因很简单,定义这个分类的模式根本不是线性的。
那在人工神经网络中,如果我们使用只有一个单元而没有激活函数的神经网络会怎样?这种情况下我们所得到的输出基本上还是 W*x+b,这并不好,因为 W*x 也是 x 的一次方,因此函数仍然是线性的,基本等同于线性函数。
如果我们叠加多层呢?假如我们用一个函数 f(x)来表示 nᵗʰ层,那么可以得出:
然而,这还不够复杂,特别是在计算机视觉或自然语言处理等有着复杂模式的问题中。
为了使模型能够学习非线性模式(或者说具有更高的复杂度),特定的非线性层(激活函数)被加入其中。
三、理想的激活函数具有的特点
1. 梯度消失问题:神经网络是利用梯度下降过程来训练的。
梯度下降由基于链式规则的反向传播组成,链式规则用于获取权值变化以减少每次训练后的损失。考虑一个两层网络,第一层表示为 f₁(x),第二层表示为 f₂(x)。整个网络为 o(x)= f₂(f₁(x))。
如果我们反过来计算权重,可以得到 o`(x)= f₂(x)*f₁`(x)。这里 f₁(x)本身是由 Act(W₁*x₁+b₁)组成的复合函数,其中 Act 是第 1 层之后的激活函数。再次应用链式规则,可以得到 f₁`(x)=Act(W₁*x₁+b₁)*x₁,这意味着此结果也直接依赖于激活值。现在可以看到, 这样一个链式规则在反向传播时会经过很多个层。
如果 Act()的值介于 0 和 1 之间,那么它会乘以几个这样的值来计算初始层的梯度。这个过程会降低初始层的梯度值,并且这些层也无法正确学习。
换言之,因为网络的深度和激活过程将值转变为趋近于 0,它们的梯度逐渐消失,这就是所谓的梯度消失问题。所以我们希望理想的激活函数不要使梯度逐渐变为零。
2. 以零为中心:激活函数的输出应对称于零,这样梯度就不会向特定方向移动。
3. 计算成本:网络的每一层都会应用激活函数,它在深层网络中需要计算数百万次。因此,激活函数的计算成本应该很低。
4. 可 性: 如前所述,神经网络使用梯度下降过程进行训练,因此模型中的层需要可微或至少部分可微。 这是一个函数可以作为激活函数层的必要条件。
四、目前使用的各种非线性函数






请到「今天看啥」查看全文