吴恩达机器学习——第3章 线性代数回顾

概述

本文介绍在机器学习过程中最基础的线性代数知识。

矩阵

定义

A = [ 1 2 3 4 5 6 7 8 9 ] A = \left[\begin{matrix} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \end{matrix}\right]
这就是一个矩阵,矩阵有3行3列,一般这样描述矩阵: m n m行 * n列
下面是矩阵的一些表示方法及含义:

  • 一般采用大写字母表示矩阵。
  • R 4 2 R^{4*2} 代表的是所有 4 2 4行*2列 的矩阵。
  • A 2 , 1 A_{2,1} 代表第二行第一列的元素,在上面的矩阵中指的是数字4。数学中下标从1开始,而机器学习应用中下标从0开始。

向量

向量是只有一列的矩阵,例如 y = [ 1 2 3 4 ] y = \left[\begin{matrix}1\\2\\3\\4\end{matrix}\right] ,就是一个向量。

向量使用小写字母表示,如上所示y是一个4维的向量, y i y_i 表示第i个元素。

加法

矩阵相加有个前提,维度必须一致,原理是对应位置的数字相加即可,如下所示:
[ a b c d ] + [ e f g h ] = [ a + e b + f c + g d + h ] \left[\begin{matrix}a & b \\ c & d\end{matrix}\right] + \left[\begin{matrix}e & f \\ g & h \end{matrix}\right] = \left[\begin{matrix} a+e & b+f\\ c+g & d+h\end{matrix}\right]

乘法

矩阵*实数

矩阵与实数相乘,原理是矩阵中的每个元素与实数相乘即可,如下所示:
[ a b c d ] x = [ a x b x c x d x ] \left[\begin{matrix}a & b \\ c & d\end{matrix}\right] * x = \left[\begin{matrix}a*x & b*x \\ c*x & d*x\end{matrix}\right]
除法也是类似的,原理是矩阵中的每个元素与实数相除即可,如下所示:
[ a b c d ] / x = [ a / x b / x c / x d / x ] \left[\begin{matrix}a & b \\ c & d\end{matrix}\right] / x = \left[\begin{matrix}a/x & b/x \\ c/x & d/x\end{matrix}\right]

矩阵*矩阵

先看一下矩阵与向量的乘法,前提是矩阵的列数与向量的行数必须一致
假设矩阵是 m n m * n ,向量是n行,则计算过程为:

  • 矩阵第一行的每个元素与向量的每个元素相乘求和作为结果矩阵的第一行的数据。
  • 矩阵第二行的每个元素与向量的每个元素相乘求和作为结果矩阵的第二行的数据。
  • 依次处理剩余的行,得到一个m行的矩阵。

[ a b c d e f ] [ x y ] = [ a x + b y c x + d y e x + f y ] \left[\begin{matrix}a & b \\ c & d \\ e & f\end{matrix}\right] *\left[\begin{matrix}x \\ y\end{matrix}\right] = \left[\begin{matrix}a*x+b*y \\ c*x+d*y\\e*x+f*y\end{matrix}\right]

矩阵与矩阵的乘法,前提是第一个矩阵的列数与第二个矩阵的行数必须一致
假设两个矩阵分别是 A = m n A=m*n B = n x B=n*x ,则结果是 C = m x C = m*x 的矩阵,计算过程如下:

  • 把B看成是x个向量组成的,先用A乘以B的第一列,作为结果的第一列。
  • 然后用A乘以B的第二列,作为结果的第二行。
  • 依次类推,最终得到一个 m x m*x 的矩阵。

[ a b c d e f ] [ x j y h ] = [ a x + b y a j + b h c x + d y c j + d h e x + f y e j + f h ] \left[\begin{matrix}a & b \\ c & d \\ e & f\end{matrix}\right] *\left[\begin{matrix}x & j\\ y & h\end{matrix}\right] = \left[\begin{matrix}a*x+b*y & a*j+b*h \\ c*x+d*y&c*j+d*h\\e*x+f*y&e*j+f*h\end{matrix}\right]

