您的位置:首页 > 文旅 > 美景 > 营销中存在的问题及对策_湖北宜昌疫情最新消息_个人对网络营销的看法_淘宝seo优化是什么

营销中存在的问题及对策_湖北宜昌疫情最新消息_个人对网络营销的看法_淘宝seo优化是什么

2025/5/3 6:04:03 来源:https://blog.csdn.net/qiwsir/article/details/145976646  浏览:    关键词:营销中存在的问题及对策_湖北宜昌疫情最新消息_个人对网络营销的看法_淘宝seo优化是什么
营销中存在的问题及对策_湖北宜昌疫情最新消息_个人对网络营销的看法_淘宝seo优化是什么

本文是对《机器学习数学基础》第2章2.1.5节矩阵乘法内容的补充和扩展。通过本节内容,在原书简要介绍矩阵乘法的基础上,能够更全面、深入理解矩阵乘法的含义。

在2.1.5节中,给出了矩阵乘法最基本的定义,令矩阵 A = ( a i j ) m × r \pmb{A} = (a_{ij})_{m\times r} A=(aij)m×r 和矩阵 B = ( b i j ) r × n \pmb{B}=(b_{ij})_{r\times n} B=(bij)r×n 相乘,定义乘积 A B \pmb{AB} AB ( A B ) i j (\pmb{AB})_{ij} (AB)ij 为:

( A B ) i j = [ a i 1 ⋯ a i r ] [ b 1 j ⋯ b r j ] = a i 1 b 1 j + ⋯ + a 1 r b r j (\pmb{AB})_{ij}=\begin{bmatrix}a_{i1}&\cdots&a_{ir}\end{bmatrix}\begin{bmatrix}b_{1j}\\\cdots\\b_{rj}\end{bmatrix}=a_{i1}b_{1j}+\cdots+a_{1r}b_{rj} (AB)ij=[ai1air] b1jbrj =ai1b1j++a1rbrj

这种定义的方法便于手工计算——手工计算,在计算机流行的现在,并非特别重要。所以,现在更应该深入理解矩阵乘法的数学含义,所以,再拓展如下内容。

1. 以列向量作为计算单元

1.1 定义 A x \pmb{Ax} Ax

以列向量表示矩阵 A = [ a 1 ⋯ a n ] \pmb{A}=\begin{bmatrix}\pmb{a}_1&\cdots&\pmb{a}_n\end{bmatrix} A=[a1an] ,设一维列向量 x = [ x 1 ⋮ x 2 ] \pmb{x}=\begin{bmatrix}x_1\\\vdots\\x_2\end{bmatrix} x= x1x2

矩阵与向量的乘法 A x \pmb{Ax} Ax 定义为 A \pmb{A} A 的列向量 a 1 , ⋯ , a n \pmb{a}_1,\cdots, \pmb{a}_n a1,,an 的线性组合, x 1 , ⋯ , x 2 x_1,\cdots,x_2 x1,,x2 为组合的系数或权重,即:

A x = [ a 1 ⋯ a n ] [ x 1 ⋮ x 2 ] = a 1 x 1 + ⋯ + a n x n \pmb{Ax}=\begin{bmatrix}\pmb{a}_1&\cdots&\pmb{a}_n\end{bmatrix}\begin{bmatrix}x_1\\\vdots\\x_2\end{bmatrix}=\pmb{a}_1x_1+\cdots+\pmb{a}_nx_n Ax=[a1an] x1x2 =a1x1++anxn

按照习惯,把标量写在向量前面(左边):

A x = x 1 a 1 + ⋯ + x n a n (1.1) \pmb{Ax}=x_1\pmb{a}_1+\cdots+x_n\pmb{a}_n \tag{1.1} Ax=x1a1++xnan(1.1)

根据这种定义,比较容易理解线性方程与子空间、线性无关等有关概念。

例1

A x = 0 \pmb{Ax}=0 Ax=0 ,如果只有平凡解,即 x = 0 \pmb{x}=0 x=0 ,根据(1.1)式可知, A \pmb{A} A 的列向量线性无关(关于线性相关和线性无关的概念,请参阅《机器学习数学基础》第1章1.2.3节)。

例2

对于 A x = b \pmb{Ax}=\pmb{b} Ax=b 有解的充要条件,根据(1.1)式可知:

x 1 a 1 + ⋯ + x n a n = b x_1\pmb{a}_1+\cdots+x_n\pmb{a}_n=\pmb{b} x1a1++xnan=b

b \pmb{b} b a 1 , ⋯ , a n \pmb{a}_1,\cdots,\pmb{a}_n a1,,an 的线性组合,所以 b \pmb{b} b 应该属于 A \pmb{A} A 的列空间。

1.2 定义 A B \pmb{AB} AB

利用(1.1)式的理解,可以显示 T ( x ) = A x T(x)=\pmb{Ax} T(x)=Ax 是一个线性变换 [ 2 ] ^{[2]} [2]

设线性变换 T : F p → F n T:\mathbb{F}^p\to\mathbb{F}^n T:FpFn S : F n → F m S:\mathbb{F}^n\to\mathbb{F}^m S:FnFm ,将它们连接在一起,如下图所示:

