• 机器学习真的可以起作用吗?(2)(以二维PLA算法为例)


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

    我们试着做一些努力:

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

    image_thumb20

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

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

    image_thumb22

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

    image_thumb26

    image_thumb30

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

    image_thumb33

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

    image_thumb34

    如果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,则有 clip_image0029_thumb,下面是证明过程。正常巧妙。

    定义bounding function:

    image_thumb36

    则有:

    image_thumb37

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

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

    image_thumb39

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

    image_thumb43

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

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

    image_thumb45

    image_thumb47

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

  • 相关阅读:
    天气预报FLEX版本
    关于“ORA01000: 超出打开游标的最大数”
    WIN7(x64) IIS7.5 404.17错误:请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理。
    解决GDI+中“内存不足”问题
    Stack Overflow Exception
    清洁的Javascript
    设置SQL Server数据库中某些表为只读的多种方法
    程序员肿么了?为何总被认为是“屌丝”
    jquery datepicker 显示12个月份
    apache2.4配置虚拟主机随记
  • 原文地址:https://www.cnblogs.com/wangyanphp/p/5438201.html
Copyright © 2020-2023  润新知