首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

DL笔记:Activation Function 激活函数

:阿特,今天我们来了解一下深度学习中的激活函数 (Activation functions)。

:又是函数……为什么要了解这个哦……

:在机器学习中,我们经常需要对输出结果打上「是」或「否」标签。比如对一张输入的图片,模型要判断图片里面有没有包含汪星人。

上一回我们提到的逻辑回归,可以用来减少预测值和真实值之间的误差。

:那要怎么做呢?

:我们来用符号描述一下问题:

x:训练数据中的 input

y:训练数据中已经做好标记的 output

w:逻辑回归的 weights

b:逻辑回归的 bias

模型的输出:

:老朋友 wx + b

:好眼力。它就是一个线性模型。别忘了,我们想让输出只包含两个值:是,否。一般我们会用 1 表示「是」,用 0 表示「否」。

:就是我给模型图片 A,它说「0」;给图片 B,它说「1」;……这样?

:没错~ 所以我们把结果的输出全部转换成或 0 或 1 的值。激活函数就是用来帮助我们实现这种转化的。

上面我们用到的激活函数叫做 Sigmoid 函数。它帮我们做到了:

如果输入值 z 是一个大的正数,函数的输出值为 1;

如果输入值 z 是一个大的负数,函数的输出值为 0;

如果输入值 z = 0,那么输出值是 0.5

:也就是说,不论我给什么样的整数,最后都会返回 0 或 1 的结果?

:没错!这样我们得到分类的结果,或 0 或 1。在深度学习中,这种把输出转化为我们想要的形式的函数,我们叫它「激活函数」:

激活函数的主要作用是提供网络的非线性建模能力。如果没有激活函数,即便有再多的隐藏层,其整个网络跟单层神经网络也是等价的。加入激活函数之后,深度神经网络才具备了分层的非线性映射学习能力。

上图就是其中的一种激活函数:sigmoid 函数。

:这么说,激活函数不止一种?

:对呀。下面我列了一些常用的激活函数,作为今天的补充资料吧。现在可能还看不到,先混个脸熟就好。

:好的先刷脸。

Sigmoid

Sigmoid 函数取值范围为(0,1),将一个实数映射到(0,1)的区间,可以用来做二分类。

Sigmoid 在特征相差比较复杂或是相差不是特别大时效果比较好。Sigmoid 的导数最大值为0.25。这意味着用来进行反向传播时,返回网络的 error 将会在每一层收缩至少75%(梯度消失问题)。对于接近输入层的层,如果有很多层, weights 更新会很小。

Tanh

也称为双切正切函数,取值范围为[-1,1]。tanh 在特征相差明显时的效果会很好,在循环过程中会不断扩大特征效果。

ReLU

ReLU (rectified linear units) 是现在较常用的激活函数。如果输入 < 0,ReLU 输出 0;如果输入 >0,输出等于输入值。

ReLU 计算量小(不涉及除法),一部分神经元的输出为 0 造成了网络的稀疏性,并且减少了参数的相互依存关系,缓解了过拟合问题的发生。

ReLU 的缺点是,梯度较大时,ReLU 单元可能大都是 0,产生大量无效的计算(特征屏蔽太多,导致模型无法学习到有效特征)。

Softmax

Softmax 函数将 K 维的实数向量压缩(映射)成另一个 K 维的实数向量,其中向量中的每个元素取值都介于(0,1)之间。常用于多分类问题。Softmax 把分数转换为概率分布,让正确的分类的概率接近 1,其他结果接近 0。相比 Sigmoid,它做了归一化处理。

Ref

Deep Learning Nanodegree Udacity - https://www.udacity.com/course/deep-learning-nanodegree-foundation--nd101

Neural Networks and Deep Learning Coursera - https://www.coursera.org/learn/neural-networks-deep-learning

Neural networks and deep learning - http://neuralnetworksanddeeplearning.com/

Andrej Karpathy’s CS231n course - http://cs231n.github.io/neural-networks-1/#nn

深度学习笔记(三):激活函数和损失函数 - CSDN博客 - http://blog.csdn.net/u014595019/article/details/52562159

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20171218G0NIWO00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券