矩阵的乘积
矩阵相乘的理解
矩阵是线性空间中的线性变换的一个描述。在一个线性空间中,只要我们选定一组基,那么对于任何一个线性变换,都能够用一个确定的矩阵来加以描述
左乘矩阵是进行行操作,右乘矩阵是进行列操作。
C=A×B中的B的列向量可以看作是以A的列向量为基的子空间坐标。
Hadamard哈达玛积(矩阵点乘)(Hadamard Product)
哈达玛积就是两个矩阵对应位置的元素相乘,布局不变。俗称矩阵点乘,符号是空心圆 ∘,两个矩阵的形状必须一样。
矩阵内积 (Iner Product of Matrices)
符号:⟨ . , . ⟩
目的:度量长度。
定义:列向量a与行向量b的内积是指:组成a的第一个元素与组成b的第一个元素的乘积,依次,m个这样的乘积的加和。例如,
<a,b>=a1b1+a2b2
矩阵A与矩阵B的内积是指:组成A的第一个向量与组成B的第一个向量的内积,依次,m个这样的内积的加和。
<A,B>=i=1∑nj=1∑naij∗bij
克罗内克积(Kronecker Product )
符号:⊗
LaTex: ⊗
定义:克罗内克积是两个任意大小的矩阵间的运算,它是张量积的特殊形式。给定A和B,则A和B的克罗内克积是一个在空间Rmp×nq的分块矩阵:
A⊗B=a11B⋮am1B⋯⋱⋯a1nB⋮amnB
矩阵求导
实值函数相对于实向量的梯度
相对于n×1向量x的梯度算子记作∇x,定义为:
∇x=[∂x1∂,∂x2∂,…,∂xn∂]T=∂x∂
因此,n×1实向量x为变元的实标量函数f(x)相对于x的梯度为n×1的列向量,定义为:
∇xf(x)=[∂x1∂f(x),∂x2∂f(x),…,∂xn∂f(x)]T=∂x∂f(x)
梯度方向的负方向成为变元x的梯度流(gradient flow),记为:
x˙=−∇xf(x)
从梯度的定义式可以看出:
- 一个以向量为变元的变量函数的梯度为一向量。
- 梯度的每个分量给出了变量函数在该分量方向上的变化率
梯度向量最重要的性质之一是,它指出了当变元增大时函数ff的最大增大率。相反,梯度的负值(负梯度)指出了当变元增大时函数ff的最大减小率。根据这样一种性质,即可设计出求函数极小值的迭代算法。
类似地,实值函数f(x)相对于1×n行向量xT的梯度为1×n行向量,定义为:
∇xTf(x)=[∂x1∂f(x),∂x2∂f(x),…,∂xn∂f(x)]=∂xT∂f(x)
m维行向量函数f(x)=[f1(x),…,fm(x)],相对于n维实向量x的梯度为n×m矩阵定义为: