【转载】Andrew Ng机器学习公开课笔记 — 线性回归和梯度下降
2014-12-10 16:19
218 查看
转载自 http://www.52ml.net/9921.html,并且 感谢原创作者
1、线性回归(Linear Regression)
先看个例子,比如,想用面积和卧室个数来预测房屋的价格
训练集如下
![](http://www.52ml.net/images/16a67f568f13353f35da96ea4a7849d1.png)
首先,我们假设为线性模型,那么hypotheses定义为
![](http://www.52ml.net/images/88f558cc854ba27a87d153b85be17e11.png)
,
![](http://www.52ml.net/images/9defe8d8425370f18780cd9456bd2234.png)
其中x1,x2表示面积和#bedrooms两个feature
那么对于线性模型,更为通用的写法为
![](http://www.52ml.net/images/ce91b7bb3677bb2e0c9b26c5bc3a9b96.png)
其中把θ和X看成向量,并且x0=1,就可以表示成最后那种,两个向量相乘的形式
那么线性回归的目的,就是通过训练集找出使得误差最小的一组参数θ(称为学习)
为了可以量化误差,定义损失函数(cost function)
![](http://www.52ml.net/images/2a2a3bfc106e3cd1fa3359671ca31a30.png)
比较好理解,就是训练集中所有样本点,真实值和预测值之间的误差的平方和
其中1/2是为了后面计算方便,求导时会消掉
所以我们目的就是找到θ使得J(θ)最小,这就是最小二乘法(最小平方),很容易理解
梯度下降(gradient descent)
为了求解这个最优化问题,即找到θ使得J(θ)最小,可以有很多方法
先介绍梯度下降法
这是一种迭代方法,先随意选取初始θ,比如θ=0,然后不断的以梯度的方向修正θ,最终使J(θ)收敛到最小
当然梯度下降找到的最优是局部最优,也就是说选取不同的初值,可能会找到不同的局部最优点
但是对于最小二乘的损失函数模型,比较简单只有一个最优点,所以局部最优即全局最优
对于某个参数的梯度,其实就是J(θ)对该参数求导的结果
所以对于某个参数每次调整的公式如下,
![](http://www.52ml.net/images/d1552da01c81dc48e48c18b93ce7192a.png)
α is called the learning rate,代表下降幅度,步长,小会导致收敛慢,大会导致错过最优点
所以公式含义就是,每次在梯度方向下降一步
下面继续推导,假设训练集里面只有一个样本点,那么梯度推导为,
![](http://www.52ml.net/images/8faac9258e3d40652f7a0b6c87c2a291.png)
就是求导过程,但是实际训练集中会有m个样本点,所以最终公式为,
![](http://www.52ml.net/images/7c7361009cbf2495af97e56478d1b1ef.png)
因为θ中有多个参数,所以每次迭代对于每个参数都需要进行梯度下降,直到J(θ)收敛到最小值
这个方法称为batch gradient descent,因为每次计算梯度都需要遍历所有的样本点
这是因为梯度是J(θ)的导数,而J(θ)是需要考虑所有样本的误差和
这个方法问题就是,扩展性问题,当样本点很大的时候,基本就没法算了
所以提出一种stochastic gradient descent(随机梯度下降)
想法很简单,即每次只考虑一个样本点,而不是所有样本点
那么公式就变为,
![](http://www.52ml.net/images/ae3bd1e0240af0f2074a1525f9be692e.png)
其实意思就是,每次迭代只是考虑让该样本点的J(θ)趋向最小,而不管其他的样本点
这样算法会很快,但是收敛的过程会比较曲折
整体效果,还是可以will be reasonably good approximations to the true minimum
所以适合用于较大训练集的case
[u][b]2、正规方程[/b]
[/u]前面说了如何用梯度下降来解线性回归问题
其实对于线性回归,也可以不用这种迭代最优的方式来求解
因为其实可以通过normal equations直接算出θ,即具有解析解
首先对于训练集,可以写成下面的向量形式
![](http://www.52ml.net/images/5dbe2af70f0c30e078ebe01fbca99939.png)
![](http://www.52ml.net/images/20b62e546ff291f71c57a0a0377ef529.png)
由于
![](http://www.52ml.net/images/2ead19d9561ae640f732786d561d5e40.png)
,所以
![](http://www.52ml.net/images/90f816e37574b89f5ba3d96933771c63.png)
并且
![](http://www.52ml.net/images/dc5acfa4345818574f929bcc8f73c0fd.png)
,故有
![](http://www.52ml.net/images/15b80db5c1876a13fa501e9c4c0f956b.png)
可以看到经过一系列的推导,J(θ)有了新的表达形式
那么J(θ)的梯度,即求导,可以得到
![](http://www.52ml.net/images/addc35b232d59cf92cc1b6ed4478ff37.png)
而J(θ)最小时,一定是梯度为0时,即可以推出normal equations
![](http://www.52ml.net/images/63b043fe538d6610a5977c3527196d47.png)
所以使J(θ)最小的θ的值可以直接求出,
![](http://www.52ml.net/images/88d3f89db9c506e7d11c23bb1126e799.png)
,可以参考http://www.cnblogs.com/elaron/archive/2013/05/20/3088894.html
1、线性回归(Linear Regression)
先看个例子,比如,想用面积和卧室个数来预测房屋的价格
训练集如下
![](http://www.52ml.net/images/16a67f568f13353f35da96ea4a7849d1.png)
首先,我们假设为线性模型,那么hypotheses定义为
![](http://www.52ml.net/images/88f558cc854ba27a87d153b85be17e11.png)
,
![](http://www.52ml.net/images/9defe8d8425370f18780cd9456bd2234.png)
其中x1,x2表示面积和#bedrooms两个feature
那么对于线性模型,更为通用的写法为
![](http://www.52ml.net/images/ce91b7bb3677bb2e0c9b26c5bc3a9b96.png)
其中把θ和X看成向量,并且x0=1,就可以表示成最后那种,两个向量相乘的形式
那么线性回归的目的,就是通过训练集找出使得误差最小的一组参数θ(称为学习)
为了可以量化误差,定义损失函数(cost function)
![](http://www.52ml.net/images/2a2a3bfc106e3cd1fa3359671ca31a30.png)
比较好理解,就是训练集中所有样本点,真实值和预测值之间的误差的平方和
其中1/2是为了后面计算方便,求导时会消掉
所以我们目的就是找到θ使得J(θ)最小,这就是最小二乘法(最小平方),很容易理解
梯度下降(gradient descent)
为了求解这个最优化问题,即找到θ使得J(θ)最小,可以有很多方法
先介绍梯度下降法
这是一种迭代方法,先随意选取初始θ,比如θ=0,然后不断的以梯度的方向修正θ,最终使J(θ)收敛到最小
当然梯度下降找到的最优是局部最优,也就是说选取不同的初值,可能会找到不同的局部最优点
但是对于最小二乘的损失函数模型,比较简单只有一个最优点,所以局部最优即全局最优
对于某个参数的梯度,其实就是J(θ)对该参数求导的结果
所以对于某个参数每次调整的公式如下,
![](http://www.52ml.net/images/d1552da01c81dc48e48c18b93ce7192a.png)
α is called the learning rate,代表下降幅度,步长,小会导致收敛慢,大会导致错过最优点
所以公式含义就是,每次在梯度方向下降一步
下面继续推导,假设训练集里面只有一个样本点,那么梯度推导为,
![](http://www.52ml.net/images/8faac9258e3d40652f7a0b6c87c2a291.png)
就是求导过程,但是实际训练集中会有m个样本点,所以最终公式为,
![](http://www.52ml.net/images/7c7361009cbf2495af97e56478d1b1ef.png)
因为θ中有多个参数,所以每次迭代对于每个参数都需要进行梯度下降,直到J(θ)收敛到最小值
这个方法称为batch gradient descent,因为每次计算梯度都需要遍历所有的样本点
这是因为梯度是J(θ)的导数,而J(θ)是需要考虑所有样本的误差和
这个方法问题就是,扩展性问题,当样本点很大的时候,基本就没法算了
所以提出一种stochastic gradient descent(随机梯度下降)
想法很简单,即每次只考虑一个样本点,而不是所有样本点
那么公式就变为,
![](http://www.52ml.net/images/ae3bd1e0240af0f2074a1525f9be692e.png)
其实意思就是,每次迭代只是考虑让该样本点的J(θ)趋向最小,而不管其他的样本点
这样算法会很快,但是收敛的过程会比较曲折
整体效果,还是可以will be reasonably good approximations to the true minimum
所以适合用于较大训练集的case
[u][b]2、正规方程[/b]
[/u]前面说了如何用梯度下降来解线性回归问题
其实对于线性回归,也可以不用这种迭代最优的方式来求解
因为其实可以通过normal equations直接算出θ,即具有解析解
首先对于训练集,可以写成下面的向量形式
![](http://www.52ml.net/images/5dbe2af70f0c30e078ebe01fbca99939.png)
![](http://www.52ml.net/images/20b62e546ff291f71c57a0a0377ef529.png)
由于
![](http://www.52ml.net/images/2ead19d9561ae640f732786d561d5e40.png)
,所以
![](http://www.52ml.net/images/90f816e37574b89f5ba3d96933771c63.png)
并且
![](http://www.52ml.net/images/dc5acfa4345818574f929bcc8f73c0fd.png)
,故有
![](http://www.52ml.net/images/15b80db5c1876a13fa501e9c4c0f956b.png)
可以看到经过一系列的推导,J(θ)有了新的表达形式
那么J(θ)的梯度,即求导,可以得到
![](http://www.52ml.net/images/addc35b232d59cf92cc1b6ed4478ff37.png)
而J(θ)最小时,一定是梯度为0时,即可以推出normal equations
![](http://www.52ml.net/images/63b043fe538d6610a5977c3527196d47.png)
所以使J(θ)最小的θ的值可以直接求出,
![](http://www.52ml.net/images/88d3f89db9c506e7d11c23bb1126e799.png)
,可以参考http://www.cnblogs.com/elaron/archive/2013/05/20/3088894.html
相关文章推荐
- Andrew Ng机器学习公开课笔记 — 线性回归和梯度下降
- Andrew Ng机器学习公开课笔记 -- 线性回归和梯度下降
- 机器学习公开课-笔记2-线性回归、梯度下降和正规方程组
- Andrew Ng机器学习公开课02:监督学习应用:梯度下降
- 斯坦福大学机器学习笔记——多变量的线性回归以及梯度下降法注意事项(内有代码)
- 监督学习之梯度下降——Andrew Ng机器学习笔记(一)
- 机器学习第一篇(stanford大学公开课学习笔记) —机器学习的概念和梯度下降
- 机器学习笔记1——线性回归,梯度下降
- 机器学习笔记(1)-线性回归,梯度下降,logistic回归
- 【机器学习入门】Andrew NG《Machine Learning》课程笔记之二 :基本概念、代价函数、梯度下降和线性回归
- Stanford机器学习课程笔记——单变量线性回归和梯度下降法
- 【学习笔记】斯坦福大学公开课(机器学习) 之一:线性回归、梯度下降
- Andrew Ng机器学习——线性回归(Linear Regression)和批处理梯度下降(BGD)
- 斯坦福大学机器学习笔记——单变量的线性回归以及损失函数和梯度下降法(包含代码)
- 斯坦福机器学习视频笔记 Week1 线性回归和梯度下降 Linear Regression and Gradient Descent
- 斯坦福大学公开课 :机器学习课程笔记-[第2集] 监督学习应用.梯度下降
- Andrew Ng机器学习笔记(一):梯度下降法
- 线性回归与梯度下降
- 线性回归及梯度下降
- 机器学习学习笔记(二)-- 梯度下降