# 线性代数的温和介绍

> 原文： [https://machinelearningmastery.com/gentle-introduction-linear-algebra/](https://machinelearningmastery.com/gentle-introduction-linear-algebra/)

### 什么是线性代数？

线性代数是一个数学领域，普遍认为它是更深入理解机器学习的先决条件。

虽然线性代数是一个具有许多深奥理论和发现的大型领域，但从该领域获得的螺母和螺栓工具和符号对于机器学习从业者来说是实用的。凭借线性代数的坚实基础，可以专注于良好或相关的部分。

在本教程中，您将从机器学习的角度发现究竟线性代数是什么。

完成本教程后，您将了解：

*   线性代数是数据的数学。
*   线性代数对统计学领域产生了显着影响。
*   线性代数是许多实用数学工具的基础，例如傅里叶级数和计算机图形学。

让我们开始吧。

![A Gentle Introduction to Linear Algebra](img/a3d40bba50bf998fdd0ac5f7625becad.jpg)

线性代数的温和介绍
[Steve Corey](https://www.flickr.com/photos/stevecorey/13939447959/) 的照片，保留一些权利。

## 教程概述

本教程分为 4 个部分;他们是：

1.  线性代数
2.  数值线性代数
3.  线性代数与统计
4.  线性代数的应用

## 线性代数

线性代数是数学的一个分支，但事实是线性代数是数学的数学。矩阵和向量是数据的语言。

线性代数是线性组合。也就是说，对称为向量的数字列和称为矩阵的数字数组使用算术，以创建新的列和数字数组。线性代数是线性变换所需的线和平面，向量空间和映射的研究。

这是一个相对年轻的研究领域，最初在 19 世纪正式化，以便在线性方程组中找到未知数。线性方程只是一系列术语和数学运算，其中一些术语是未知的;例如：

```
y = 4 * x + 1
```

像这样的方程是线性的，因为它们描述了二维图上的线。该线来自于将不同的值插入到未知 x 中，以找出等式或模型对 y 值的影响。

我们可以将具有两个或更多未知数的相同形式的方程组排列在一起;例如：

```
y = 0.1 * x1 + 0.4 * x2
y = 0.3 * x1 + 0.9 * x2
y = 0.2 * x1 + 0.3 * x2
...
```

y 值列可以作为等式的输出的列向量。两列浮点值是数据列，比如 a1 和 a2，可以作为矩阵 A.两个未知值 x1 和 x2 可以作为等式的系数，一起形成未知数的向量 b 待解决。我们可以使用线性代数表示法紧凑地编写这个：

```
y = A . b
```

这种形式的问题通常难以解决，因为有更多的未知数（这里我们有 2 个）比要求解的方程（这里我们有 3 个）。此外，通常没有单行可以无错误地满足所有方程。描述我们经常感兴趣的问题的系统（例如线性回归）可以具有无限数量的解决方案。

这给了我们作为机器学习从业者感兴趣的线性代数的核心品味。其余大部分操作都是关于解决这个问题以及更容易理解和解决的问题。

## 数值线性代数

线性代数在计算机中的应用通常被称为数值线性代数。

> “数值”线性代数实际应用于线性代数。

- Page ix，[数值线性代数](http://amzn.to/2kjEF4S)，1997。

它不仅仅是代码库中线性代数运算的实现;它还包括仔细处理应用数学问题，例如使用数字计算机的有限浮点精度。

计算机擅长执行线性代数计算，而现代机器学习方法（如深度学习）对图形处理单元（GPU）的依赖很大程度上是因为它们能够快速计算线性代数运算。

向量和矩阵运算的有效实现最初是在 20 世纪 70 年代和 80 年代的 FORTRAN 编程语言中实现的，许多代码或从这些实现移植的代码是使用现代编程语言（如 Python）执行的大部分线性代数的基础。

实现这些功能的三个流行的开源数值线性代数库是：

*   线性代数包，或 LAPACK。
*   基本线性代数子程序，或 BLAS（线性代数库的标准）。
*   自动调谐线性代数软件，或 ATLAS。

通常，当您通过高阶算法直接或间接计算线性代数运算时，您的代码很可能会使用其中一个或类似的线性代数库。如果您已安装或编译任何 Python 的数字库（如 SciPy 和 NumPy），则您可能很熟悉这些底层库中的一个的名称。

## 线性代数与统计

线性代数是其他数学分支中的一个有价值的工具，尤其是统计学。

> 通常，学习统计学的学生预计至少会在本科阶段看到一个学期的线性代数（或应用代数）。

- 第 xv 页，[线性代数和统计矩阵分析](http://amzn.to/2A9ceNv)，2014 年。

考虑到两个领域与应用机器学习领域的基础关系，线性代数的影响是重要的考虑因素。

线性代数在统计和统计方法上的一些清晰指纹包括：

*   使用向量和矩阵表示法，尤其是多变量统计。
*   最小二乘和加权最小二乘的解，例如线性回归。
*   估计数据矩阵的均值和方差。
*   协方差矩阵在多项高斯分布中起关键作用。
*   数据减少的主成分分析将许多这些元素结合在一起。

如您所见，现代统计和数据分析，至少就机器学习从业者的兴趣而言，取决于线性代数的理解和工具。

## 线性代数的应用

由于线性代数是数据的数学，线性代数的工具被用于许多领域。

在他关于题为“[线性代数导论](http://amzn.to/2j2J0g4)”主题的经典着作中，Gilbert Strang 提供了一章专门讨论线性代数的应用。在其中，他展示了植根于线性代数的特定数学工具。简而言之，他们是：

*   工程中的矩阵，例如一系列弹簧。
*   图形和网络，例如分析网络。
*   马尔可夫矩阵，人口和经济学，如人口增长。
*   线性规划，单纯形优化方法。
*   傅立叶级数：用于函数的线性代数，广泛用于信号处理。
*   用于统计和概率的线性代数，例如回归的最小二乘法。
*   计算机图形学，例如图像的各种翻译，重新缩放和旋转。

线性代数的另一个有趣的应用是它是阿尔伯特爱因斯坦在他的相对论部分中使用的数学类型。特别是张量和张量微积分。他还介绍了一种新的线性代数符号，称为爱因斯坦符号或爱因斯坦求和惯例。

## 扩展

本节列出了一些扩展您可能希望探索的教程的想法。

*   搜索书籍和网络以获得定义线性代数领域的 5 种语录。
*   研究并列出 5 个应用或线性代数在场概率和统计中的应用。
*   列出并编写线性代数描述中使用的 10 个术语的简短定义。

如果你探索任何这些扩展，我很想知道。

## 进一步阅读

如果您希望深入了解，本节将提供有关该主题的更多资源。

### 图书

*   [线性代数](http://amzn.to/2j2J0g4)简介，2016 年。
*   [数值线性代数](http://amzn.to/2kjEF4S)，1997。
*   [线性代数和统计矩阵分析](http://amzn.to/2A9ceNv)，2014。

### 用品

*   [维基百科上的线性代数](https://en.wikipedia.org/wiki/Linear_algebra)
*   [维基百科上的线性代数类别](https://en.wikipedia.org/wiki/Category:Linear_algebra)
*   [线性代数维基百科上的主题列表](https://en.wikipedia.org/wiki/List_of_linear_algebra_topics)
*   维基百科上的 [LAPACK](https://en.wikipedia.org/wiki/LAPACK)
*   [维基百科上的基本线性代数子程序](https://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms)
*   [维基百科上的自动调谐线性代数软件](https://en.wikipedia.org/wiki/Automatically_Tuned_Linear_Algebra_Software)
*   [维基百科上的爱因斯坦符号](https://en.wikipedia.org/wiki/Einstein_notation)
*   [维基百科上的广义相对论数学](https://en.wikipedia.org/wiki/Mathematics_of_general_relativity)

### 相关文章

*   [用于机器学习的线性代数](https://machinelearningmastery.com/linear-algebra-machine-learning/)

## 摘要

在本教程中，您从机器学习的角度发现了对线性代数的温和介绍。

具体来说，你学到了：

*   线性代数是数据的数学。
*   线性代数对统计学领域产生了显着影响。
*   线性代数是许多实用数学工具的基础，例如傅里叶级数和计算机图形学。

你有任何问题吗？
在下面的评论中提出您的问题，我会尽力回答。