GD 中文名梯度下降 英文名gradient descent
主要应用于优化参数,J(theta)为损失函数,想要学习在训练数据上,使得损失函数相对较小的参数theat。
方法是:theat = theat - alpha*(J(theta)对theta的导数) 其中alpha为学习率。
因为GD是在全部训练数据上最小化损失,所以每次迭代都要计算所有训练数据的损失函数,计算量很大。SGD是在每次迭代中,随机抽取一条训练数据优化该损失函数,这样计算量虽然大大减少了,但是由于SGD每次迭代仅优化某一条训练数据的损失函数,不能表明在全部数据上损失函数更小,所以SGD甚至不达到局部最小。
综合GD和SGD 提出了batch概念:
每次迭代抽取一定量的训练数据,这些数据成为一个batch。对batch的数据进行优化,使用矩阵运算并不比单条数据优化慢很多(具体作者没有度量),并且可以减少收敛的迭代次数,效果也不比GD差。