zoukankan      html  css  js  c++  java
  • 【23】不匹配数据划分的偏差和方差;判断问题所在的几个重要参数

    不匹配数据划分的偏差和方差

    存在的问题

    估算学习算法的偏差和方差,真的可以帮你确定接下来应该优先做的方向。
    但是当你的训练集来自和开发/测试集不同分布的时候,分析偏差和方差的方式可能不一样。

    训练集的误差:在得到最终的神经网络之后,将其应用到训练集的每个样本,只进行正向传播,然后得到的错误率。

    如果开发集和训练集同分布,你可能会说,这里存在很大的方差问题。你的算法不能从训练集很好地泛化,它处理训练集很好,但处理开发集就突然间效果很差了。

    但如果你的训练数据和开发数据来自不同的分布,那么我们就不能简单地下这个结论。特别是,也许算法在开发集上做的不错,可能因为训练集都是高分辨率图片,很容易识别,但开发集要难以识别得多。
    所以也许神经网络本身没有方差问题,这只不过反应了开发集包含更难准确分类的问题。

    所以这个分析的问题在于,当你看训练误差,再看开发误差,有两个事情改变了:

    算法只见过训练集数据,没见过开发集数据。
    开发集数据来自不同的分布。
    因为我们同时改变了两件事,所以很难确认这增加的9%的误差,有多少是因为算法本身的方差问题,有多少是因为训练、测试集的数据不同分布。

    训练-开发集的引入
    为了分辨这两个因素的影响,定义一组新的数据是有意义的,我们称之为训练-开发集(training-dev set)

    得到训练-开发集的方法为:随机打散训练集(randomly shuffle the training set),然后分出一部分作为训练-开发集。

    这样,我们有了训练集、和训练集不同分布的开发集和测试集(但二者同分布)、和训练集同分布的训练-开发集。

    神经网络的训练方式+区分方差偏差和数据不匹配
    我们只在训练集来训练神经网络(不让神经网络在训练-开发集上跑后向传播),之后我们看神经网络在训练集、训练-开发集、开发集上的误差。

    在上方左边例子中,我们可以得出模型方差过大的问题(high variance),即神经网络在训练集表现良好,但无法泛化到同分布的训练-开发集上(也就是同分布但没见过的数据)。

    在上方右边的例子中,我们可以看到训练-开发集的误差与训练集的误差差不多,说明方差的问题已经很小了,现在的问题是数据不匹配(data mismatch)的问题(很好理解)。

    对于下方左边的例子,训练集的误差就很大,说明模型存在偏差过大的问题(high bias),或者叫可避免偏差问题。

    当然,以上三个问题也可能同时存在多个。比如下方右边的例子,同时存在高偏差和数据不匹配的问题。

    判断问题所在的几个重要参数


    左边从上到下依次为

    • human level  人类的表现
    • training set error     训练集错误率
    • training-dev set error    训练-开发集错误率
    • dev error     开发集错误率
    • test error   测试集错误率

     availible bias 可避免误差=训练集错误率 - 人类的表现

     训练-开发集错误率  -  训练集错误率  表现了方差 (variane) 的大小

    开发集错误率 -  训练-开发集错误率  表现了数据不匹配(数据不同分布)的程度

    测试集错误率 - 开发集错误率  表现了开发集过拟合的程度  如果这俩差距过大,说明开发集过拟合了,所以需要一个更大的开发集。  要注意  开发集和测试集需要同一分布

    下面以一个例子介绍一下怎么分析误差

      还是那个调动后视镜的语音识别的例子。

    这个表格的左上方的是一般的语音识别,右上边的是调动后视镜的语音识别。 一般的语音识别下方是依次是人类错误率、训练集错误率、训练-开发集错误率。后视镜语音识别下边的依次是人类错误率、训练集错误率、开发/测试集错误率。

    Human level反映了人类识别这些的难度,对于一般的语音人类错误率为4,后视镜语音为6,说明对人类来说后视镜语音更难识别。    其他的数据之间的分析方法与之前说的一样。

  • 相关阅读:
    warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
    Windows10+CLion+OpenCV4.5.2开发环境搭建
    Android解决部分机型WebView播放视频全屏按钮灰色无法点击、点击全屏白屏无法播放等问题
    MediaCodec.configure Picture Width(1080) or Height(2163) invalid, should N*2
    tesseract
    Caer -- a friendly API wrapper for OpenCV
    Integrating OpenCV python tool into one SKlearn MNIST example for supporting prediction
    Integrating Hub with one sklearn mnist example
    What is WSGI (Web Server Gateway Interface)?
    Hub --- 机器学习燃料(数据)的仓库
  • 原文地址:https://www.cnblogs.com/lau1997/p/12361370.html
Copyright © 2011-2022 走看看