机器学习策略篇:详解可避免偏差(Avoidable bias)
可避免偏差
如果希望学习算法能在训练集上表现良好,但有时实际上并不想做得太好。得知道人类水平的表现是怎样的,可以确切告诉算法在训练集上的表现到底应该有多好,或者有多不好,让我说明是什么意思吧。

经常使用猫分类器来做例子,比如人类具有近乎完美的准确度,所以人类水平的错误是1%。在这种情况下,如果您的学习算法达到8%的训练错误率和10%的开发错误率,那么也许想在训练集上得到更好的结果。所以事实上,算法在训练集上的表现和人类水平的表现有很大差距的话,说明的算法对训练集的拟合并不好。所以从减少偏差和方差的工具这个角度看,在这种情况下,会把重点放在减少偏差上。需要做的是,比如说训练更大的神经网络,或者跑久一点梯度下降,就试试能不能在训练集上做得更好。

但现在看看同样的训练错误率和开发错误率,假设人类的表现不是1%,就把它抄写过来。但知道,在不同的应用或者说用在不同的数据集上,假设人类水平错误实际上是7.5%,也许的数据集中的图像非常模糊,即使人类都无法判断这张照片中有没有猫。这个例子可能稍微更复杂一些,因为人类其实很擅长看照片,分辨出照片里有没有猫。但就为了举这个例子,比如说的数据集中的图像非常模糊,分辨率很低,即使人类错误率也达到7.5%。在这种情况下,即使的训练错误率和开发错误率和其他例子里一样,就知道,也许的系统在训练集上的表现还好,它只是比人类的表现差一点点。在第二个例子中,可能希望专注减少这个分量,减少学习算法的方差,也许可以试试正则化,让的开发错误率更接近的训练错误率。
所以在之前的博客关于偏差和方差的讨论中,主要假设有一些任务的贝叶斯错误率几乎为0。所以要解释这里发生的事情,看看这个猫分类器,用人类水平的错误率估计或代替贝叶斯错误率或贝叶斯最优错误率,对于计算机视觉任务而言,这样替代相当合理,因为人类实际上是非常擅长计算机视觉任务的,所以人类能做到的水平和贝叶斯错误率相差不远。根据定义,人类水平错误率比贝叶斯错误率高一点,因为贝叶斯错误率是理论上限,但人类水平错误率离贝叶斯错误率不会太远。所以这里比较意外的是取决于人类水平错误率有多少,或者这真的就很接近贝叶斯错误率,所以假设它就是,但取决于认为什么样的水平是可以实现的。

在这两种情况下,具有同样的训练错误率和开发错误率,决定专注于减少偏差的策略或者减少方差的策略。那么左边的例子发生了什么?
8%的训练错误率真的很高,认为可以把它降到1%,那么减少偏差的手段可能有效。而在右边的例子中,如果认为贝叶斯错误率是7.5%,这里使用人类水平错误率来替代贝叶斯错误率,但是认为贝叶斯错误率接近7.5%,就知道没有太多改善的空间了,不能继续减少的训练错误率了,也不会希望它比7.5%好得多,因为这种目标只能通过可能需要提供更进一步的训练。而这边,就还(训练误差和开发误差之间)有更多的改进空间,可以将这个2%的差距缩小一点,使用减少方差的手段应该可行,比如正则化,或者收集更多的训练数据。
所以要给这些概念命名一下,这不是广泛使用的术语,但觉得这么说思考起来比较流畅。就是把这个差值,贝叶斯错误率或者对贝叶斯错误率的估计和训练错误率之间的差值称为可避免偏差,可能希望一直提高训练集表现,直到接近贝叶斯错误率,但实际上也不希望做到比贝叶斯错误率更好,这理论上是不可能超过贝叶斯错误率的,除非过拟合。而这个训练错误率和开发错误率之前的差值,就大概说明的算法在方差问题上还有多少改善空间。

