zoukankan      html  css  js  c++  java
  • 理解机器为什么可以学习(五)---Noise and Error

    之前我们讨论了VC Dimension,最终得到结论,如果我们的hypetheset的VC Dimension是有限的,并且有足够的资料,演算法能够找到一个hypethesis,它的Ein很低的话,那么我们就大概学到了东西。

    看看之前的learning flow:

    我们有一个target function,能够产生一堆的sample,x 由某一个分布产生,未来的测试也有同一个分布产生。

    演算法想办法从资料和假设集里找到一个好的假设。好的假设集是VC Dimension是有限的,好的假设是Ein是低的。

    那么,我们现在讨论假设数据是有噪声的,之前的推导还是有效的吗?

    1. Noise and Probabilistic Target

    之前的讨论没有考虑噪声,但是无论是X还是Y,都是有可能带来噪声的。

    那么之前的目标函数就变为目标分布:

    目标部分告诉我们最好的分布是什么,杂讯是多少。

    P(x)代表哪些X比较重要.

    那么,现在的learning flow变为:

    2. Error Measure

    之前我们一直在寻找g和f接近,现在我们进行一个量化来表示g和f一不一样。

    之前的g有三个特性:

    (classification错误也叫做0/1 Error)

    两种错误衡量方式:

    错误大小和P(y|X)有关,和衡量错误的方法有关:

    那么,有了错误衡量的概念之后,我们的学习曲线就需要告诉演算法使用怎样的错误衡量方式。

    3. Choice of Error Measure

    其实就是说的准确率和召回率。

    假设做一个指纹辨识系统,

    那么超市打折就希望较少的false reject,所以就可以把false reject的惩罚权重调大一些。

    CIA进入许可就希望比较小的false accept,所以就可以把false accept的惩罚权重调大一些。

    所以,不同的应用需要不同的错误衡量方式。在设计演算法的时候就需要考虑到错误衡量方式。

    但真正的量化错误衡量方式往往不容易,所以需要寻找替代:

    那么,有了替代Err的概念之后,演算法可以转变为:

    4. Weighted Classification

    不同的错误有不同的权重。

    改变了Ein之后,之前的PLA和Pocket相应有什么影响呢?

    Pocket可以让Ein01尽可能的小,但是新的衡量方式也有保证么?

    这样考虑,复制权重次数即可对应。

    实际上并不需要真正的去复制,而是下述的虚拟复制。

  • 相关阅读:
    CMDB运维开发项目
    Twisted使用和scrapy源码剖析
    scrapy爬虫框架
    rabbitmq:centos7安装与python调用
    github创建远程仓库
    git使用
    Python模块:paramiko
    centos7安装python3和Django后,ModuleNotFoundError: No module named '_sqlite3'
    21. java面向对象
    20. java面向对象
  • 原文地址:https://www.cnblogs.com/futurehau/p/6262754.html
Copyright © 2011-2022 走看看