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

cor*_*zza 10 math artificial-intelligence machine-learning neural-network

我正在阅读这份文件,他们说重量调整公式如下:

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

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

这个问题出现在这个问题之后并与之密切相关:为什么必须在反向传播神经网络中使用非线性激活函数?.

dou*_*oug 16

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

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

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

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

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


更一般地,所述衍生物(或梯度多变量的问题)使用由优化技术(backprop,共轭梯度可能是最常见的)来定位目标(又名的极小损失)函数.

它以这种方式工作:

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

因此,如果您在目标函数定义的3D表面周围走动并且您走到斜率= 0的点,那么您位于底部 - 您已找到该函数的最小值(无论是全局还是局部).

但是,一阶导数比这更重要.它还会告诉您是否朝着正确的方向前进,以达到最小功能.

如果你想一想当曲线/曲面上的点向下移向函数最小值时切线的斜率会发生什么,这很容易理解为什么会这样.

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

  • 不,我回答了这个问题.为了做到这一点,有必要讨论整个反向流程,并且这样做会提到激活功能和成本函数. (2认同)