梯度下降概念: 我们用到一种名为梯度下降(gradient descent)的方法, 这种方法几乎可以优化所有深度学习模型。 它通过不断地在损失函数递减的方向上更新参数来降低误差。 梯度下降最简单的用法是计算损失函数(数据集中所有样本的损失均值) 关于模型参数的导数(在这里也可以称为梯度)。 但实际中的执行可能会非常慢:因为在每一次更新参数之前,我们必须遍历整个数据集。 因此,我们通常会在每次需要计算更新的时候随机抽取一小批样本, 这种变体叫做小批量随机梯度下降(minibatch stochastic gradient descent)。 在每次迭代中,我们首先随机抽样一个小批量, 它是由固定数量的训练样本组成的。 然后,我们计算小批量的平均损失关于模型参数的导数(也可以称为梯度)。 最后,我们将梯度乘以一个预先确定的正数 𝜂 ,并从当前参数的值中减掉。
batch_size和epoch的联系和区别:
- batch_size和epoch都是超参数,需要自己设置。
- 将批处理视为循环迭代一个或多个样本并进行预测。在批处理结束时,将预测与预期输出变量进行比较,并计算误差。从该错误中,更新算法用于改进模型。
batch_size与训练集的关系 | 梯度下降类型 |
---|
batch_size = 训练集大小 | 批量梯度下降 | batch_size = 1 | 随机梯度下降 | 1 < batch_size < 训练集大小 | 小批量梯度下降 |
- epoch数是一个超参数,它定义了学习算法在整个训练数据集中的工作次数。
- 一个Epoch意味着训练数据集中的每个样本都有机会更新内部模型参数。Epoch由一个或多个Batch组成。
|