切换视频源:

Activation function 激励函数

作者: Alice 编辑: rcdrones 2016-11-03

学习资料:

今天讲一下在神经网络中激励函数的作用和如何运作,以及 Theano 中有哪些激励函数。

什么是 Activation function

首先,什么是 Activation function

在这个视频中有提到 什么是神经网络 如下图,在这三个中间层中,有激活函数,相当于过滤器或者激活器,作用就是会使一些特征被激活 Activate,同时另一些特征不被激活 Deactivate, 例如,当猫的图片数据传递到第一个隐藏层时,在这个激励函数作用下,大于 0 的数据乘以 1 保持原样,小于 0 的数据乘以 0 变为 0,被 Deactivate

Activation function 激励函数

有多种激活函数,例如,当传递进来的值越小时,作用后就会越接近 0, 当传递进来的值越大时,作用后就会越接近 1。 还有可以计算线性或者非线性关系的,或者可以计算概率的激活函数。 总而言之,激活函数的作用就是使重要的信息被激励,不重要或者反向的信息不被激励。传进来的值,经过这种变化,得到另一种结果,而这正是我们需要的。

几种常用激活函数

Theano 中可以用的激励函数可以在这个 链接 中找到。 进入这个链接,以 theano.tensor.nnet.nnet.sigmoid(x) 为例。 Sigmoid 函数就是可以做到,当输入值小于 0 并且越小时,输出值就会越接近 0, 当输入值大于 0 并且越大时,输出值就会越接近 1。常被用于分类问题中。 还有其他几种拓展函数,例如 softplus(),当输入值小于 0 时,输出值接近 0, 当输入值大于 0 时,输出值是非线性的上升关系。可以很好地处理具有非线性的逻辑关系的输入值。 relu(), 当输入值小于 0 时,输出值全部等于 0, 当输入值大于 0 时,输出值是线性关系。 常用的有 softplus(),softmax(),relu() 这三种,当然还有 tanh() 等等。 在实际中可以尝试在不同的神经层中,放入不同的激活函数,尝试得到不同的效果。具体问题具体分析,会发现有些激活函数并不适合当前的问题。

应用场景

在隐藏层中,可以用 relu, tanh, softplus 等非线性的激活函数。 在分类问题中,可以用 sigmoid ,softmax 来求概率。例如选择 N 类中概率最大的那一类作为预测值。 在回归问题中,可以什么激活函数都不用,只用 linear function,或者对于 价格,高度 这种非负的变量,可以在输出层用 relu 这种非负的激活函数,使输出值非负。

分享到: Facebook 微博 微信 Twitter
如果你觉得这篇文章或视频对你的学习很有帮助, 请你也分享它, 让它能再次帮助到更多的需要学习的人. 莫烦没有正式的经济来源, 如果你也想支持 莫烦Python 并看到更好的教学内容, 赞助他一点点, 作为鼓励他继续开源的动力.

支持 让教学变得更优秀