ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

机器学习(李宏毅)学习笔记1——Linear Regression

2021-11-27 16:59:13  阅读:191  来源: 互联网

标签:function Loss Linear 李宏毅 模型 参数 Model Regression


机器学习(李宏毅)学习笔记1——Linear Regression

Step1 Model(模型假设,选择框架结构)

一组模型:一组function set

y = b+w·x cp(w,b为参数)

b和w代入不同的数值,得到的就是一组function set,function set中有无穷个function,但是包含了合理的和不合理的
function set:f 1,f 2,f 3……

该model称为Linear Model

y = b + Σwixi
(xi可以改为任何的 x~cp~、x~hp~、x~w~、x~h~)
x i称为feature(特征), w i称为weight ,b称为bias

Step2 Goodness of Function(模型评估,判断模型好坏)

  1. 收集一些训练数据:Training Data
  • 告诉model:input和output之间的关系

    • x1表示一个训练数据的原始值

    • ŷ1表示 x1对应的正确值

  1. 衡量funtion好坏的函数:Loss function(损失函数)L
  • input : model中的function

    • output:how bad it is

    • content:

在这里插入图片描述

  • f(xcpn)表示通过模型得到的预测值

    • 红色Loss值较大,蓝色Loss值较小,越小function越好

Step3 Best Function(最佳模型)

Pick the “Best” Fuction:

f* = arg min L(f) [f*:使得损失函数值最小的function]
w*,b* = arg min L(w,b) [w*,b*:使得损失函数值最小的w,b]

//针对该式的解法:将损失函数的表达式带入后,通过线性代数的知识对其进行求解

General解法:Gradient Descent

Gradient Descent(梯度下降)

一个参数:

  1. 绘制L(w)变化图

  2. 随即找一个初始参数位置,w0

  3. 计算微分dL/dw|w=w0,即找到切线的斜率

在这里插入图片描述

  1. 当切线斜率为负,即下降趋势(左高右低)时,那么应该将参数右移,使得Loss变小

  2. 当切线斜率为正,即下降趋势(右高左低)时,那么应该将参数左移,使得Loss变小

  3. 得到下一位参数,η:Learning Rate,常数,决定了学习速度有多快,当η较大,学习效率较快,步伐跨度较大。


(当微分结果为负时,需向右移;微分结果为正时,需向左移;因此要增加“-”号)

  1. 重复3-6步

  2. 直到dL/dw|wT=0时,即,微分为0的时候,找到最低点

注:该最低点仅为Local Minima,不一定是Global minima

两个参数

  1. 随机选择初始参数 w0、b0

  2. 计算偏微分

  1. 调整参数

  2. 重复2、3步

  3. 梯度:Gradient

▽L =[∂L/∂w ∂L/∂b]gradient
(所有不同参数对L的偏微分)
  • 每一条线围成的圈就是等高线,代表损失函数的值,颜色越深的区域代表的损失函数越小

  • 红色的箭头代表等高线的法线方向

  1. 直至计算得到的偏微分均为0,无法前进为止

问题

L(θ^0^)\> L(θ^1^) \> L(θ^2^) \>……

使用Grident Desence update这个参数,期望每一次update这个参数之后,应该要Loss的值越来越小,直至无法变得更小结束。

  1. 极值为0,但是仅仅是Local minima,而不是global minima的问题:Stuck at local
    minima

  2. 微分为0但不是极值的点:Stuck at saddle point

  3. 当算出一个微分值已经够小了,就已经停下来,但是仍旧距离较远(高原):Very slow
    at the plateau

在Linear Regression的情况下,是(碗)的情况,可以不考虑这个问题,但是更加复杂的Model的情况下需要考虑这个问题

优化

模型优化

在模型上,我们还可以进一部优化,选择更复杂的模型,比如使用1元2次方程

Linear Regression:即使使用的是一元二次方程,仍旧还是Linear Regression。判断一个Model是不是符合Linear Regression,主要看的是参数对output是不是Linear

越复杂的Model,testing data的error越小

3次是4次的子集合,4次是5次的子集合,所以根据traing data找一个最好的function,从5次中找到的最好的function不可能比4次或3次中找到的更差,当Model越来越复杂时,在Training data上的error会越来越小

一个复杂的Model,可以在Training Data上有良好的表现,但是不一定在Testing Data上有良好的表现

过拟合Overfitting

步骤优化

不仅仅有一个特征值影响到预测,还有一些隐藏的其他的特征,但仍旧是Linear Model
在这里插入图片描述
除了xcp,新增了另外一个特征xs(物种)

如果希望模型更强大表现更好:更多参数,更多input

Regularization(正则化)

防止Overfitting

修改Loss Function:

在这里插入图片描述
修改Loss Fuction后的 f* = arg min L(f)

  • 这样得到的f,不仅可以满足error较小,同时可以满足wi参数的值也较小

    • wi参数很小的function,意味着是一个很平滑的fuction

    • 如果一个fuction输入有变化,但是输出变化比较小,那么它是一个平滑的function
      在这里插入图片描述
      为什么要选择一个Smooth的function?

  • 我们愿意相信Smooth的function更有可能是正确的

  • 增加一个λΣ(wi)2就可以防止在选择Model时挑选出太过抖动的function

  • 因此加Regularization大多数情况下是有用的

  • λ的值可以手动设置,当值较大时,function更加smooth

标签:function,Loss,Linear,李宏毅,模型,参数,Model,Regression
来源: https://blog.csdn.net/weixin_45727777/article/details/121579282

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有