最近在看吴恩达的机器学习,做个笔记总结总结。方便自己复习吧。
主要是学习了梯度下降算法和线性回归算法。通过一个具体的例子引出的。回归问题通俗说就是学习算法通过学习训练集得到假设函数,用来预测,估计。而对于单变量的线性回归,他的假设函数是一种线性的方程。h(x) = a + bx,学习算法就是通过找到合适的a,b的值,最终得到假设函数。所以就引入了代价函数这个概念,是用来找到最合适的参数值。
那么代价函数是怎么来的。

这个图中蓝色的线则为建模误差,即模型预测值与实际样本的差距。我们的目标就是选出能使得建模误差的平方和最小的模型参数。使得代价函数最小。


我们的目标就是让目标函数最小化。得到最合适的参数。
代价函数也叫平方误差函数,有时候叫做平方误差代价函数。之所以要求出误差的平方和,是因为误差平方代价函数。它是解决回归问题最常用的手段。
接下来考虑的问题就是如何找到代价函数的最小值,这里用的是梯度下降算法。它的思想是随机选择一个参数的组合,计算代价函数,然后我们寻找下一个能让代价函数值下降最多的参数组合。持续做,知道找到一个局部最小值,因为并没有尝试完所有的参数组合,所以不能确定得到的局部最小值就是全局的最小值,而选择不同的初始参数组合,可能会找到不同的局部最小值。

这里alpha是学习速率,它决定了我们沿着代价函数下降程度最大的方向向下迈出的步子有多大。在这个算法中,要同时更新theta0和theta1的值(同步更新)(至于为啥要同步更新,还没咋想明白)。

对之前的线性回归算法运用梯度下降,关键在于求出代价函数的导数

网友评论