最受欢迎的算法之一:反向传播训练( 三 )


文章插图
 
′表示激活函数的导数 。
 6.2.2 交叉熵误差函数二次误差函数有时可能需要很长时间才能正确调整权重 。公式6-3展示了交叉熵误差(Cross-entropy Error , CE)函数:

最受欢迎的算法之一:反向传播训练

文章插图
 
(6-3)
如公式6-4所示 , 采用交叉熵误差函数的节点增量计算要比采用MSE函数简单得多 。
最受欢迎的算法之一:反向传播训练

文章插图
 
(6-4)
交叉熵误差函数通常会比二次误差函数结果更好 , 因为二次误差函数会为误差创建一个陡峭的梯度 。我们推荐采用交叉熵误差函数 。
6.3 计算剩余节点增量既然已经根据适当的误差函数计算了输出节点的增量 , 我们就可以计算内部节点的增量 , 如公式6-5所示:
最受欢迎的算法之一:反向传播训练

文章插图
 
(6-5)
我们将为所有隐藏和无偏置神经元计算节点增量 , 但无须为输入和偏置神经元计算节点增量 。即使我们可以使用公式6-5轻松计算输入和偏置神经元的节点增量 , 梯度计算也不需要这些值 。你很快会看到 , 权重的梯度计算仅考虑权重所连接的神经元 。偏置和输入神经元只是连接的起点 , 它们从来不是终点 。
如果你希望看到梯度计算过程 , 有几个JAVAScript示例显示了这些计算过程 。这些示例可以在以下URL中找到:
http://www.heatonresearch.com/aifh/vol3/6.4 激活函数的导数反向传播过程需要激活函数的导数 , 它们通常确定反向传播过程将如何执行 。大多数现代深度神经网络都使用线性、Softmax和ReLU激活函数 。我们还会探讨S型和双曲正切激活函数的导数 , 以便理解ReLU激活函数为何表现如此出色 。
 6.4.1 线性激活函数的导数线性激活函数被认为不是激活函数 , 因为它只是返回给定的任何值 。因此 , 线性激活函数有时称为一致激活函数 。该激活函数的导数为1 , 如公式6-6所示:
最受欢迎的算法之一:反向传播训练

文章插图
 
(6-6)
如前文所述 , 希腊字母
最受欢迎的算法之一:反向传播训练

文章插图
 
表示激活函数 , 在
最受欢迎的算法之一:反向传播训练

文章插图
 
右上方的撇号表示我们正在使用激活函数的导数 。这是导数的几种数学表示形式之一 。
 6.4.2 Softmax激活函数的导数在本书中 , Softmax激活函数和线性激活函数仅在神经网络的输出层上使用 。如第1章“神经网络基础”所述 , Softmax激活函数与其他激活函数的不同之处在于 , 其值还取决于其他输出神经元 , 而不仅仅取决于当前正在计算的输出神经元 。方便起见 , 公式6-7再次展示了Softmax激活函数:
最受欢迎的算法之一:反向传播训练

文章插图
 
(6-7)
最受欢迎的算法之一:反向传播训练

文章插图
 
向量代表所有输出神经元的输出 。公式6-8展示了该激活函数的导数:
最受欢迎的算法之一:反向传播训练

文章插图
 
(6-8)
对于上述导数 , 我们使用了稍微不同的符号 。带有草书风格的


推荐阅读