返回介绍

随机投影发生了什么?

发布于 2025-01-01 12:38:40 字数 3204 浏览 0 评论 0 收藏 0

我们在下面的矩阵中采用线性组合(带有随机权重):

plt.figure(figsize=(12, 12))
plt.imshow(M, cmap='gray')

# <matplotlib.image.AxesImage at 0x7f601f315fd0>

这就像一个随机加权平均值。 如果你选取其中的几个,你最终会得到彼此不高度相关的列(大致正交)。

Johnson-Lindenstrauss 引理:(来自维基百科)高维空间中的一小组点可以嵌入到更低维度的空间中,使得点之间的距离几乎保持不变。

我们期望,能够以保留相关结构的方式,减少数据的维度。 Johnson-Lindenstrauss 引理是这种类型的经典结果。

高斯消元的历史

有趣的事实:高斯并没有发明高斯消元,但可能在 Cholesky 之前发现了 Cholesky 因子分解

— Rachel Thomas (@math_rachel) 2017 年 6 月 6 日

根据维基百科, Stigler 的 Eponymy 定律 :“没有任何科学发现以它的原始发现者命名。例子包括哈勃定律,它是由 Georges Lemaître 在 Edwin Hubble 两年之前得到的,毕达哥拉斯定理在毕达哥拉斯之前为巴比伦数学家所知,哈雷彗星是自公元前 240 年以来天文学家观察到的彗星。Stigler 本人将社会学家 Robert K. Merton 命名为 Stigler 定律的发现者,表明它遵循自己的法令,尽管这一现象之前曾被其他人注意到。”

迷人的高斯消元的历史 。一些亮点:

  • 公元前 20 0 年左右,高斯消元的第一个书面记录在中文书籍“九章算术”中。
  • 古代中国人使用彩色竹棒放在“计数板”的列中。
  • 日本数学家 Seki Kowa(1643-1708)在 1683 年之前推进了中国的淘汰消元,并发明了行列式。大约在同一时间,莱布尼兹独立地发现了相似的发现,但是 Kowa 和莱布尼兹都没有因为他们的发现而受到赞扬。
  • 高斯称消元方法是“众所周知的”并且从未声称已经发明了它,尽管他可能已经发明了 Cholesky 分解。

这里有更多历史

加速高斯消元

并行 LU 分解 :LU 分解可以完全并行化

随机化 LU 分解 (2016 年文章):随机 LU 完全为在标准 GPU 上运行而实现,无需任何 GPU-CPU 数据传输。

scipy.linalg vs lu_solve

n = 60
A = make_matrix(n)
b = make_vector(n)

这个问题有很大的增长因子 = 259 。 我们使用 scipy.linalg.lu_solve 获得了错误的答案,但使用 scipy.linalg.solve 得到了正确的答案。什么是 scipy.linalg.solve 呢?

print(scipy.linalg.lu_solve(scipy.linalg.lu_factor(A), b)[-5:])
print(scipy.linalg.solve(A, b)[-5:])

'''
[ 0.  0.  0.  0.  1.]
[-0.062 -0.125 -0.25   0.5    1.   ]
'''

%%timeit
soln = scipy.linalg.lu_solve(scipy.linalg.lu_factor(A), b)
soln[-5:]

# 91.2 µs ± 192 ns per loop (mean ± std. dev. of 7 runs, 10000 loops each)

%%timeit
soln = scipy.linalg.solve(A, b)
soln[-5:]

# 153 µs ± 5 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)

查看 scipy 的源代码,我们看到它正在调用 LAPACK 例程 gesvx 。 这是 sgesvx 的 Fortran 源代码( s 指的是单个,也有用于浮点的 dgesvx 和复数的 cgesvx )。 在注释中,我们看到它正在计算 reciprocal 主元增长因子,因此它考虑了这个增长因子,并做了一些比普通的部分主元 LU 分解更复杂的事情。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文