码迷,mamicode.com
首页 > 其他好文 > 详细

机器学习 (一) 单变量线性回归 Linear Regression with One Variable

时间:2016-09-04 14:28:31      阅读:282      评论:0      收藏:0      [点我收藏+]

标签:

文章内容均来自斯坦福大学的Andrew Ng教授讲解的Machine Learning课程,本文是针对该课程的个人学习笔记,如有疏漏,请以原课程所讲述内容为准。感谢博主Rachel Zhang和 JerryLead 的个人笔记,为我做个人学习笔记提供了很好的参考和榜样。

 


 

§ 1.  单变量线性回归 Linear Regression with One Variable

 1. 代价函数Cost Function 

在单变量线性回归中,已知有一个训练集有一些关于x、y的数据(如×所示),当我们的预测值h(x)被假设为h(x)=theta_0+theta_1*x时,我们要使得theta_0、theta_1两个参数所表示的直线(蓝线)尽量与这些数据点很好地拟合。想要实现这个思路,就需要使得同一x对应的h(x)与y 尽量相近。在这样的假设中,J(theta_1,theta_2)被称为Cost Function(也称平方误差代价函数),我们在实验过程中应该使得这一函数值尽量小。在这样的h(x)中,只出现了一个变量x,因此也叫单变量(One Variable);以后也可能会出现多变量的情况,比如h(x1,x2)=theta_0+theta_1*x1+theta_2*x2.

技术分享技术分享

 单参数的情况下非常容易理解:在这里,Andrew Ng将h(x)简化,使得theta_0=0,只考虑theta_1。再举例示范了一下由J(theta_1)确定theta_1值的过程。

技术分享 

单参数情况下,得出的J(theta_1)是一个弓形,而当有两个参数的时候则有所不同。

有两个参数的情况下,得出的J(theta_0,theta_1)是一个3D的碗状图形,三个坐标轴分别代表了两个参数theta_0,theta_1和代价函数J(theta_0,theta_1)。

技术分享

但通常,我们用轮廓图(Contour Plot or Coutour Figure)来表示这样的3D图片。

技术分享

上右即为轮廓图。在同一个椭圆上的各个点,J(theta_0,theta_1)的值是相同的,而越靠中心的椭圆则J值越小。

 

 

2.梯度下降算法Gradient Descent

梯度下降算法被广泛运用在机器学习领域中。本章中,主要介绍利用梯度下降算法(Gradient Descent)最小化线性回归的代价函数。

技术分享

1 初始设定theta_0与theta_1,一般将二者都初始化为0

2 不断改变theta_0与theta_1,使得J减小  

3 直到找到最小值时结束

 技术分享

把Cost Function的图形想成山,而你在山上的某一点,那么梯度下降算法就是环顾四周,找到最快下山的路径,迈出一步,然后再环顾四周,找到最快下山的路径,再迈出一步,如此反复。

但梯度下降算法有一个特点,如果你从稍微偏一些的角度作为初始化点,那么完全可能去到另一个局部最优解的点上,与之前的完全不同。例如下图:

 技术分享

事实上线性回归的代价函数总是一个凸函数(Convex Function),这样的函数只个全局最优解,不存在有多个局部最优解的情况,所以不需要考虑这个问题。

 

具体的算法如下:

技术分享

其中α表示学习速率(Learning Rate)表示我们以多大幅度更新theta_j

技术分享

注意:我们应该像左边的情况这样实现同步更新(Simultaneous Update),否则就会出现错误。

例题(考察了一下同步更新):

技术分享

 

技术分享

对于粉色方框里的导数项,则表示了与蓝线相切的红线的斜率。

技术分享

关于学习速率α,如果过小,那么梯度下降的速度会很慢;如果过大,那么可能难以收敛,甚至会发散。所以应该适当地选择α。

技术分享

如果出现theta_1已是局部最优解的情况,那么在那一点,它的切线斜率为0,因此theta_1不会改变。可见,即使α不变,梯度下降算法也能找到局部最优点

技术分享

由于每接近局部最优解一些,梯度下降算法都会自动的把下降幅度变小,因此无需随之减小α

 

技术分享

推导可得:

技术分享

而后引入批量梯度下降算法的概念:即在梯度下降算法的每一步都用到了所有的训练样本。

技术分享

 

 

在数据量较大的情况下,梯度下降算法比正规方程适用。

 

 


笔记目录

(一)单变量线性回归 Linear Regression with One Variable

(二)多变量线性回归 Linear Regression with Multiple Variables

(三)逻辑回归 Logistic Regression 

(四)正则化与过拟合问题 Regularization/The Problem of Overfitting

(五)神经网络的表示 Neural Networks:Representation

(六)神经网络的学习 Neural Networks:Learning

(七)机器学习应用建议 Advice for Applying Machine Learning 

(八)机器学习系统设计Machine Learning System Design

(九)支持向量机Support Vector Machines

(十)无监督学习Unsupervised Learning

(十一)降维 Dimensionality Reduction

(十二)异常检测Anomaly Detection

(十三)推荐系统Recommender Systems

(十四)大规模机器学习Large Scale Machine Learning

机器学习 (一) 单变量线性回归 Linear Regression with One Variable

标签:

原文地址:http://www.cnblogs.com/zhuyl/p/5838867.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!