• 吴恩达机器学习课程笔记3-4


    3.1矩阵和向量
    矩阵:由数字组成的矩形阵列,并写在方括号里面,即二维数组

    在数学中元组索引一般是y[1],即从1开始的索引
    在编程语言中,则通常是y[0],即从0开始的索引
    在这里插入图片描述
    矩阵乘法没有交换率,但符合结合律
    (AB)C=A(BC)

    4.1多特征
    在这里插入图片描述
    x^(2)向量代表第二行记录,
    多元线性回归模型:
    在这里插入图片描述

    4.3多元梯度下降法
    为什么要归一化?
    尽量保证各参数在一个相似的范围内,可以让梯度下降法更快速的收敛
    左图:Q2范围远大于Q1范围 右图:Q2范围相似Q1范围 —等值线
    左: 一直在反复振荡 右:特征放缩后,范围变得相近,收敛的更快速
    在这里插入图片描述
    为什么要进行特征放缩:等高线更加规范,让梯度下降的更快一些,收敛的更快速一些
    在这里插入图片描述
    梯度下降法要求:尽量保证每个特征在一个相似的范围内,一个相似的范围内即可
    用归一化来调整取值范围,使得满足范围相似的要求,从而使得梯度下降法更快收敛
    在这里插入图片描述
    归一化两种方法:分母使用标准差,或者(最大值-最小值)
    特征放缩–让梯度下降的速度变得更快,收敛所需的迭代次数减小

    4.4多元梯度下降法—学习率

    绘制代价函数与迭代次数的曲线:
    x轴:迭代次数 y轴:代价函数
    在这里插入图片描述
    每个点表示,迭代次x值次后,得到的Q值,然后计算出的代价函数值
    该曲线告诉我们:当你迭代300次后,再继续迭代100次,也没有让代价函数下降的太多,从而选定迭代次数。帮助判断是否已经收敛
    另一个判断是否收敛的方法:设定一个阈值,
    在这里插入图片描述
    曲线作用2:判断梯度下降法是否正常工作
    出现下面两图。通常是学习率选的过大了
    在这里插入图片描述
    已证明:学习率足够小的情况下,代价函数一定是随着迭代次数越来越小
    学习率过小 ----- 收敛的速度会很慢,需要迭代很多次
    学习率过大 ----- 代价函数在每次迭代中可能不是减小的,甚至不收敛
    做法:尝试一系列的学习率,然后对不同的学习率绘制上面的曲线,然后选择使得代价函数快速下降的学习率值
    在这里插入图片描述
    取每次隔了三倍的这些数

    4.5特征和多项式回归
    二次甚至三次函数,能通过设定其他参数,可变成多元线性回归
    不会为二次函数,二次函数尾部会落下来
    三次函数可能,尾部会上升
    在这里插入图片描述
    与此同时,这种情况下,特征压缩很重要,因为不同参数的范围差异很大
    另一种情况:有一个开根号的项,不会下降,缓慢上升,直至平缓
    在这里插入图片描述
    之后可以让算法帮助我们选择,是三次函数,还是带有开根号项

    4.6正规方程法
    如果是一个一元二次方程,求最小值,求导令为0 即可求解
    在这里插入图片描述
    而当Q有多个时,看成一个向量,然后求偏导
    使得代价函数最小的最优的Q值:
    在这里插入图片描述
    优缺点
    梯度下降法:1)需要确定学习率,要尝试多次才能确定 2)需要多次迭代 3)在大量特征变量的情况下(n很大),依旧能正常允许

    正规方程法:1)不需要学习率,2)不需要迭代 3)需要计算(x转置*X)的逆 ,求逆的计算量大概是n的三次方 4)如果特征变量很多,计算会很慢

    一般来说,n<一万时用正规方程法,n>一万时,选梯度下降法或其他算法
    在这里插入图片描述
    4.8正规方程
    如果(x转置*X)不可逆怎么办?即为奇异矩阵或退化矩阵怎么办?
    代码中可以计算出伪逆 (pinv函数),所以即使不可逆,代码也能正常运行

    不可逆的原因通常是:
    1,特征之间线性相关,含有多余的特征
    2) 特征量n太大,n>m(特征量 > 样本数)

    处理:1 看是否有多余特征(线性相关的),有的话进行删除
    2,检查特征量是否过多,过多的话删除一些影响小的特征量

  • 相关阅读:
    Error: Cannot find module ‘timers/promises‘
    C语言学习之路(基础篇)—— 函数
    IDEA创建SpringBoot的多模块项目教程
    一文梳理Vue面试题
    ROC-RK3566-PC使用10.1寸IPS触摸屏显示
    嵌入式编程实现记录开发板启动次数
    26.Python3面向对象编程|菜鸟教程
    向量数据库库Milvus Cloud2.3 运维可靠,秒级故障恢复
    软件设计模式系列之十九——中介者模式
    Vue3视图渲染技术
  • 原文地址:https://blog.csdn.net/Sun123234/article/details/126446821