我的几个同行已经提到"线性代数"在研究算法时非常重要.我研究了各种算法,并参加了一些线性代数课程,但我没有看到这种联系.那么算法中如何使用线性代数?
例如,有哪些有趣的东西可以用图表的连接矩阵?
三个具体的例子:
线性代数是现代3d图形的基础.这与你在学校学到的基本相同.数据保存在投影在2d表面的3d空间中,这是您在屏幕上看到的.
大多数搜索引擎都基于线性代数.我们的想法是将每个文档表示为超空间中的向量,并查看向量在此空间中如何相互关联.这被lucene项目使用.见VSM.
一些现代压缩算法(例如ogg vorbis格式使用的算法)基于线性代数,或者更具体地称为矢量量化的方法.
基本上,它归结为线性代数在处理多个变量时是一种非常强大的方法,并且在设计算法时使用它作为理论基础有很大的好处.在许多情况下,这个基础并不像你想象的那么明显,但这并不意味着它不存在.你很可能已经实现了在没有linalg的情况下难以推出的算法.
密码学家可能会告诉你,在研究算法时掌握数论是非常重要的.他是对的 - 因为他的特殊领域.统计数据也有其用途 - 跳过列表,哈希表等.图论的有用性更加明显.
线性代数和算法之间没有固有的联系; 数学和算法之间存在着内在的联系.
线性代数是一个具有许多应用的领域,因此利用它的算法也有许多应用.你没有浪费你的时间来研究它.
哈,我无法抗拒把它放在这里(即使其他答案都很好):
价值250亿美元的特征向量.
我不会撒谎......我甚至从未读过整件事...也许我现在会:-).
我不知道我是否会将其称为"线性代数在学习算法时非常重要".我几乎把它放在另一边.很多很多很多现实问题最终要求你解决如果您最终必须解决其中一个问题,那么您需要了解一些处理线性方程的算法.许多算法是在计算机作为职称时开发的,而不是例如,考虑高斯消元法和各种矩阵分解算法.例如,对于如何解决非常大的矩阵的问题,有很多非常复杂的理论.
机器学习中最常见的方法最终有一个优化步骤,需要求解一组联立方程.如果你不知道线性代数,你将完全迷失.
许多信号处理算法都基于矩阵运算,例如傅里叶变换,拉普拉斯变换,......
通常可以将优化问题简化为求解线性方程组.