改进的激光方法与更快的矩阵乘法——论文阅读

简介: Josh Alman与Virginia Vassilevska Williams在2021年提出改进的激光方法,将矩阵乘法指数ω的上界从2.37287降至2.37286。虽改进微小,但标志着自1986年以来核心技术的重要突破,展示了激光方法的潜力与优化空间。

改进的激光方法与更快的矩阵乘法

Josh Alman and Virginia Vassilevska Williams. 2021. A refined laser method and faster matrix multiplication. In Proceedings of the Thirty-Second Annual ACM-SIAM Symposium on Discrete Algorithms (SODA '21). Society for Industrial and Applied Mathematics, USA, 522–539.

Josh Alman 和 Virginia Vassilevska Williams 在这篇发表于2021年SIAM的论文中,通过对激光方法的精妙改进,成功将矩阵乘法指数$\omega$的上界从2.37287降低到2.37286。虽然改进幅度看似微小,但这代表了自1986年以来该领域采用的核心技术方法的一次重要突破。

第一章:引言与背景

1.1 矩阵乘法复杂度问题

矩阵乘法的算法复杂度是理论计算机科学中最引人入胜的开放问题之一。问题的核心在于确定指数$\omega$,它定义为:

$$\omega := \inf\{r \in \mathbb{R} : n \times n \text{矩阵可以用} O(n^r) \text{次域运算相乘}\}$$

从定义可以看出,$\omega \geq 2$(因为必须输出$n^2$个元素),而朴素算法给出$\omega \leq 3$。自1969年Strassen证明$\omega < 2.81$以来,一长串研究工作发展出了强大的技术工具箱,最终在本文之前达到了$\omega < 2.37287$的最佳界限。

矩阵乘法算法的发展历程可以概括为几个关键阶段。早期工作(1969-1986)主要关注于发现新的递归算法结构。从1986年开始,Strassen引入的激光方法成为主导技术,所有后续改进都基于这一框架。Coppersmith和Winograd在1990年引入的CW张量族成为分析的核心对象。

1.2 激光方法的原理

激光方法的核心思想可以通过以下步骤理解。考虑一个张量$T$,其变量集被划分为$X = X1 \cup \cdots \cup X{k_X}$,$Y = Y1 \cup \cdots \cup Y{k_Y}$,$Z = Z1 \cup \cdots \cup Z{k_Z}$。对于每个三元组$(i,j,k)$,定义子张量:

$$T_{ijk} = \sum_{x \in X_i} \sum_{y \in Y_j} \sum_{z \in Z_k} a_{xyz} \cdot xyz$$

假设每个$T_{ijk}$要么为0,要么是矩阵乘法张量。虽然$T$是这些矩阵乘法张量的和,但通常不是直和。激光方法通过以下巧妙方式解决这个问题:

首先,在非零子张量上选择概率分布$\alpha$,对$T{ijk}$赋予概率$\alpha{ijk}$。然后考虑大的Kronecker幂:

$$T^{\otimes n} = \sum_{(T_1,\ldots,T_n) \in \{T_{ijk}\}^n} T_1 \otimes \cdots \otimes T_n$$

目标是零化$T^{\otimes n}$中的变量,使得剩余的是$B$个不同子张量$T_1 \otimes T_2 \otimes \cdots \otimes Tn$的直和,这些子张量与$\alpha$一致,即对每个$(i,j,k)$,有$|{\ell \in [n] : T\ell = T{ijk}}| = \alpha{ijk} \cdot n$。

第二章:张量理论基础

2.1 张量运算的形式化定义

设$\mathbb{F}$为任意域,定义张量$T$在变量集$X = {x1, \ldots, x{|X|}}$,$Y = {y1, \ldots, y{|Y|}}$,$Z = {z1, \ldots, z{|Z|}}$上为三线性形式:

$$T = \sum_{i=1}^{|X|} \sum_{j=1}^{|Y|} \sum_{k=1}^{|Z|} a_{ijk} \cdot x_i y_j z_k$$

两个张量的直和$T \oplus T'$定义在不相交并$X \sqcup X'$,$Y \sqcup Y'$,$Z \sqcup Z'$上。Kronecker积$T \otimes T'$定义在笛卡尔积$X \times X'$,$Y \times Y'$,$Z \times Z'$上:

$$T \otimes T' = \sum_{i,j,k,i',j',k'} a_{ijk}b_{i'j'k'} \cdot (x_i, x'_{i'})(y_j, y'_{j'})(z_k, z'_{k'})$$

2.2 矩阵乘法张量

$a \times b \times c$矩阵乘法张量$\langle a,b,c \rangle$定义为:

$$\langle a,b,c \rangle = \sum_{i \in [a]} \sum_{j \in [b]} \sum_{k \in [c]} x_{ij}y_{jk}z_{ki}$$

这个张量编码了$a \times b$矩阵与$b \times c$矩阵相乘的三线性形式。关键性质包括:

$$\langle a,b,c \rangle \otimes \langle d,e,f \rangle \equiv \langle ad,be,cf \rangle$$

这对应于分块矩阵乘法的事实。

2.3 Schönhage渐近和不等式

Schönhage在1981年证明的一个关键结果表明,不仅单个矩阵乘法张量的秩可以给出$\omega$的界限,多个矩阵乘法张量的直和也可以:

定理 2.1 (Schönhage, 1981) 假设存在正整数$r > m$和$a_i, b_i, c_i$($i \in [m]$),使得张量

$$T = \bigoplus_{i=1}^m \langle a_i, b_i, c_i \rangle$$

满足$\tilde{R}(T) \leq r$。则$\omega \leq 3\tau$,其中$\tau \in [2/3, 1]$是方程

$$\sum_{i=1}^m (a_i \cdot b_i \cdot c_i)^\tau = r$$

的解。

第三章:Coppersmith-Winograd张量族

3.1 CW张量的定义与结构

对于非负整数$q$,Coppersmith-Winograd张量$CW_q$定义在变量集${x0, \ldots, x{q+1}}$,${y0, \ldots, y{q+1}}$,${z0, \ldots, z{q+1}}$上:

$$CW_q = x_0y_0z_{q+1} + x_0z_{q+1}y_0 + x_{q+1}y_0z_0 + \sum_{i=1}^q (x_0y_iz_i + x_iy_0z_i + x_iy_iz_0)$$

这个张量可以分解为:

  • 三个"角项":$x_0y0z{q+1}$,$x0z{q+1}y0$,$x{q+1}y_0z_0$
  • 三个矩阵乘法张量:$\sum_{i=1}^q x_0y_izi \equiv \langle 1,1,q \rangle$,$\sum{i=1}^q x_iy_0zi \equiv \langle q,1,1 \rangle$,$\sum{i=1}^q x_iy_iz_0 \equiv \langle 1,q,1 \rangle$

3.2 CW张量的自然划分

$CW_q$具有自然的变量划分:

  • $X^0 = {x_0}$,$X^1 = {x_1, \ldots, xq}$,$X^2 = {x{q+1}}$
  • $Y^0 = {y_0}$,$Y^1 = {y_1, \ldots, yq}$,$Y^2 = {y{q+1}}$
  • $Z^0 = {z_0}$,$Z^1 = {z_1, \ldots, zq}$,$Z^2 = {z{q+1}}$

非零子张量恰好是满足$i+j+k=2$的$T_{ijk}$,使得$CW_q$成为2-划分张量。

第四章:改进的激光方法

4.1 主要定理

本文的核心贡献是以下改进的激光方法定理:

定理 4.1(改进的激光方法) 对于任何$P$-划分张量$T$,任何$\alpha \in D$,以及任何$\tau \in [2/3, 1]$,有:

$$V_\tau(T) \geq \alpha_{V_\tau} \cdot \alpha_B \cdot \sqrt{\frac{\alpha_N}{\max_{\beta \in D_\alpha} \beta_N}}$$

其中:

  • $\alphaB = \left(\prod{i \in [kX]} \alpha{Xi}^{-\alpha{Xi}}\right)^{1/3} \left(\prod{j \in [kY]} \alpha{Yj}^{-\alpha{Yj}}\right)^{1/3} \left(\prod{k \in [kZ]} \alpha{Zk}^{-\alpha{Z_k}}\right)^{1/3}$
  • $\alphaN = \prod{(i,j,k) \in S} \alpha{ijk}^{-\alpha{ijk}}$
  • $\alpha{V\tau} = \prod{(i,j,k) \in S} V\tau(T{ijk})^{\alpha{ijk}}$
  • $D_\alpha$是与$\alpha$具有相同边缘分布的概率分布集合

与之前的界限$V\tau(T) \geq \alpha{V_\tau} \cdot \alpha_B \cdot \frac{\alphaN}{\max{\beta \in D_\alpha} \betaN}$相比,新方法通过因子$\sqrt{\frac{\max{\beta \in D_\alpha} \beta_N}{\alpha_N}}$实现了改进。

4.2 证明策略

证明分为四个主要步骤。考虑大的正整数$n$和张量$\mathcal{T} = T^{\otimes n} \otimes T^{r \otimes n} \otimes T^{rr \otimes n}$。目标是证明$\mathcal{T}$可以被零化为

$$\frac{\alpha_B^{3n-o(n)} \cdot \alpha_N^{1.5n-o(n)}}{\max_{\beta \in D_\alpha} \beta_N^{1.5n-o(n)}}$$

个不同张量的直和,每个具有值$\alpha_V^{3n}$。

步骤1:移除与$\alpha$不一致的块

定义$X_I$对$I \in [k_X]^n$与$\alpha$一致,如果对所有$i \in [k_X]$:
$$\alpha_{X_i} = \frac{1}{n} \cdot |\{\ell \in [n] : I_\ell = i\}|$$

零化所有至少有一个分量与$\alpha$不一致的$X$-块、$Y$-块或$Z$-块。剩余块的数量为:

$$N_B = \left(\prod_{i \in [k_X]} \alpha_{X_i}^{-\alpha_{X_i}}\right)^{n-o(n)} \cdot \left(\prod_{j \in [k_Y]} \alpha_{Y_j}^{-\alpha_{Y_j}}\right)^{n-o(n)} \cdot \left(\prod_{k \in [k_Z]} \alpha_{Z_k}^{-\alpha_{Z_k}}\right)^{n-o(n)} = \alpha_B^{3n-o(n)}$$

步骤2:计数非零块三元组

与$(\beta, \beta', \beta'')$一致的非零块三元组数量为:
$$(\beta_N \cdot \beta'_N \cdot \beta''_N)^{n-o(n)}$$

特别地,与$(\alpha, \alpha, \alpha)$一致的块三元组数量为$N_\alpha = \alpha_N^{3n-o(n)}$。

步骤3:使用Salem-Spencer集合稀疏化

定义哈希函数$h_X, h_Y, h_Z$到$\mathbb{Z}M$,其中$M \in [100R, 200R]$是素数,$R = N\alpha/N_B$。使用Salem-Spencer集合$A \subseteq \mathbb{Z}_M$,满足$|A| \geq M^{1-o(1)}$,零化所有不哈希到$A$中值的块。

步骤4:应用对角化定理

应用定理3.1将剩余张量转化为至少
$$L \geq \frac{2}{3\sqrt{3}} \cdot \frac{C_1'^{3/2}}{C_3^{1/2}} \geq \frac{\alpha_B^{3n-o(n)} \cdot \alpha_N^{1.5n-o(n)}}{\max_{\beta \in D_\alpha} \beta_N^{1.5n-o(n)}}$$
个与$(\alpha, \alpha, \alpha)$一致的块三元组的直和。

第五章:优化算法与启发式方法

5.1 固定$\gamma$时的优化

对于固定的$\gamma \in D$,优化所有$\alpha \in D_\gamma$上的界限可以通过求解两个凸规划问题完成:

问题1: 最大化 $\alpha{V\tau} \cdot \alpha_B \cdot \sqrt{\alphaN}$,约束条件:$\alpha \in D\gamma$

问题2: 最大化 $\betaN$,约束条件:$\beta \in D\gamma$

这两个问题都是在线性约束下最大化凹函数,可以高效求解。

5.2 选择$\gamma$的启发式方法

论文提出了四种启发式方法:

启发式1: 选择$\gamma$最大化$\gamma{V\tau} \cdot \gammaB$,满足$\gamma = \arg\max{\gamma' \in D_\gamma} \gamma_N$

启发式2: 选择$\gamma$最大化$\gamma{V\tau} \cdot \gamma_B$

启发式3: 选择$\gamma$最大化$\gamma{V\tau} \cdot \gamma_B + \lambda/\gamma_N$,其中$\lambda$是可调参数

启发式4: 选择$\gamma$最大化$\gamma{V\tau} \cdot \gamma_B \cdot \sqrt{\gamma_N}$

实验表明,启发式3在$\lambda$取0到$10^7$之间的正值时通常给出最好的结果。

第六章:数值结果

6.1 对$CW_q^{\otimes t}$的分析

对于$t$次幂的CW张量,定义映射$\kappa: {0,1,\ldots,q+1} \to {0,1,2}$:

  • $\kappa(0) = 0$
  • $\kappa(i) = 1$ 对于 $i \in {1,\ldots,q}$
  • $\kappa(q+1) = 2$

对于$I \in {0,1,\ldots,2t}$,定义:
$$L_{t,I} = \{A \in \{0,1,\ldots,q+1\}^t : \sum_{\ell=1}^t \kappa(A_\ell) = I\}$$

6.2 子张量的合并现象

某些子张量可以通过"合并"获得更大的值。例如,$T^2_{220}$可以合并为:
$$T^2_{220} \equiv \sum_{i=0}^{q+1} x_{i,i}y_{i,i}z_{0,0} \equiv \langle q+2, 1, 1 \rangle$$

因此$V\tau(T^2{220}) = (q+2)^\tau$,这比单独处理各部分得到的值更大。

6.3 最终界限

应用改进的激光方法到$CW_5^{\otimes 32}$,对于$\tau = 2.3728596/3$,得到:
$$V_\tau(CW_5^{\otimes 32}) > 7^{32 + 9.19 \times 10^{22}}$$

结合Schönhage不等式和$\tilde{R}(CW_5) = 7$的事实,这给出:
$$\omega < 2.3728596$$

附录A:概率分析的技术细节

A.1 边缘分布的保持

引理 A.1 对于任何$\alpha \in D$和足够大的正整数$n$,存在$\alpha' \in D$使得:

  • $\alpha'_{ijk}$是$1/n$的整数倍
  • $|\alpha{ijk} - \alpha'{ijk}| < 1/n$

证明: 设$S' \subseteq S$为$\alpha{ijk}$不是$1/n$整数倍的$(i,j,k)$集合。对每个$(i,j,k) \in S \setminus S'$,令$\alpha'{ijk} = \alpha{ijk}$。初始时,对每个$(i,j,k) \in S'$,令$\alpha'{ijk} = \lfloor n \cdot \alpha_{ijk} \rfloor/n$。

因为$\sum{(i,j,k) \in S} \alpha{ijk} = 1$,设$t = \sum{(i,j,k) \in S} \alpha'{ijk}$。则:
$$1 - t = \sum_{(i,j,k) \in S'} (\alpha_{ijk} - \alpha'_{ijk}) \leq \frac{|S'|}{n}$$

存在非负整数$K \leq |S'|$使得$t = 1 - K/n$。选择$S'$中任意$K$个元素$(i,j,k)$,对其$\alpha'{ijk}$加上$1/n$。现在$\sum \alpha'{ijk} = 1$,因此$\alpha' \in D$。

A.2 舍入误差的影响

引理 A.2 设$\alpha, \alpha'$如上。则:
$$\frac{1}{2^{o(n)}} \leq \frac{\alpha_N}{\alpha'_N} \leq 2^{o(n)}$$

证明: 因为$\alphaN = \prod{(i,j,k) \in S} \alpha{ijk}^{-\alpha{ijk}}$,我们有:
$$\frac{\alpha_N}{\alpha'_N} = \prod_{(i,j,k) \in S} \left(\frac{\alpha_{ijk}}{\alpha'_{ijk}}\right)^{-\alpha_{ijk}} \cdot \left(\alpha'_{ijk}\right)^{\alpha'_{ijk} - \alpha_{ijk}}$$

对于固定的$(i,j,k) \in S$,如果$\alpha{ijk}$是$1/n$的整数倍,则$\alpha'{ijk} = \alpha_{ijk}$,比值为1。

否则,设$\delta = \alpha'{ijk} - \alpha{ijk}$,其中$0 < |\delta| < 1/n$。当$\delta > 0$时:
$$\log\left(\frac{\alpha_{ijk}^{-\alpha_{ijk}}}{\alpha_{ijk}'^{-\alpha'_{ijk}}}\right) = (\alpha_{ijk} + \delta)\log(\alpha_{ijk} + \delta) - \alpha_{ijk}\log\alpha_{ijk}$$

使用$\log(1+x) = x - O(x^2)$当$x \to 0^+$:
$$= \alpha_{ijk}\log\left(1 + \frac{\delta}{\alpha_{ijk}}\right) + \delta\log(\alpha_{ijk} + \delta) \leq O\left(\frac{1}{n}\right)$$

因此比值在$2^{-o(n)}$和$2^{o(n)}$之间。

附录B:对角化定理的最优性

B.1 下界构造

定理 B.1 对于正整数$n \geq m$且$n$足够大,存在集合$S \subseteq {(i,j,k) \in [n]^3 : i,j,k \text{互不相同}}$,$|S| = mn$,使得对任何大小$|I| = n\sqrt{\log n}/m$的子集$I \subseteq [n]$,存在$(i,j,k) \in S$满足$i,j,k \in I$。

证明: 令$\mathcal{C}$为所有大小为$n\sqrt{\log n}/m$的$[n]$子集的集合。因此:
$$|\mathcal{C}| = \binom{n}{n\sqrt{\log n}/m} \leq n^{n\sqrt{\log n}/m}$$

初始令$S = \emptyset$。重复添加元素$(i,j,k)$到$S$,并移除所有包含$i,j,k$的剩余$I \in \mathcal{C}$,直到$\mathcal{C}$变空。

在每步,贪心选择最大化$|{I \in \mathcal{C} : i,j,k \in I}|$的互不相同的$(i,j,k) \in [n]^3$。对于随机选择的三个互不相同的$i,j,k \in [n]$,给定$I \in \mathcal{C}$,$i,j,k \in I$的概率为:
$$\frac{|I|}{n} \cdot \frac{|I|-1}{n-1} \cdot \frac{|I|-2}{n-2} > \left(\frac{|I|-2}{n-2}\right)^3 > \frac{1}{2}\left(\frac{\log n}{\sqrt{m}}\right)^3$$

重复$mn$次后,$|\mathcal{C}|$的大小将小于:
$$n^{n/\sqrt{m}} \cdot \left(1 - \frac{1}{2}\left(\frac{\log n}{\sqrt{m}}\right)^3\right)^{mn} < n^{n/\sqrt{m}} \cdot e^{-\frac{1}{2}n\log^3 n/\sqrt{m}} < 1$$

对于足够大的$n$。因此$|\mathcal{C}| = 0$。

B.2 自由张量的构造

定理 B.2 对于正整数$n$和$m$,其中$n$足够大且$\log^2 n \leq m \leq \sqrt{n/6}$,存在集合$S \subseteq \binom{[n]}{3}$,$|S| \leq O(mn)$,使得:

  1. 任意不同的${i,j,k}, {i',j',k'} \in S$满足$|{i,j,k} \cap {i',j',k'}| \leq 1$
  2. 对任何大小$|I| = n\log(n)/\sqrt{m}$的子集$I \subseteq [n]$,存在${i,j,k} \in S$满足$i,j,k \in I$

这个构造证明了即使对于具有额外结构(自由性)的张量,$\sqrt{m}$因子仍然是最优的。

附录C:Salem-Spencer集合的张量解释

C.1 构造与性质

对于奇素数$M$,定义张量$C_M$:
$$C_M = \sum_{i=0}^{M-1} \sum_{j=0}^{M-1} x_i \cdot y_j \cdot z_{(i+j)/2 \bmod M}$$

使用Salem-Spencer集合$A$,零化所有$i \notin A$的$x_i, y_i, z_i$,得到:
$$\sum_{i \in A} x_i \cdot y_i \cdot z_i$$

这是$|A| \geq M \cdot e^{-O(\sqrt{\log M})}$项的直和。

C.2 在激光方法中的应用

在步骤3中,定义的哈希函数满足关键性质:

  • $h_X(I, J', K'') + h_Y(J, K', I'') = 2h_Z(K, I', J'') \pmod{M}$
  • 三个哈希值在条件于其他两个之一时仍是均匀随机的
  • 哈希函数是成对独立的

这些性质确保了Salem-Spencer集合可以有效地用于稀疏化,同时保持足够多的与$(\alpha, \alpha, \alpha)$一致的块三元组。

结论

本文通过引入$\sqrt{m}$改进因子,成功地改进了激光方法并获得了矩阵乘法指数的新界限$\omega < 2.3728596$。虽然改进幅度看似微小,但这代表了该领域核心技术的一次重要突破。更重要的是,这种改进的激光方法是通用的,可能在算术复杂性的其他问题中有进一步应用。

已知的局限性结果表明,仅使用激光方法和Coppersmith-Winograd张量族无法证明$\omega = 2$。要实现矩阵乘法复杂度的重大突破,可能需要全新的方法或张量族。尽管如此,本文的工作为未来研究提供了新的技术工具,并展示了即使在高度优化的算法中仍有改进空间。

目录
相关文章
|
5月前
|
存储 移动开发 资源调度
论文阅读——使用分区截断奇异值分解滤波的近似卷积
本文提出了一种基于分区截断奇异值分解(PTSVD)的近似卷积方法,旨在降低大型卷积运算的计算复杂度与内存占用,适用于音频信号处理等实时应用场景。该方法通过将脉冲响应分段并进行奇异值分解,仅保留主要奇异值对应的向量进行重构,从而实现高效滤波。实验表明,该方法在保持高精度的同时显著降低了运算量和存储需求,尤其适用于长房间脉冲响应的处理。
189 4
论文阅读——使用分区截断奇异值分解滤波的近似卷积
|
5月前
|
存储 算法 语音技术
无乘法器的多常数乘法——论文简读
本文研究了无乘法器的多常数乘法(MCM)问题,旨在通过加法、减法和移位操作高效实现多个常数与变量的乘法,在降低硬件成本和功耗方面具有重要意义。
131 2
无乘法器的多常数乘法——论文简读
|
5月前
|
存储 机器学习/深度学习 数据库
用于最近邻搜索的乘积量化——论文阅读
本文介绍了用于最近邻搜索的乘积量化方法,通过将高维向量划分为低维子空间并分别量化,实现高效近似欧氏距离计算。该方法结合非对称距离计算(ADC)与倒排文件系统(IVFADC),在保持高搜索精度的同时显著降低计算复杂度和内存占用。实验表明,乘积量化在SIFT和GIST描述符上的表现优于现有方法,适用于大规模图像检索等应用。
95 1
用于最近邻搜索的乘积量化——论文阅读
|
5月前
|
机器学习/深度学习 人工智能 资源调度
嵌入式AI领域关键技术的理论基础
本内容系统讲解嵌入式AI领域关键技术的数学理论基础,涵盖神经网络量化、剪枝、知识蒸馏与架构搜索的核心原理。深入探讨量化中的信息论与优化方法、稀疏网络的数学建模、蒸馏中的信息传递机制,以及神经架构搜索的优化框架,为在资源受限环境下实现高效AI推理提供理论支撑。
308 5
|
4月前
|
人工智能 运维 Serverless
函数计算 × MSE Nacos : 轻松托管你的 MCP Server
本文将通过一个具体案例,演示如何基于 MCP Python SDK 开发一个标准的 MCP Server,并将其部署至函数计算。在不修改任何业务代码的前提下,通过控制台简单配置,即可实现该服务自动注册至 MSE Nacos 企业版,并支持后续的动态更新与统一管理。
733 62
|
Java Docker Windows
spring boot整合Minio
spring boot整合Minio
412 0
|
2月前
|
Java Spring
Spring Boot配置的优先级
SpringBoot项目支持多种配置方式,主要包括配置文件(application.properties、yml、yaml)和外部配置(系统属性、命令行参数)。优先级由高到低为:命令行参数 &gt; Java系统属性 &gt; application.properties &gt; .yml &gt; .yaml。
|
Prometheus 运维 监控
智能运维实战:Prometheus与Grafana的监控与告警体系
【10月更文挑战第26天】Prometheus与Grafana是智能运维中的强大组合,前者是开源的系统监控和警报工具,后者是数据可视化平台。Prometheus具备时间序列数据库、多维数据模型、PromQL查询语言等特性,而Grafana支持多数据源、丰富的可视化选项和告警功能。两者结合可实现实时监控、灵活告警和高度定制化的仪表板,广泛应用于服务器、应用和数据库的监控。
1399 3
|
JavaScript 前端开发
vue动态添加style样式
vue动态添加style样式
829 62
|
机器学习/深度学习 算法
机器学习入门(三):K近邻算法原理 | KNN算法原理
机器学习入门(三):K近邻算法原理 | KNN算法原理