Computer Science Theory for the Information Age-3: 高维空间中的高斯分布和随机投影

高维空间中的高斯分布和随机投影

(一)在高维球体表面产生均匀分布点的方法

我们来考虑一个采样问题,就是怎样在高维单位球体的表面上均匀的采样。首先,考虑二维的情况,就是在球形的周长上采样。我们考虑如下方法:第一,先在一个包含该圆形的外接正方形内均匀的采样;第二,将采样到的点投影到圆形上。具体地说就是,第一,先独立均匀的从区间$[-1,1]$(我们假设圆形跟正方形的中心点都在原点)内产生两个值组成一个二维的点$(x_1,x_2)$;第二,将该二维点投影到圆形上。例如,如下图所示,如果我们产生点是图中的A,B两点,那么投影到圆形上就是C点,如果产生的是点D,那么投影到圆形上就是E点。但是,用这样的方法得到点在圆形上并不是均匀分布的,比如产生C点的概率将大于产生E点概率,因为可以投影到C点对应的那条直线比E点对应的那条直线要长。解决的办法是去掉圆形外面的点,也就是如果我们首先产生的点在圆形外的话(比如点B),那么我们就丢弃该点,重新在产生,这样的话产生的点在圆形上是均匀分布的。

那么,我们能否将此方法扩展到高维的情况下呢?答案是不行的。因为在高维的情况下球与正方体的体积比将非常非常小,几乎接近于零。也就是我们在正方体内产生的点几乎不可能落到球体内部,那么也就无法产生有效的点。那么,在高维的球体上,我们应该怎样才能产生一个均匀分布与球体表面的点呢?答案是利用高斯分布。即将上述第一步改成:以均值为零方差为1的高斯分布独立地产生$d$个值,形成一个$d$维的点$x=(x_1,x_2,\cdots,x_d)$;然后第二步:将点$x$归一化$\tilde{x}=\frac{x}{\|x\|}$。用这种方法产生点必定均匀分布在高维球体表面。原因如下,$d$个独立的高斯分布的密度函数为:

$$p(x_1,x_2,\cdots,x_d)=\frac{1}{(2\pi)^\frac{d}{2}}e^{-\frac{x_1^2+x_2^2+\cdots+x_d^2}{2}}=\frac{1}{(2\pi)^\frac{d}{2}}e^{-\frac{\|x\|^2}{2}}$$

那么$p(\tilde{x})=\frac{1}{(2\pi)^\frac{d}{2}}e^{-\frac{1}{2}}$,为常数,说明产生的每个点的概率都一样,即均匀分布。这个结论在证明随机投影定理时会用到。

(二)高维空间下的高斯分布性质

高斯分布是概率统计里面最常见也是最有用的分布之一,本文主要关注高斯分布在高维情况下的一些特性。首先,对于低维高斯分布来说,其概率质量主要集中在均值附近。那么在高维情况下,这样的情况是否还是真的呢?一个均值为零,协方差为$\sigma^2\mathbf{I}$的$d$为高斯分布的密度函数为:

\begin{equation}p(x)=\frac{1}{(2\pi)^{d/2}\sigma^d}exp(-\frac{\|x\|^2}{2\sigma^2})\end{equation}

当$\sigma = 1$时,由于单位球在高维的情况下的体积趋近于零,所以以均值点为原点的单位球所累计的概率质量也接近于零。事实上,只有当这个球的半径增长到$\sqrt{d}$时,才会有相对比较大的概率质量。更准确的说,在距离原点$\sqrt{d}$附近的环内占据了高斯分布的主要概率质量。

对于一个服从均值为零协方差为$\sigma^2\mathbf{I}$的$d$维的高斯分布的向量$x$来说,可以将其看成每个坐标是独立地由均值为零方差为$\sigma^2$的一维高斯分布产生。所以$x$到均值点的距离平方期望为:$\mathbb{E}(\|x\|^2)=d\mathbb{E}(x_1^2)=d\sigma^2$。根据大数定理我们可以知道,当$d$很大时,$x$点到均值点的距离平方主要集中在其期望值附近,从这个角度也可以看到服从高维高斯分布的点主要聚集在距离均值点距离为$\sigma\sqrt{d}$附近,这里的$\sigma\sqrt{d}$称为高斯分布的半径。以下,我们只分析均值为零协方差为单位阵的高斯分布。

