一个问题:大多数情况下,M(hypothesis set的大小)是无穷大的,例如PLA算法。那么是不是我们的原则1就不能使用了?

我们试着做一些努力:

Step1:寻找hypothesis set的effective number来代替M

什么意思呢?就是之前推导中,但是呢,例如在PLA算法中,h1和h2是如此的相像(考虑平面上的直线),所以,如果D对于h1是GOOD,那么对于h2也是GOOD。即:重叠部分太多,我们over-estimatinng了。

现在我们换一种思路。从DataSet的角度看问题。

什么意思?对于只有一个点的D,所有的h分为两类:一种是把x1分为 的,一种是分为 ×。

到现在,我们已经明白这种思路了。对于对于每一个h,我们看它对于D中每一个数据的分类情况。这叫做一个dichotomy。那么H的effective Number 就是dichotomies的总数。

但是呢,这样的话,我们的计算过程又依赖于D的具体数据,所以使用Growth Function来移除对数据的依赖:即我们使用|H(x1; x2; : : : ; xN)|的上限。用来表示:

如果Growth Function是polynomial 而非exponential,那么我们就可以使用原则1设计学习算法A。

Step2:effective number是Polynomial 而非exponential

根据上文,我们知道,只需要证明effective number是Polynomial 而非exponential,我们就大功告成了。但是,我们需要引入几个概念来辅助我们的证明过程

概念:Break Point & shatter

这是对于解决Growth Function问题很重要的两个概念。

存在2个输入点,PLA的H可以完全实现四种分类。这时,称这2个点被shatter。

存在3个输入点,PLA的H可以完全实现8种分类,这时,称这3个点被shatter。

但是,没有任何4个点,可以被PLA的H  shatter。

此时,4就是H的break point。

设k是H的break point,则有 ,下面是证明过程。正常巧妙。

定义bounding function:

则有:

如何求解其余的B(N,k)?

以B(4,3)为例,看看能不能用B(3,?)解决。

B(4,3)=11,可以分成两类:一类是x4成对出现的,一类是x4成单出现的。

因为k=3,所以任意3点都不能shatter,即:α+β≤B(3,3)。

又因为对于2α来说,x4是成对出现的,所以,x1,x2,x3任意两个点必然不能shatter,否则的话,再加上x4,就会有三个点被shatter。即:α≤B(3,2)。

可用数学归纳法证明。此时不等式右端为growth function上限的上限。(可以证明,上面的≤实际上是=)

机器学习真的可以起作用吗?(2)(以二维PLA算法为例)的更多相关文章

  1. 机器学习真的可以起作用吗?(3)(以二维PLA为例)

    前两篇文章已经完成了大部分的工作,这篇文章主要是讲VC bound和 VC dimension这两个概念. (一)前文的一点补充 根据前面的讨论,我们似乎只需要用来替代来源的M就可以了,但是实际公式却 ...

  2. paper 127:机器学习中的范数规则化之(二)核范数与规则项参数选择

    机器学习中的范数规则化之(二)核范数与规则项参数选择 zouxy09@qq.com http://blog.csdn.net/zouxy09 上一篇博文,我们聊到了L0,L1和L2范数,这篇我们絮叨絮 ...

  3. [机器学习]-[数据预处理]-中心化 缩放 KNN(二)

    上次我们使用精度评估得到的成绩是 61%,成绩并不理想,再使 recall 和 f1 看下成绩如何? 首先我们先了解一下 召回率和 f1. 真实结果 预测结果 预测结果   正例 反例 正例 TP 真 ...

  4. R语言︱机器学习模型评估方案(以随机森林算法为例)

    笔者寄语:本文中大多内容来自<数据挖掘之道>,本文为读书笔记.在刚刚接触机器学习的时候,觉得在监督学习之后,做一个混淆矩阵就已经足够,但是完整的机器学习解决方案并不会如此草率.需要完整的评 ...

  5. [转]Python3《机器学习实战》学习笔记(一):k-近邻算法(史诗级干货长文)

    转自http://blog.csdn.net/c406495762/article/details/75172850 版权声明:本文为博主原创文章,未经博主允许不得转载.   目录(?)[-] 一 简 ...

  6. 学机器学习,不会数据处理怎么行?—— 二、Pandas详解

    在上篇文章学机器学习,不会数据处理怎么行?—— 一.NumPy详解中,介绍了NumPy的一些基本内容,以及使用方法,在这篇文章中,将接着介绍另一模块——Pandas.(本文所用代码在这里) Panda ...

  7. 机器学习:PCA(高维数据映射为低维数据 封装&调用)

    一.基础理解 1) PCA 降维的基本原理 寻找另外一个坐标系,新坐标系中的坐标轴以此表示原来样本的重要程度,也就是主成分:取出前 k 个主成分,将数据映射到这 k 个坐标轴上,获得一个低维的数据集. ...

  8. 机器学习在IC设计中的应用(二)--根据GBA时序结果来预测PBA

    本文转自:自己的微信公众号<集成电路设计及EDA教程> <机器学习在IC设计中的应用(二)--根据GBA时序结果来预测PBA> AOCV AOCV全称:Advanced OCV ...

  9. 【Python机器学习实战】决策树和集成学习(二)——决策树的实现

    摘要:上一节对决策树的基本原理进行了梳理,本节主要根据其原理做一个逻辑的实现,然后调用sklearn的包实现决策树分类. 这里主要是对分类树的决策进行实现,算法采用ID3,即以信息增益作为划分标准进行 ...

随机推荐

  1. android的jni

    一.底层实现: c文件:hardware/libhardware_legacy/power/power.c 以其中set_screen_state(int)函数为例 其Android.mk中添加:   ...

  2. 什么是HttpOnly

    1.什么是HttpOnly? 如果您在cookie中设置了HttpOnly属性,那么通过js脚本将无法读取到cookie信息,这样能有效的防止XSS攻击,具体一点的介绍请google进行搜索 2.ja ...

  3. windows本地无法启动sqlserver服务

    解决方法:进入服务列表后,选择sqlserver服务,右键然后选择属性,然后在登陆选项卡中,选择本地系统帐户,这样就可以启动sqlserver服务了

  4. PHP文件下载原理

    1.php下载原理图 2.文件下载源码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 <?php $ ...

  5. ProgressBar 示例及自定义样式

    在layout中使用ProgerssBar,其中使用了自定义的样式 <ProgressBar android:id="@+id/footer_refresh_prgs" st ...

  6. 【POJ】3523 The Morning after Halloween

    1. 题目描述$m \times n$的迷宫(最大为$16 \times 16$)包含最多3个点,这些点可以同时向相邻方向移动或保持停止,使用小写字母表示起始位置,使用大写字母表示中止位置.求最少经过 ...

  7. Android开发之火星坐标转换工具

    代码: import java.io.InputStream; import java.io.ObjectInputStream; /* * 把获取到的真实地址转换为火星坐标 */ public cl ...

  8. 函数buf_pool_init_instance

    buff_pool_t 结构体 详见 /********************************************************************//** Initial ...

  9. 获取本机外网ip和内网ip

    获取本机外网ip //获取本机的公网IP public static string GetIP() { string tempip = ""; try { WebRequest r ...

  10. Qt之进程间通信(共享内存)

    简述 上一节中,我们分享下如何利用Windows消息机制来进行不同进程间的通信.但是有很多局限性,比如:不能跨平台,而且必须两个进程同时存在才可以,要么进程A发了消息谁接收呢? 下面我们来分享另外一种 ...