机器学习公开课笔记第二周,线性回归的梯度下降法

时间:2023-02-04 23:11:08

一,梯度下降法Gradient Decent

当我们以线性回归的模型来拟合我们的数据集时,我们如何来确定假设函数的参数值呢?

首先我们以两个参数为例,即Hθ(x) = θ0 + θ1X,也就是一个一次函数,而代价函数机器学习公开课笔记第二周,线性回归的梯度下降法,我们为了尽量拟合数据集,也就是选择合适的θ0(截距) θ1(斜率)使代价函数J(θ0,θ1)最小,

机器学习公开课笔记第二周,线性回归的梯度下降法

  • 那我们该如何计算θ0, θ1

假设θ0=0,代价函数J就转变为关于θ1的二次函数,因为开平方,所以二次项的系数一定是正数(高中数学),所以代价函数J一定有最小值

此时我们可以画出J(θ1)的一种可能的二次函数分布图

机器学习公开课笔记第二周,线性回归的梯度下降法

由图可知,当θ1=1时,J最小

  • 那我们如何得到使J最小的θ1值呢?

我们可以任取曲线上的一个θ,让它往最小值的方向移动,那我们怎么知道该往左移还是右移?

我们观察曲线发现,最低点(最小值)的斜率为0,最低点的左侧斜率小于0,右侧大于0,只需让θ减去该点的斜率就可以让它往最低点移动,当斜率为0时它就停在了最低点,也就是收敛于1

机器学习公开课笔记第二周,线性回归的梯度下降法

 

  • 如果θ0一开始不设为0呢?

那我们可以画出关于代价函数J(θ12)的三维图

机器学习公开课笔记第二周,线性回归的梯度下降法

 

我们同样选取任意一点(θ12),通过减去他们各自的在该点的斜率来到打最低点

数学上称这种求自求点斜率的方法为偏导,这种通过减去斜率的方法称为梯度下降法(Gradient Decent)

 机器学习公开课笔记第二周,线性回归的梯度下降法

那我们如何确定向最低点移动的速度呢?

一方面是由该点的斜率来决定,另外由一个系数α学习速率决定,

1,α不能设太大,太大有时会越过最低点,不能使θj收敛于最低点使结果发散

2,α太小会使程序运行速度太慢

3,随着θ越来越接近最小值,偏导数越来越小,所以没有必要逐渐随着迭代次数的增加减小学习速率α

机器学习公开课笔记第二周,线性回归的梯度下降法

  对每次的移动必须同时进行,并和成各个方向上的位移,即每一次减偏导必须对每个θj同时进行

机器学习公开课笔记第二周,线性回归的梯度下降法

 两个参数的线性回归求完偏导数之后每次迭代的公式

机器学习公开课笔记第二周,线性回归的梯度下降法

 多个参数的线性回归求完偏导数之后每次迭代的公式

机器学习公开课笔记第二周,线性回归的梯度下降法

 

梯度下降法会到达局部最低点(由起点决定,即θ1θ2的初始值决定),不一定会到达全局最优点

机器学习公开课笔记第二周,线性回归的梯度下降法

 

二,梯度下降法的优化方法

1,特征缩放(Feature Scaling)

当不同的特征值大小范围不一致时,算法运行效率会很低,我们一般把它缩放到-1<=x<=1或,-0.5<=x<=0.5,通过(x-mean)/range公式,

机器学习公开课笔记第二周,线性回归的梯度下降法

 

 2,学习速率α

如何确定学习速率并不是一件简单的事

一种方式是绘制一张横坐标是迭代次数,纵坐标是代价函数的函数图,看是否单调递减,如不是需要减小学习速率α

机器学习公开课笔记第二周,线性回归的梯度下降法机器学习公开课笔记第二周,线性回归的梯度下降法

 

总的来说,学习速率太小,代价函数收敛太慢,程序云星很慢,学习太大,代价函数没有单调递减,甚至可能会发散,也就到不了最小值

 

3,特征和多项式回归(Features and Polynomial Regression)

当我们拿到数据集先可以进行预处理,使机器学习的结果更好

1)我们有时可以根据各个特征之间关系来合并特征,比如说房子的长度和宽度,我们可以让他们相乘合成一个新的特征面积

2) 我们之前线性回归的假设函数都是多元一次函数,如果我们的想要多元多次的假设函数呢?Hθ(x) = θ0 + θ1X2, 我们可以用新的特征来表示X'来表示X2,一样能转化为多元一次表示假设函数Hθ(x) = θ0 + θ1X',

  不过需要注意的事,X的范围也随着新的特征放大了,要进行特征缩放

 

4,正规方程(Normal Equation)

还有一种在线性代数中叫做正规方程的数学方法求θ

 机器学习公开课笔记第二周,线性回归的梯度下降法

梯度下降法和正规方程各有各的优点,以下是他们的区别,总的来说,

1,梯度下降法需要选择学习速率,正规方程不需要

2,梯度下降法需要迭代,正规方程不需要

3,梯度下降法时间复杂度是(KN2),正规方程时间复杂度是O(N3)

当特征少于10000时,使用正规方程,否则使用梯度下降法

 机器学习公开课笔记第二周,线性回归的梯度下降法