本文是吴恩达《机器学习》视频笔记第18篇,对应第1周第18个视频。
“Linear Algebra review(optional)——Inverse and transpose”
上两个小节分别讲了矩阵和矩阵的乘法、矩阵乘法的性质、单位矩阵,这一小节讲一些特殊的矩阵运算:矩阵的逆和矩阵转置。
同样的,我们对比实数运算来理解矩阵的逆运算和转置。
逆矩阵在实数空间中,我们有一个特殊的数“1”,任何数和1相乘都等于它本身,如果一个数和它的倒数相乘等于1。当然,也并不是所有的数都有倒数的,比如0.
那么,在矩阵的世界中,有没有类似实数倒数的定义呢?那就是逆矩阵了。它怎么定义呢?如下:
如果一个方阵存在逆矩阵,那它们满足: . 要注意,只有方阵(即矩阵的行数=矩阵的列数)才可能存在逆矩阵。
那逆矩阵怎么算出来呢?当然是使用软件来做了。如果用Python的话,可以用Numpy来做。
本门课使用的是Octava,直接用函数pinv即可,代码如下:
A=[3 4; 2 16]
inverseOfA = pinv(A)
pinv(A)即是所求,关于Octava的使用将在第二周的课程中讲解。
我们需要注意的是:(1)只有方阵才有可能有逆矩阵;(2)并不是所有的方阵都有逆矩阵。那到底什么样的矩阵没有逆矩阵呢?此处并没有讲,后面机器学习问题碰到的时候再说。对于不存在逆矩阵的矩阵,学术上被称为“奇异矩阵”或者“退化矩阵”。
转置如下图,A的转置矩阵用 来表示。
矩阵A的第一列,变成了A的转置后的第一行,就这么简单。更正式一点的定义如下:
就是说,把矩阵的行标列标呼唤一下,就变成它的转置矩阵了。
到此为止,我们把机器学习中所要用到的线性代数的知识就都复习完了。包括了:加减、乘标量、乘向量、乘矩阵、求逆、求转置、矩阵乘法的性质这几部分内容,说起来很简单,但就是这样简单的线性代数基础可以发展成机器学习的算法,很奇妙。
,