梯度下降法:
梯度下降法(gradient descent)是一个最优化算法,通常也称为最速下降法。常用机器学习和人工智能当中用来递归性地逼近最小偏差模型。
继续考虑线性模型
第i个个记录(样本)的预测值为:
换成经常使用的形式
经常使用Cost Function(代价函数)
其中的1/2是为了使数据整齐加上的。
先随机给初始值比如
令
其中代表学习率(learning rate),决定了下降的步伐大小,
决定了下降的方向
求偏导数:
迭代过程是:
随机的梯度下降(SGD):每次随机的挑一个样本学习,直到收敛才停止更新
小批量的梯度下降(Mini-batch):每次只学习一小部分,比如每次学习10个样本再更新
梯度下降(GD):全部样本学习一次,然后更新下(少用,效率低)
也可以设置最大迭代次数,比如设为100,若在100次内收敛了,则收敛时停止,若100次还未收敛那么就停止迭代
一般为了加快梯度下降的执行速度,先将个feature值(变量)标准化,使得取值[-1,1]
参考链接
http://blog.csdn.net/xiazdong/article/details/7950084