21.偏差和方差举例

前提:对于人类而言,可以达到近乎完美的表现(即人类去做分类是误差可以接近0)。

(1)假设算法的表现如下:训练误差率:1%,开发误差率:11%;此时即为高方差(high variance),也被称为过拟合(overfitting)。

(2)假设算法的表现如下:训练误差:15&,开发误差率:16%;此时即为高偏差(high bias),也被称为欠拟合(underfitting)。

(3)假设算法的表现如下:训练误差:15%,开发误差率:30%;此时即为高偏差和高方差。

(4)假设算法的表现如下:训练误差:0.5%,开发误差率:1%;此时算法已经非常完美。

22.与最优误差率比较

举例:当一个连人类都很难完成(如很多噪音的语音识别)的分类任务,人类的误差率达到14%,此时最完美的误差为14%,该误差称为最优误差率,也称为贝叶斯错误率(Bayes error rate)。以上的最优错误率是可以确定的,但是有些问题如电影推荐,很难去确定其最优误差率是多少。

此时偏差和进一步细化:偏差=最优误差率+可避免偏差;其中可避免偏差高时才值得去优化。

23..处理偏差和方差

(1)如果具有较高的可避免偏差,那么可以加大模型的规模(例如增加神经元的层数、每层神经元的个数)。

(2)如果具有较高的方差,那么可以向训练集增加数据。

其他(3)改变网络的架构,这样会带来新的结果。

在增大网络模型时,会带来高方差的风险,但只要通过适当的正则化(如L2),或者dropout等策略,就不会出现这样的问题。

24.偏差和方差间的均衡

在现如今,往往可以获得足够的数据,并且足够的算力来支撑非常大的网络,所以不会出现此消彼长的情况。

25.减少可避免偏差的技术

(1)加大模型规模(例如层数/神经元个数),此时加入正则化可以抵消方差的增加。

(2)根据误差分析结果修改输入特征。

(3)减少或者去除正则化。这种方式会增加方差。

(4)修改模型架构。这项技术会同时影响方差和偏差。

26.训练集误差分析

在训练集上也做类似于开发集上的误差分析。

27.减少方差的技术

(1)添加更多的训练数据。

(2)加入正则化(L1,L2,Dropout),该项会增大偏差。

(3)加入提前终止(比如根据开发集提前终止梯度下降),这项技术会增加偏差,一些学者将其归入正则化技术之一。

(4)通过特征选择减少特征的数量和种类,当数据集很小时,特征选择非常有用。

(5)减小模型规模,谨慎使用。

以下两种方式和减少偏差的策略相同

(6)根据误差分析结果修改输入特征。

(7)修改模型架构。

28.诊断偏差与方差:学习曲线

学习1曲线:误差随数据量增加的变化趋势。

学习曲线有一个缺点:当数据量变得越来越多是,将很难预测后续红色曲线的走向。

29.绘制训练误差曲线

训练误差上升说明:比如两张图片算法很容易就分辨出来,其误差为0,当增加到100张时,就不一定都能正确识别了。

30.解读学习曲线:高偏差

观察结果:

(1)随着我们添加更多的训练数据,训练误差只会变得更糟,因此蓝色的训练误差曲线只会保持不动或上升,这表明它只会远离期望的性能水平(绿色的线)。

(2)红色的开发误差曲线通常要高于蓝色的误差曲线,因此只要训练误差高于期望性能水平,通过添加更多数据来让红色开发误差曲线下降到期望性能水平之下也基本不可能。

之前我们讨论的都是曲线的最右端,而通过学习曲线则更加的群面了解算法。

