zoukankan      html  css  js  c++  java
  • Computer Science Theory for the Information Age-1: 高维空间中的球体

    高维空间中的球体

        注:此系列随笔是我在阅读图灵奖获得者John Hopcroft的最新书籍<Computer Science Theory for the Information Age>所作的笔记。其中我只详细读了第二(高维空间)、三(随机图)、六(VC理论)章,其他的某些章节也略微看了一下,但没有作笔记。此书的章节大部分是相互独立的,事实上每一个章节都是一个大的方向,代表了作者认为的在信息时代中最有用的计算机理论。

    (一)介绍

        第一部分,高维空间。在现实的世界里,很多数据的维度都是及其高的,而当维度增高时,很多在低维中的性质在高维中似乎不太一样了。比如当维度趋近无穷时,单位超球的体积趋于0,而其面积大都集中在超球的赤道附近(equator)。

        首先,来看一下在现实中有那些数据是高维的。第一,用词向量模型表示的文本文件。假如我们用一个$n$维向量来表示一个文本文件,其中每一个维度代表对应单词出现的次数,那么这个文件的维度将是巨大的。比如英文中大概有25,000个词,那么这个文件的维度就有25,000维。第二,多媒体数据。当我们把一个二维图像,或者三维的视频拉成一个一维的向量时,那这个表示图像或视频的向量的维度也是巨大的。第三,网页的连结情况。假如我们用一个$n$维向量来表示一个网页与其他网页的连结情况,即向量的第$i$个元素表示该网页与第$i$个网页的连结情况,那么当网页数量巨大时,这个向量的维度也是非常高的。类似的数据还有很多,比如用一个向量表示某个用户对所有产品的购买情况等。

        高维的数据带来的不仅仅是计算和存储的问题,有时也会导致精度的问题。解决这类问题的最有效方法就是在保证信息不丢失的前提下进行降维,比如PCA(无监督),LDA(有监督)。但当维度非常非常高的时候,这类方法的降维效果并不好,此时最好用的应该还是随机投影,即找一个随机矩阵,左乘这个数据,从而到达降维并且能保证准确度(下一篇随笔我会详细介绍随机投影)。

    (二)高维空间中的正方体

        一个$d$维的单位正方体,其体积总是1。现在我们将这个$d$维正方体的各个面同时向里收缩一点,使这个$d$维正方体的边长为$a<1$,此时收缩后的正方体的体积为$a^d$,当$d$趋于无穷大的时候,这个收缩后$d$维正方体的体积趋于0。从这里我们可以看到,一个高维的正方体,其体积主要集中在正方体的表面附近。换个角度理解,假设我们要在这个$d$维正方体内均匀随机的取一个点,那么当$d$很大时,这个点将以很高的概率是在某个面的附近,而将以很低的概率出现在高维正方体的内部。

        假设一个$d$维单位正方体的中心点为原点,并且我们以这个原点为中心,半径为1画一个高维的球体。现在,我们来看看这个高维正方体和高维球体的关系。当$d=2$时,原点到正方形顶点的距离为$sqrt{frac{1}{2}^2+frac{1}{2}^2}approx 0.707<1$,也就是说这个正方形被包含在圆形内部;当$d=4$时,原点到4维正方形的顶点距离为$sqrt{frac{1}{2}^2+frac{1}{2}^2+frac{1}{2}^2+frac{1}{2}^2}=1$,也就是说这个四维的正方体刚好被这个四维的球体给包含中。很显然,当$d$在继续增大时,原点到$d$维正方体顶点的距离为$frac{sqrt{d}}{2}>1$,这个$d$维的球体将无法包含住$d$维的正方体。事实上,这个$d$维的正方体的对角线以$sqrt{d}$增长,而$d$维球体的直径却一直保持在2,而每个边的中点与原点的距离也始终保持在$frac{1}{2}$,处于球体内部。

    (三)高维空间中球体的体积与表面积

        我们现在来计算一个$d$维球体的体积以及它的表面积。有趣的是,这个当$d$趋于无穷时,球体的体积趋于零。在笛卡尔的坐标系下,$d$维球体的体积可按如下计算:

    egin{equation}V(d)=int_{x_1=-1}^{x_1=1}int_{x_2=-sqrt{1-x_1^2}}^{x_2=sqrt{1-x_1^2}}cdotsint_{x_d=-sqrt{1-x_1^2-cdots-x_{d-1}^2}}^{x_d=sqrt{1-x_1^2-cdots-x_{d-1}^2}}dx_dcdots dx_2dx_1label{equ:CarSphereV}end{equation}

    由于以上的积分太难计算,我们可以转换为极坐标系下计算。

        首先,先来回顾一下极坐标表换。对于$V(2)=int_{x_1=-1}^{x_1=1}int_{x_2=-sqrt{1-x_1^2}}^{x_2=sqrt{1-x_1^2}}dx_1dx_2$,我们可以利用极坐标变换$left{egin{array}&x_1=r cos heta\x_2=rsin hetaend{array} ight.$,其对应的雅可比行列式为$left| egin{array}&frac{partial x_1}{partial r}&frac{partial x_1}{partial heta}\frac{partial x_2}{partial r}&frac{partial x_2}{partial heta}end{array} ight|=r$,所以在极坐标下表示为:

    $$V(2)=int_0^{2pi}d hetaint_0^1rdr riangleq int_{S^1}dOmegaint_{r=1}^1rdr riangleq A(1)int_{r=0}^1rdr$$

    其中,$A(1)=int_{S^1}dOmega$表示单位圆形的周长。同样,对于$V(d)$,我们也可以利用以下极坐标变换以及雅可比行列式:

    egin{align*}&left{egin{array}&x_1=rcos heta_1\x_2=rsin heta_1cos heta_{2}\vdots\x_{d-1}=rsin heta_1cdotssin heta_{d-2}cos heta_{d-1}\x_d=rsin heta_1cdotssin heta_{d-2}sin heta_{d-1}end{array} ight.\& J(d)=left|egin{array}&frac{partial x_1}{partial r}&frac{partial x_1}{partial heta_1}&cdots&frac{partial x_1}{partial heta_{d-1}}\frac{partial x_2}{partial r}&frac{partial x_2}{partial heta_1}&cdots&frac{partial x_2}{partial heta_{d-1}}\vdots\frac{partial x_d}{partial r}&frac{partial x_d}{partial heta_1}&cdots&frac{partial x_d}{partial heta_{d-1}}end{array} ight|=r^{d-1}sin^{d-2} heta_1sin^{d-3} heta_2cdotssin heta_{d-2}end{align*}

     所以在极坐标下$V(d)$表示成

    egin{align}V(d)&=int_0^pi d heta_1cdotsint_0^pi heta_{d-2}int_0^{2pi}sin^{d-2} heta_1cdotssin heta_{d-2}d heta_{d-1}int_0^1r^{d-1}dr onumber\& riangleqint_{S^d}dOmegaint_{r=0}^1r^{d-1}drlabel{equ:ParSphereV}end{align}

    其中$dOmega$为$d$维立体角$S^d$(solid angle)对应的超扇形的表面积微分。比如$d=2$时,为扇形周长的微分;$d=3$时,为球的表面积微分。

    由于变量$Omega$和变量$r$之间是相互无关的,所以:

    egin{equation}V(d)=int_{S^d}dOmegaint_{r=0}^1r^{d-1}dr=frac{1}{d}int_{S^d}dOmega=frac{A(d)}{d}end{equation}

    这里的$A(d)=int_{S^d}dOmega$为$d$维球体的表面积。接下去来求这个表面积。求这个表面积之前先来看一个特殊的积分$I(d)$:

    egin{align*}I(d)&=int_{-infty}^infty int_{-infty}^inftycdotsint_{-infty}^infty e^{-(x_1^2+x_2^2+cdots+x_d^2)}dx_dcdots dx_2dx_1\&=[int_{-infty}^infty e^{-x^2}dx]^d\&=(sqrt{pi})^d=pi^{frac{d}{2}}end{align*}

    另外我们也可以通过极坐标来计算$I(d)$:

    egin{align}I(d)&=int_0^pi d heta_1cdotsint_0^pi d heta_{d-2}int_0^{2pi}J(d)d heta_{d-1}int_0^infty e^{-r^2}dr onumber\&=int_{S^d}dOmegaint_0^infty e^{-r^2}r^{d-1}drend{align}

    由于:

    egin{equation*}int_0^infty e^{-r^2}r^{d-1}dr=frac{1}{2}int_0^infty e^{-t}t^{frac{d}{2}-1}dt=frac{1}{2}Gamma(frac{d}{2})end{equation*}

    其中$Gamma(x)$为gamma函数(阶乘在实数域上的推广)。所以我们得到:

    egin{equation}A(d) = frac{I(d)}{frac{1}{2}Gamma(frac{d}{2})}=frac{pi^{frac{d}{2}}}{frac{1}{2}Gamma(frac{d}{2})}end{equation}

    所以我们能够得到一下的一个引理:

    $d$维球体的表面积和体积分别为:

    egin{equation*}A(d)=frac{2pi^{frac{d}{2}}}{Gamma(frac{d}{2})}quad ext{and}quad V(d) = frac{pi^frac{d}{2}}{frac{d}{2}Gamma(frac{d}{2})}end{equation*}

     由于$Gamma(frac{d}{2})$是以阶乘增长,而$pi^frac{d}{2}$以指数增长,所以当$d$趋于无穷时,$V(d)$趋于零。

    (四)高维空间中球体的体积聚集

        接下去我们分析高维空间中球体的体积聚集现象。在高维空间中,球体的体积主要聚集在赤道(Equator,以下会给出定义)附近,或聚集在狭窄的外环内。乍一看这似乎是相互矛盾的,很难想象,体积怎么可能又聚集在赤道,又聚集在外环内?以下我们先从数学上给出严格的分析,然后我在直观的给出自己的理解(我们的思维被限制在三维内,对高维空间真的难以想象,比如一个四维的球体,拿个平面从中间将其分割开,得到的“切面”是个三维的球体)。

        在一个$d$维空间里,假设其坐标轴为$x_1,x_2,cdots,x_d$,并且令其$x_1$轴上的$x_1=1$点为“北极点(North Pole,其实人家的方向不止东西南北四个啦)”。现在,我们用平面$x_1=0$与这个球体相交,得到的交集${x||x|^2leq 1,x_1=0}$称为赤道(其实给定球体表面任意一点为“北极点”都有对应的赤道),而这个赤道是一个$d-1$维的球体。现在我们来求一个比例,就是除去赤道附近部分的体积(即$T={x||x|^2leq 1,x_1geqepsilon}$的体积)与球的上半部分体积之间的比例(这里我们只分析半个球体)。如果这个比例非常小的话,那么就可以说明球的体积主要聚集在赤道附近。

        要求$T$的体积$mathop{Volume}(T)$,可以用微分的方法。我们对$x_1=epsilon$到$x_1=1$之间进行微分,则在$x_1=a$到$x_1=a+dx_1$之间的微分体积为切面体积乘以$dx_1$。而已知这个切面为$d-1$维球体,那么切面体积就为$r^{d-1}*V(d-1)$,其中$r=sqrt{1-a^2}$为这个切面的半径,$V(d-1)$为$d-1$单位球体的体积。由以上分析可求$T$的体积:

    egin{equation}mathop{Volume}(T)=int_epsilon^1(1-x_1^2)^{frac{d-1}{2}}V(d-1)dx_1=V(d-1)int_epsilon^1(1-x_1^2)^frac{d-1}{2}dx_1label{equ:volumeT}end{equation}

    对这个体积进行放大得:

    egin{align*}mathop{Volume}(T)&leq V(d-1)int_epsilon^infty e^{-frac{d-1}{2}x_1^2}dx_1leq V(d-1)int_epsilon^inftyfrac{x_1}{epsilon}e^{-frac{d-2}{2}x_1^2}dx_1\&leqfrac{1}{epsilon(d-1)}e^{-frac{d-1}{2}epsilon^2}V(d-1)end{align*}

    这里用到了$1-x_1^2leq e^{-x_1^2}$, $frac{x_1}{epsilon}geq 1, epsilonleq x_1$ 以及 $int x_1e^{-frac{d-1}{2}x_1^2}dx_1=-frac{1}{d-1}e^{-frac{d-1}{2}x_1^2}$。

       现在我们来求整个上半球体积的下界。已知在$x_1=0$与$x_1=frac{1}{sqrt{d-1}}$之间的切片体积一定是整个上半球的下界,而一个半径为$sqrt{1-(frac{1}{sqrt{d-1}})^2}=sqrt{1-frac{1}{d-1}}$,高为$frac{1}{sqrt{d-1}}$的$d$维圆柱体的体积也一定是上面切片体积的下界,所以我们可以用这个圆柱体体积来界定上半个球体体积,记圆柱体体积为$mathop{Volume}(R)$,则:

    egin{align}mathop{Volume}(R)&=frac{1}{sqrt{d-1}}V(d-1)(1-frac{1}{d-1})^{frac{d-1}{2}} onumber\&geqfrac{1}{sqrt{d-1}}V(d-1)(1-frac{1}{d-1}frac{d-1}{2})=frac{1}{2sqrt{d-1}}V(d-1)end{align}

        所以$T$的体积与整个上半球体积的比:

    $$mathop{Ratio}geqfrac{1}{epsilon(d-1)}e^{-frac{d-1}{2}epsilon^2}V(d-1)/frac{1}{2sqrt{d-1}}V(d-1)=frac{2}{epsilonsqrt{d-1}}e^{-frac{d-1}{2}epsilon^2}$$

    令$epsilon=frac{c}{sqrt{d-1}}$,则$mathop{Ratio}=frac{2}{c}e^{-frac{c^2}{2}}$。此时,若$d$很大,则$epsilon$很小,并且我们取$c$较为的大(相对与$d$还是很小)的话,那么这个比列就很小。也就是说$T$的体积占整个上半球的很小一部分,这就说明了高维球体的大部分体积都聚集在赤道附近。事实上,对于一个维度为$d$,半径为$r$的球体,其体积主要聚集在距离赤道$mathcal{O}(r/sqrt{d})$内。

        接下我们来说明高维球体的体积聚集在外部很小的一个环内。一个半径为$1-epsilon$的$d$维球体的体积为$(1-epsilon)^dV(d)$,该体积与单位球体的体积比为$frac{(1-epsilon)^dV(d)}{V(d)}=(1-epsilon)^d$。很显然,这个比例在$d$很大时是很小的,所以论证了高维球体的体积主要聚集在外部很小的一个环内。

        这到底是怎么回事呢?球体的体积可以聚集在赤道附近(而且赤道可以有无穷多),也可以聚集在外环上。首先,球体聚集在外环上,说明球体内部的体积相对于外环几乎为空的。那么我们又说球体的体积聚集在赤道附近的切片上,事实上这个切片也是由$d-1$维球体叠加起来的(其内部体积也很小),所以赤道附近切片的体积又可以认为主要集中在其表面附近,所以总的来说球的体积主要集中在赤道附近的表面上。那么任意给出一个点都有对应的赤道,而球的体积也主要聚集在该赤道,这又怎么理解?我们知道,$d$维球体的体积可以由$d-1$维球体的体积通过积分求得的,也就是说可以由无数多的$d-1$维球体叠加起来。而在球体中分布在赤道周围的$d-1$维球体的半径比那些距离赤道较远的$d-1$维球体的半径要大,而当维度增加时,即使是半径相差很小的两个球之间的体积差也是巨大的,所以高维球体的体积主要聚集在赤道附近可以理解为,高维球体的体积主要是由聚集在赤道附近的$d-1$维球体组成,而以任何点为“北极点”都存在这些主导的$d-1$维球体。(由于没找到相关的资料有给出直观的解释,以上仅是个人的理解。另外,从这里似乎也可以看出维数灾难这个问题。)

    (五)高维空间中球体的表面积聚集

        在二维空间,圆形有对应的面积和周长。三维空间中,球形有对应的体积和表面积。所以在$d$维的球体中也有与体积对应的表面积,这个表面积定义为集合${x||x|^2=1}$,而这个表面积对应的赤道为集合${x||x|^2=1,x_1=0}$。同样,我们先来界定在上半球中,远离赤道的表面积部分$S={x||x|^2=1,x_1geqepsilon}$的上界。

        $S$的表面同样也可以用微分来计算,其对应的微元为半径为$sqrt{1-x_1^2}$的$d-1$维球体的表面积和微分$dx_1$的乘积,所以:

    egin{equation}mathop{Area}(S)=int_epsilon^1A(d-1)(1-x_1^2)^frac{d-2}{2}dx_1leq frac{epsilon(d-2)}{1}e^{-frac{d-2}{2}epsilon^2}A(d-1)end{equation}

    接下去,我们还是一样,界定整个上半球体的表面积的下界。这个上半球体的表面积肯定大于半径为$sqrt{1-frac{1}{d-2}}$高为$frac{1}{sqrt{d-2}}$的$d$维圆柱的表面积。也就是说整个上半球体的表面积的下界为:

    $$frac{1}{d-2}A(d-1)(1-frac{1}{d-2})^{frac{d-2}{2}}geqfrac{1}{sqrt{d-2}}(1-frac{d-2}{2}frac{1}{d-2})A(d-1)geqfrac{1}{2sqrt{d-2}}A(d-1)$$

    所以$S$的表面积和整个上半球体的表面积比值小于$frac{2}{epsilonsqrt{d-2}}e^{-frac{d-2}{2}epsilon}$,令$epsilon=frac{c}{sqrt{d-2}}$,则比值上界为$frac{2}{c}e^{-frac{c^2}{2}}$,所以这里也论证了高维球体的表面积主要聚集在赤道附近的表面积。

        另外,球体的体积跟表面积存在这积分关系,即:

    egin{equation}V(d,r) = int_{x=0}^rA(d,r)dxend{equation}

    其中$V(d,r)$表示维度为$d$半径为$r$的球体体积,$A(d,r)$表示维度为$d$半径为$r$的球体表面积。

  • 相关阅读:
    前导问题word使用技巧解决Word 生成目录时前导符不一致的问题(即通常所谓的目录中省略号大小不一致)
    安装用户debian7安装oracle11g
    字节文件MP3格式音频文件结构解析
    Linux下硬盘分区的最佳方案
    802.1x客户端软件 2.4版破解支持多网卡
    z9jpz.dll、gq0aku0.exe、cms2cmw.sys病毒
    Ghost批处理文件的基本格式
    利用ASP远程注册DLL的方法
    dllhost.exe系统进程介绍
    Unicode 和多字节字符集 (MBCS)
  • 原文地址:https://www.cnblogs.com/boostable/p/iage_high_space_sphere.html
Copyright © 2011-2022 走看看