Hadamard积是指两个矩阵的按元素(element-wise)乘积
,也就是两个矩阵对应位置上的元素相乘
的结果。如果矩阵
A
A
A 和矩阵
B
B
B 都是
m
×
n
m \times n
m×n 的矩阵,那么它们的Hadamard积也是一个
m
×
n
m \times n
m×n 的矩阵
C
C
C,其中
C
C
C 的每个元素
c
i
j
c_{ij}
cij 定义为:
c i j = a i j ⋅ b i j c_{ij} = a_{ij} \cdot b_{ij} cij=aij⋅bij
这里 a i j a_{ij} aij 和 b i j b_{ij} bij 分别是矩阵 A A A 和 B B B 中第 i i i 行第 j j j 列的元素。
需要注意的是,为了执行Hadamard积,两个矩阵必须有相同的维度
。这种运算在图像处理、信号处理、深度学习等众多领域都有广泛的应用。例如,在神经网络中,激活函数之后的张量与特征图之间的逐元素乘法就是一种常见的Hadamard积应用。
假设我们有两个相同大小的矩阵 A A A 和 B B B,它们都是 2 × 2 2 \times 2 2×2 的矩阵:
A = ( 1 2 3 4 ) , B = ( 5 6 7 8 ) A = \begin{pmatrix} 1 & 2 \\ 3 & 4 \end{pmatrix}, \quad B = \begin{pmatrix} 5 & 6 \\ 7 & 8 \end{pmatrix} A=(1324),B=(5768)
那么 A A A 和 B B B 的 Hadamard 积(按元素乘积) C C C 就是:
C = A ⊙ B = ( 1 ∗ 5 2 ∗ 6 3 ∗ 7 4 ∗ 8 ) = ( 5 12 21 32 ) C = A \odot B = \begin{pmatrix} 1*5 & 2*6 \\ 3*7 & 4*8 \end{pmatrix} = \begin{pmatrix} 5 & 12 \\ 21 & 32 \end{pmatrix} C=A⊙B=(1∗53∗72∗64∗8)=(5211232)