应用

针对于矩阵乘法的计算原来,可以把它应用到线性回归上,比如根据房子大小求房子价格的评估函数为 h ( x ) = 40 + 0.25 x h(x)=-40+0.25x ,现在有4个房子,大小分别为 110 , 120 , 300 , 410 110,120,300,410 ,求这4个房子的价格,就可以使用矩阵乘法实现:
[ 1 110 1 120 1 300 1 410 ] [ 40 0.25 ] = [ 40 + 110 0.25 40 + 120 0.25 40 + 300 0.25 40 + 410 0.25 ] \left[\begin{matrix}1&110\\1&120\\1&300\\1&410\end{matrix}\right] * \left[\begin{matrix}-40\\0.25\end{matrix}\right] = \left[\begin{matrix}-40+110*0.25\\-40+120*0.25\\-40+300*0.25\\-40+410*0.25\end{matrix}\right]

如果有还有一个评估函数是 h ( x ) = 30 + 0.19 x h(x)=-30+0.19x ,则使用矩阵表示:
[ 1 110 1 120 1 300 1 410 ] [ 40 30 0.25 0.19 ] = [ 40 + 110 0.25 30 + 110 0.19 40 + 120 0.25 30 + 120 0.19 40 + 300 0.25 30 + 300 0.19 40 + 410 0.25 30 + 410 0.19 ] \left[\begin{matrix}1&110\\1&120\\1&300\\1&410\end{matrix}\right] * \left[\begin{matrix}-40&-30\\0.25&0.19\end{matrix}\right] = \left[\begin{matrix}-40+110*0.25&-30+110*0.19\\-40+120*0.25&-30+120*0.19\\-40+300*0.25&-30+300*0.19\\-40+410*0.25&-30+410*0.19\end{matrix}\right]

特性

矩阵乘法不满足交换律,即 A B B A A*B \not= B*A
满足结合律:即 A B C = A ( B C ) A*B*C=A*(B*C)
任何实数乘以1都不变,1称为单位数字,矩阵中也有单位矩阵: I = [ 1 0 0 0 1 0 0 0 1 ] I=\left[\begin{matrix}1&0&0\\0&1&0\\0&0&1\end{matrix}\right]
单位矩阵的对角线为1,其余位置都是0,单位矩阵满足条件 A I 1 = I 2 A = A A*I_1=I_2*A=A
需要注意的是此处的两个I都是单位矩阵,但是有所不同,假设A为 m n m*n 的矩阵,如果 A I 1 = A A*I_1=A I 1 I_1 必须是 n n n*n 的矩阵;如果使 I 2 A = A I_2*A=A I 2 I_2 必须是 m m m*m 的矩阵。

逆运算

除了0之外,实数都存在一个倒数,两者乘积为1,例如 3 ( 3 1 ) = 1 3*(3^{-1})=1 ,大部分矩阵也存在这样的逆矩阵使 A A 1 = I A*A^{-1}=I ,I是单位矩阵。
不存在逆矩阵的矩阵称之为奇异矩阵、退化矩阵。

转置

矩阵的转置就是把行列互换,A的转置使用 A T A^T 表示。
A = [ a b c d e f ] A=\left[\begin{matrix}a&b&c\\d&e&f\end{matrix}\right]
A T = [ a d b e c f ] A^T=\left[\begin{matrix}a&d\\b&e\\c&f\end{matrix}\right]
满足 A i , j = A j , i T A_{i,j}=A^T_{j,i} ,比如 A 1 , 2 = b A 2 , 1 T = b A_{1,2}=b,A^T_{2,1}=b

至此为止,线性代数相关知识介绍完毕,感谢吴恩达老师。

发布了48 篇原创文章 · 获赞 34 · 访问量 19万+

猜你喜欢

转载自blog.csdn.net/u013252773/article/details/99936759
今日推荐