目录

1.误差分析(Bias and Variance)

2. 模型调优

2.1 问题举例:

2.2 如何选择正确并且高质量方法

2.3 假设:

3 斯坦福自动驾驶直升机例子​


1.误差分析(Bias and Variance)

当我们以非常复杂的模型去进行测试的时候,可能得到的结果并不理想

影响结果的主要有两个因素:Bias 偏差、Variance 方差

Bias 偏差

在这里,我们定义偏差是指与目标结果的偏移量,这个偏移量是我们选出来的函数的期望 E ( f ∗ ) 。如图所示:与目标距离远的是大偏差,与目标距离近的是小偏差

 Variance 方差
而方差描述的的是我们选出来的函数,他的稳定性,是否集中在目标区域
与相对分散的是高方差,相对集中的是低方差

小总结:偏差描述的是与目标的距离,而方差描述的是分散程度,我们的目的是在机器学习三板斧过后,找到一个低偏差,低方差的函数。如图左一

2. 模型调优

2.1 问题举例:

以朴素贝叶斯(我们后面会具体讲这个模型)为模型的邮件分类系统,错误率达到了20%,这是不能接受的。

找到“低偏差、低方差”函数,吴恩达的建议是:

  • 获得更多的训练数据
  • 尝试更少的特征维度
  • 尝试更多的特征维度
  • 尝试更换邮件头或者邮件体的特征
  • 把梯度下降的方法运行更多次
  • 尝试使用牛顿方法
  • 使用不同的参数λ \lambdaλ
  • 抛弃朴素贝叶斯模型尝试SVM

2.2 如何选择正确并且高质量方法

误差分析这个工具就可以派上用场了。一般情况下:高方差表示的就是训练误差小于测试误差,“高偏差”表示 训练误差本来就很高

在这里我们给出典型的学习曲线:

高方差: 测试误差明显大于训练误差,而且两者的距离远(与训练误差距离远)

高偏差: 训练误差大于我们期望的表现,但是与测试误差接近

所以刚才我们提到的8个方法中的前4个要解决的问题是:
1.获得跟多的的训练数据 (高方差)
2.尝试更少的特征维度(高方差)
3.尝试更多的特征维度(高误差)
4.尝试更换邮件头或者邮件体的特征(高误差)

2.3 假设:

(1) 贝叶斯回归正常邮件的错误率是2%,垃圾邮件的错误率是2%。(如果把2%的正确邮件当成垃圾的,就是不可接受的)
(2) SVM 方法在垃圾邮件的识别错误率是10%,而正常邮件的识别错误率是0.01%。(这个表现是可以接受的)
(3) 但是,你又想用逻辑回归,应为计算量相对比较小

这个问题怎么破?

我们拿贝叶斯和SVM两个模型做对比:

我们比较最后结果的的正确性:

举例来说:上面的方程表示svm的表现好于beyesian

接下来我们就分析beyesian的损失函数 这里的J(θ)相当于负的Loss,J(θ)越大,相当于Loss越小。

然后我们比较svm和beyesian的损失函数

  • case1:SVM的正确性大于BLR ,评价函数的结果也大于BLR(Loss小)

这里说明BLR模型的整体效果不如SVM,原因是J(θ)没有找到最大值,还有优化空间 ,需要用不 同 的 方 法 优 化 没有找到最大值,还有优化空间,需要用不同的方法优化没有找到最大值,还有优化空间,需要用不同的方法优化 J(θ)。

  • case2: SVM的正确性大于BLR,但是评价函数的结果小于BLR

这里说明BLR已经找到了评价函数J(θ)的最大值,但是结果不理想,需要调整评价函数或者换不同的模型。吴恩达给出的建议其实很简单,比较两个模型的好坏,首先看最终的效果,然后比较两者的Loss函数,然后去选择更换模型或者优化调整评价函数。

所以刚才我们提到的8个方法中的后4个要解决的问题是:

5.把梯度下降的方法运行更多次(优化求极值的方法)
6.尝试使用牛顿方法(优化求极值的方法)
7.使用不同的参数$\lambda $(改变评价函数)
8 抛弃朴素贝叶斯模型尝试SVM(改变评价函数)

3 斯坦福自动驾驶直升机例子

1、首先我们建立一个模拟器

2、建立Loss 函数

3、运行强化学习算法(以后单独会讲解)与最小化Loss 然后找到最好的θ

当你执行完这些步骤后,得到的结果很不理想,没有找到合适的θ(实际环境中飞机总是坠毁),那我们该怎么办。有三种选择:

(1) 调整我们建立的飞行模拟器
(2) 调整Loss 函数
(3) 调整强化学习算法

如果模拟环境飞机是正常飞行的,而正常环境飞机总是坠毁,那我们就选择(1)调整我们的模拟器;如果让有经验的飞行员去控制飞机,我们采集他的行为数据参数

当J(θ) > J( ), 说明飞行员的表现更好,而我们的强化学习算法没有能够有效的降低Loss,那我们就进行(3)调整强化学习算法

让我们再举一个人脸识别系统误差分析的例子(这个例子比较旧,但是思路可以借鉴,因为人脸识别算法已经很成熟了)

许多系统都是由不同的模块构建起来的。
当相机采集照片后,通过预处理去掉背景(preprocess),进入人脸识别模块(Face detection),人脸识别模块又包含三个子模块,眼睛识别、鼻子识别、嘴巴识别,然后用三个子模块的结果进行逻辑回归,最后输出结果。
每个模块对于整体系统正确率贡献是不同的

分析每个模块对误差的贡献对整体系统设计是非常有意义的

最后吴恩达给出了运行机器学习算法的三个建议和两个系统实现方法

