深度理解机器学习17-候选激活函数

深度理解机器学习17-候选激活函数

​ 替换先前时间步长激活函数的候选激活函数,也在每个时间步长中计算。顾名思义,候选激活函数代表下一个时间步长激活函数应该采用的替代值。

​ 计算候选激活函数的表达式:请添加图片描述

​ 从数学上讲,更新门用于在先前激活函数和候选激活函数之间选择权重。因此,它负责当前时间步长激活函数的最终更新,并确定有多少先前的激活函数和候选激活函数传递到下一层。重置门用于选择或取消选择先前激活函数部分的一种方式。这就是为什么在前一个激活函数和重置门向量之间执行按元素乘法。

​ 在训练良好的网络中,重置门的向量中会有一个所有这些关系的入口。这些入口的值将被适当地“关闭”或“打开”,具体取决于哪些关系需要从以前的激活中被记住,哪些需要被忘记。

GRU变体

Gated Recurrent Unit(GRU)

深度理解机器学习17-候选激活函数_第1张图片

sigmod函数与阶跃函数的区别

相对于阶跃函数只能返回0或1, sigmoid函数可以返回0.731 . . .、 0.880 . . .等实数(这一点和刚才的平滑性有关)。也就是说,感知机中神经元之间流动的是0或1的二元信号,而神经网络中流动的是连续的实数值信号。

当输入信号为重要信息时,阶跃函数和sigmoid函数都会输出较大的值;当输入信号为不重要的信息时,两者都输出较小的值。还有一个共同点是,不管输入信号有多小,或者有多大,输出信号的值都在0到1之间。

神经网络的激活函数必须使用非线性函数。换句话说,激活函数不能使用线性函数。为什么不能使用线性函数呢?因为使用线性函数的话,加深神经网络的层数就没有意义了。

线性函数的话,加深神经网络的层数就没有意义了。

线性函数的问题在于,不管如何加深层数,总是存在与之等效的“无隐藏层的神经网络”。为了具体地(稍微直观地)理解这一点,我们来思考下面这个简单的例子。这里我们考虑把线性函数 h(x) = cx 作为激活函数,把y(x) = h(h(h(x)))的运算对应3层神经网络 A。这个运算会进行y(x) = c × c × c × x的乘法运算,但是同样的处理可以由y(x) = ax(注意,a = c3)这一次乘法运算(即没有隐藏层的神经网络)来表示。如本例所示,使用线性函数时,无法发挥多层网络带来的优势。因此,为了发挥叠加层所带来的优势,激活函数必须使用非线性函数。

你可能感兴趣的:(深度学习,人工智能,深度学习)