首先,我们来计算在高斯分布中距离原点为$r$的那个“面”对应的概率质量是多少?也就是我们要计算高斯分布在半径为$r$的$d$维球体表面的概率质量$g(r)$,由于在这个表面所有的点对应的概率密度都一样(为$\frac{1}{(2\pi)^{d/2}}exp(-r^2/2)$),所以这个概率质量等于相同的概率密度乘以表面积,即$g(r)=Cr^{d-1}e^{-r^2/2}$,其中$C$为固定的常数。令$I=[\sqrt{d-1}-c,\sqrt{d-1}+c]$,其中$c$为正实数,现在我们来证明:高维高斯分布的概率质量主要聚集在区间I内。令$a$表示区间I外的概率质量,$b$表示区间I内的概率质量。

令$f(r)=\mathop{ln}g(r)=(d-1)\mathop{ln}r-\frac{r^2}{2}+\mathop{ln}C$,对$f(r)$求导有:

\begin{equation}f^\prime(r)=\frac{d-1}{r}-r\quad f^{\prime\prime}(r)=-\frac{d-1}{r^2}-1\leq -1\end{equation}

将$f(r)$在$\sqrt{d-1}$处二阶泰勒展开:

\begin{equation*}f(r)=f(\sqrt{d-1})+f^\prime(\sqrt{d-1})(r-\sqrt{d-1})+\frac{1}{2}f^{\prime\prime}(\zeta)(r-\sqrt{d-1})^2\end{equation*}

其中$\zeta$介于$\sqrt{d-1}$与$r$之间。由于$f^\prime(\sqrt{d-1})=0$,所以:

\begin{equation}f(r)=f(\sqrt{d-1})+\frac{1}{2}f^{\prime\prime}(\zeta)(r-\sqrt{d-1})^2\leq f(\sqrt{d-1})-\frac{1}{2}(r-\sqrt{d-1})^2\end{equation}

所以$g(r)=e^f(r)\leq g(\sqrt{d-1})exp(-\frac{1}{2}(r-\sqrt{d-1})^2)$。这样我们就可以计算$a$的上界:

\begin{align*}a&=\int_{r\in I}g(r)dr\\&\leq \int_{r=0}^{\sqrt{d-1}-c}g(\sqrt{d-1})exp(-(r-\sqrt{d-1})^2/2)dr+\int_{r=\sqrt{d-1}+c}^\infty g(\sqrt{d-1})exp(-(r-\sqrt{d-1})^2/2)dr\\&\leq2g(\sqrt{d-1})\int_{r=\sqrt{d-1}+c}^\infty exp(-(r-\sqrt{d-1})^2/2)dr\\&=2g(\sqrt{d-1})\int_{y=c}^\infty exp(-y^2/2)dy\\&\leq 2g(\sqrt{d-1})\int_{y=c}^\infty\frac{y}{c}exp(-y^2/2)dy\\&=\frac{2}{c}g(\sqrt{d-1})exp(-c^2/2)\end{align*}

接下去,计算$b$的下界。在子区间$[\sqrt{d-1},\sqrt{d-1}+\frac{c}{2}]$内,可以计算$f^{\prime\prime}(r)\geq -2$,所以:

$$f(r)\geq f(\sqrt{d-1})-(r-\sqrt{d-1})^2\geq f(\sqrt{d-1})-\frac{c^2}{4}$$

因此,$g(r)\geq exp(f(\sqrt{d-1}))exp(-\frac{c^2}{4})=g(\sqrt{d-1})exp(\frac{c^2}{4})$,故:

$$b\leq \int_{\sqrt{d-1}}^{\sqrt{d-1}+\frac{c}{2}}g(r)dr\leq \frac{c}{2}g(\sqrt{d-1})exp(-\frac{c^2}{4})$$

利用$a$的上界以及$b$的下界,可以得到:

\begin{equation}\frac{a}{b}\leq \frac{\frac{2}{c}g(\sqrt{d-1})e^{-c^2/2}}{\frac{c}{2}g(\sqrt{d-1})exp(-\frac{c^2}{4})}\leq \frac{4}{c^2}exp(-\frac{c^2}{4})\end{equation}

