我从事机器学习已经有一段时间了,但即使经过一段时间的练习,零碎的东西还是会聚在一起。
在神经网络中,您通过执行一次传递(前向传递)来调整权重,然后在每个训练示例之后计算权重的偏导数(后向传递) - 并从初始权重中减去这些偏导数。
反过来,新权重的计算在数学上是复杂的(您需要计算权重的偏导数,为此您计算神经网络每一层的误差 - 但输入层除外)。
这不是根据定义的在线算法,在每个训练示例之后计算成本和新权重吗?
谢谢!
我从事机器学习已经有一段时间了,但即使经过一段时间的练习,零碎的东西还是会聚在一起。
在神经网络中,您通过执行一次传递(前向传递)来调整权重,然后在每个训练示例之后计算权重的偏导数(后向传递) - 并从初始权重中减去这些偏导数。
反过来,新权重的计算在数学上是复杂的(您需要计算权重的偏导数,为此您计算神经网络每一层的误差 - 但输入层除外)。
这不是根据定义的在线算法,在每个训练示例之后计算成本和新权重吗?
谢谢!
神经网络共有三种训练模式
大多数时候,似乎使用小批量训练。
所以答案是:
不,神经网络学习算法不是在线算法。
您可以在每个示例之后或每个 epoch 之后进行训练。这是随机梯度下降和批量梯度下降之间的区别。有关更多信息,请参阅 Sebastian Raschka 的 Python 机器学习一书的第 84 页。