神经网络本质上是一种在线算法吗?

数据挖掘 机器学习 神经网络 在线学习
2021-10-13 03:29:25

我从事机器学习已经有一段时间了,但即使经过一段时间的练习,零碎的东西还是会聚在一起。

在神经网络中,您通过执行一次传递(前向传递)来调整权重,然后在每个训练示例之后计算权重的偏导数(后向传递) - 并从初始权重中减去这些偏导数。

反过来,新权重的计算在数学上是复杂的(您需要计算权重的偏导数,为此您计算神经网络每一层的误差 - 但输入层除外)。

这不是根据定义的在线算法,在每个训练示例之后计算成本和新权重吗?

谢谢!

2个回答

神经网络共有三种训练模式

  • 随机梯度下降:在每个训练示例之后调整权重
  • 批量训练:在遍历所有数据(一个时期)后调整权重
  • 小批量训练:经过小批量后调整权重。这通常是 128 个训练示例。

大多数时候,似乎使用小批量训练。

所以答案是:

不,神经网络学习算法不是在线算法。

您可以在每个示例之后或每个 epoch 之后进行训练。这是随机梯度下降和批量梯度下降之间的区别。有关更多信息,请参阅 Sebastian Raschka 的 Python 机器学习一书的第 84 页。