所以$\frac{a}{a+b}=\frac{1}{b/a+1}\leq\frac{1}{1+\frac{c^2}{4}exp(\frac{c^2}{4})}\leq \frac{4}{c^2}exp(-\frac{c^2}{4})$。当$c$取较大时,$\frac{4}{c^2}exp(-\frac{c^2}{4})$很小,也就是说高斯分布的概率质量在区间I外占很小很小的比例。根据上面分析我们可以得到如下引理:

引理一 在均值为零协方差为单位阵的$d$维高斯分布中,区间I以外所占的概率质量不超过$\frac{4}{c^2}exp(-\frac{c^2}{4})$。

(三)随机投影定理

再讲随机投影定理之前,我们先来介绍一下如何利用随机投影来降维。对于一个高维的数据$x,y$(假设其维度为$n$),我们可以首先产生一个随机矩阵$\mathbf{R}\in\mathbb{R}^{n\times k}$,其中$k<n$,然后将矩阵$\mathbf{R}$左乘这些数据得到$\bar{x}=\mathbf{R}^T x,\bar{y}=\mathbf{R}^T$,其中$\bar{x},\bar{y}\in \mathbf{R}^k$,这样我们就得到一个维度更低的数据。而随机投影定理讲的是,当$k$满足何种条件下,我们能保持$x,y$的距离跟被投影后的距离的比接近与维度的比。(关于随机投影的方法,《The Random Projection Method》这本参考文献可能会全面点)。那么,为什么我们希望他们之间的距离能够得到保持呢?这是因为很多机器学习的算法都是利用点跟点之间的距离信息来执行的,比如K-mean算法,如果降维后的数据之间的距离已经不再保持跟原来数据一致性的话,那么降维后的算法的准确度会大打折扣,这样降维也就没什么意义了。

如果我们将一个$n$维的单位向量投影到$k$维的子空间中去的话,那么我们会希望投影后的距离平方为$\frac{k}{n}$。我们来证明下面这个定理:

定理一 令$v$为$n$维空间中固定的单位向量,$W$为$k$维的随机子空间,$w$为将$v$投影到$W$后的向量,那么对于任意$0\leq\epsilon\leq1$,有$\mathbb{P}(|\|w\|^2-\frac{k}{d}|\geq\epsilon\frac{k}{d})\leq 2e^{-\frac{k\epsilon^2}{4}}$。

证明:如果我们直接从定理那个角度去证明的话,那么这个证明将比较困难(因为我们必须通过选$k$个基去刻画这个随机子空间)。换个角度去想这个问题,如果我们固定住子空间,然后随机的选一个单位向量,然后将这个向量投影到子空间中去,得到投影后向量的分布是否是一样的?令$W$是随机子空间,$v$为固定的向量,那么投影后的向量为$w=W^Tv$,另外,令$U$为一个固定的子空间,$z$为随机选的一个向量,那么投影后的向量为$\tilde{z}=U^Tz$。现在我们来证明对于任意的一个$w$,都存在一个$\tilde{z}$与之对应。首先,对于任意产生的一个$W$,都对应着一个变换矩阵$D$使得$U=DW$,所以得$\tilde{z}=W^TD^Tz$,而$z$是随机选的,所以我们总可以选到一个$z$使得$v=D^Tz$。所以接下去我们都固定住子空间,并且这个子空间为对应的前$k$个基(这个投影就相当与把第$k$个坐标后面的元素都丢掉),然后通过随机选单位向量来证明。

先大概说一下证明的思路:要证$\mathbb{P}(|\|w\|^2-\frac{k}{n}|\geq\epsilon\frac{k}{n})\leq 4e^{-\frac{k\epsilon^2}{64}}$,即证

$$\mathbb{P}(\|\tilde{z}\|^2\leq(1-\epsilon)\frac{k}{n} \cup \|\tilde{z}\|^2\geq(1+\epsilon)\frac{k}{n})\leq 4e^{-\frac{k\epsilon^2}{64}}$$

要证明上式,我们分别证明概率中两个不等式成立的上界,然后在使用联合界得到最终的上界。由于这两个不等式的证明过程相似,接下去我们尽针对其中一个不等式进行证明,另外一种情况类似。