可避免偏差这个词说明了有一些别的偏差,或者错误率有个无法超越的最低水平,那就是说如果贝叶斯错误率是7.5%。实际上并不想得到低于该级别的错误率,所以不会说的训练错误率是8%,然后8%就衡量了例子中的偏差大小。应该说,可避免偏差可能在0.5%左右,或者0.5%是可避免偏差的指标。而这个2%是方差的指标,所以要减少这个2%比减少这个0.5%空间要大得多。而在左边的例子中,这7%衡量了可避免偏差大小,而2%衡量了方差大小。所以在左边这个例子里,专注减少可避免偏差可能潜力更大。
所以在这个例子中,当理解人类水平错误率,理解对贝叶斯错误率的估计,就可以在不同的场景中专注于不同的策略,使用避免偏差策略还是避免方差策略。在训练时如何考虑人类水平表现来决定工作着力点,具体怎么做还有更多微妙的细节,接下来会越来越深入了解人类水平表现的真正意义。
机器学习策略篇:详解可避免偏差(Avoidable bias)的更多相关文章
- PHP函数篇详解十进制、二进制、八进制和十六进制转换函数说明
PHP函数篇详解十进制.二进制.八进制和十六进制转换函数说明 作者: 字体:[增加 减小] 类型:转载 中文字符编码研究系列第一期,PHP函数篇详解十进制.二进制.八进制和十六进制互相转换函数说明 ...
- 走向DBA[MSSQL篇] 详解游标
原文:走向DBA[MSSQL篇] 详解游标 前篇回顾:上一篇虫子介绍了一些不常用的数据过滤方式,本篇详细介绍下游标. 概念 简单点说游标的作用就是存储一个结果集,并根据语法将这个结果集的数据逐条处理. ...
- Scala进阶之路-Scala函数篇详解
Scala进阶之路-Scala函数篇详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.传值调用和传名调用 /* @author :yinzhengjie Blog:http: ...
- CentOS 7 下编译安装lnmp之PHP篇详解
一.安装环境 宿主机=> win7,虚拟机 centos => 系统版本:centos-release-7-5.1804.el7.centos.x86_64 二.PHP下载 官网 http ...
- CentOS 7 下编译安装lnmp之MySQL篇详解
一.安装环境 宿主机=> win7,虚拟机 centos => 系统版本:centos-release-7-5.1804.el7.centos.x86_64 二.MySQL下载 MySQL ...
- CentOS 7 下编译安装lnmp之nginx篇详解
一.安装环境 宿主机=> win7,虚拟机 centos => 系统版本:CentOS Linux release 7.5.1804 (Core),ip地址 192.168.1.168 ...
- Canal:同步mysql增量数据工具,一篇详解核心知识点
老刘是一名即将找工作的研二学生,写博客一方面是总结大数据开发的知识点,一方面是希望能够帮助伙伴让自学从此不求人.由于老刘是自学大数据开发,博客中肯定会存在一些不足,还希望大家能够批评指正,让我们一起进 ...
- java提高篇-----详解java的四舍五入与保留位
转载:http://blog.csdn.net/chenssy/article/details/12719811 四舍五入是我们小学的数学问题,这个问题对于我们程序猿来说就类似于1到10的加减乘除那么 ...
- 如何正确删除VMare虚拟机上的系统机器(图文详解)
不多说,直接上干货! 打开虚拟机进入操作系统列表 在操作系统列表,点击要删除的操作系统,如win7, 点击要删除的操作系统后,在主菜单中找到虚拟机. 如图所示,从磁盘中彻底删除. 是 即,成功从虚拟机 ...
- 组件--Fragment(碎片)第二篇详解
感觉之前看的还是不清楚,重新再研究了一次 Fragment常用的三个类: android.app.Fragment 主要用于定义Fragment android.app.FragmentManager ...
随机推荐
- 保护C#代码的艺术:深入浅出代码混淆技术
摘要 在C#开发中,代码的保护是一个不可忽视的问题.本文深入探讨了几种常用的C#代码混淆工具,帮助开发者理解如何有效地保护代码不被反编译.同时,本文也对混淆技术的优缺点进行了分析,并提供了一些实际使用 ...
- 重走py 之路 ——普通操作与函数(三)
前言 本节主要介绍函数,但是函数是由操作组成的.那么就分为两部,一部分为操作一部分为函数. 正文 py世界中的操作. 操作 if: 在学习任何一门语言中,关系if,要关系另外一件事,那就是if是否只能 ...
- C++ 递归与面向对象编程基础
C++ 递归 递归是一种使函数调用自身的技术.这种技术提供了一种将复杂问题分解为简单问题的方法,从而更容易解决问题. 递归可能有点难以理解.理解其工作原理的最佳方法是通过实验来尝试. 递归示例 将两个 ...
- drf——基于apiview写过滤、排序和分页
基于APIView带过滤和排序 from rest_framework.views import APIView from .models import Book from .serializer i ...
- MaxCompute项目子账号做超级管理员
场景 主账号不是大数据团队管理,使用MaxCompute员工都只持有子账号,而project的owner只能为主账号,但是很多MaxCompute的权限管理还需要owner才可以操作(如项目级别的fl ...
- 5月25日,阿里云开源 PolarDB-X 将迎来重磅升级发布
简介:2022年5月25日,阿里云开源 PolarDB-X 将升级发布新版本!PolarDB-X 从 2009 年开始服务于阿里巴巴电商核心系统, 2015 年开始对外提供商业化服务,并于 2021 ...
- K8s Ingress Provider 为什么选择 MSE 云原生网关?
简介:在虚拟化时期的微服务架构下,业务通常采用流量网关 + 微服务网关的两层架构,流量网关负责南北向流量调度和安全防护,微服务网关负责东西向流量调度和服务治理,而在容器和 K8s 主导的云原生时代, ...
- 使用友盟+的APM服务实现对移动端APP的性能监控
简介: 对于信息系统服务,一般我们的重点监控对象都是核心的后端服务,通常会采用一些主流的APM(Application Performance Management)框架进行监控.告警.分析.那么对 ...
- [Go] Go Module 私有依赖包的管理
一些自研开发的第三方包,特别是一些业务依赖包,是不允许公开下载的(私有库),并且版本库也可能不支持HTTPS协议, 因此无法使用 go get 或者 go.mod 进行下载和管理,可以通过 GOPRI ...
- [Blockchain] 去中心化与互联网分布式的联系与区别
去中心化和传统分布式都是多机应用,这是它们的共同之处,但是背后有着不一样的用途. 我们所理解的传统分布式及其应用可以解决两个问题:冗余备份/扩容 和 并行计算. 而去中心化应用的目的是维护不可逆转数据 ...