week2|机器学习(吴恩达)学习笔记

发布于:2025-03-29 ⋅ 阅读:(15) ⋅ 点赞:(0)

一、多维特征

1.1、什么是多维特征?

1)在我们的原始估计房价的版本中,我们只有一个变量: x x x 来预估 y y y

在这里插入图片描述

2)但是现在假设你也知道其他的参数变量,那么我们就可以引入多个参数来提高预测 y y y的准确性。(这就是多维特征)

  • x x xi表示第i个特征变量
  • 向量x(2)表示第2组训练样例
    在这里插入图片描述

3)此时,我们的预测方程模型就变成了:

在这里插入图片描述

4)但是,我们觉得这样表示会变得非常繁琐,因此我们可以引入向量来表示(因为我们可以直接使用numpy的函数库来直接计算)

在这里插入图片描述

二、矢量化

2.1、如何做矢量化?/做矢量化的优势有哪些?

1)在1.1中,我们发现可以通过矢量化来简化操作,但是,我们应该如何来进行矢量化呢?

  • 下面是样例w1,w2,w3的矢量化结果
  • 简单来说,就是将其装入一个array
    在这里插入图片描述

2)将其装入np.array()后我们就可以十分简单的对其操作

  • 相比与没有矢量化的数据,我们只需要使用np.dot(w,x)即可
  • np.dotnumpy中用来计算向量点积的函数
    在这里插入图片描述

2.2)计算机底层是如何实现矢量化的?

  • 用一句话来说:就是多线程同步计算
    在这里插入图片描述
  • 让我们来举一个例子更好说明np.dot()的并行操作
    在这里插入图片描述

三、用于多元线性回归的梯度下降

3.1:使用矢量化后,线性回归方程的变化

在这里插入图片描述

1)把成本函数展开呢?会有什么不同呢?

  • 我们发现,函数模型几乎没有变化,只是单独分别计算的每个训练样例的成本误差函数
    在这里插入图片描述

四、特征放缩

4.1:什么是特征放缩?

在这里插入图片描述

1)仍然对于上述的多维特征方程,我们来观察他们的成本函数图像

  • 我们可以发现由于x1x2的取值大小数量级差别过大,这导致了我们的等高线图像变得很窄
  • 也就意味着,我们的梯度下降的效率非常低下,需要非常多次的梯度下降才能找到全局最小值
    在这里插入图片描述

2)在这种情况下,我们就需要采用特征放缩,来提高梯度下降的效率

在这里插入图片描述

4.2:如何实现特征放缩?

1)法1:类似于权值归一化,我们可以计算其每个数据占最大值的占比

在这里插入图片描述

2)法二:均值归一化

  • 计算每个数据与均值的差,再计算占比
    在这里插入图片描述

3)法三:标准差归一化(了解即可)

在这里插入图片描述

五、判断梯度下降是否收敛

5.1:我们如何判断梯度下降的优越性呢?如何计算梯度下降的次数呢?

  • 我们可以通过画一个函数图像来实现:计算次数 --> j ( w ) j(w) j(w)
    在这里插入图片描述

六、如何设置学习率

6.1:在前面的学习中,我们一直没有说明如何选择学习率,现在,让我们来用 i t e r a t i o n s − > J ( w , b ) iterations->J(w,b) iterations>J(w,b) 函数图像来解决这个问题

1)我们函数图像我们可以发现,假设Alpha过大,我们可以轻易通过函数图像的收敛性看出

  • 因此,我们可以不运行梯度下降,根据函数图像即可看出
    在这里插入图片描述

2)因此,我们可以枚举Alpha的值从0.001,每次令其Alpha=*3来观察函数图像,计算其最适合的Alpha

在这里插入图片描述

七、特征方程与多项式回归

7.1:我们发现通过Alpha的选择,可以提高拟合效率/准确性,同样的,我们也可以通过输入样例来提高准确率

在这里插入图片描述

7.2:多项式回归提高准确性

1)在前面的数据中,我们都是用线性函数来拟合数据,那么如何将曲线、非线性函数拟合到数据中呢?

  • 现在,我们有这样一个数据集,我们发现用线性比较难来拟合数据
    在这里插入图片描述
  • 因此我们考虑引入曲线函数来增加拟合程度
  • 注意,此时我们的数据的数量集差别过大,所以应该使用特征放缩来优化 J ( W ) J(W) J(W)误差函数
    在这里插入图片描述
    至于怎么选择曲线函数,我们会在下一周学到😄,下周见!!