(1) 花在错误分析上的时间是值得的
(2) 你的独创性和灵感往往赖在正确的错误诊断中
(3) 错误分析可以让你对问题的理解更加深刻

方法一、仔细设计,但是花费时间多,可能会过多考虑不重要问题
方法二、快速先干出一个可以运行的系统,但是分析、调优

最后,如果不是要做算法提升的工作,那就拿起键盘就是干。(因为开始的时候,我们并不知道那个模块有用与否,所以先运行起来,再调整)

参考资料:

机器学习与深度学习系列连载(NTU-Machine Learning, cs229, cs231n, cs224n, cs294):欢迎进入机器学习的世界_Doctor Wu的博客-CSDN博客

机器学习系列:误差分析(Bias and Variance)和模型调优相关推荐

  1. 机器学习中的Bias,Error,Variance的区别

    机器学习中的Bias,Error,Variance的区别 @(Machine Learning) 名词解释 Error | 误差 Bias | 偏差 – 衡量准确性 Variance | 方差 – 衡 ...

  2. 能识别nvme的pe启动_【腾讯WeTest干货分享】机器学习在启动耗时测试中的应用及模型调优...

    商业转载请联系腾讯WeTest获得授权,非商业转载请注明出处 原文链接:http://wetest.qq.com/lab/view/392.html WeTest导语 启动耗时自动化方案在关键帧识别时 ...

  3. 机器学习模型调优总结!

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:Xiaoyou Wang,编译:机器之心 无论是 Kaggle 竞 ...

  4. 收藏 | 机器学习模型调优3大策略

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:机器之心 无 ...

  5. R语言机器学习Caret包(Caret包是分类和回归训练的简称)、数据划分、数据预处理、模型构建、模型调优、模型评估、多模型对比、模型预测推理

    R语言机器学习Caret包(Caret包是分类和回归训练的简称).数据划分.数据预处理.模型构建.模型调优.模型评估.多模型对比.模型预测推理 目录

  6. Python工程能力进阶、数学基础、经典机器学习模型实战、深度学习理论基础和模型调优技巧……胜任机器学习工程师岗位需要学习什么?...

    咱不敢谈人工智能时代咋样咋样之类的空话,就我自己来看,只要是个营收超过 5 亿的互联网公司,基本都需要具备机器学习的能力.因为大部分公司盈利模式基本都会围绕搜索.推荐和广告而去. 就比如极客时间,他的 ...

  7. 数据质量和模型调优哪个更重要?

    AI与数据科学技术发展及商业价值探讨 MLOps & MLaaS 系列活动二 Data-centric V S Model-centric 人工智能 (AI) 正在吸引越来越多的企业投资.随着 ...

  8. Yolov5自定义图片训练测试及模型调优(详细过程)

    Yolov5自定义图片训练测试及模型调优(详细过程) 1. 图像数据获取.标注 2. 数据集划分及准备 3. 配置训练参数,准备训练: 3.1 修改data/训练配置xxx.yaml文件: 3.2 修 ...

  9. 阿里云PAI-Diffusion功能再升级,全链路支持模型调优,平均推理速度提升75%以上

    导读 随着Stable Diffusion模型在AI圈的爆火,AI生成内容(AI Generated Content,AIGC)的应用呈现出井喷式的增长趋势.其中,文图生成(Text-to-image ...

最新文章

  1. 基于物化视图优化_「PostgreSQL技巧」PostgreSQL中的物化视图与汇总表比较
  2. python获取数组中大于某一阈值的那些索引值_使用Python+OpenCV进行实时车道检测...
  3. python引用传递产生的问题_python关于lambda、引用传递等易犯的错误
  4. 软件数控编程_这么多CNC数控编程软件, 你觉得哪个好?
  5. java 多个方法_java中的多个main()方法
  6. Spring Cloud微服务之Mybatis-Plus代码生成器整合(四)
  7. 执行虚拟化软件测试程序的物理机,虚拟化技术试题教案.docx
  8. redis(redis概念,运用场景,如何操作基本数据类型)
  9. 驱动人生后门清除方案
  10. java 按 大写字母_用大写字母拆分字符串
  11. 华为荣耀magic是鸿蒙系统,华为的magic系统是独立的系统吗?
  12. matlab fft能量守恒吗,功能关系 能量守恒定律
  13. 最全UnityHub下载链接Unity2022~2017各版本+Unity5.x【间歇性更新】
  14. Delphi/Object Pascal开源跨平台3D和2D(台式机,移动设备,游戏主机)游戏引擎Castle Game Engine正式发布7.0预览版
  15. [渝粤教育] 西南科技大学 物流系统规划与设计 在线考试复习资料
  16. 关于编辑器EditPlus
  17. php通过udp上报日志,PHP日志扩展SeasLog-1.6.0,支持TCP,UDP发送
  18. 2021-2022学年广州市番禺华附九年级第一学期期中考试英语试题
  19. 转载:主外键关联删除(on delete set null和on delete cascade)
  20. JavaWeb专栏之(一):什么是JavaWeb?

热门文章

  1. ESP8266-01WIFI模块——内网通信
  2. android8.1谷歌相机,谷歌相机8.1成功被移植,适用于大多数非Pixel安卓手机
  3. 家用简单电线路图_家庭电路安装走线图解析,教你4步快速布线
  4. 画图解释FHSS、DSSS扩频原理以及计算规则
  5. 肖邦夜曲21_肖邦21首夜曲
  6. 机器学习之理解Bias-Variance Tradeoff
  7. 《微SaaS创富周刊》第5期:基于A/B测试的20+创富项目盘点
  8. linux用户日志在哪里看,Linux用户登录记录日志和相关查看命令汇总
  9. python二进制文件的读取与写入可以分别使用什么方法_二进制文件的读取与写入可以分别使用...
  10. Robust Definition