程序员必知:常见的激活函数

简介: 程序员必知:常见的激活函数

1. 什么是激活函数

??在神经网络中,我们经常可以看到对于某一个隐藏层的节点,该节点的激活值计算一般分为两步:

??(1)输入该节点的值为 x1,x2x1,x2 时,在进入这个隐藏节点后,会先进行一个线性变换,计算出值 z【1】=w1x1+w2x2+b【1】=W【1】x+b【1】z【1】=w1x1+w2x2+b【1】=W【1】x+b【1】 ,上标 11 表示第 11 层隐藏层。

??(2)再进行一个非线性变换,也就是经过非线性激活函数,计算出该节点的输出值(激活值) a(1)=g(z(1))a(1)=g(z(1)) ,其中 g(z)g(z) 为非线性函数。

2. 常用的激活函数

??在深度学习中,常用的激活函数主要有:sigmoid函数,tanh函数,ReLU函数。下面我们将一一介绍。

2.1 sigmoid函数

??在逻辑回归中我们介绍过sigmoid函数,该函数是将取值为 (?∞,+∞)(?∞,+∞) 的数映射到 (0,1)(0,1) 之间。sigmoid函数的公式以及图形如下:

g(z)=11+e?zg(z)=11+e?z

??对于sigmoid函数的求导推导为:

??sigmoid函数作为非线性激活函数,但是其并不被经常使用,它具有以下几个缺点:

???(1)当 zz 值非常大或者非常小时,通过上图我们可以看到,sigmoid函数的导数 g′(z)g′(z) 将接近 00 。这会导致权重 WW 的梯度将接近 00 ,使得梯度更新十分缓慢,即梯度消失。下面我们举例来说明一下,假设我们使用如下一个只有一层隐藏层的简单网络:

???对于隐藏层第一个节点进行计算,假设该点实际值为 aa ,激活值为 a【1】a【1】 。于是在这个节点处的代价函数为(以一个样本为例): $$ J^{【1】}(W) = \frac{1}//代码效果参考:http://www.ezhiqi.com/bx/art_4885.html{2} (a{【1】}-a)2 $$

???而激活值 a【1】a【1】 的计算过程为:

z【1】=w11x1+w12x2+b【1】z【1】=w11x1+w12x2+b【1】

a【1】=g(z【1】)a【1】=g(z【1】)

???于是对权重 w11w11 求梯度为:

ΔJ【1】(W)Δw11=(a【1】?a)?(a【1】)′=(a【1】?a)?g′(z【1】)?x1ΔJ【1】(W)Δw11=(a【1】?a)?(a【1】)′=(a【1】?a)?g′(z【1】)?x1

???由于 $ g'(z^{【1】}) =g(z{【1】})(1-g(z{【1】})) ,当,当 z^{【1】}//代码效果参考:http://www.ezhiqi.com/bx/art_1673.html $ 非常大时,g(z【1】)≈1,1?g(z【1】)≈0g(z【1】)≈1,1?g(z【1】)≈0 因此, g′(z【1】)≈0,ΔJ【1】(W)Δw11≈0g′(z【1】)≈0,ΔJ【1】(W)Δw11≈0。当 z【1】z【1】 非常小时,g(

相关文章
|
3天前
|
机器学习/深度学习
激活函数:神经网络的生命之花
激活函数:神经网络的生命之花
激活函数:神经网络的生命之花
|
3天前
|
自然语言处理 算法 程序员
程序员必知:一文搞懂HMM(隐马尔可夫模型)
程序员必知:一文搞懂HMM(隐马尔可夫模型)
|
机器学习/深度学习 网络架构 索引
神经网络初学者的激活函数指南
如果你刚刚开始学习神经网络,激活函数的原理一开始可能很难理解。但是如果你想开发强大的神经网络,理解它们是很重要的。
76 0
|
机器学习/深度学习 人工智能 算法
【Pytorch神经网络基础理论篇】 06 自动求导+导数与微分
【Pytorch神经网络基础理论篇】 06 自动求导+导数与微分
252 0
|
机器学习/深度学习 Python
神经网络中的损失函数正则化和 Dropout 并手写代码实现
神经网络中的损失函数正则化和 Dropout 并手写代码实现
148 0
神经网络中的损失函数正则化和 Dropout 并手写代码实现
|
机器学习/深度学习 存储 人工智能
手推公式:LSTM单元梯度的详细的数学推导
手推公式:LSTM单元梯度的详细的数学推导
208 0
手推公式:LSTM单元梯度的详细的数学推导
|
机器学习/深度学习 算法
无公式理解反向传播算法之精髓
无公式理解反向传播算法之精髓
无公式理解反向传播算法之精髓
|
机器学习/深度学习 算法 程序员
程序员说模型过拟合的时候,说的是什么?
机器学习中,模型的拟合效果意味着对新数据的预测能力的强弱(泛化能力)。而程序员评价模型拟合效果时,常说“过拟合”及“欠拟合”,那究竟什么是过/欠拟合呢?什么指标可以判断拟合效果?以及如何优化?
|
机器学习/深度学习 数据采集 算法
一文讲透神经网络的激活函数
一文讲透神经网络的激活函数