我们要证明的是概率$\mathbb{P}[\|\tilde{z}\|^2\leq\beta\frac{k}{n}]$,其中$\beta=1-\epsilon$。另外,我们在前面部分说过随机(如果没有特别指出,这里的随机都是指均匀随机)选择一个$n$维单位向量(即在单位球表面随机选点)可以等价于独立随机的选择$n$个服从高斯分布的变量(这些高斯分布的均值为零,方差为1),然后在对该向量归一化。即假设产生的高斯变量为$x=(x_1,\cdots,x_n)$,则单位随机变量$z=\frac{x}{\|x\|}$,那么投影后的变量$\tilde{z}=(\frac{x_1}{\|x\|},\cdots,\frac{x_k}{\|x\|})$,故:

\begin{align}\mathbb{P}[\|\tilde{z}\|^2<\beta\frac{k}{n}]&=\mathbb{P}[\|\tilde{z}\|^2\leq\beta\frac{k}{n}\|z\|^2]\nonumber\\&=\mathbb{P}[x_1^2+x_2^2+\cdots+x_k^2<\beta\frac{k}{d}(x_1^2+x_2^2+\cdots+x_n^2)]\nonumber\\&=\mathbb{P}[\beta k(x_1^2+\cdots+x_n^2)-n(x_1^2+\cdots+x_k^2)>0]\nonumber\\&=\mathbb{P}[exp(t(\beta k(x_1^2+\cdots+x_n^2)-n(x_1^2+\cdots+x_k^2)))>1]\end{align}

上式对任何$t$都成立。然后利用Markov不等式(形式类似于$\mathbb{P}[X\geq\delta]\leq\frac{\mathbb{E}[X]}{\delta^2}$)得:

\begin{align}\mathbb{P}[\|\tilde{z}\|^2<\beta\frac{k}{n}]&\leq\mathbb{E}[exp(t(\beta k(x_1^2+\cdots+x_n^2)-n(x_1^2+\cdots+x_k^2)))]\nonumber\\&=\mathbb{E}[exp(t(\beta k(x_{k+1}^2+\cdots+x_n^2)+(\beta k-n)(x_1^2+\cdots+x_k^2)))]\nonumber\\&=\mathbb{E}[exp(t\beta k(x_{k+1}^2+\cdots+x_n^2))]\mathbb{E}[exp(t(\beta k-n)(x_1^2+\cdots+x_k^2))]\nonumber\\&=[\mathbb{E}[t\beta kx_1^2]]^{n-k}[\mathbb{E}[t(\beta k-n)x_1^2]]^k\label{equ:P}\end{align}

现在我们来求$\mathbb{E}[tx^2]$,其中$x$服从均值零方差为1的高斯分布:

\begin{align}\mathbb{E}[exp(tx^2)]&=\frac{1}{\sqrt{2\pi}}\int_{-\infty}^{\infty}exp(tx^2)exp(-\frac{x^2}{2})dx\nonumber\\&=\frac{1}{\sqrt{2\pi}}\int_{-\infty}^{\infty}exp(-\frac{1}{2}(1-2t)x^2)dx\nonumber\\&=\frac{1}{\sqrt{2\pi}}\sqrt{2\pi}\frac{1}{\sqrt{1-2t}}\nonumber\\&=\frac{1}{\sqrt{1-2t}}\label{equ:int}\end{align}

将式子\ref{equ:int}代入式子\ref{equ:P}得:

