参考文章:
梯度下降:https://www.bilibili.com/video/BV1Tr4y1N7Lh
梯度下降优化:https://www.bilibili.com/video/BV1r64y1s7fU

文章目录

  • 1. 误差分析【P5】
    • 1.1 误差哪里来?
    • 1.2 啥是bias 和 variance?
    • 1.3 方差,偏差对实验的影响
    • 1.4 模型选择
  • 2. 梯度下降【P6】
    • 2.1 梯度下降计算过程
      • 2.1.1 前言回顾
      • 2.1.2 正文
    • 2.2 如何理解梯度下降
  • 3. 梯度下降的优化【P6】
    • 3.1 优化下降路径
      • 3.1.1 自适应学习率
      • 3.1.2 Adagrad
    • 3.2 优化每一步的计算时间
      • 3.2.1 随机梯度法
      • 3.2.2 随机梯度法改进:mini-batch
      • 3.2.3 其他方法
  • 5.补充:有关误差和梯度下降的计算
    • 5.5 有关误差分析的数学补充(选读)
      • 5.5.1 无偏估计
      • 5.5.2 偏差计算
      • 5.5.3 方差计算
2021.09.05 点赞过1明日更新下一p
LeeML:P5,P6
本系列为原创总结,望点赞支持!!
2021.10.14
去掉了梯度优化牛顿法
对文章进行了优化

第一次录视频,有很多不足的地方,下次改进

李宏毅机器学习笔记:3.误差分析和梯度下降

相关视频:【 梯度下降】【 梯度下降优化】【 我的讲解】

1. 误差分析【P5】

1.1 误差哪里来?

Error 的主要有两个来源,分别是 偏差(bias)方差(variance)

1.2 啥是bias 和 variance?

我们打靶,十环打了七环,也就是Error=10-7=3;具体分析,瞄的有问题,瞄的十环,其实是喵的九环,那么bias=10-9=1;枪自己不准,瞄的九没打到九,打着了,那么variance=9-7=2.


bias 说的是偏差,variance说的是方差,说的是离散的一个程度。

1.3 方差,偏差对实验的影响

  • 当你在训练集上追求更低的bias时候,往往这个模型拿到测试集(新数据)上,会有较高的Variance,反而误差不会太小。叫过拟合

    类似于第二章笔记说的,我们在训练集上,用更复杂的估值函数式子,可以使得在训练集上误差表现得更好,但拿到测试集上,反而效果不好。

  • 在训练集上,我们估函数过于简单,可能会使新数据variance较小,但是太过于简单的式子,并不是我们追求的最优的估值函数,误差往往也能够再缩小。叫做欠拟合

1.4 模型选择

现在在偏差和方差之间就需要一个权衡。


如何权衡?

  • Training Set:训练集,就是我们有些数据 训练模型用的
  • validation set:验证集,我们通常将训练集的一部分来测试模型好坏。
  • Testing Set(绿):就是训练好的模型,我们用这些数据来看看 模型是不是真的好
  • Testing Set(红):测试集,真正用到的地方,比如自然界

【错误演示】


训练集训练不同的模型,然后在测试集上比较错误率,最小的当成最好的

>> 因为你可能有过拟合现象,不是训练集上训练的越好在测试集就表现的好。

【一种思路】:N-折交叉验证

比如 我们有9k数据,N=3 那么我们三组各3k个数据

  • 我们第1次 用1,2两组当训练集,第3组当验证集 来训练三个模型
  • 我们第2次 用1,3组当训练集,第2组当验证集 来训练三个模型
  • 我们第3次 用2,3组当训练集,第1组当验证集 来训练三个模型

综合表现最好的当选

2. 梯度下降【P6】

2.1 梯度下降计算过程

2.1.1 前言回顾

我们上一章讲了【一个点】梯度下降的计算方法,详看【3.3.3 最佳模型:梯度下降】

例子中,损失函数是F(w,b)=(w+b)2F(w,b)=(w+b)^2F(w,b)=(w+b)2

  • 这个损失函数是真实值(x,y^)=(1.0),估算函数y=wx+b来的(x,\hat{y})=(1.0),估算函数y=wx+b来的x,y^=(1.0),y=wx+b
  • 当x=1带入损失函数F(w,b)=(y^−y)2F(w,b)=(\hat{y}-y)^2F(w,b)=(y^y)2
  • 我们通过梯度下降最终得出了w+b=0的时候,损失函数为0

【3.3.3】梯度下降的实力说了个什么事呢?

  • 也就是,点(1,0)在满足w+b=0条件下的线性方程式wx+b=0损失函数为0

我们举个例子w=2 b=-2 那么估值方程2x-2=0是不是正好穿过这个点?是的!

  • 换句话说 也就是一个点(数据,严谨点二维数据),一定是可以一条线(估值函数)穿过它,是它损失函数为0,也就是真实值和估值一样,这个估值函数就是我们猜测的模型。

