统计机器学习理论:随机熵、vc熵、退火VC熵、生长函数、VC维定义理解

一、定义:

有n个训练样本Zn={zi(xi,yi), i=1,2,...,n},定义N(Zn)为函数集中的函数能对样本分类的数目。

       解释:xi 代表特征向量如d维特征向量,yi代表一个标记如0或1, 因此zi就是对一个特征的标记,Zn中有n个样本,可能的标记方式2n种,一种标记方式就生成一种样本集;

N(Zn)为Zn的标记空间中能被正确分类的标记数量。

举例:在二维特征空间中,不共线的3个二维特征向量,其标记方式有23=8种,每一种标记方式都能被指示函数集二维线性分类器正确分类,因此这3个特征组成的集合的N(Z3)=8,如图1所示;但是共线的3个二维特征向量,其标记方式也有23=8种,但只有两种方式能够被指示函数集二维线性分类器正确分类,因此这3个特征组成的集合的N(Z3)=2,如图2所示。

图1:不共线的3个二维特征的8种标记都能够被二维线性分类器分类

图2:共线的3个二维特征的8种标记中有6种标记不能被二维线性分类器分类

      1、随机熵:指示函数集能够实现分类组合数的自然对数,称为函数集在样本上的随机熵,表示为H(Zn)=lnN(Zn)。

           显然对于二维线性分类器,图1中的三个特征样本集的随机熵H(Z3)=lnN(Z3)=ln23=3ln2;图2中的三个特征样本集的随机熵为H(Z3)=lnN(Z3)=ln2=ln2;

      2、VC熵:n个样本的随机熵的期望值H(n)=E(lnN(Zn))。

显然对于二维线性分类器,三个特征样本集的VC熵为H(3)=1/2 x 3ln2 + 1/2 x ln2 =2ln2;

      3、退火的VC熵:Hann(n)=ln E(N(Zn))。

           显然对于二维线性分类器,三个特征样本集的VC熵为Hann(3)=ln(1/2 x 8 + 1/2 x 2) =ln5;

      4、生长函数:函数集的最大随机熵,G(n)=ln maxZnN(Zn)。

           显然对于二维线性分类器,三个特征样本集的生长函数为G(3)=3ln2;

       5、打散:在由n个特征组成的集合中(这种集合无限多),只要存在一种集合,它的所有2n种记方式都能够被标记函数集分类,那么就称n个特征构成的样本集能够被该标记函数集打散。

           显然3个二维特征构成的样本集能够被二维线性分类器打散,因为3个二维特征存在一种不共线的情况,它的8终标记方式能够被二维线性分类器正确分类。

       6、VC维:指示函数集能打散的最大样本数。

            显示对于二维线性分类器,3个特征的样本集是能够被打散的,但是4个特征的样本集不能够被打散,因为4个特征构成的所有特征集中,任何一个特征集都不存在24=16种标记方式能被正确分类,即对于所有的N(Z4)< 16。因此二维线性分类器的VC维是3。

二、性质

1、三者之间关系:H(n) <= Hann(n)<= G(n)<=nln2;(证明忽略,以二维线性分类器为例理解)

       2、标记函数集的生长函数或者与样本数成正比,即G(n)=nln2,或者以样本数的某个对数函数维上界,即G(n)<=h*(ln(n/h) + 1), n>h,h是VC维。(证明忽略,以二维线性分类器为例理解)

       3、d维空间中的N个样本线性可分的数目,即N(Zn)=D(n,d)=2n,当 n<=d 时;N(Zn)=D(n,d)=2n2(sigma{C(n-1,i)},i=0,...,d),当n>d时。sigma以为是从i=0到i=d对组合数C(n-1,i)累加。

       4、从性质2中,可以看出随着样本数目增加,生长函数G(n)不是线性增加的。

时间: 2024-10-11 05:52:34

统计机器学习理论:随机熵、vc熵、退火VC熵、生长函数、VC维定义理解的相关文章

【机器学习快速入门】简单自学机器学习理论

[机器学习快速入门]简单自学机器学习理论 机器学习理论--part I 前言 (第II部分内容点此:第III部分内容点此) 动机 大多数人在小的时候被魔术师以及魔术技巧所迷住,并想弄明白其中的奥秘.有些人会带着这份迷恋研究到更深处并学习魔术技巧,有些人会接受专业的训练,而其他人会继续平庸下去.我在年幼时也尝试过魔术技巧并沉迷于其中,然而后来学习的是另外一种魔术,称作计算机编程. 编程确实酷似魔法, 和魔术一样,自学的现象在计算机编程世界占了上风.在过去的两年计算机开发者调查显示,超过一半的开发者

