Hadamard乘积(也称为逐元素乘积、点乘或Schur乘积)是两个矩阵之间的一种操作,它产生一个新的矩阵,新矩阵中的每个元素是原始两个矩阵中对应位置元素的乘积。对于两个形状相同的矩阵 A A A和 B B B,它们的Hadamard乘积 C = A ∘ B C = A \circ B C=A∘B定义为:
C i j = A i j × B i j C_{ij} = A_{ij} \times B_{ij} Cij=Aij×Bij
其中 C i j C_{ij} Cij、 A i j A_{ij} Aij和 B i j B_{ij} Bij分别是矩阵 C C C、 A A A和 B B B在第 i i i行第 j j j列的元素。
特点
- 尺寸一致性:只有当两个矩阵的维度完全相同时,Hadamard乘积才有定义。
- 逐元素操作:Hadamard乘积是逐元素进行的,每个元素的计算相互独立。
- 应用广泛:在神经网络中,Hadamard乘积常用于逐元素的激活函数应用、门控机制(如LSTM和GRU中的遗忘门和输入门)以及其他逐元素操作。
例子
假设有两个2x2矩阵 A A A和 B B B:
A = ( a b c d ) , B = ( w x y z ) A = \begin{pmatrix} a & b \\ c & d \\ \end{pmatrix}, B = \begin{pmatrix} w & x \\ y & z \\ \end{pmatrix} A=(acbd),B=(wyxz)
它们的Hadamard乘积 C C C将是:
C = A ∘ B = ( a w b x c y d z ) C = A \circ B = \begin{pmatrix} aw & bx \\ cy & dz \\ \end{pmatrix} C=A∘B=(awcybxdz)
数学性质
Hadamard乘积具有以下数学性质:
- 交换律: A ∘ B = B ∘ A A \circ B = B \circ A A∘B=B∘A
- 分配律: A ∘ ( B + C ) = A ∘ B + A ∘ C A \circ (B + C) = A \circ B + A \circ C A∘(B+C)=A∘B+A∘C
- 结合律: A ∘ ( B ∘ C ) = ( A ∘ B ) ∘ C A \circ (B \circ C) = (A \circ B) \circ C A∘(B∘C)=(A∘B)∘C
Hadamard乘积是矩阵运算中一种基本而强大的工具,它简单且高效,广泛应用于数组、矩阵处理和深度学习领域。