梯度下降的更新方式
批量梯度下降
在批量梯度下降中,计算误差的时候要一次性经历所有的样本。换句话说,如果有一百万的个样本,图中的e(i)会特别多,要计算一个计算量就会异常巨大。
随机梯度下降
随机梯度下降(SGD):
在SGD算法中,每次更新的迭代,只计算一个样本。这样对于一个具有数百万样本的训练数据,完成一次遍历就会对更新数百万次,效率大大提升。
优点:SGD不仅仅效率高,而且随机性有时候反而是好事。今天的目标函数是一个『凸函数』,沿着梯度反方向就能找到全局唯一的最小值。然而对于非凸函数来说,存在许多局部最小值。随机性有助于我们逃离某些很糟糕的局部最小值,从而获得一个更好的模型。
具体来说是每次更新w的时候,更换一个x和对应的y。然后历遍所有的样本。这里需要记住一个点,计算梯度的时候,每个点的梯度是可以直接算出来的。
神经网络中的梯度下降
问题1:层数变多了,怎么定义误差?
问题2:层数变多了之后如何计算梯度?