求函数的梯度 如何求一个多元函数的梯度?请详细说明,最好举个例子

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求函数的梯度 如何求一个多元函数的梯度?请详细说明,最好举个例子相关的知识,希望对你有一定的参考价值。

参考技术A 如:z=x+y
则:z的梯度为:(dz/dx,dz/dy)=(1,1),即由多元函数的各一阶导数构成的向量:

【神经网络原理】如何利用梯度下降法更新权重与偏置

参考技术A

损失函数的值减小,意味着神经网络的预测值(实际输出)和标签值(预期的输出)越接近。
损失函数通常为 多元函数 ,其自变量包括网络中包含的所有的权重w、以及所有的偏置b,有的地方也将其称作代价函数(Cost function)或价值函数(Value function),这里只介绍均方误差损失函数(MSE):

多元函数的梯度类似于一元函数导数 :对多元函数各变量依次求一阶偏导,然后将各偏导值组合成一个一维列向量,就得到了该多元函数梯度。损失函数通常为 多元函数 ,其梯度如下:

对于神经网络结构 & 符号约定有疑惑的可以参考我的这篇文章—— 【神经网络原理】神经网络结构 & 符号约定

梯度的负方向 :因为梯度是一个向量,具有方向性。这里的 下降 是指损失函数值的减小。
那么为什么沿梯度的负方向损失函数值减小最快呢?这里主要利用 多元函数的一阶泰勒展开 (一阶形式还是比较简单的)和 向量点积公式 来证明:

这里只给出了第 l 层的网络参数——权重(矩阵)与偏置(向量)的梯度下降更新公式,其他层网络参数的更新公式同理可得,对符号有疑惑的请参考: 【神经网络原理】神经网络结构 & 符号约定 。

有了各层网络参数(向量/矩阵)的更新公式,其中损失函数对各参数的梯度又该如何求解呢?事实上由于神经网络中参数(权重W和偏置b)通常较多,要想直接求解损失函数对这些参数的梯度,难度极大,所以在实际训练网络时,我们通常采用 反向误差传播,即BP算法 ,巧妙地利用预测值与标签值的残差,从输出层到输入层反向地求解出损失函数对各层网络参数的梯度。

以上是关于求函数的梯度 如何求一个多元函数的梯度?请详细说明,最好举个例子的主要内容,如果未能解决你的问题,请参考以下文章

【神经网络原理】如何利用梯度下降法更新权重与偏置

[数值计算-11]:多元函数求最小值 - 偏导数与梯度下降法&Python法代码示例

读书笔记:梯度法求函数的最小值 gradient_method.py ← 斋藤康毅

采用Armjio非精确线搜索求步长的FR非线性共轭梯度法--MATLAB实现

采用Armjio非精确线搜索求步长的FR非线性共轭梯度法--MATLAB实现

一元函数的梯度和雅可比矩阵是否想用