机器学习-吴恩达笔记2

作者: 皮皮大 | 来源:发表于2019-11-25 19:18 被阅读0次

本周主要讲解的内容是:

  • 多维特征

  • 多变量梯度下降

  • 梯度下降法实践

  • 正规方程


多维特征Multiple Features

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

MjiSfS.png

n:代表的是特征的数量

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

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

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

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

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


多变量梯度下降

算法目标

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

其中

算法过程

原始形式:

将代价函数​带进去:

求导数之后:

其中​

当​时:

MjKQwF.png

Python代码

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

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)

梯度下降法实践

特征缩放

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

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

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

MjKpsf.png

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

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

MvFKYV.png

均值归一化

MvFOhV.png

学习率问题

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

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

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

常用学习率包含:​

特征和多项式回归

如房价预测问题,


MvArdA.png

房屋面积=宽度 * 深度

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

MvETne.png

正规方程 Normal Equation

梯度下降缺点

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

MvZFqe.png

正规方程demo

正规方程具有不可逆性

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

Mveew4.png

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

Normal Equation VS Gradient Descent

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

参数​求解过程

目标任务
\theta=(X^TX)^{-1}X^Ty
其中:
J(\theta)=\frac{1}{2m}\sum^m_{i=1}(h_{\theta}(x^{(i)})-y^{(i)})^2
h_\theta(x)=\theta^T{X}=\theta_0x_0+\theta_1x_1+…+\theta_nx_n
具体过程:

  1. 将代价函数​的向量表达式转成矩阵表达式
    J(\theta) = \frac{1}{2}(X\theta-y)^2
  • X为m行n列(m个样本个数,n个特征个数)

  • ​为n行1列的矩阵

  • y为m行1列的矩阵

  1. ​做变换:
    \begin{align} J(\theta) & = \frac{1}{2}{(X\theta-y)}^T(X\theta-y) \\ & = \frac {1}{2}{(\theta^TX^T-y^T)(X\theta-y)} \\ & = \frac {1}{2}{(\theta^TX^TX\theta-\theta^TX^Ty-y^TX\theta+y^Ty)} \end{align}
  2. 在进行求解偏导的过程中会用到的公式
    \frac {\partial AB}{\partial B} = A^T
    \frac {\partial X^TAX}{\partial X}=2AX
  3. 求导
    \begin{align} \frac{\partial J(\theta)}{\partial \theta} & =\frac{1}{2}(2X^TX\theta-X^Ty-(y^TX)^T-0) \\ & = \frac{1}{2}(2X^TX\theta-X^Ty-X^Ty-0) \\ & = X^TX\theta-X^Ty \\ \end{align}
    令上面的导数等于0,得到​\theta

Python实现

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

相关文章

  • 引言

    这个文集是Coursera上吴恩达教授授课的《机器学习》课程的课程笔记与总结,下面是课程的链接:吴恩达教授机器学习...

  • 吴恩达deep_learning_week2_logistic回

    吴恩达deep_learning_week2_logistic回归 标签: 机器学习深度学习 这是吴恩达深度学习里...

  • 《吴恩达 - 机器学习》笔记

    学习资源 b站:机器学习(Machine Learning)- 吴恩达(Andrew Ng)网易:吴恩达《机器学习...

  • 内容整理(持续更新)

    机器学习基础 视频教程:吴恩达机器学习-网易云公开课笔记地址:机器学习笔记作业练习:https://github....

  • 30行python代码实现最简单的神经网络

    这篇文章算是看了吴恩达老师的deeplearning视频的课后笔记吧,感谢吴恩达老师致力于机器学习、深度学习的普及...

  • 5.machine_learning_LR_Softmax

    机器学习逻辑回归与softmax 补充阅读资料: 吴恩达老师机器学习课程笔记[https://github.com...

  • 机器学习笔记

    学习记录,从小白做起。 传统给机器学习 先来镇楼的,吴恩达机器学习:吴恩达机器学习 OCTAVE版本下载:http...

  • 吴恩达机器学习课程

    吴恩达机器学习课程

  • 机器学习相关资料整理

    初学机器学习,将部分资料整理在此,逐渐完善。 视频资源 吴恩达机器学习 介绍:吴恩达老师关于机器学习的入门级视频...

  • 机器学习-吴恩达笔记2

    本周主要讲解的内容是: 多维特征 多变量梯度下降 梯度下降法实践 正规方程 多维特征Multiple Featur...

网友评论

    本文标题:机器学习-吴恩达笔记2

    本文链接:https://www.haomeiwen.com/subject/aigjwctx.html