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,如果值正在减小,那么您将朝正确的方向移动.