Machine Learning第一讲[单变量线性回归] --(二)参数学习
来源:互联网 发布:电脑音效软件 编辑:程序博客网 时间:2024/06/05 10:17
内容来自Andrew老师课程Machine Learning的第一章内容的Parameter Learning部分。
一、Gradient Descent(梯度下降)
梯度下降算法可将代价函数J最小化,梯度下降算法不仅应用在线性回归中,也应用在机器学习的其他诸多领域。
使用梯度下降算法最小化函数J的过程:
S1:初试化和的值,一般都将其设为0。
S2:使用算法不断变化和的值,使得的值不断减小,直到J为最小。
下图是一个数据集对应的轮廓图,将这图中的两个高点想象为两座山,在梯度下降算法中,如果你想要尽快走下山,你需要思考以什么样的小碎步迈下山。
1、如果现在你站在A的位置上,环顾四周,找到一个最快的方向,跨出一步,到达A1位置,再在A1位置上,环顾四周,找到一个最快的方向,到达A2位置,依次循环,最终到达A End位置,这是A点下山的最快的方向。
2、如果现在你站在B的位置上,环顾四周,找到一个最快的方向,跨出一步,到达B1位置,再在B1位置上,环顾四周,找到一个最快的方向,到达B2位置,依次循环,最终到达B End位置,这是B点下山的最快的方向。
观察可知,无论是A End位置还是B End位置都是轮廓图中的低点,即梯度下降算法最终会落在低点的位置(此位置J值最小)。
实质上,我们这样做的方法是借助代价函数在某点的导数。切线的斜率是在那个点的导数,它会给我们一个方向,这就是我们的走向(其实是J函数的偏导数),我们不断朝着最陡的下降方向前进,最终会到达最低点。每个步骤的大小由参数α确定,这称为学习速率。(α越小,我们每次迈的步子越小,α越大,我们每次迈的步子越大)
下图是梯度下降算法的定义:
这里需要强调的是和同时更新,如上图左半部分所示,右半部分所对应的是不同时更新的情况,这种情况虽然有时候能得到正确的结果,但是存在一定的误差,在机器学习算法中并不使用这种方法,我们使用同步更新的算法思想。
二、Gradient Descent Intuition(梯度下降直观过程)
梯度下降算法:
Repeat until convergence:
其中,α表示学习速率,表示J函数的偏导数。
1、无论偏导数的符号是正是负,梯度下降算法最后都能在最优处收敛,如下图,是对偏导数符号为正和为负的分析:
2、学习速率α过大或者过小对梯度下降过程的影响:
3、如下图:局部最优点的斜率为0,即J函数右侧偏导数为0,因此在这个位置,即此时梯度算法已收敛,再次循环时,值不变。
4、怎样理解即使学习速率α不变,梯度下降算法仍能收敛于局部最优值?
如上图,
(1)在A处,斜率比较大,因此的变化比较大,所以可能从A跨到B(这个之间的跨度比较大)。
(2)在B处,斜率比A小一些,因此的变化比在A点的变化小,所以可能从B跨到C(这个之间的跨度比A到B小一些)。
(3)在C处,斜率比B小一些,因此的变化比在B点的变化小,所以可能从C跨到D(这个之间的跨度比B到C小一些)。
…………
(n-1)在F处,斜率比E小一些,因此的变化比在E点的变化小,所以可能从F跨到P(这个之间的跨度比E到F小一些)。
(n)P处,在不断梯度下降的过程中,点的斜率越来越趋于0,因此变化的幅度越来越小,直到到达最优点P,P点的斜率为0,因此梯度下降趋于收敛。
因此,在梯度下降的过程中,即使α的值不变,由于斜率的不断变化,梯度下降算法的步伐会自动变小,故梯度下降算法仍能收敛于局部最优值。
三、Gradient Descent For Linear Regression(线性回归的梯度下降函数)
梯度下降应用在线性回归、线性回归模型和平方误差代价函数……
这里将梯度下降和代价函数结合,如下图:
将 代入梯度下降算法中,并进行J函数偏导数运算,运算结果如下:
强调:这里对和的求导,需要将两者当成未知数,的导数为1(相当于x对于x的导数为1),对的导数为。
对和执行梯度下降算法运算,如下图,注意两者的更新需要同步进行:
举例:下图是使用梯度下降算法不断更新和的过程,更新轨迹为A -> B -> C -> …… -> P(更新过程中二者的值为这些点对应的横纵坐标值),P为最优点。
因上述算法针对的是整个数据集,通过对所有的样本的计算来求解梯度的方向。因此其叫做批梯度下降法(Batch Gradient Descent)。
一般情况下,梯度下降算法可得到局部最优值,但是在线性回归中使用梯度下降算法只能得到一个全局最优值,没有局部最优值,因此在线性回归中梯度下降算法总是收敛于全局最优值。
事实上,J是一个凸函数,其没有局部最优解,只有全局最优解。如下图:
上面所示的椭圆是二次函数的轮廓,其是梯度下降的轨迹,它的初始化值为(48,30)。中间点是梯度下降算法收敛的最小值。
- Machine Learning第一讲[单变量线性回归] --(二)参数学习
- Machine Learning第一讲[单变量线性回归] --(一)模型和代价函数
- Machine Learning第二讲[多变量线性回归] -(二)计算参数分析
- Machine Learning第一讲[单变量线性回顾] --(三)线性代数知识复习(选学)
- 机器学习 Machine Learning(by Andrew Ng)----第二章 单变量线性回归(Linear Regression with One Variable)
- Stanford Online Machine Learning 学习笔记1——单变量线性回归
- Stanford Online Machine Learning 学习笔记1——单变量线性回归
- Coursera《machine learning》--(2)单变量线性回归(Linear Regression with One Variable)
- Standford 机器学习—第一讲 Linear Regression with one variable(单变量线性回归)
- 机器学习笔记(二) 单变量线性回归
- Machine Learning第二讲[多变量线性回归] --(一)多变量线性回归
- Machine Learning:二(多变量线性回归问题)
- 单变量线性回归(二)
- 机器学习Machine learning(一)线性回归
- machine learning(线性回归)
- Machine Learning线性回归
- Machine Learning - II. Linear Regression with One Variable单变量线性回归 (Week 1)
- 【Machine Learning】单参数线性回归 Linear Regression with one variable
- 最小生成树Prim和kruskal
- 2072 分配房间 二分
- handle内存泄漏问题
- 数据结构概述
- Ubuntu 下 安装 ss
- Machine Learning第一讲[单变量线性回归] --(二)参数学习
- windows下批量修改文件后缀名
- 'target/WEB-INF/lib/org.springframework.spring-library-3.1.0.RELEASE.libd' in project 'mvcProject' c
- MFC 不同项目间多控件复制使用
- 漫谈线程与锁:死磕哲学家进餐问题
- centos无法访问网络
- [BZOJ 3675][Apio2014]序列分割:DP斜率优化
- Java Socket编程与客户/服务器应用开发(二)
- 图像二值化阈值选取