机器学习的数学基础--向量,矩阵
机器学习与传统编程的一个重要区别在于机器学习比传统编程涉及了更多的数学知识。
不过,随着机器学习的飞速发展,各种框架应运而生,在数据分析等应用中使用机器学习时,使用现成的库和框架成为常态,似乎越来越不需要数学知识了。
其实,现成的库和框架只是帮助我们简化机器学习的开发任务,
如果想要对模型训练结果进行调整和优化,对训练数据进行变换和过滤的话,了解相关的基础数学必能让我们事倍功半。
机器学习的模型看似一堆天书般的符号和公式,其实本质并没有那么复杂,也许大部分人只是因为没有耐心去理解其中的数学符号而放弃。
我觉得对线性代数有最基本的了解就能看懂其中大部分的公式。
本文尽量用简单的方式介绍机器学习中两个最基本的结构(向量和矩阵),以及它们的基本运算规则。
1. 向量
1.1. 定义
机器学习面对的训练数据,几乎没有只有单一属性的(也就是数据只包含一个数值或者一个字符串),
而是每个数据都包含多种属性,比如气象数据(包含温度,湿度,风向等等),金融数据(开盘价,收盘价,交易量等等),销售数据(价格,库存量,卖出数量等等)。
为了表示这个多属性的数据,或者称为多维度的数据,向量最为合适。
向量就是有几个数字横向或者纵向排列而成,每个数字代表一个属性。
向量类似编程语言中的一维数组,numpy
中也是这么保存的。
1.2. 转置
向量可以用行或者列的形式表示,
比如:\(\begin{bmatrix}1,2,3\end{bmatrix}\)或者\(\begin{bmatrix}
1 \\
2 \\
3
\end{bmatrix}\)。
向量用行还是列来表示,主要取决于后续进行怎样的计算,本质区别不大。
向量的转置操作就是用来对行向量和列向量进行互相转换的。
1.3. 加和减
向量之间进行加减操作时,向量的长度必须一样,并且必须同为行