17 April 2015

梯度下降法是一个最优化算法,通常也称为最速下降法。

###描述 梯度下降法,基于这样的观察:

如果实值函数 在点 处可微且有定义,那么函数 点沿着梯度相反的方向 下降最快。

因而,如果

为一个足够小的数值时 成立。

考虑到这一点,我们可以从函数 的局部极小值的初始估计 出发,并考虑如下序列 使得:

因此可得到

如果顺利的话序列 收敛到期望的极值。(每次迭代步长 是可以改变的)

###算法实现
对于输入样本集 其中 上标为样本序号,共 个样本,下标为每个样本的特征数,共 个特征。

我们的假设函数为:

那我们的损失函数为:

我们的目标就是找到参数向量 的值,使得 最小。

我们的步骤为:

  1. 选取参数向量的初始值
  2. 对于每个参数 的值做如下更新:

带入上式,则有

由于该算法每次更新 中的元素,需要处理整个输入样本集,所有该算法也叫批量梯度下降(batch gradient descent)。当参数向量 中所有元素都更新之后代入 ,通过两次迭代值来判断其是否收敛以终止迭代。



blog comments powered by Disqus