吴恩达机器学习课程第一周

关于线性回归的记录:
使用的损失函数是平方误差损失函数J(θ),也就是最简单的假设函数和真实值差的平方和(对于所有样本求和),然后最小化J(θ),也就是使用梯度下降算法;平方误差代价函数是解决回归问题最常见的手段;

对于单变量线性回归问题:
吴恩达机器学习课程第一周

如果是对于单变量线性回归,代价函数(参数为θ)关于假设函数中参数的图形为:
吴恩达机器学习课程第一周

因为只有一个变量所以只有两个参数,总可以找到一组参数使得该代价函数最小,当然我们需要一种优化算法可以自动的求解使得代价损失函数最小的模型的参数值;

梯度下降算法:
梯度下降算法是用来求解函数最小值的算法,我们使用该算法来求解使得代价函数取最小值的模型的参数,梯度下降背后的思想是首先找一组参数(初始化的值)计算代价函数,接下来我们取另一组可以使代价函数下降最多的参数组合,重复这样的步骤知道最后找到一个局部最小值。

批量梯度下降(batch gradient descent):
吴恩达机器学习课程第一周

批量梯度下降算法用于求解使得代价函数J(θ)最小的模型参数θ的值,更新的公式为:
吴恩达机器学习课程第一周

我们需要注意的是在更新模型的参数时需要做到同时更新,也就是下面correct的方法,上面那个并没有保证同时更新(我的理解是首先更新了θ0 然后用这个更新了的θ0去更新原来的θ1,这样并没有保证同时更新~)

梯度下降算法的描述为:
对参数θ进行赋值,使得J(θ)能够按照梯度下降最快的方向进行,一直按照这样的方式进行更新参数θ,直到找到J(θ)的局部最小值;

吴恩达机器学习课程第一周

接下来将梯度下降算法和线性回归算法进行结合:
吴恩达机器学习课程第一周

把上面的导数计算出来之后(对于单变量回归问题)的模型参数θ的更新方式为:
吴恩达机器学习课程第一周

我们可以发现对于梯度下降算法每一步更新我们都使用了全部的样本量,所以这种梯度下降也称为批量梯度下降(batch gradient descent),相应的也有其他的梯度下降算法更新参数(比如随机梯度下降算法)
其实我们之前也有学过线性代数,计算函数的最小值,直接就是求导,也就是不采用梯度下降这样的迭代算法进行更新,直接计算函数的最小值(采用解析方式)被称为正规方程(normal equation),实际上在数据量比较大的情况下,梯度下降算法使用的比较多~

好了,今天就先到这里啦~