2.1.2 正文

那真实的数据是什么样的?对,不止一个数据,万万千千的数据。

那我们很容易就理解损失函数了,目的就是是所有数据损失函数相加最小的一条分割线。
【完整的计算过程】

① 损失函数

  • h(θ)h(\theta)h(θ)是多维的
  • J(θ)J(\theta)J(θ)是所有数据的损失之和,才是我们真正需要的损失函数

② 损失函数J(θ)对参数θjJ(\theta)对参数\theta_jJ(θ)θj的偏导
.

  • 更新每个数据的每一个参数 θ\thetaθ,重复做,直到参数小于一个临界值
    .
    a为步长,学习因子
    这部结合上章(1.0)点的例子看计算过程,需要更新每一个参数(上章为w,b),直到损失函数导数为0(小于某个很小值)

2.2 如何理解梯度下降

以二维为例,J就是损失函数,我们想让J最小,那跟下山一样
.

  • 从一个点看:我环顾四周,最陡的地方,走一个步长,走到新位置再看四周,再选个最陡的地方 再走一个步长…直到走到最低点。
  • 从多个点看,你选这个最快的路 别的人走 不一定总代价最小(最快)。所以最快的路是,每条路所有人都这么走一趟,总代价/人数算出的平均代价,最低的,就是我们损失函数减小最快的路径

3. 梯度下降的优化【P6】

我们梯度下降优化总体有两个思路,一个是 优化下降路径,另一个是 减少每走一步的计算量

3.1 优化下降路径


.

  • 如果学习率很小(蓝色),那么一定是可以到最优点,问题是:学习率(步伐)太小,那么步数会增多,下降的慢
  • 如果加大学习率,那么一步可以迈较大(绿色),在最优解附近会产生振荡
  • 如果学习率非常大(黄色),可能就错过了最优解,得出的损失值始终很大

3.1.1 自适应学习率

【想法】 开始步伐大点,走快点;然后越接近终点,步伐越小。那么很自然想到,学习率加入次数或者是时间参数

3.1.2 Adagrad

① 观察规律

  • 按照 【老猫】说法,二次导数比较难求,Adagrad算法其实是估算的(图中问号代表的就是估算的意思)

② 整体公式


【③ 可行的原因

杨鸽理解:Adagrad不仅考虑到了开始步可以放大一点,后面步伐小一点的问题;还做了一个改进:就是我们在梯度比较大的时候,那么要下降的比较小心;梯度比较小 比较平缓的时候,你步伐相应可以大一点快速走过平摊路段。这就是要除以梯度累加和开更号不知道理解是否正确?

3.2 优化每一步的计算时间

比如我们有10000个数据,每个数据10个参数,【传统梯度下降】那么我们每走一步 要计算10万次。通常数据量很大,传统方法通常很难完成这样的时间代价

3.2.1 随机梯度法

stochastic gradient descent,SGD

思路】当调查中国男人平均身高时候,我们不需要把每个人都量了求平均,只需要抽样求平均就行

方法】我们每走一步时候,不算1万个数据,只是从中随机选一个数据,选最陡的山路的方向迈一步;下一步,还是随机选一个数据,在第一步结束的位置,往第二次随机出来样本最陡方向再迈一步,这样一步一步,直到走到最低处

上个例子,每一步只需要随意出来一个数据,计算10个参数的十次计算就行

3.2.2 随机梯度法改进:mini-batch

一个数据可能会错过最优解,所以我们随机一小批数据 来计算,就比一个准确。

我们现在一般说的随机梯度,其实默认的就是这种办法

上个例子,我每一步 随出来50个 ,那么既能保证比1个数据精准,又能节省大量计算时间,每步计算500次

3.2.3 其他方法

李宏毅《机器学习》笔记:9. 神经网络改进流程:https://blog.csdn.net/wistonty11/article/details/120572130

.

5.补充:有关误差和梯度下降的计算

5.5 有关误差分析的数学补充(选读)

  • 假设x的平均值是 μ,方差为 σ2^22

5.5.1 无偏估计

  • 我们从非常多的样本中取出N个样本点:{x1,x2....xn{x^1,x^2....x^n}x1,x2....xn}
  • 这N个点的平均值m=1N∑n=N1xn≠m=\frac{1}{N}\sum^1_{n=N}{x^n}\not=m=N1n=N1xn= μ
    μ为整个样本的平均值,而m为从中去N个样本的期望(平均值),通常是不相等的

但如果许多组M,M非常非常大,那么两者是相等的,这个估计叫做无偏估计(unbiased)

5.5.2 偏差计算

其实说的一件事:样本均值抽样分布的方差等于总体方差的n分之一

5.5.3 方差计算

