week2第一章---多变量线性回归---吴恩达机器学习笔记

week2第一章---多变量线性回归

  • 1-1 多维特征
  • 4-2 向量化 part-1
  • 4-2 向量化 part-2
    • 实验
  • 4-4 用于多元线性回归的梯度下降法
    • 实验

1-1 多维特征

在原始的线性回归模型中,我们只有一个特征x,用来预测y,如果使用更多的特征看起来看起来会使预测更加合理,所以引入了变量 x 1 x_1 x1 , x 2 x_2 x2 , x 3 x_3 x3 ,…, x n x_n xn 和其他表示方法,如下图所示:
week2第一章---多变量线性回归---吴恩达机器学习笔记_第1张图片
week2第一章---多变量线性回归---吴恩达机器学习笔记_第2张图片
注意这个算法叫做多元线性回归,而不是多元回归(其他东西)!
为了实现多元线性回归,有一个非常巧妙的技巧叫做向量化,这会使我们的学习更加简单。

4-2 向量化 part-1

当学习机器学习算法时,使用向量化会使我们的代码更加简洁,也会使代码运行速度更高效。在向量化的学习中,我们将会使用到数值线性代数库Numpy,以及图形处理单元的GPU。
线性代数中向量索引从1开始,在python中,索引时从0开始的。
week2第一章---多变量线性回归---吴恩达机器学习笔记_第3张图片
向量化实现更快的原理是,Numpy的点乘函数 d o t ( ) dot() dot()可以进行并行计算使计算更加高效。

4-2 向量化 part-2

这节课中我们学习向量化是怎么样工作的。
week2第一章---多变量线性回归---吴恩达机器学习笔记_第4张图片
忽略参数b,在for循环中,j的范围从0~15,执行的是时候是一次一步的计算(one step after another),而在Numpy中,这个过程是在计算机硬件中通过向量化实现的,计算机可以一下得到w和x的所有值,它并行(in parallel)地将每一对w和x相乘,之后,计算机取这16个数字,并使用专门的硬件非常高效地将它们相加,而不需要一个接一个地相加。这意味着向量化可以在更短的时间内执行计算。当我们在大型数据集上执行计算或训练大型模型,向量化显得尤为重要。
week2第一章---多变量线性回归---吴恩达机器学习笔记_第5张图片
对于参数的更新,在for循环中是一次一步的操作,而使用向量化之后,计算机可以一次去除w和d(导数)的所有值,并行地执行减法,并一次存回w。
当只有16个特征的时候,两种方式下运行时间差异非常小,但是当用有上千个特征和非常大的数据集的时候,便会产生巨大的差异。

实验

使用Numpy,数组以及dot()方法,体会向量化与普通算法之间的差异,
并附有Numpy语法供查阅。

4-4 用于多元线性回归的梯度下降法

在之前的学习中,参数 w w w用数字 w 1 , w 2 , . . . , w 1 w_1,w_2,...,w_1 w1,w2,...,w1表示,而使用向量化之后,参数 w w w用向量 w ⃗ \vec{w} w 表示,而不是割离的数字,参数 b b b仍然是数字;同理特征 x x x用向量 x ⃗ \vec{x} x 表示。从而回归模型 f f f成为变量 x x x的函数 f ( w ⃗ , b ) ( x ) f_{(\vec{w},b)}(x) f(w ,b)(x),代价函数 J J J也成为 w ⃗ \vec{w} w b b b的函数 J ( w ⃗ , b ) J(\vec{w},b) J(w ,b)。每次更新参数的方式也同样发生变化。
week2第一章---多变量线性回归---吴恩达机器学习笔记_第6张图片
再看一下与单变量相比的导数项变化:
week2第一章---多变量线性回归---吴恩达机器学习笔记_第7张图片
除了梯度下降法,还有一种方法可以求线性回归中 w w w b b b的值,叫做正规方程(normal equation)。
事实证明,梯度下降时最小化成本函数的好方法,而正规方程只适用于线性回归
我么在本专业的学习中几乎没有其他求 w w w b b b的方法,这种方式不需要使用迭代的梯度下降算法,而是使用一个高级的线性代数库,无需迭代便可一次性求出 w w w b b b
正规方程的缺点是:

  • 并没有应用到其他学习算法中,比如逻辑回归算法,神经网络模型。
  • 如果特征数量特别多,正规方程也特别慢。
    没有机器学习从业者会单独使用正规方程,但如果使用一个成熟的机器学习库以及调用线性回归,这有可能在后端使用正规方程来求解 w w w b b b
    (不需要了解正规方程的具体实现。)
    但是对于大多数机器学习算法,以及自己实现线性回归的时候,记住梯度下降是一种更好的方法。

实验

  • 多元线性回归的定义,编码,以及如何计算 x x x的预测值 f f f
  • 计算成本函数,实现梯度下降的多元线性回归模型。

你可能感兴趣的:(吴恩达机器学习,机器学习,线性回归,python)