\begin{align}\mathbb{P}[\|\tilde{z}\|^2&\leq(\frac{1}{\sqrt{1-2t\beta k}})^{n-k}(\frac{1}{\sqrt{1-2t(\beta k -n)}})^k\nonumber\\&\triangleq g(t)\end{align}

由于上式对任意的$t$都成立,所以我们可以通过求$g(t)$的最小值来得到一个最紧的上界。这里我就不写出求$g(t)$最小值的计算过程了,直接给出最小值点$t_0=frac{\beta-1}{2\beta(\beta k -n)}$。将$t_0$代入可得如下结论:

\begin{align*}\mathbb{P}[\|\tilde{z}\|^2&\leq g(t_0)\\&=(\frac{1}{1-2\beta k\frac{\beta-1}{2\beta(\beta k -n)}})^{\frac{n-k}{2}}(\frac{1}{1-2(\beta k-n)\frac{\beta-1}{\beta(\beta k -n)}})^{\frac{k}{2}}\\&=\beta^{\frac{k}{2}}(\frac{\beta k-n}{k-n})^{\frac{n-k}{2}}\\&=\beta^\frac{k}{2}(1+\frac{k-\beta k}{n-k})^\frac{n-k}{2}\\&\leq\beta^\frac{k}{2}exp(\frac{k-\beta k}{2})=exp(\frac{k}{2}\mathop{ln}(\beta)+\frac{k}{2}(1-\beta))\\&=exp(\frac{k}{2}(\mathop{ln}(1-\epsilon)+\epsilon))\leq exp(-\frac{k}{4}\epsilon^2)\end{align*}

其中最后一个不等式是因为$\mathop{ln}(1-\epsilon)\leq-\epsilon-\frac{\epsilon^2}{2}$对任意$0<\epsilon<1$成立。

对于另外一种情况,我们也可以用同样的方法证得:$\mathbb{P}[\|\tilde{z}\|^2\geq(1+\epsilon)\frac{k}{n}]\leq exp(-\frac{k\epsilon^2}{4})$。最后,由联合界可使定理得证。

注:书本中关于这个定理的证明有错,这里的证明是根据作者的课堂笔记(http://www.cs.cornell.edu/courses/cs4850/2010sp/Scribe%20Notes%5CLecture05.pdf)整理而得的。

利用上述定理,我们就可以证明随机投影中重要的引理,称为Johnson-Lindenstrauss Lemma.

引理二. Johnson-Lindenstrauss Lemma

对任意的$0<\epsilon<1$以及任意的整数$m$,若$k\geq\frac{4\mathop{ln}(m)}{\epsilon^2}$,则对任意的包含$m$个维度为$n$的点的集合P,对P中所有的点进行随机投影到$k$维子空间,则任意两点$u,v$与投影后的点$f(u),f(v)$之间的距离满足如下不等式成立的概率至少为$1-\frac{1}{m^2}$:

\begin{equation}(1-\epsilon)\frac{k}{n}|u-v|^2\leq|f(u)-f(v)|^2\leq(1+\epsilon)\frac{k}{n}|u-v|^2\label{equ:JL1}\end{equation}

在证明这个引理之前,我们先来说说这个定理的意义。定理说的是,对于任意一个样本大小为$m$的集合,如果我们通过随机投影将其维度降到一个合适的范围内,那么我们将以较高的概率保证投影后的数据点之间的距离信息变化不大。这样我们在做K-mean之类的算法时,就可以先将高维度的数据利用随机投影进行降维处理,然后在执行算法。

证明:令$z=u-v$为投影前空间上的点,$\tilde{z}=f(u)-f(v)$为投影后子空间上的点。则根据定理一可知,投影后向量的长度应该以很高的概率跟原向量长度相差在$\epsilon$内,用数学表示即:

\begin{equation}\mathbb{P}[|\|\tilde{z}\|^2-\frac{k}{n}\|z\|^2|\geq \epsilon \frac{k}{n}\|z\|^2]\leq 2exp(-\frac{k\epsilon^2}{4})\label{equ:JL2}\end{equation}

所以,如果$k\geq\frac{4\mathop{ln}(m)}{\epsilon^2}$,则$2exp(-\frac{k\epsilon^2}{4})\leq\frac{1}{m^4}$。也就是说对于每一对点,式子\ref{equ:JL2}左边的上界小于$\frac{1}{m^4}$,那么对于集合P中的所有点对(总共约为$m^2$对)采用联合界可得,所有点对中至少有一对满足式子$|\|\tilde{z}\|^2-\frac{k}{n}\|z\|^2|\geq \epsilon \frac{k}{n}\|z\|^2$的概率小于$\frac{1}{m^2}$。换句话说,所有点都不满足式子$|\|\tilde{z}\|^2-\frac{k}{n}\|z\|^2|\geq \epsilon \frac{k}{n}\|z\|^2$的概率将大于$1-\frac{1}{m^2}$。这就证明了式子\ref{equ:JL1}。

posted on 2014-03-22 20:52 Boostable 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/boostable/p/iage_high_space_gaussian_random_projection.html

Computer Science Theory for the Information Age-3: 高维空间中的高斯分布和随机投影相关推荐

  1. Computer Science Theory for the Information Age-4: 一些机器学习算法的简介

    Computer Science Theory for the Information Age-4: 一些机器学习算法的简介 一些机器学习算法的简介 本节开始,介绍<Computer Scien ...

  2. Computer Science Theory for the Information Age-1: 高维空间中的球体

    Computer Science Theory for the Information Age-1: 高维空间中的球体 高维空间中的球体 注:此系列随笔是我在阅读图灵奖获得者John Hopcroft ...

  3. Java黑皮书课后题第1章:1.1(显示三条消息)编写程序,显示Welcome to Java、Welcome to Computer Science和Programming is fun

    Java黑皮书第一章编程练习题:1.1(显示三条消息) 题目 题目描述 题目槽点 代码片段 零基础解释 ①print与println ②法2中的\n ③法2中的"+":连接两行 C ...

  4. 西北大学计算机科学排名,西北大学计算机科学与信息系统Computer Science and Information Systems世界排名2020年最新排名第151-200位(QS世界排名)...

    2020年QS计算机科学与信息系统Computer Science and Information Systems专业世界排名公布,西北大学计算机科学与信息系统世界排名第151-200位,西北大学计算 ...

  5. 华盛顿大学计算机科学,华盛顿大学计算机科学与信息系统Computer Science and Information Systems世界排名2020年最新排名第18位(QS世界排名)...

    2020年QS计算机科学与信息系统Computer Science and Information Systems专业世界排名公布,华盛顿大学计算机科学与信息系统世界排名第18位,华盛顿大学计算机科学 ...

  6. 杜克大学计算机数据科学,杜克大学计算机科学与信息系统Computer Science and Information Systems世界排名2020年最新排名第51-100位(QS世界排名)...

    2020年QS计算机科学与信息系统Computer Science and Information Systems专业世界排名公布,杜克大学计算机科学与信息系统世界排名第51-100位,杜克大学计算机 ...

  7. 兰卡斯特大学 计算机,兰卡斯特大学计算机科学与信息系统Computer Science and Information Systems世界排名2020年最新排名第151-200位(QS世界排名)...

    2020年QS计算机科学与信息系统Computer Science and Information Systems专业世界排名公布,兰卡斯特大学计算机科学与信息系统世界排名第151-200位,兰卡斯特 ...

  8. Stanford University courses of computer science department(斯坦福计算机系课程设置)

    斯坦福学科目前分为7个department:Business, Earth, Education, Engineering, Humanities & Sciences, Law, Medic ...

  9. 【Paper】【Compute Vision】Best Paper Awards in Computer Science (since 1996)

    Best Paper Awards in Computer Science (since 1996) 转载之:http://jeffhuang.com/best_paper_awards.html 比 ...

最新文章

  1. 顺时针或逆时针旋转180度等于先作一个水平镜像,再作一个垂直镜像
  2. AngularJS快速入门指南04:指令
  3. Objective-C学习笔记2013[NSString]字符串[可变字符串中,加用app减用delete]
  4. iview地区加载_LoadingBar 加载进度条
  5. ces测试数据测试ces测试数据测试ces测试数据测试ces测试数据测试ces测试数据测试
  6. 利用SetConsoleTextAttribute函数设置控制台颜色
  7. mysql 1418错误_mysql 1418错误原因及解决
  8. java 数据结构 数据库_数据库索引背后的数据结构
  9. 一文细数Vision transformer家族成员
  10. 主构造器和附属构造器
  11. mysql中关于关联索引的问题——对a,b,c三个字段建立联合索引,那么查询时使用其中的2个作为查询条件,是否还会走索引?...
  12. 美图2019年财报发布:“高级订阅”收入亮眼 成为重要商业模式
  13. vim命令大全(最全)
  14. H264封装为FLV
  15. 使用wininet的InternetReadFile下载文件
  16. Keil5各个版本的下载地址
  17. 利用日志备份恢复时,提示 该 LSN 太晚,无法应用到数据库
  18. 我的专业作文300字计算机,以我的专业为题的作文(以我写一篇作文300字)
  19. 阿里开发手册 学习 记忆 理解 表达 融会贯通
  20. 昆石VOS2009 VOS3000无漏洞去后门电脑管理客户端大全

热门文章

  1. python入门简介
  2. 64位虚拟机安装64位ubuntu出现问题
  3. java.math.BigDecimal()的用法
  4. 【推荐】《精通.NET互操作:P/Invoke,C++ Interop和COM Interop》
  5. 奇异值分解和图像压缩
  6. Caffe训练ImageNet
  7. 实战Nginx与PHP(FastCGI)的安装、配置与优化
  8. 聊聊LettucePoolingConnectionProvider
  9. linux命令:du,df用法说明
  10. Composer 安装(一)