吳恩達機器學習——第3章 線性代數回顧

概述

本文介紹在機器學習過程中最基礎的線性代數知識。

矩陣

定義

A=[123456789]A = \left[\begin{matrix} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \end{matrix}\right]
這就是一個矩陣,矩陣有3行3列,一般這樣描述矩陣:mnm行 * n列
下面是矩陣的一些表示方法及含義:

  • 一般採用大寫字母表示矩陣。
  • R42R^{4*2}代表的是所有 424行*2列 的矩陣。
  • A2,1A_{2,1}代表第二行第一列的元素,在上面的矩陣中指的是數字4。數學中下標從1開始,而機器學習應用中下標從0開始。

向量

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

向量使用小寫字母表示,如上所示y是一個4維的向量,yiy_i表示第i個元素。

加法

矩陣相加有個前提,維度必須一致,原理是對應位置的數字相加即可,如下所示:
[abcd]+[efgh]=[a+eb+fc+gd+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]

乘法

矩陣*實數

矩陣與實數相乘,原理是矩陣中的每個元素與實數相乘即可,如下所示:
[abcd]x=[axbxcxdx]\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]
除法也是類似的,原理是矩陣中的每個元素與實數相除即可,如下所示:
[abcd]/x=[a/xb/xc/xd/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]

矩陣*矩陣

先看一下矩陣與向量的乘法,前提是矩陣的列數與向量的行數必須一致
假設矩陣是mnm * n,向量是n行,則計算過程爲:

  • 矩陣第一行的每個元素與向量的每個元素相乘求和作爲結果矩陣的第一行的數據。
  • 矩陣第二行的每個元素與向量的每個元素相乘求和作爲結果矩陣的第二行的數據。
  • 依次處理剩餘的行,得到一個m行的矩陣。

[abcdef][xy]=[ax+bycx+dyex+fy]\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=mnA=m*n B=nxB=n*x,則結果是C=mxC = m*x的矩陣,計算過程如下:

  • 把B看成是x個向量組成的,先用A乘以B的第一列,作爲結果的第一列。
  • 然後用A乘以B的第二列,作爲結果的第二行。
  • 依次類推,最終得到一個mxm*x的矩陣。

[abcdef][xjyh]=[ax+byaj+bhcx+dycj+dhex+fyej+fh]\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.25xh(x)=-40+0.25x,現在有4個房子,大小分別爲110,120,300,410110,120,300,410,求這4個房子的價格,就可以使用矩陣乘法實現:
[1110112013001410][400.25]=[40+1100.2540+1200.2540+3000.2540+4100.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.19xh(x)=-30+0.19x,則使用矩陣表示:
[1110112013001410][40300.250.19]=[40+1100.2530+1100.1940+1200.2530+1200.1940+3000.2530+3000.1940+4100.2530+4100.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]

特性

矩陣乘法不滿足交換律,即ABBAA*B \not= B*A
滿足結合律:即ABC=A(BC)A*B*C=A*(B*C)
任何實數乘以1都不變,1稱爲單位數字,矩陣中也有單位矩陣:I=[100010001]I=\left[\begin{matrix}1&0&0\\0&1&0\\0&0&1\end{matrix}\right]
單位矩陣的對角線爲1,其餘位置都是0,單位矩陣滿足條件AI1=I2A=AA*I_1=I_2*A=A
需要注意的是此處的兩個I都是單位矩陣,但是有所不同,假設A爲mnm*n的矩陣,如果AI1=AA*I_1=AI1I_1必須是nnn*n的矩陣;如果使I2A=AI_2*A=AI2I_2必須是mmm*m的矩陣。

逆運算

除了0之外,實數都存在一個倒數,兩者乘積爲1,例如3(31)=13*(3^{-1})=1,大部分矩陣也存在這樣的逆矩陣使AA1=IA*A^{-1}=I,I是單位矩陣。
不存在逆矩陣的矩陣稱之爲奇異矩陣、退化矩陣。

轉置

矩陣的轉置就是把行列互換,A的轉置使用ATA^T表示。
A=[abcdef]A=\left[\begin{matrix}a&b&c\\d&e&f\end{matrix}\right]
AT=[adbecf]A^T=\left[\begin{matrix}a&d\\b&e\\c&f\end{matrix}\right]
滿足Ai,j=Aj,iTA_{i,j}=A^T_{j,i},比如A1,2=bA2,1T=bA_{1,2}=b,A^T_{2,1}=b

至此爲止,線性代數相關知識介紹完畢,感謝吳恩達老師。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章