梯度下降
17 April 2015
梯度下降法是一个最优化算法,通常也称为最速下降法。
###描述 梯度下降法,基于这样的观察:
如果实值函数 在点 处可微且有定义,那么函数 在 点沿着梯度相反的方向 下降最快。
因而,如果
当 为一个足够小的数值时 成立。
考虑到这一点,我们可以从函数 的局部极小值的初始估计 出发,并考虑如下序列 使得:
因此可得到
如果顺利的话序列 收敛到期望的极值。(每次迭代步长 是可以改变的)
###算法实现
对于输入样本集 其中 上标为样本序号,共 个样本,下标为每个样本的特征数,共 个特征。
我们的假设函数为:
那我们的损失函数为:
我们的目标就是找到参数向量 的值,使得 最小。
我们的步骤为:
- 选取参数向量的初始值
- 对于每个参数 的值做如下更新:
将 带入上式,则有
由于该算法每次更新 中的元素,需要处理整个输入样本集,所有该算法也叫批量梯度下降(batch gradient descent)。当参数向量 中所有元素都更新之后代入 ,通过两次迭代值来判断其是否收敛以终止迭代。
blog comments powered by Disqus