机器学习笔记--Hoeffding霍夫丁不等式
Hoeffding霍夫丁不等式
在<>第八章"集成学习"部分, 考虑二分类问题\(y \in \{-1, +1\}\) 和真实函数\(f\), 假定基分类器的错误率为\(\epsilon\), 即对每个基分类器\(h_{i}\)有
\[
\begin{equation}
P(h_{i}(x) \neq f(x)) = \epsilon
\end{equation}
\]
假设集成通过简单投票法结合\(T\)个基分类器, 若有超过半数的基分类器正确, 则集成分类就正确:
\[
\begin{equation}
H(x) = sign(\sum_{i=1}^{T}h_{i}(x))
\end{equation}
\]
假设基分类器的错误率相互独立, 则由Hoeffding不等式可知, 集成的错误率为:
\[
\begin{equation}
\begin{aligned}
P(H(x) \neq f(x)) &= \sum_{k=0}^{\lfloor T/2 \rfloor}{T \choose k}(1 - \epsilon)^{k}\epsilon^{T - k}\\
&\leq exp(-\frac{1}{2}T(1 - 2\epsilon)^{2})
\end{aligned}
\end{equation}
\]
对怎么得到小于等于之后的式子不甚明白.
维基百科上Hoeffding不等式的介绍是:
Hoeffding不等式适用于有界的随机变量. 设有两两独立的一系列随机变量\(X_{1}, ..., X_{n}\). 假设对所有的\(1\le i \le n\), \(X_{i}\)都是几乎有界的变量, 即满足:
\[
\begin{equation}
\mathbb{P}(X_{i} \in [a_{i},b_{i}]) = 1.
\end{equation}
\]
那么这n个随机变量的经验期望:
\[
\begin{equation}
\overline{X} = \frac{X_{1}+\cdot\cdot\cdot+X_{n}}{n}
\end{equation}
\]
满足以下的不等式:
\[
\begin{equation}
\mathbb{P}(\overline{X}-\mathbb{E}[\overline{X}]\ge t) \le exp\left(-\frac{2t^{2}n^{2}}{\sum_{i=1}^{n}(b_i-a_i)^2}\right)
\end{equation}
\]
\[
\begin{equation}
\mathbb{P}(\lvert \overline{X}-\mathbb{E}[\overline{X}]\rvert \ge t) \le 2exp \left(-\frac{2t^2n^2}{\sum_{i=1}^n(b_i-a_i)^2} \right)
\end{equation}
\]
先记这些定义吧, 证明以后有兴趣再看吧....
伯努利随机变量的特例
假定一个硬币A面朝上的概率为\(p\), 则B面朝上的概率为\(1-p\). 抛n次硬币, A面朝上次数的期望值为\(n * p\). 则A面朝上的次数不超过k次的概率为:
\[
\begin{equation}
\begin{aligned}
P(H(n) \le k)&=\sum_{i=0}^kC_n^ip^i(1-p)^{n-i}\\
&=\sum_{i=0}^k\frac{n!}{i!(n-i)!}p^i(1-p)^{n-i}
\end{aligned}
\end{equation}
\]
\(H(n)\)为抛n次硬币A面朝上的次数
对某一\(\varepsilon > 0\)当\(k=(p-\varepsilon)n\) 时, 有Hoeffding不等式
\[
\begin{equation}
P(H(n)\le(p-\varepsilon)n)\le e^{-2\varepsilon ^2n}
\end{equation}
\]
对应的, 当\(k=(p+\varepsilon)n\) 时,
\[
\begin{equation}
P(H(n)\ge(p+\varepsilon)n)\le e^{-2\varepsilon ^2n}
\end{equation}
\]
由此可得
\[
\begin{equation}
P((p-\varepsilon)n \le H(n) \le (p + \varepsilon)n) \ge 1-2e^{-2\varepsilon^2n}
\end{equation}
\]
利用式(9)可推式(3)
式(3)的\(1-\epsilon\) 相当于式(9)的\(p\) , 令\(H(n)\)为基分类器分类正确的数量, 有
\[
\begin{equation}
P(H(x)\neq f(x))=P(H(n) \le \lfloor\frac{T}{2}\rfloor)
\end{equation}
\]
总分类器的数量为\(T\)(就是n), 令\(\frac{T}{2}=(1-\epsilon-\varepsilon)T\), 可推得\(\varepsilon=\frac{1}{2} - \epsilon\) , 根据式(9)可得
\[
\begin{equation}
\begin{aligned}
P(H(n) \le \lfloor\frac{T}{2}\rfloor) &\le exp(-2(\epsilon-\frac{1}{2})^2T)\\
&=exp(-2(\epsilon^2+\frac{1}{4}-\epsilon)T)\\
&=exp(-\frac{T}{2}(4\epsilon^2+1-4\epsilon))\\
&=exp(-\frac{1}{2}T(1 - 2\epsilon)^{2})
\end{aligned}
\end{equation}
\]
便得到式(3)得最终不等式形式
机器学习笔记--Hoeffding霍夫丁不等式的更多相关文章
- python机器学习笔记:EM算法
EM算法也称期望最大化(Expectation-Maximum,简称EM)算法,它是一个基础算法,是很多机器学习领域的基础,比如隐式马尔科夫算法(HMM),LDA主题模型的变分推断算法等等.本文对于E ...
- Python机器学习笔记:不得不了解的机器学习面试知识点(1)
机器学习岗位的面试中通常会对一些常见的机器学习算法和思想进行提问,在平时的学习过程中可能对算法的理论,注意点,区别会有一定的认识,但是这些知识可能不系统,在回答的时候未必能在短时间内答出自己的认识,因 ...
- word2vec中关于霍夫曼树的
再谈word2vec 标签: word2vec自然语言处理NLP深度学习语言模型 2014-05-28 17:17 16937人阅读 评论(7) 收藏 举报 分类: Felven在职场(86) ...
- Python机器学习笔记:SVM(1)——SVM概述
前言 整理SVM(support vector machine)的笔记是一个非常麻烦的事情,一方面这个东西本来就不好理解,要深入学习需要花费大量的时间和精力,另一方面我本身也是个初学者,整理起来难免思 ...
- Alink漫谈(十六) :Word2Vec源码分析 之 建立霍夫曼树
Alink漫谈(十六) :Word2Vec源码分析 之 建立霍夫曼树 目录 Alink漫谈(十六) :Word2Vec源码分析 之 建立霍夫曼树 0x00 摘要 0x01 背景概念 1.1 词向量基础 ...
- 赫夫曼\哈夫曼\霍夫曼编码 (Huffman Tree)
哈夫曼树 给定n个权值作为n的叶子结点,构造一棵二叉树,若带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree).哈夫曼树是带权路径长度最短的树,权值较大的结点离 ...
- python数字图像处理(16):霍夫圆和椭圆变换
在极坐标中,圆的表示方式为: x=x0+rcosθ y=y0+rsinθ 圆心为(x0,y0),r为半径,θ为旋转度数,值范围为0-359 如果给定圆心点和半径,则其它点是否在圆上,我们就能检测出来了 ...
- python数字图像处理(15):霍夫线变换
在图片处理中,霍夫变换主要是用来检测图片中的几何形状,包括直线.圆.椭圆等. 在skimage中,霍夫变换是放在tranform模块内,本篇主要讲解霍夫线变换. 对于平面中的一条直线,在笛卡尔坐标系中 ...
- 机器学习笔记:Gradient Descent
机器学习笔记:Gradient Descent http://www.cnblogs.com/uchihaitachi/archive/2012/08/16/2642720.html
随机推荐
- js 返回两数(包含这两数)之间的随机数函数
function selectFrom( lowerValue, upperValue ){ var choices = upperValue - lowerValue + 1; return Mat ...
- 初探nodejs事件循环机制event loop
nodejs的特点 nodejs 具有事件驱动和非阻塞I/O的特点. 事件驱动是指nodejs把每一个任务当成事件来处理. 非阻塞I/O是指nodejs遇到I/O任务时,会从线程池调度单独的线程处理I ...
- 【Python 脚本报错】AttributeError: 'module 'yyy' has no attribute 'xxx'的解决方法
先参考这篇记录大概理解了原因, 再深入了解下python的import机制, 发现自己的模块之间存在互相import. 比如,A.py中import B,而B.py中也import A了, 现在执行模 ...
- OpenTK学习笔记(2)-工作窗口的三种方法创建方法(winfrom下类的形式创建)
参考资料: https://www.codeproject.com/Articles/1167212/OpenGL-with-OpenTK-in-Csharp-Part-Initialize-the- ...
- Googletest - Google Testing and Mocking Framework
Googletest - Google Testing and Mocking Framework https://github.com/google/googletest
- Request模块入门学习
使用指令npm install --save request来安装模块,然后使用var request = require('request')完成引用. 对于GET请求,主要是获取目的url中数据. ...
- SQL-W3School-函数:SQL MIX() 函数
ylbtech-SQL-W3School-函数:SQL MIX() 函数 1.返回顶部 1. MIN() 函数 MIN 函数返回一列中的最小值.NULL 值不包括在计算中. SQL MIN() 语法 ...
- python下multiprocessing和gevent的组合使用
python下multiprocessing和gevent的组合使用 对于有些人来说Gevent和multiprocessing组合在一起使用算是个又高大上又奇葩的工作模式. Python的多线程受制 ...
- 【418】C语言ADT实现Quack(stack+queue)
quack.h #include <stdio.h> #include <stdlib.h> #include <assert.h> typedef struct ...
- 创建IDOC
第一步:WE31 创建IDOC所包含的字段. 第二步:WE30 创建IDOC 把Segment分配给IDOC 第三步:WE81 创建信息类型 第四步:WE82 把IDOC类型与信息类型对应. 第五步: ...