Neural network 计算hessian如何用于神经网络学习
有谁能用一种简单的数学方法向我解释一下什么是Hessian,以及在优化神经网络的学习过程时,它在实践中是如何工作的 要理解黑森矩阵,首先需要理解雅可比矩阵,而要理解雅可比矩阵,则需要理解导数Neural network 计算hessian如何用于神经网络学习,neural-network,artificial-intelligence,backpropagation,hessian-matrix,Neural Network,Artificial Intelligence,Backpropagation,Hessian Matrix,有谁能用一种简单的数学方法向我解释一下什么是Hessian,以及在优化神经网络的学习过程时,它在实践中是如何工作的 要理解黑森矩阵,首先需要理解雅可比矩阵,而要理解雅可比矩阵,则需要理解导数 导数是衡量函数值随参数变化的速度。因此,如果你有函数f(x)=x^2,你可以计算它的导数,得到f(x+t)随足够小的t变化的速度。这将使您了解函数的基本动力学 梯度在多维函数中显示最大值变化的方向(基于方向导数),因此给定一个函数,即g(x,y)=-x+y^2,你会知道,最好最小化x的值,同时强烈地最大化
- 导数是衡量函数值随参数变化的速度。因此,如果你有函数f(x)=x^2,你可以计算它的导数,得到f(x+t)随足够小的t变化的速度。这将使您了解函数的基本动力学
- 梯度在多维函数中显示最大值变化的方向(基于方向导数),因此给定一个函数,即g(x,y)=-x+y^2,你会知道,最好最小化x的值,同时强烈地最大化y的值。这是基于梯度的方法的基础,如最速下降技术(用于传统的反向传播方法)李>
- 雅可比是另一种推广,因为你的函数可能有很多值,比如g(x,y)=(x+1,x*y,x-z),因此你现在有2*3个偏导数,每个输出值(2个值中的每个值)有一个梯度,从而形成一个2*3=6个值的矩阵
有趣的是,将动量项添加到基于梯度的优化中(在充分条件下)近似于基于hessian的优化(并且计算成本要低得多)。我知道如何使用牛顿方法(hessian)找到函数的驻点。但我仍然不知道如何计算神经网络的Hessian,因为在这个过程中有不同的层和不同的激活函数,然后将其应用于权重更新。而且,你在回答中没有解释任何关于雅可比的事情。你想说点什么但忘了说了吗?雅可比只是梯度的生成,它是网络中每个输出变量和权重的所有偏导数的矩阵。简而言之,反向传播不是一种学习技术,它只是计算梯度的一种有效方法,仅此而已,实际上所有的神经网络学习技术都是基于梯度的(hessian只是“更深一步”,它是梯度的梯度)。我可以推荐S·海金的“神经网络和学习机器”。或者,如果你对优化一点也不熟悉,那么D KincaidI的“数值分析”就不明白为什么你说一个人必须先知道雅可比,然后再也不要谈论它了。@lejlot,你能提到动量这个有趣的事实吗?