0

在 Andrew Ng 的讲义中,他们使用 LBFGS 并获得了一些隐藏的特性。我可以改用梯度下降并产生相同的隐藏特征吗?其他参数都一样,只是改变优化算法。

因为当我使用 LBFGS 时,我的自动编码器可以产生与讲义中相同的隐藏特征,但是当我使用梯度下降时,隐藏层中的特征消失了,看起来完全随机。

具体来说,为了优化成本函数,我实现了 1)成本函数,2)每个权重和偏差的梯度。并将它们放入 scipy 优化工具箱中以优化成本函数。而这个设置可以给我合理的隐藏功能。

但是当我改为梯度下降时。我试图让“Weight - Gradient of the Weight”和“Bias - Gradient of the Bias”。但由此产生的隐藏特征看起来完全是随机的。

有人可以帮我知道原因吗?谢谢。

4

1 回答 1

1

是的,您可以改用 SGD,事实上,它是实践中最流行的选择。L-BFGS-B 不是训练神经网络的典型方法。然而:

  • 你将不得不调整训练方法的超参数,你不能只使用用于 LBFGS 的相同参数,因为这是完全不同的方法(好吧,不完全,但它使用一阶优化而不是二阶)
  • 你应该在你的 SGD 中包含动量,这是获得一种二阶近似值的一种极其简单的方法,并且已知(当仔细调整时)在实践中表现得与实际的二阶方法一样好
于 2016-05-16T23:51:03.570 回答