美文网首页
Day 5: 激活函数

Day 5: 激活函数

作者: andyjkt | 来源:发表于2019-11-17 11:16 被阅读0次

激活函数

神经网络的每一层基本都是在一个线性运算后面来一个非线性激活函数(Activation function),再把值传给下一层的

为啥要有非线性的激活函数(non-linear activation function)

n个线性函数嵌套起来,还是线性函数:

y=a1(a2x+b2)+b1

=a1a2x+a1b2+b1

=cx+d

这样,n层的神经网络,就相当于一个简单的Logistic regression了

因此,我们必须采用一个非线性的激活函数,让每一层都有意义,让每一层都有其特定的功能!

1.sigmoid函数(σ)

sigmoid函数

a(z)' = a(z)×[1-a(z)]

sigmoid的特点如下:

很好的拟合了0,1输出,常作为二分类问题(binary classification)的激活函数。

它的导数为两边小中间大。

2. tanh函数

双曲正切(tanh)

a(z)' = 1-[a(z)]2

相比于sigmoid,它是关于原点对称的,这样的性质使得模型在训练时的性能往往比sigmoid更好,因此在中间层一般都不用sigmoid作为激活函数,而用tanh来代替。但是在output层,对于二分类问题,我们都要使用sigmoid,因为要拟合0,1的输出。

sigmoid和tanh共同的问题:

当z比较大或者比较小的时候(也就是在曲线的两头),函数的导数会非常小,会导致参数的梯度也非常小,这样我们在用 梯度下降法进行训练的时候就会 非常慢,尤其是当数据量很大的时候。

3. ReLU函数

Rectified linear unit(线性整流单元)

a=max(z,0)

导数要么是0,要么是1,计算简单,大小合适,因此梯度下降算起来很快,于是迅速被广泛地使用了起来,完美地替代了sigmoid、tanh这些激活函数。(只是多数情况,有一些特殊的网络还是会使用tanh和sigmoid,比如RNNs)

4. Leaky ReLU

leaky relu

最最常使用的效果最稳定的还是ReLU

因此,之后在设计神经网络的时候,选择激活函数我们就可以 放心大胆地选择ReLU,它不仅速度快,而且效果好。

深度学习中,模型不是最重要的,尤其是在业界,大家广泛使用的也许并不是最先进最复杂的模型,而是一个经典的简单的模型。比模型更重要的是数据。有足够多的训练样本,迭代足够多的次数,简单的模型也可以达到极好的效果。ReLU的优势就在于其简单迅速,因此在短时间内可以进行大量的迭代,因此在业界得到广泛的使用。

5. Softmax

Softmax可以看做是对sigmoid的一种推广。我们在做二分类问题的时候,一般都使用sigmoid作为输出层激活函数,因为它的范围在0~1之间。但是如果我们需要进行多分类呢?于是我们有了Softmax函数。

softmax

P的计算公式为:

softmax

其中各个分量之和为1,这从公式也可以很容易看出来。这样,每一个分量就代表该类别的概率

对于多分类问题,我们采用的损失函数也稍有不同

cross-entropy(交叉熵  )

参考文献

相关文章

  • Day 5: 激活函数

    激活函数 神经网络的每一层基本都是在一个线性运算后面来一个非线性激活函数(Activation function)...

  • 激活函数softmax-P2分类任务

    激活函数种类激活函数作用 激活函数 深度学习常用激活函数之— Sigmoid & ReLU & Softmax 深...

  • 6.神经网络训练细节part1

    一、激活函数 前边我们学到,一个节点的输出会进入激活函数进行处理 常见的激活函数有以下 sigmoid激活函数 s...

  • tanh函数&logistic函数

    传统Sigmoid系激活函数 传统Sigmoid系激活函数 传统Sigmoid系激活函数,Sigmoid系(Log...

  • bert的trick理解-gelu损失函数

    GELU 激活函数 损失函数详解:https://mp.weixin.qq.com/s/pA9JW75p9J5e5...

  • 机器学习之神经网络

    什么是神经网络 就是使用了平滑的激活函数的多层感知机 激活函数 什么是激活函数呢? 激活函数就是从输入值到对应输出...

  • [Machine Learning From Scratch]-

    激活层激活函数定义 封装激活层

  • 2019-05-06

    Day-8误差反向传播法(学习笔记) 1.激活函数的实现 ReLU层 Relu函数 正向传播时的输入值小于等于0,...

  • 2019-10-09

    深度学习第三天 激活函数: 激活函数是...

  • 理解激活函数

    一、何为激活函数? 深度学习中,激活函数通常指能够实现非线性映射的函数 二、为什么需要非线性激活函数? 定义:这里...

网友评论

      本文标题:Day 5: 激活函数

      本文链接:https://www.haomeiwen.com/subject/ykcuictx.html