向后传播:是否值得计算分析二阶导数?

时间:2015-03-05 17:54:10

标签: machine-learning neural-network mathematical-optimization hessian-matrix

我理解为什么我们通常不使用二阶导数信息的原因是Hessian可能非常大,具有更多的层和权重,导致高计算开销,因此无Hessian方法是首选。我的问题是文献所指的计算费用是否是数字计算二阶导数的假设的结果?因此,如果相反,评估中的目标函数产生了整齐的分析二阶导数,那么即使有大量隐藏层,基于牛顿的方法在计算上也可以用于估算ANN参数吗?或者它纯粹是Hessian的大小 - 以及为更新算法(!)反转它的需要/费用 - 这是使用基于梯度的方法的决定因素吗?

1 个答案:

答案 0 :(得分:0)

为了使用二阶优化方法,您应该计算Hessian矩阵的。有两个问题:

  1. Hessian具有O(N 2 )参数,这使得计算更加困难(在内存和时间复杂度方面)。即使你在O(1)时间内计算每一个(也就是说,你使用解析公式计算导数),你仍然需要计算它们的二次数量。

  2. 矩阵求逆是quite slow运算,需要更多时间(例如,在高斯消除情况下为O(N 3 ),而不仅仅是计算Hessian的所有价值。