李宏毅《机器学习》笔记:3.误差分析和梯度下降相关推荐

  1. 机器学习笔记:线性规划,梯度下降

    主要内容来自stanford Andrew Ng视频课程的总结. 讲的非常好,还有相应的习题,课程能够在以下站点搜索到. https://www.coursera.org/ 机器学习的目的是在训练数据 ...

  2. 吴恩达机器学习MATLAB代码笔记(1)梯度下降

    吴恩达机器学习MATLAB代码笔记(1)梯度下降 单变量线性回归 1.标记数据点(Plotting the Date) fprintf('Plotting Data') data = load('D: ...

  3. 2021李宏毅机器学习笔记--12 attack ML models

    2021李宏毅机器学习笔记--12 attack ML models 摘要 一.图像模型的攻击 1.1原理 1.2Constraint 1.3参数训练 1.4一个例子 1.5攻击方法 1.5.1FGS ...

  4. 2021李宏毅机器学习笔记--22 Generative Adversarial Network 01

    @[TOC](2021李宏毅机器学习笔记–22 Generative Adversarial Network 01(GAN,生成式对抗网络)) 摘要 GAN是建立于神经网络的基础上的,其核心思想是&q ...

  5. 李宏毅svm_【李宏毅机器学习笔记】 18、支持向量机(Support Vector Machine,SVM)...

    [李宏毅机器学习笔记]1.回归问题(Regression) [李宏毅机器学习笔记]2.error产生自哪里? [李宏毅机器学习笔记]3.gradient descent [李宏毅机器学习笔记]4.Cl ...

  6. 【李宏毅机器学习笔记】 17、迁移学习(Transfer Learning)

    [李宏毅机器学习笔记]1.回归问题(Regression) [李宏毅机器学习笔记]2.error产生自哪里? [李宏毅机器学习笔记]3.gradient descent [李宏毅机器学习笔记]4.Cl ...

  7. 2021李宏毅机器学习笔记--21 Anomaly Detection

    2021李宏毅机器学习笔记--21 Anomaly Detection(异常侦测) 摘要 一.问题描述 二.Anomaly异常 三.Anomaly Detection(异常侦测)做法 3.1 Bina ...

  8. 【李宏毅机器学习笔记】 23、循环神经网络(Recurrent Neural Network,RNN)

    [李宏毅机器学习笔记]1.回归问题(Regression) [李宏毅机器学习笔记]2.error产生自哪里? [李宏毅机器学习笔记]3.gradient descent [李宏毅机器学习笔记]4.Cl ...

  9. 机器学习/算法面试笔记1——损失函数、梯度下降、优化算法、过拟合和欠拟合、正则化与稀疏性、归一化、激活函数

    正值秋招,参考网络资源整理了一些面试笔记,第一篇包括以下7部分. 1.损失函数 2.梯度下降 3.优化算法 4.过拟合和欠拟合 5.正则化与稀疏性 6.归一化 7.激活函数 损失函数 损失函数分为经验 ...

最新文章

  1. Python使用sklearn构建广义线性模型:Tweedie回归(Tweedie regression)实战
  2. Kth Largest Element in an Array
  3. Python入门100题 | 第013题
  4. 【整理】SAP PM工厂维护模块初识
  5. SpikeSource公司的CEO-Kim Polese访谈
  6. Bzoj4818--Sdoi2017序列计数
  7. 【Qt】Qt下载教程
  8. AMD GPU+VS2010的OpenCL配置
  9. libguestfs java_libguestfs实现原理summary
  10. 微信小程序常用样式,特效,方法
  11. 用JS写一个《俄罗斯方块》小游戏
  12. 北斗通讯协议4.0 java_北斗4.0协议讲解.doc
  13. ant-design-pro跨域问题
  14. linux C 基于事件回调的epoll反应堆模型
  15. js实现搜索关键字高亮
  16. usb的device模式hid配置错误点
  17. EKS集群手动升级kube-proxy组件
  18. 数电实验二 常用中规模组合逻辑电路的设计及应用
  19. u盘格式化后如何恢重要的数据
  20. 您想允许来自未知发布者的以下程序对此计算机进行更改码?

热门文章

  1. 5G NTN进展简述
  2. Hard masking and soft masking
  3. 如何搭建自己的内测分发平台?有可以直接用的内测分发平台吗?
  4. java 读取zip文件_JAVA实现zip文件内容读取及解压
  5. 松下GH5相机SD卡格式化后MP4视频碎片重组数据恢复方法
  6. 基于ASRT的开源实时语音转文本
  7. Linux 下查看硬盘 smart 信息
  8. windows防火墙是干什么的_请教个人防火墙是做什么用的,
  9. U盟用新浪微博第三方登录 文件不存在 c8998 解决办法
  10. 毕业设计 基于stm32的灯光控制系统 物联网