TensorFlow – 数学基础

在创建TensorFlow中的应用程序之前,最好能先理解TensorFlow所需的数学概念。数学被认为是任何机器学习算法的核心。

线性代数

  • 标量(scalar) 一个单独的数
  • 向量(vector) 一列数,即一维数组
  • 矩阵(matrix) 二维数组
  • 张量(tensor) 多维数组

矩阵加法

如果2个矩阵维数相同,则这2个矩阵可以相加。矩阵相加时,2个矩阵对应位置的元素进行相加。

示例

A = \left[ \begin{matrix} 1 & 2 \\ 3 & 4 \end{matrix} \right]

B = \left[ \begin{matrix} 5 & 6 \\ 7 & 8 \end{matrix} \right]

A + B = \left[ \begin{matrix} 1+5 & 2+6 \\ 3+7 & 4+8 \end{matrix} \right] = \left[ \begin{matrix} 6 & 8 \\ 10 & 12 \end{matrix} \right]

矩阵减法

矩阵减法与矩阵加法类似,2个维数相同的矩阵,对应位置元素进行相减运算。

示例

A = \left[ \begin{matrix} 1 & 2 \\ 3 & 4 \end{matrix} \right]

B = \left[ \begin{matrix} 5 & 6 \\ 7 & 8 \end{matrix} \right]

A – B = \left[ \begin{matrix} 1 – 5 & 2-6 \\ 3-7 & 4-8 \end{matrix} \right] = \left[ \begin{matrix} -4 & -4 \\ -4 & -4 \end{matrix} \right]

矩阵乘法

2个矩阵相乘,跟加减法稍有不同,不是对应元素相乘。

假设矩阵A (形状m x n) 与 B (形状p x q)相乘,必须n = q,即A的列数必须与B的行数相同,得到的结果是C(形状m x q),其中元素的算法如下:

示例

A = \left[ \begin{matrix} 1 & 2 \\ 3 & 4 \\ 5 & 6 \end{matrix} \right]

B = \left[ \begin{matrix} 1 & 2 & 3 \\ 4 & 5 & 6 \end{matrix} \right]

c_{11} = \left[ \begin{matrix} 1 & 2 \end{matrix} \right] \left[ \begin{matrix} 1 \\ 4 \end{matrix} \right] = 1 \times 1 + 2 \times 4 = 9

c_{12} = \left[ \begin{matrix} 1 & 2 \end{matrix} \right] \left[ \begin{matrix} 2 \\ 5 \end{matrix} \right] = 1 \times 2 + 2 \times 5 = 12

c_{13} = \left[ \begin{matrix} 1 & 2 \end{matrix} \right] \left[ \begin{matrix} 3 \\ 6 \end{matrix} \right] = 1 \times 3 + 2 \times 6 = 15

c_{21} = \left[ \begin{matrix} 3 & 4 \end{matrix} \right] \left[ \begin{matrix} 1 \\ 4 \end{matrix} \right] = 3 \times 1 + 4 \times 4 = 19

c_{22} = \left[ \begin{matrix} 3 & 4 \end{matrix} \right] \left[ \begin{matrix} 2 \\ 5 \end{matrix} \right] = 3 \times 2 + 4 \times 5 = 26

c_{23} = \left[ \begin{matrix} 3 & 4 \end{matrix} \right] \left[ \begin{matrix} 3 \\ 6 \end{matrix} \right] = 3 \times 3 + 4 \times 6 = 33

c_{31} = \left[ \begin{matrix} 5 & 6 \end{matrix} \right] \left[ \begin{matrix} 1 \\ 4 \end{matrix} \right] = 5 \times 1 + 6 \times 4 = 29

c_{32} = \left[ \begin{matrix} 5 & 6 \end{matrix} \right] \left[ \begin{matrix} 2 \\ 5 \end{matrix} \right] = 5 \times 2 + 6 \times 5 = 40

c_{33} = \left[ \begin{matrix} 5 & 6 \end{matrix} \right] \left[ \begin{matrix} 3 \\ 6 \end{matrix} \right] = 5 \times 3 + 6 \times 6 = 51

C = AB = \left[ \begin{matrix} c_{11} & c_{12} & c_{13} \\ c_{21} & c_{22} & c_{23} \\ c_{31} & c_{32} & c_{33} \\ \end{matrix} \right] = \left[ \begin{matrix} 9 & 12 & 15 \\ 19 & 26 & 33 \\ 29 & 40 & 51 \\ \end{matrix} \right]

矩阵转置

矩阵转置是指把一个矩阵的列转置为行得到一个新矩阵,矩阵A的转置可以表示为A^T

示例

A = \left[ \begin{matrix} 1 & 2 \\ 3 & 4 \\ 5 & 6 \end{matrix} \right]

A^T = \left[ \begin{matrix} 1 & 3 & 5 \\ 2 & 4 & 6 \\ \end{matrix} \right]

向量点积

向量是一维数组,2个长度相同的向量可以求点积。点积是指2个长度相同的向量,对应元素相乘然后再相加得到的值。

a = [a_1, a_2, a_3, … a_n]

b = [b_1, b_2, b_3, … b_n]

a \bullet b = a_1b_1 + a_2b_2 + a_3b_3 + … + a_nb_n

示例

a = [1, 2, 3, 4, 5]

b = [6, 7, 8, 9, 10]

a与b的点积:

a \bullet b = 1 \times 6 + 2 \times 7 + 3 \times 8 + 4 \times 9 + 5 \times 10 = 130



浙ICP备17015664号联系我们网站地图  
@2019 qikegu.com 版权所有,禁止转载