吴恩达《Machine Learning Yearning》总结(21-30章)的更多相关文章

  1. 吴恩达Machine Learning 第一周课堂笔记

    1.Introduction 1.1 Example        - Database mining        Large datasets from growth of automation/ ...

  2. 吴恩达Machine Learning学习笔记(一)

    机器学习的定义 A computer program is said to learn from experience E with respect to some class of tasks T ...

  3. 吴恩达Machine Learning学习笔记(四)--BP神经网络

    解决复杂非线性问题 BP神经网络 模型表示 theta->weights sigmoid->activation function input_layer->hidden_layer ...

  4. 吴恩达Machine Learning学习笔记(三)--逻辑回归+正则化

    分类任务 原始方法:通过将线性回归的输出映射到0-1,设定阈值来实现分类任务 改进方法:原始方法的效果在实际应用中表现不好,因为分类任务通常不是线性函数,因此提出了逻辑回归 逻辑回归 假设表示--引入 ...

  5. 吴恩达Machine Learning学习笔记(二)--多变量线性回归

    回归任务 多变量线性回归 公式 h为假设,theta为模型参数(代表了特征的权重),x为特征的值 参数更新 梯度下降算法 影响梯度下降算法的因素 (1)加速梯度下降:通过让每一个输入值大致在相同的范围 ...

  6. 吴恩达 Deep learning 第二周 神经网络基础

    逻辑回归代价函数(损失函数)的几个求导特性 1.对于sigmoid函数 2.对于以下函数 3.线性回归与逻辑回归的神经网络图表示 利用Numpy向量化运算与for循环运算的显著差距 import nu ...

  7. 吴恩达 Deep learning 第一周 深度学习概论

    知识点 1. Relu(Rectified Liner Uints 整流线性单元)激活函数:max(0,z) 神经网络中常用ReLU激活函数,与机器学习课程里面提到的sigmoid激活函数相比有以下优 ...

  8. Github | 吴恩达新书《Machine Learning Yearning》完整中文版开源

    最近开源了周志华老师的西瓜书<机器学习>纯手推笔记: 博士笔记 | 周志华<机器学习>手推笔记第一章思维导图 [博士笔记 | 周志华<机器学习>手推笔记第二章&qu ...

  9. 我在 B 站学机器学习(Machine Learning)- 吴恩达(Andrew Ng)【中英双语】

    我在 B 站学机器学习(Machine Learning)- 吴恩达(Andrew Ng)[中英双语] 视频地址:https://www.bilibili.com/video/av9912938/ t ...

  10. Coursera课程《Machine Learning》吴恩达课堂笔记

    强烈安利吴恩达老师的<Machine Learning>课程,讲得非常好懂,基本上算是无基础就可以学习的课程. 课程地址 强烈建议在线学习,而不是把视频下载下来看.视频中间可能会有一些问题 ...

随机推荐

  1. c++基类指针指向继承类调用继承类函数

      类里面重载运算符>>, 需要使用友元函数,而友元函数,不能作为虚函数. 所以,基类指针无法直接调用继承类里重构的 >>  ; 使用类转换,能解决掉,基类指针 调用 继承类 ...

  2. { "result": null, "log_id": 304592860300941982, "error_msg": "image check fail", "cached": 0, "error_code": 222203, "timestamp": 1556030094 }

    这个是人脸识别时无法检测到图片报的错,有时候我们检测一张图片是否在库里面,当一张图片明显在里面,还检测不到,如下面是我的代码 package Test1; import java.io.IOExcep ...

  3. Kylin -- Dup key found 问题

    kylin 构建 cube 时,抛出了如下的错误: org.apache.kylin.engine.mr.exception.HadoopShellException: java.lang.Runti ...

  4. JVM之类加载机制

    JVM之类加载机制 JVM类加载机制分为五个部分:加载,验证,准备,解析,初始化,下面我们就分别来看一下这五个过程. 类加载五部分 加载 加载是类加载过程中的一个阶段,这个阶段会在内存中生成一个代表这 ...

  5. ajax标准格式

    jquery向服务器发送一个ajax请求后,可以返回多种类型的数据格式,包括:html,xml,json,text等. $.ajax({    url:"http://www.test.co ...

  6. python文件操作-修改文件中的内容

    一.文件读写有缓冲区 fw = open('nhy','w') fw.write('sdfsdf') fw.flush()# 把缓冲区里面的数据立即写到磁盘上 fw.close() 二.with的用法 ...

  7. 【bzoj4103】[Thu Summer Camp 2015]异或运算 可持久化trie树

    Description 给定长度为n的数列X={x1,x2,...,xn}和长度为m的数列Y={y1,y2,...,ym},令矩阵A中第i行第j列的值Aij=xi xor yj,每次询问给定矩形区域i ...

  8. Udp -内部缓冲区

    1.每个socket关联了两个缓冲区,一个用于发送,一个用于接收. 2. 3.发送:(1)sendto()把数据放在sendbuf(缓冲区),通知os来取 (2)os在适当的时候过来取数据,并发到网络 ...

  9. RFC3920

    RFC3920 可扩展的消息和出席信息协议 (XMPP): 核心协议 关于本文的说明 本文为互联网社区定义了一个互联网标准跟踪协议,并且申请讨论协议和提出了改进的建议.请参照"互联网官方协议 ...

  10. urlencode编码问题(以及urlparse) 转

    网址链接中的中文编码 中文的gbk(GB2312)编码: 一个汉字对应两组%xx,即%xx%xx 中文的UTF-8编码: 一个汉字对应三组%xx,即%xx%xx%xx 可以利用百度进行URL编码解码 ...