• 【吴恩达机器学习笔记】


    ✍个人博客:https://blog.csdn.net/Newin2020?spm=1011.2415.3001.5343
    📣专栏定位:为学习吴恩达机器学习视频的同学提供的随堂笔记。
    📚专栏简介:在这个专栏,我将整理吴恩达机器学习视频的所有内容的笔记,方便大家参考学习。
    💡专栏地址:https://blog.csdn.net/Newin2020/article/details/128125806
    📝视频地址:吴恩达机器学习系列课程
    ❤️如果有收获的话,欢迎点赞👍收藏📁,您的支持就是我创作的最大动力💪

    四、多变量线性回归

    1. 多功能

    在之前的课程中,我们利用房屋的大小这一个特征来那个来预测房屋的价格,但是当特征量变多之后,就得改变应付此类问题的策略了,下图所介绍的是一些常用的表达。

    • n:表示有n个特征值。

    • x(i):表示第i个训练样本的输入特征值。

    • xj(i):表示第i个训练样本中第j个特征量的值。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-z6yR1ilo-1669517140975)(吴恩达机器学习.assets/image-20211030195448926.png)]

    接下来,我们将定义多特征量的表达式,如下:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Qwyb1wLf-1669517140978)(吴恩达机器学习.assets/image-20211030200806178.png)]

    表达式中的x1到xn为n个特征量的值,但是在开头的θ0并没有相应的特征量在旁边,所以我们为了方便记录,额外定义了一个特征量x0并让它的值恒等于1。这样,当将x于θ的值分别对应到矩阵中之后,就可以一目了然,就像上图中的x与θ的两个向量。而想要得到h(x),只需将θ进行一次转置再与x向量相乘即可得到最终表达式。

    小结

    这以上的内容也就是所谓的多线性回归,有多个特征量来决定最终值。

    2. 多元梯度下降法

    因为现在设计到了多个特征量,所以我们的多元梯度下降算法也与之前的梯度下降算法有些许不同,如下所示:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4pHTTtgD-1669517140980)(吴恩达机器学习.assets/image-20211030202145230.png)]

    跟之前的算法相比,其实本质上并没有什么区别,所用的算式也大同小异,只不过在多元当中,需要算的θ值就比之前要多很多,只是在θ0和θ1之后有添加了θ2等特征量的计算。

    特征缩放(Feature Scaling)

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-a2CS0anT-1669517140983)(吴恩达机器学习.assets/image-20211030202820823.png)]

    因为J(θ)的函数图像会受到特征量的影响,所以如果当特征量之间数值相差很大时,就会得到一个非常窄的椭圆形,这会让梯度下降的步伐变得十分缓慢,它可能回来会横跳最终找到最优值。

    相反,如果让特征量之间数值相差很小时,就如上图右侧所示,我们会得到一个更加圆的一个曲线图,这样的话会使梯度下降的路径变得更加直接快速,这其中所用到的方法就是特征缩放

    所以我们对于特征值的处理就要更加注意,下图就是给出相关的规范原则。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SFdRvJyf-1669517140984)(吴恩达机器学习.assets/image-20211030203716302.png)]

    我们通常会将特征值通过各种方式限制在大约-1≤xi≤1这个范围内,但是如果稍微有所偏差是可以在接收范围内的,一般可以将这种“红线”扩大到-3到3或-1/3到1/3之间,如果偏差超过这些范围,那还需要多加考虑了。

    除上述之外,我们在进行特征缩放时,有时也会进行 均值归一化(Mean normalization) 的工作,就是将xi替换成xi减μ,让特征量具有0的平均值。通俗点来讲,就是一种缩小特征值的方法,通过这种方法,我们可以将特征量的范围大致缩小在-0.5≤x≤0.5范围附近。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4WFS2kND-1669517140990)(吴恩达机器学习.assets/image-20211030205033126.png)]

    上图式中的μ1代表训练集中特征x1的平均值,而S1代表特征值的范围,也就是用x1的最大值减去最小值。

    接下来,我将介绍两种测试自己梯度下降的算法正在正确的工作。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RjZzomHp-1669517140991)(吴恩达机器学习.assets/image-20211030210231105.png)]

    一般我们会更倾向于用第一种方法,也就是上图的左侧,通过得到minJ(θ)与迭代次数的函数图像,可以很清楚地观察梯度下降时候往对的方向进行。

    而第二种方法就是上图的右侧,我们可以通过自动收敛测试观察是否已经收敛,也就是说通过判断J(θ)的值是否小于一个阈值来进行判断,但是这种阈值一般很难去取,所以通常会用上面的一个方法去判断。

    通过上述的第一种方法,我们就可以对梯度下降正误进行判断,通常情况下造成图像不正常的情况是因为选取的α即学习率过大,使梯度下降的步伐过大,导致每次下降时都会越过最低点,这时就要减小α的值,例如下图所示:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YHwhWgg3-1669517140995)(吴恩达机器学习.assets/image-20211030211053569.png)]

    • 实验发现,只要α足够小,J(θ)就总能找到最优值。
    • 如果α过大的话,J(θ)可能不会在每一次迭代都下降,甚至可能不收敛(有些情况下也可能会出现收敛速度慢);如果α过小的话,梯度下降的步伐就会很小,要经过漫长岁月才能找到最优值。

    故通常情况下,我们会尝试不同的α值,通过观察J(θ)的变化情况,找到下降最快的所对应的α值。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5BS5Mp2D-1669517140996)(吴恩达机器学习.assets/image-20211030212015799.png)]

    3. 特征与多项式回归

    现在我们考虑的特征量变多了,特征可以任意的进行选取,所以不能单单用一条直线就可以很好的拟合我们的数据,所以这时候要引入其他的函数,例如二次函数、三次函数等,这就是所谓的多项式回归(Polynomial regression)。

    如果要用到梯度下降的话,我们还要考虑特征量之间的差值,如果相差太大就需要用到上节课所讲的特征缩放。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-c1jZB8H2-1669517141001)(吴恩达机器学习.assets/image-20211031204708949.png)]

    下面就是一个例子:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WjDJGQAX-1669517141003)(吴恩达机器学习.assets/image-20211031205318561.png)]

    用二次函数可能不能拟合我们的数据,因为随着x的增大,二次函数反而会减小,所以这时候就可以用其他的函数例如带根号的函数,线性回归后能够更好地拟合数据。

    4. 正规方程

    前面我们是通过梯度下降来得到θ的最优解,但其实还有其它求θ最优解的办法,只用一个式子便可以求出,就是接下来要讲的。

    正规方程(Gradient Descent)

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iTfd1z0Z-1669517141005)(吴恩达机器学习.assets/image-20211101082506281.png)]

    下面就是一个例子:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fbgCeeGE-1669517141007)(吴恩达机器学习.assets/image-20211101084308240.png)]

    我们可以假设一个x0恒等于1的特征量,然后将所有特征量放入一个矩阵,将目标值放入另一个矩阵,就能计算上面式子。

    接下来,我将详细为你介绍求解的具体步骤,首先来看矩阵X与向量y是怎么得到的。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-J1i63okT-1669517141009)(吴恩达机器学习.assets/image-20211101085133404.png)]

    我们将数据集的每一个例子中的特征量分别转置放入矩阵X,也就是将每一个例子的特征量作为X的每一行,而目标值就直接竖着放入向量y。

    用正规方程还有一个优点,就是它不用像梯度下降一样要进行特征缩放,它允许你的特征量之间的差值很大。

    下面我将为你总结梯度下降与正规方程的优缺点。

    • 梯度下降
      • 优点:当n的值非常大的时候,它计算的效果任然会很好。
      • 缺点:它需要通过很多测试去画J(θ)的图像得到α的最优值,并且想要得到最终的结果需要很多次的迭代。
    • 正规方程
      • 优点:它不用去选取α值,也不用进行迭代计算,只用一个式子便能得到最终结果。
      • 缺点:因为式子中要计算(XTX)-1,所以如果n值特别大的话,计算这个式子会非常的慢。

    小结

    如果n值小于一万,则优先选择正规方程计算;如果n值大于一万,就建议去用梯度下降进行计算。

    当然,你在计算(XTX)-1时可能会遇到有些矩阵没有逆矩阵的情况,那你可以有两个方法去解决:

    • 检查是否有多余的特征
      • 例如有些特征之间是有线性关系的,这时你可以删除其中一个特征。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aoxqDTWd-1669517141010)(吴恩达机器学习.assets/image-20211101093033226.png)]

    • 检查特征是否过多了(e.g. m
    • 这时候你就要删除一些特征,或者采用正则化(regularization)。
  • 相关阅读:
    【蓝桥杯选拔赛真题02】C++计算天数 青少年组蓝桥杯C++选拔赛真题 STEMA比赛真题解析
    二进制搭建及高可用 Kubernetes v1.20
    maven 新建模块 导入后 按Ctrl 点不进新建模块pom定义
    CSS 背景、文本、字体
    SpringBoot集成websocket及上线前服务器nginx配置websocket
    Maven多模块快速升级超好用Idea插件-MPVP
    简述谈一谈人工智能
    广东的介绍
    【Python编程】【Jupyter Notebook】启动时报错:no available port could be found
    亚马逊卖家必看:测评补单提升店铺排名和转化率的有效方式
  • 原文地址:https://blog.csdn.net/Newin2020/article/details/128061506