号:
m:训练数据的大小
x:输入变量,是向量
y:输出变量,是实数
(x,y):一个训练实例
:第i 个训练实例,i 是上标而不是指数
在这里,为了方便说明,又添加了一个变量,问题变为房屋面积和卧室数目与房屋价格的关系。
如果假设训练集中的数据使用线性回归解决的话,假设拟合函数如下:
其中x0设为1。
代价函数定义为:
m即为样例的数目。我们找出使这个函数最小的参数值,就得到了拟合训练集的最佳参数。
使用梯度下降法(gradient descent)来求参数,更新规则为:
当只有一个训练样例时,偏导数的计算公式如下:
从而得到:
考虑到所有m 个训练实例,更新规则变为:
运用这个规则直到收敛,就是批梯度下降算法(batch gradient descent)。其中,收敛的判断有两种规则,一是判断两次迭代后参数的变化,二是判断两次迭代后目标函数的变化;规则中的α是学习速率,这个需要在实践中进行调整,其值过小会导致迭代多次才能收敛,其值过大会导致越过最优点发生震荡现象。
梯度下降算法会导致局部极值点的产生,解决这个的方法是随机进行初始化,寻找多个最优点结果,在这些最优点中找最终结果。
当数据量较大时,每迭代一次就要遍历全部数据一次,这样会使得运行变成龟速。为了解决这个问题,一般采用如下的方法:
意为更新参数时,不必遍历整个数据集,只需要一个实例便足够了。该算法可以达到很高的效果,但是会导致遍历次数增多,不能精确收敛到最优值等问题。该方法被称为增量梯度下降(incremental gradient descent)或随机梯度下降(stochastic gradient descent)。