浅说机器学习理论

机器学习是现在在风口上.其包括一系列的具体算法,学习这些算法需要一定的数学基础(线性代数.概率论),网上有大量的资料可以参考学习:对于工程来说门槛就更低了,有许多优秀的现成框架可以使用.虽然我们调用一些api.调调参数就能完成很多工作,但是理解这背后的"为什么"还需要下一番功夫.机器学习理论是该领域的分析框架,这方面的内容比较抽象,且"实用性不强",所以常常被人忽略.这篇博客就来通俗地讲讲这些理论. 1.什么是机器学习 计算机编程算法是用来解决各种实际问题的.在传统

机器学习理论研究方法探讨

本文译自:http://www.alexirpan.com/2016/07/17/ml-sleep.html,原文标题<The Machine Learning Casino>,译文供您参考. 一.机器学习理论研究 机器学习是一种能使计算机半自主地对数据进行分析,并从中学习经验的算法. 机器学习理论的研究听上去就好像做这么一件事,让我们的研究人员去深刻探索,提高计算机学习数据集的效率的方法. 事实上,机器学习理论的研究可以在我们的生活的每时每刻找到影子.就好像你在不断的进行一场赌博,只不过你的

关于VC画图闪屏的问题 - VC/MFC / 基础类

显示图形如何避免闪烁,如何提高显示效率是问得比较多的问题. 而且多数人认为MFC的绘图函数效率很低,总是想寻求其它的解决方案. MFC的绘图效率的确不高但也不差,而且它的绘图函数使用非常简单, 只要使用方法得当,再加上一些技巧,用MFC可以得到效率很高的绘图程序. 我想就我长期(呵呵当然也只有2年多)使用MFC绘图的经验谈谈 我的一些观点. 1.显示的图形为什么会闪烁? 我们的绘图过程大多放在OnDraw或者OnPaint函数中,OnDraw在进行屏 幕显示时是由OnPaint进行调用的.当窗口

Qt打开外部程序和文件夹需要注意的细节(Qt调用VC写的动态库,VC需要用C的方式输出函数,否则MinGW32编译过程会报错)

下午写程序中遇到几个小细节,需要在这里记录一下. ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 QProcess *process = new QProcess(this);     QFileInfo fileinfo(appUrl);     QString appPath = QApplication::applicationDirPath()+SAVEDIR+"/"+fileinfo.fileName();     bool res = proce

vc++ release模式下不存_DEBUG宏定义的解决方案

1 #ifndef 2 #define _DEBUG 0 3 #endif 4 5 #ifdef _DEBUG 6 #define trace(x) printf(x); 7 #else 8 #define trace(x) ; 9 #endif #ifndef #define _DEBUG 0 #endif #ifdef _DEBUG #define trace(x) printf(x); #else #define trace(x) ; #endif vc++ release模式下不存_DE

【统计学习】随机梯度下降法求解感知机模型

1. 感知机学习模型 感知机是一个二分类的线性分类问题,求解是使误分类点到超平面距离总和的损失函数最小化问题.采用的是随机梯度下降法,首先任意选取一个超平面w0和b0,然后用梯度下降法不断地极小化目标损失函数,极小化过程中不是一次使所有误分类点的梯度下降,而是一次随机选取一个误分类点使其梯度下降.假设误分类点集合M是固定的,那么损失函数L(w,b)的梯度: 随机选取一个误分类点,对w和b进行更新: 其中n是步长,又称为学习率(learning rate),这样通过迭代可以使损失函数L(w,b)不

HEVC熵解码代码分析—重写熵解码(3)

在HM代码中熵解码的部分写得比较复杂,通过分析后,用C代码重写了熵解码的部分,思路会更加清晰一些 数据结构: typedef struct ContextModel { HEVC_UINT8 State; HEVC_UINT32 BinsCoded; }ContextModel; typedef struct ContextModel3D { ContextModel* pContextModel; ///< array of context models HEVC_UINT32 SizeX;

Linux统计机器上登陆失败的用户数量

sudo lastb |grep ssh |awk '{ count[$3]++} END{ for(ip in count) print ip, ": " count[ip]}' |sort -nrk 3