机器学习-吴恩达笔记2

阿里云2000元红包!本站用户参与享受九折优惠!

本周主要讲解的内容是:

  • 多维特征

  • 多变量梯度下降

  • 梯度下降法实践

  • 正规方程


多维特征Multiple Features

还是利用房价模型的例子,增加了更多的特征,比如:房间楼层、房间数量、地理位置等,构成了一个含有多个变量的模型


MjiSfS.png

n:代表的是特征的数量

​:代表第​个训练实例,是特征矩阵中的第​行,是一个向量vector

​:表示的是第​个训练实例的第​个特征;i表示行,j表示列

支持多变量的假设​表示为:

为了简化公式,引入​,公式转化为:

特征矩阵X 的维度是​,公式简化为:


多变量梯度下降

算法目标

与单变量线性回归类似,在多变量线性回归中,构建一个代价函数,则这个代价函数是所有建模误差的平方和,即:

其中

算法过程

原始形式:

将代价函数​带进去:

求导数之后:

其中​

当​时:


MjKQwF.png

Python代码

给定特征矩阵X,输出y,学习率​,求代价函数​

<pre spellcheck=”false” class=”md-fences md-end-block md-fences-with-lineno ty-contain-cm modeLoaded” lang=”python” cid=”n48″ mdtype=”fences” style=”box-sizing: border-box; overflow: visible; font-family: Monaco, Consolas, “Andale Mono”, “DejaVu Sans Mono”, monospace; margin-top: 0px; margin-bottom: 20px; background-color: rgb(51, 51, 51); font-size: 0.9rem; display: block; break-inside: avoid; text-align: left; white-space: normal; position: relative !important; padding: 10px 10px 10px 0px; width: inherit; background-position: initial initial; background-repeat: initial initial;”> import numpy as np

def computeCost(X,y,theta):
inner = np.power(((X * theta.T) – y), 2) # 求解每个平方项
return np.sum(inner) / (2 / lne(X)) # 求和再除以2*len(X)</pre>

<pre mdtype=”fences” cid=”n152″ lang=”python ” class=”md-fences md-end-block md-fences-with-lineno ty-contain-cm modeLoaded” spellcheck=”false” style=”box-sizing: border-box; overflow: visible; font-family: Monaco, Consolas, “Andale Mono”, “DejaVu Sans Mono”, monospace; margin-top: 0px; margin-bottom: 20px; background-color: rgb(51, 51, 51); font-size: 0.9rem; display: block; break-inside: avoid; text-align: left; white-space: normal; position: relative !important; padding: 10px 10px 10px 0px; width: inherit; background-position: initial initial; background-repeat: initial initial;”> import numpy as np

def normalEquation(X, y):
theta = np.linalg.inv(X.T@X)@X.T@Y # X.T@X等价于X.T.dot(X) @等价于.dot
return theta</pre>

Python实现

令上面的导数等于0,得到​

  1. 求导

  2. 在进行求解偏导的过程中会用到的公式

  3. ​做变换:

  • X为m行n列(m个样本个数,n个特征个数)

  • ​为n行1列的矩阵

  • y为m行1列的矩阵

  1. 将代价函数​的向量表达式转成矩阵表达式

具体过程:

其中:

目标任务

参数​求解过程


MvGlLR.png

梯度下降正规方程
需要选择学习率​不需要
需要多次迭代一次运算得出
当特征数量n大时也能较好适用需要计算 ​如果特征数量n较大则运算代价大 矩阵逆的计算时间复杂度为​,通常小于10000建议用正规方程
适用于各种类型的模型只适用于线性模型,不适合逻辑回归模型等其他模型

Normal Equation VS Gradient Descent

不可逆矩阵不能使用正规方程求解


Mveew4.png

正规方程就是通过求解下面例子中的方程找出使得代价函数最小参数​

正规方程具有不可逆性

正规方程demo


MvZFqe.png

需要多次迭代才能达到局部最优解

梯度下降缺点

正规方程 Normal Equation


MvETne.png

在实际拟合数据的时候,可能会选择二次或者三次方模型;如果采用多项式回归模型,在运行梯度下降法之前,特征缩放很有必要。


MvArdA.png

同时房屋面积=宽度 * 深度

<svg xmlns:xlink=”http://www.w3.org/1999/xlink” width=”45.726ex” height=”3.033ex” viewBox=”0 -887.4 19687.4 1306.1″ role=”img” focusable=”false” style=”vertical-align: -0.972ex; max-width: 37800px;”><g stroke=”currentColor” fill=”currentColor” stroke-width=”0″ transform=”matrix(1 0 0 -1 0 0)”><g transform=”translate(3338,0)”><g transform=”translate(-15,0)”><g transform=”translate(0,21)”><g transform=”translate(7481,0)”><text font-family=”STIXGeneral,’Arial Unicode MS’,serif” stroke=”none” transform=”scale(52.083) matrix(1 0 0 -1 0 0)”>宽</text></g><g transform=”translate(8233,0)”><text font-family=”STIXGeneral,’Arial Unicode MS’,serif” stroke=”none” transform=”scale(52.083) matrix(1 0 0 -1 0 0)”>度</text></g><g transform=”translate(11854,0)”><text font-family=”STIXGeneral,’Arial Unicode MS’,serif” stroke=”none” transform=”scale(52.083) matrix(1 0 0 -1 0 0)”>深</text></g><g transform=”translate(12606,0)”><text font-family=”STIXGeneral,’Arial Unicode MS’,serif” stroke=”none” transform=”scale(52.083) matrix(1 0 0 -1 0 0)”>度</text></g></g></g></g></g></svg>

如房价预测问题,

特征和多项式回归

常用学习率包含:​

  • 如果学习率过小,则达到收敛所需的迭代次数会非常高,收敛速度非常慢

  • 如果学习率过大,每次迭代可能不会减小代价函数,可能会越过局部最小值导致无法收敛

梯度下降算法的每次迭代受到学习率的影响

学习率问题


MvFOhV.png

均值归一化


MvFKYV.png

其中​为平均值,​为标准差

解决办法:将所有的特征的尺度尽量缩放到-1到1之间,令:


MjKpsf.png

绘制代价函数的等高线图能,看出图像会显得很扁,梯度下降算法需要非常多次的迭代才能收敛。

以房价问题为例,假设仅用两个特征,房屋的尺寸和数量,以两个参数分别为横纵坐标,假设尺寸在0-2000平方英尺,数量在0-5之间。

面对多维度特征问题,我们需要保证这些特征具有相近的尺度,帮助梯度下降算法更快地收敛。

特征缩放

梯度下降法实践

https://www.jianshu.com/p/a42de427261d

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论