什么是用于反向传播的激活函数的衍生物?

时间:2012-03-20 11:19:14

标签: math artificial-intelligence machine-learning neural-network

我正在阅读this文件,他们说重量调整公式为:

  

新体重=旧体重+学习率* delta * df(e)/ de *输入

df(e)/de部分是激活函数的衍生物,它通常是像tanh这样的sigmoid函数。现在,这实际上是什么?为什么我们甚至成倍增加呢?为什么不只是learning rate * delta * input

这个问题出现在这个问题之后,与之密切相关:Why must a nonlinear activation function be used in a backpropagation neural network?

2 个答案:

答案 0 :(得分:16)

训练神经网络只是指找到权重矩阵中的每个单元格的值(其中有两个NN具有一个隐藏层),这样观察数据和预测数据之间的平方差异最小化。在实践中,包括两个权重矩阵的各个权重在每次迭代时被调整(它们的初始值通常被设置为随机值)。这也称为在线模型,而不是在经过大量迭代后调整权重的批量模型。

但是 如何调整权重 - 即,哪个方向+/-?多少钱?

这就是导数的来源。 导数的大值会导致对相应的权重进行大幅度调整。这是有道理的,因为如果导数很大意味着你远离最小值。换句话说,在每次迭代中,在由总误差(观察与预测)定义的成本函数表面上最陡下降方向(导数的最高值)调整权重。

在计算每个模式的误差之后(从该迭代期间NN预测的值中减去响应变量或输出矢量的实际值),权重矩阵中的每个权重与计算的误差梯度成比例地调整

因为误差计算从NN的末尾开始(即,在输出层通过从预测中减去观察值)并继续前进,所以它被称为 backprop


更一般地说,优化技术使用衍生物(或多变量问题的 梯度 )(对于backprop,共轭梯度可能是最常见的)找到目标的最小值(又名损失)功能

它的工作原理如下:

一阶导数是曲线上的点,使得与其相切的线的斜率为0.

因此,如果您在目标函数定义的3D表面周围走动并且您走到斜率= 0的点,那么您位于底部 - 您已找到最小值(是否全局或本地)的功能。

但是,一阶导数比这更重要。它还 告诉您是否正朝着正确的方向 来达到最低功能。

如果您考虑到曲线/曲面上的点向下移向函数最小值时切线的斜率会发生什么,那么很容易理解为什么会这样。

斜率(因此该点处函数的导数的值)逐渐减小。换句话说,使函数最小化,遵循导数 - 即,如果值正在减小,那么您正朝着正确的方向移动。

答案 1 :(得分:2)

您引用的权重更新公式不仅仅是一些任意表达式。它是通过假设一个误差函数并通过梯度下降来最小化它来实现的。因此,激活函数的导数基本上是因为微积分的链式规则。

关于神经网络的书籍更有可能在反向传播中推导出更新规则。例如,Hertz,Krogh和Palmer的神经计算理论介绍