要读懂前沿的机器学习文献,需要掌握一些线性代数知识;要用代码实现某篇文献中的算法或研究本书未提及的其他算法,需要掌握线性代数的基础知识。如果你之前学过这部分知识,本节内容可以有助于你的回忆。如果你之前没有接触过这部分知识,建议听听大学的相关课程,选择一些书籍进行自学,或者通过相关视频进行学习,免费的教学视频与大学的课程是一样的。你是否听过“纸上得来终觉浅,觉知此事要躬行”这句话?只有通过自己的手动实践,才可以加深对书或视频里提到的知识的理解。
对线性代数的讨论主要分成4部分:首先讨论线性代数的基本结构——矩阵;接着讨论矩阵的基本运算,包括求矩阵的逆等;随后,将给出机器学习中常见到的向量范数;最后讨论如何在线性代数中使用微积分。
1 矩阵
待续
2 逆矩阵
待续
3 范数
范数常常出现在机器学习的文献中。矩阵的范数形式为:|| A||,即在矩阵符号的两边分别有两条竖线。让我们先看看向量范数。
向量范数是一种运算,它给出任意向量的确定的标量。可以把它想象成向量的长度,它在很多机器学习的算法(如k-Nearest Neighbors)中非常有用。比如你有一个向量z=[3,4],它的长度是5,这也被称为2-范数,写作|| z|| or || z|| 2
使用不同的范数在一些机器学习算法中可以得到更好的结果,如回归中的lasso。1-范数也很常见,有时也被称作Manhattan距离。矩阵z的1-范数为:3+4=7,被写作|| z|| 1。可以得到任何数的范数,他们通常被定义为:
在确定输入向量的规模和意义时,常会用到向量范数。除了上面定义的方法,当把向量转换为标量时,可以用你想要的方式生成向量范数。
4 矩阵微积分
除了矩阵和向量的加法、减法和除法,也可以进行微积分运算,如对向量和矩阵求微分。这需要类似梯度下降的算法。这与一般的微积分操作很相似,关键是要理解符号和定义。
例如有一个向量A:
如果对向量A求x的微分,会得到另一向量:
如果对向量A求向量B的微分,就可以得到一个矩阵。假设向量B为:
对向量A(2X1维)求向量B(3X1维)的微分后,可以得到3X2维的矩阵:
部分译自《Machine Learning in Action》
版权声明:本文为原创文章,未经允许不得转载。