任何人都可以用一种简单且不太数学的方式向我解释什么是Hessian
以及在优化神经网络的学习过程时它在实践中如何运作?
答案 0 :(得分:13)
要理解 Hessian ,首先需要了解 Jacobian ,并了解雅可比,您需要了解衍生< / em>的
现在,衍生物向您展示了函数本身的动态。但是你可以更进一步,如果你可以使用这种动态来找到函数的最优值,也许你可以做得更好,如果你找到这种动力学的动力学,那么 - 计算导数第二顺序?这正是 Hessian 的原因,它是函数的二阶导数矩阵。它捕捉了衍生物的动态,因此变化的变化速度(以何种方向)。第一眼看上去似乎有点复杂,但如果你想一会儿就会变得非常清楚。你想走向渐变的方向,但你不知道&#34;走多远? (正确的步长是多少)。所以你定义了新的,更小的优化问题,在那里你要问&#34;好吧,我有这个渐变,我怎么知道去哪里?&#34;并使用衍生物(以及衍生物的衍生物形成Hessian)类似地解决它。
您也可以用几何方式来看待这一点 - 基于渐变的优化使用线来近似您的功能。您只需尝试在当前点找到最接近您的函数的线,因此它定义了更改方向。现在,线条非常原始,也许我们可以使用一些更复杂的形状,如....抛物线?二阶导数,粗麻布方法只是试图将抛物线(二次函数,f(x)= ax ^ 2 + bx + c)拟合到当前位置。并基于此近似 - 选择有效步骤。
有趣的是,将动量项添加到基于梯度的优化中(在充分条件下)近似于基于粗糙度的优化(并且计算成本更低)。