基本假设:相似的样本属于相同的类别
如何刻画相似?距离函数:$\dist(\cdot, \cdot): \xc \times \xc \mapsto \rb^+$
输入:$\dc = \{ (\xv_i, y_i) \}_{i \in [m]} \subseteq \xc \times \yc$,近邻数$k$,待预测样本$\xv$
输出:$\xv$的类别$y$
近邻法没有显式的学习过程
近邻数$k$:取值范围$[m] \cap \{2 \zb + 1\}$
距离函数:
度量学习 (metric learning):学一个更好的距离函数,以马氏距离为例,记$\mc$、$\cc$分别为同类、异类样本对构成的集合
\begin{align} \min_\Mv & \sum_{(\xv_i, \xv_j) \in \mc} \dist_\Mv(\xv_i, \xv_j), \quad \st \sum_{(\xv_i, \xv_j) \in \cc} \dist_\Mv(\xv_i, \xv_j) \ge 1, ~ \Mv \succeq \zerov \end{align}
优点
缺点
一些符号:
设待预测样本为$(\xv, y)$,$\dc_\xc$按与$\xv$的距离升序排列为$\xv_1, \ldots, \xv_m$,于是 1-近邻的泛化错误率为
\begin{align} \err (h) & = \eb_{\dc_\xc \sim \ds_\xc^m, \xv \sim \ds_\xc, y \sim \Bern(\eta(\xv)), y_1 \sim \Bern(\eta(\xv_1))} [\ib(y \ne y_1)] \\ & = \eb_{\dc_\xc \sim \ds_\xc^m, \xv \sim \ds_\xc} [\pb_{y \sim \Bern(\eta(\xv)), y_1 \sim \Bern(\eta(\xv_1))} (y \ne y_1)] \\ & = \eb_{\dc_\xc \sim \ds_\xc^m, \xv \sim \ds_\xc} [ \eta(\xv) (1 - \eta(\xv_1)) + (1 - \eta(\xv)) \eta(\xv_1) ] \\ & = \eb_{\dc_\xc \sim \ds_\xc^m, \xv \sim \ds_\xc} [ 2 \eta(\xv) (1 - \eta(\xv)) + (\eta(\xv) - \eta(\xv_1)) (2 \eta(\xv) - 1)] \\ & = 2 \eb_{\xv \sim \ds_\xc} [ \eta(\xv) (1 - \eta(\xv))] + \eb_{\dc_\xc \sim \ds_\xc^m, \xv \sim \ds_\xc} [ (\eta(\xv) - \eta(\xv_1)) (2 \eta(\xv) - 1) ] \end{align}
其中第一项为在$\xv$处采样 2 次,类别标记不同的概率
\begin{align} \err (h) = 2 \eb_{\xv \sim \ds_\xc} [ \eta(\xv) (1 - \eta(\xv))] + \eb_{\dc_\xc \sim \ds_\xc^m, \xv \sim \ds_\xc} [ (\eta(\xv) - \eta(\xv_1)) (2 \eta(\xv) - 1) ] \end{align}
随着样本数$m$的增大,$\xv$与$\xv_1$的距离单调递减,当$m \to \infty$时,若$\xv_1 \to \xv$,则第二项$\to 0$,只剩第一项
\begin{align} \err(h) & = 2 \eb_{\xv \sim \ds_\xc} [ \eta(\xv) (1 - \eta(\xv))] \\ & = 2 \eb_{\xv \sim \ds_\xc} [ \pb(y=1|\xv) \pb(y=0|\xv) ] \\ & = 2 \eb_{\xv \sim \ds_\xc} [ \pb(y \ne h^\star(\xv)|\xv) (1 - \pb(y \ne h^\star(\xv)|\xv))] \\ & = 2 \err(h^\star) - 2 \eb_{\xv \sim \ds_\xc} [\pb(y \ne h^\star(\xv)|\xv)^2] \\ & = 2 \err(h^\star) - 2 \err(h^\star)^2 - 2 \vb [\pb(y \ne h^\star(\xv)|\xv)] \\ & \le 2 \err(h^\star) (1 - \err(h^\star)) \le 2 \err(h^\star) \end{align}
最后一个等号是根据$二阶矩 = 期望^2 + 方差$
剩下只需确定$m \to \infty$时保证$\xv_1 \to \xv$的条件
条件:输入空间是可分度量空间
可分性 (separability):具有可数稠密子集
几乎必然 (almost surely, a.s.) 成立也称以概率 1 成立
在$[0,1]$上随机挑一个数$x$,$x$几乎必然不等于$0.5$
引理:对$\forall \xv \in \xc$,设$\{\xvh_m\}_{m = 1,2, \ldots}$是 1-近邻序列,$\xvh_m \overset{\textrm{a.s.}}{\to} \xv$
证明:记$\xv$的邻域$\bc_\xv(r)$:以$\xv$为球心、$r$为半径的球
定义空间中的好点:对$\forall r > 0$有$\pb(\bc_\xv(r)) > 0$,于是
\begin{align} \lim_{m \to \infty} \pb(\dist(\xvh_m, \xv) > r) = \lim_{m \to \infty} (1 - \pb(\bc_\xv(r)))^m = 0 \end{align}
由$r$的任意性知$\lim_{m \to \infty} \pb(\dist(\xvh_m, \xv) = 0) = 1$,从而$\xvh_m \overset{\textrm{a.s.}}{\to} \xv$
已证“好点的 1-近邻序列收敛于自身的概率为 1”,如果“空间中好点的概率也为 1”,则结论成立
定义空间中的坏点:存在$r > 0$使得$\pb(\bc_\xv(r)) = 0$,设全部的坏点构成集合$\nc$,只需证$\pb(\nc) = 0$
根据可分性,$\xc$存在可数稠密子集$\ac$,且存在点$\av \in \bc_\xv(r/3) \wedge \ac$,考虑包含$\xv$的邻域$\bc_\av (r/2)$,易知其包含于$\bc_\xv(r)$,故$\pb(\bc_\av (r/2)) = 0$
每个坏点会对应一个以$\av$为球心的球,若多个坏点对应同一个$\av$,取并集,即半径最大的球,注意$\ac$可数,因此最终只需可数个概率为零的球即可覆盖全部坏点,故$\pb(\nc) = 0$
设$\yc = [c]$,1-近邻的正确率 $\overset{\textrm{a.s.}}{\to}$ 在$\xv$处采样两次标记相同的概率
\begin{align} \pb(y \ne h(\xv) | \xv) = 1 - \pb(y = h^\star(\xv)|\xv)^2 - \sum_{j \neq h^\star(\xv)} \pb(y = j|\xv)^2 \end{align}
由柯西不等式
\begin{align} \sum_{j \neq h^\star(\xv)} \pb(y = j|\xv)^2 \ge \frac{( \sum_{j \neq h^\star(\xv)} \pb(y = j|\xv) )^2}{c-1} = \frac{\pb(y \ne h^\star(\xv)|\xv)^2}{c-1} \end{align}
回代可得
\begin{align} \pb(y \ne h(\xv) | \xv) & \le 1 - (1 - \pb(y \ne h^\star(\xv)|\xv))^2 - \frac{\pb(y \ne h^\star(\xv)|\xv)^2}{c-1} \\ & = 2 \pb(y \ne h^\star(\xv)|\xv) - \frac{c}{c-1} \pb(y \ne h^\star(\xv)|\xv)^2 \end{align}
\begin{align} \pb(y \ne h(\xv) | \xv) \le 2 \pb(y \ne h^\star(\xv)|\xv) - \frac{c}{c-1} \pb(y \ne h^\star(\xv)|\xv)^2 \end{align}
两边求期望,再次利用$二阶矩 = 期望^2 + 方差$有
\begin{align} \err(h) & \le 2 \err(h^\star) - \frac{c}{c-1} (\err(h^\star)^2 + \vb [p (y \ne h^\star(\xv) | \xv)]) \\ & \le \err(h^\star) \left( 2 - \frac{c}{c-1} \err(h^\star) \right) \end{align}
渐进分析描述的是$m \to \infty$的情况,实际中只有有限个样本,我们想知道$\err(h)$随着样本数增长以怎样的速度增长
第一项还按前面的方式处理,下面处理第二项
\begin{align} \eb_{\dc_\xc \sim \ds_\xc^m, \xv \sim \ds_\xc} [ (\eta(\xv) - \eta(\xv_1)) (2 \eta(\xv) - 1) ] \end{align}
设$\eta(\cdot)$是$c$-李普希茨连续函数,即$|\eta(\xv) - \eta(\xv_1)| \le c \| \xv - \xv_1 \|_2$,注意$\eta(\xv) \in [0,1] \Longrightarrow |2 \eta(\xv) - 1| \le 1$,于是
\begin{align} \eb_{\dc_\xc \sim \ds_\xc^m, \xv \sim \ds_\xc} [ (\eta(\xv) - \eta(\xv_1)) (2 \eta(\xv) - 1) ] \le c ~ \eb_{\dc_\xc \sim \ds_\xc^m, \xv \sim \ds_\xc} [ \| \xv - \xv_1 \|_2 ] \end{align}
问题转化为控制$\xv$与其 1-近邻$\xv_1$的距离
设$\xc = [0,1]^n$,将其均匀切分成$r^n$个小立方体$\cc_1, \ldots, \cc_{r^n}$,若$\xv$、$\xv_1$落在同一个$\cc_i$,则其距离$\le \sqrt{n}/r$,否则其距离$\le \sqrt{n}$
记与$\dc_{\xc}$无交集的小正方体的并集为$\ac$、与$\dc_{\xc}$有交集的小正方体的并集为$\bc$
\begin{align} \ac = \cup_{i: \cc_i \cap \dc_{\xc} = \emptyset} \cc_i, \quad \bc = \xc \setminus \ac = \cup_{i: \cc_i \cap \dc_{\xc} \ne \emptyset} \cc_i \end{align}
$\xv \in \ac$、$\xv \in \bc$恰有一个发生,前者代表$\xv$与任何训练样本都不在一个$\cc_i$内,后者代表$\xv$与某个训练样本在同一个$\cc_i$内,于是
\begin{align} \eb_{\dc_\xc \sim \ds_\xc^m, \xv \sim \ds_\xc} [ \| \xv - \xv_1 \|_2 ] \le \eb_{\dc_\xc \sim \ds_\xc^m} \left[ \pb (\ac) \sqrt{n} + \pb (\bc) \frac{\sqrt{n}}{r} \right] \end{align}
对于$\pb (\ac)$有
\begin{align} \eb_{\dc_\xc \sim \ds_\xc^m} [\pb (\ac)] & = \eb_{\dc_\xc \sim \ds_\xc^m} [\pb (\cup_{i: \cc_i \cap \dc_{\xc} = \emptyset} \cc_i) ] \\ & = \eb_{\dc_\xc \sim \ds_\xc^m} \left[ \sum_{i \in [r^n]} \pb (\cc_i) \ib(\cc_i \cap \dc_{\xc} = \emptyset) \right] \\ & = \sum_{i \in [r^n]} \pb (\cc_i) \eb_{\dc_\xc \sim \ds_\xc^m} \left[ \ib(\cc_i \cap \dc_{\xc} = \emptyset) \right] \\ & = \sum_{i \in [r^n]} \pb (\cc_i) (1 - \pb (\cc_i))^m \le \sum_{i \in [r^n]} \pb (\cc_i) \exp (- \pb (\cc_i) m) \\ & \le r^n \max_{i \in [r^n]} \pb (\cc_i) \exp (- \pb (\cc_i) m) \le \frac{r^n}{me} \end{align}
对于$\pb (\bc)$,直接用其平凡上界$\pb (\bc) \le 1$,全部回代有
\begin{align} \err(h) \le 2 \err(h^\star) (1-\err(h^\star)) + c \sqrt{n} \left( \frac{r^n}{me} + \frac{1}{r} \right) \end{align}
右边第二项在$r = (me/n)^{\frac{1}{n+1}}$时最紧,代入有
\begin{align} \err(h) \le 2 \err(h^\star) (1-\err(h^\star)) + c (me)^{\frac{-1}{n+1}} \frac{n+1}{n} n^{\frac{n+3}{2(n+1)}} \end{align}
令$c (me)^{\frac{-1}{n+1}} \frac{n+1}{n} n^{\frac{n+3}{2(n+1)}} \le \epsilon$,注意$e^{\frac{-1}{n+1}} \ge 1 - \frac{1}{n+1} = \frac{n}{n+1}$,于是
\begin{align} m \ge \left( c \frac{n}{n+1} \frac{n+1}{n} n^{\frac{n+3}{2(n+1)}} / \epsilon \right)^{n+1} \ge \left( \frac{c}{\epsilon} \right)^{n+1} n^{\frac{n+3}{2}} \end{align}
即要想控制$\xv$与 1-近邻$\xv_1$的距离,所需样本数关于维度呈指数增长,这称为维度灾难 (curse of dimensionality)
对于$k > 1$的情形,可仿照前面的思路证明
\begin{align} \err(h) \le \left( 1 + \sqrt{\frac{8}{k}} \right) \err(h^\star) + \left( 2k + \left( 2 + \sqrt{\frac{8}{k}} \right) c \sqrt{n} \right) m^{-\frac{1}{n+1}} \end{align}
增大$k$可以改善$\err(h^\star)$的系数,但会增加第二项,因此$k$并非越大越好
设$\xc = [0,1]^d$为$d$维单位立方体,训练样本在立方体内均匀分布
对任意待测试样本$\xv$,设包含其$k$-近邻的最小立方体的边长为$l$
$l^d \approx k / m$,则$l \approx \sqrt[d]{k/m}$,取$m=1000$、$k=10$
| $d$ | $2$ | $3$ | $10$ | $100$ | $1000$ | $10000$ |
|---|---|---|---|---|---|---|
| $l$ | $0.1$ | $0.215$ | $0.631$ | $0.955$ | $0.9954$ | $0.99954$ |
当$d=1000$时,$10$-近邻近乎覆盖整个$\xc$,已经不是$\xv$的邻域了
在各维度下随机生成$2000$个样本,统计所有样本对间的距离