在这里插入图片描述

其中 x ∈ F p , T ( x ) ∈ F n , S ( T ( x ) ) ∈ F n \pmb{x}\in\mathbb{F}^p, T(\pmb{x})\in\mathbb{F}^n,S(T(\pmb{x}))\in\mathbb{F}^n xFp,T(x)Fn,S(T(x))Fn 。用 S ∘ T S\circ T ST 表示复合线性变换(即符合函数,参阅函数),即:

( S ∘ T ) ( x ) = S ( T ( x ) ) (S\circ T)(\pmb{x})=S(T(\pmb{x})) (ST)(x)=S(T(x))

可以表示为下图:

在这里插入图片描述

设线性变换 T T T 的矩阵为 n × p n\times p n×p 阶矩阵 B B B ,线性变换 S S S 的矩阵为 m × n m\times n m×n 解矩阵 A A A ,则:

S ( T ( x ) ) = A ( B x ) S(T(\pmb{x}))=\pmb{A}(\pmb{Bx}) S(T(x))=A(Bx)

所以,符合线性变换 S ∘ T S\circ T ST 的矩阵由 A \pmb{A} A B \pmb{B} B 来决定。

若定义: P = A B \pmb{P}=\pmb{AB} P=AB ,即矩阵乘法。

B \pmb{B} B 的列向量为 b 1 , ⋯ , b p \pmb{b}_1,\cdots,\pmb{b}_p b1,,bp ,根据(1.1)式定义,可得:

B x = [ b 1 ⋯ b p ] [ x 1 ⋮ x p ] = x 1 b 1 + ⋯ + x p b p \pmb{Bx} = \begin{bmatrix}\pmb{b}_1&\cdots&\pmb{b}_p\end{bmatrix}\begin{bmatrix}x_1\\\vdots\\x_p\end{bmatrix}=x_1\pmb{b}_1+\cdots+x_p\pmb{b}_p Bx=[b1bp] x1xp =x1b1++xpbp

则对于任意 x ∈ F p \pmb{x}\in\mathbb{F}^p xFp ,有:

A ( B x ) = A ( x 1 b 1 + ⋯ + x p b p ) = A ( x 1 b 1 ) + ⋯ + A ( x p b p ) = x 1 ( A b 1 ) + ⋯ + x p ( A b p ) = [ A b 1 ⋯ A b p ] [ x 1 ⋮ x p ] = [ A b 1 ⋯ A b p ] x \begin{split}\pmb{A}(\pmb{Bx})&=\pmb{A}(x_1\pmb{b}_1+\cdots+x_p\pmb{b}_p)\\&=\pmb{A}(x_1\pmb{b}_1)+\cdots+\pmb{A}(x_p\pmb{b}_p)\\&=x_1(\pmb{Ab}_1)+\cdots+x_p(\pmb{Ab}_p)\\&=\begin{bmatrix}\pmb{Ab}_1&\cdots\pmb{Ab}_p\end{bmatrix}\begin{bmatrix}x_1\\\vdots\\x_p\end{bmatrix}\\&=\begin{bmatrix}\pmb{Ab}_1&\cdots\pmb{Ab}_p\end{bmatrix}\pmb{x}\end{split} A(Bx)=A(x1b1++xpbp)=A(x1b1)++A(xpbp)=x1(Ab1)++xp(Abp)=[Ab1Abp] x1xp =[Ab1Abp]x

令上式等于 ( A B ) x (\pmb{AB})\pmb{x} (AB)x ,由于 x \pmb{x} x 是一个任意向量,所以:

A B = [ A b 1 ⋯ A b p ] (1.2) \pmb{AB} = \begin{bmatrix}\pmb{Ab}_1&\cdots\pmb{Ab}_p\end{bmatrix} \tag{1.2} AB=[Ab1Abp](1.2)

所以,有 P x = A ( B x ) \pmb{Px}=\pmb{A}(\pmb{Bx}) Px=A(Bx) 。由此可知, S ∘ T S\circ T ST 的矩阵即为 A B \pmb{AB} AB ,并且说明亦为线性变换。

2. 以行向量作为计算单元

对于(1.2)式,等号两边同时取转置,得:

( A B ) T = [ A b 1 ⋯ A b p ] T = [ ( A b 1 ) T ⋮ ( A b p ) T ] = [ b 1 T A T ⋮ b p T A T ] \begin{split}(\pmb{AB})^T &= \begin{bmatrix}\pmb{Ab}_1&\cdots\pmb{Ab}_p\end{bmatrix}^T\\&=\begin{bmatrix}(\pmb{Ab_1})^T\\\vdots\\(\pmb{Ab}_p)^T\end{bmatrix}\\&=\begin{bmatrix}\pmb{b_1}^T\pmb{A}^T\\\vdots\\\pmb{b}_p^T\pmb{A}^T\end{bmatrix}\end{split} (AB)T=[Ab1Abp]T= (Ab1)T(Abp)T = b1TATbpTAT

又因为: ( A B ) T = B T A T (\pmb{AB})^T=\pmb{B}^T\pmb{A}^T (AB)T=BTAT ,故:

B T A T = [ b 1 T A T ⋮ b p T A T ] \pmb{B}^T\pmb{A}^T=\begin{bmatrix}\pmb{b_1}^T\pmb{A}^T\\\vdots\\\pmb{b}_p^T\pmb{A}^T\end{bmatrix} BTAT= b1TATbpTAT

如果将 B T \pmb{B}^T BT A T \pmb{A}^T AT 分别用 A \pmb{A} A B \pmb{B} B 代替,则可得以行为计算单元的矩阵乘法。

定义 A B \pmb{AB} AB 的第 i i i 行等于 B \pmb{B} B 的行向量的线性组合, r o w i ( A ) row_i(\pmb{A}) rowi(A) 的对应元即组合权重为:

r o w i ( A B ) = r o w i ( A ) B row_i(\pmb{AB})=row_i(\pmb{A})\pmb{B} rowi(AB)=rowi(A)B

或者写作:

A B = [ r o w 1 ( A ) ⋮ r o w m ( A ) ] B = [ r o w 1 ( A ) ⋅ B ⋮ r o w m ( A ) ⋅ B ] \pmb{AB}=\begin{bmatrix}row_1(\pmb{A})\\\vdots\\row_m(\pmb{A})\end{bmatrix}\pmb{B}=\begin{bmatrix}row_1(\pmb{A})\cdot\pmb{B}\\\vdots\\row_m(\pmb{A})\cdot\pmb{B}\end{bmatrix} AB= row1(A)rowm(A) B= row1(A)Browm(A)B

在一般情况下,都是用列向量作为计算单元,用行向量的时候较少,除非特别说明或者某些特别用途。

3. 以行列展开

对于两个矩阵的乘法 A B \pmb{AB} AB ,还可以表示成多个矩阵的和:

A B = [ a 1 ⋯ a n ] [ r o w 1 ( B ) ⋮ r o w n ( B ) ] = a 1 r o w 1 ( B ) + ⋯ + a n r o w n ( B ) \begin{split}\pmb{AB}&=\begin{bmatrix}\pmb{a}_1&\cdots\pmb{a}_n\end{bmatrix}\begin{bmatrix}row_1(\pmb{B})\\\vdots\\row_n(\pmb{B})\end{bmatrix}\\&=\pmb{a}_1row_1(\pmb{B})+\cdots+\pmb{a}_nrow_n(\pmb{B})\end{split} AB=[a1an] row1(B)rown(B) =a1row1(B)++anrown(B)

这种方式的展开计算,在矩阵分解中会有重要应用(参阅《机器学习数学基础》第3章3.5.2节特征分解)。

A \pmb{A} A 是实对称矩阵,则 A = U D U T \pmb{A}=\pmb{UDU}^T A=UDUT ,其中 D \pmb{D} D 为对角矩阵, D = d i a g ( d 1 , ⋯ , d n ) \pmb{D}=diag(d_1,\cdots,d_n) D=diag(d1,,dn) ,有:

A = U D U T = [ u 1 ⋯ u n ] [ d 1 ⋯ 0 0 ⋱ 0 0 ⋯ d n ] [ u 1 T ⋮ u n T ] = [ d 1 u 1 ⋯ d n u n ] [ u 1 T ⋮ u n T ] = d 1 u 1 u 1 T + ⋯ + d n u n u n T \begin{split}\pmb{A}&=\pmb{UDU}^T\\&=\begin{bmatrix}\pmb{u}_1&\cdots&\pmb{u}_n\end{bmatrix}\begin{bmatrix}d_1&\cdots&0\\0&\ddots&0\\0&\cdots&d_n\end{bmatrix}\begin{bmatrix}\pmb{u}_1^T\\\vdots\\\pmb{u}_n^T\end{bmatrix}\\&=\begin{bmatrix}d_1\pmb{u}_1&\cdots&d_n\pmb{u}_n\end{bmatrix}\begin{bmatrix}\pmb{u}_1^T\\\vdots\\\pmb{u}_n^T\end{bmatrix}\\&=d_1\pmb{u}_1\pmb{u}_1^T+\cdots+d_n\pmb{u}_n\pmb{u}_n^T\end{split} A=UDUT=[u1un] d10000dn u1TunT =[d1u1dnun] u1TunT =d1u1u1T++dnununT

此外,还可以分块矩阵为单元,实现矩阵乘法计算,而事实上,上述以行或者列向量作为计算单元,亦可视为分块矩阵。此处不单独演示分块矩阵的计算。

在以上几种对矩阵乘法的理解中,其本质是采用不同的计算单元。这有助于我们将其他有关概念综合起来,从而加深对矩阵乘法的含义理解。

关于矩阵乘法的计算,除了手工计算之外,在《机器学习数学基础》中有详细的用Python实现计算的各种方法,也可以参阅[3]了解有关计算实现函数。

参考文献

[1]. https://ccjou.wordpress.com/2009/03/11/矩陣乘積的現代觀點/

[2]. https://ccjou.wordpress.com/2015/07/28/基本矩陣運算的定義/

[3]. 跟老齐学Python:数据分析. 齐伟. 北京:电子工业出版社

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com