什么是哈达玛积?
哈达玛积(Hadamard product),又称逐元素乘积或舒尔积(Schur product),是对两个维度完全相同的矩阵进行逐个元素相乘的运算。它与常规的矩阵乘法不同:不需要把行和列做点积组合,而是直接把相同位置上的两个数值相乘,得到对应位置的结果元素。该运算记作 \(\text{A} \circ \text{B}\),在机器学习、信号处理和图像处理等领域应用十分广泛。
如何使用本计算器
先设置矩阵的行数和列数,然后分别填入矩阵 A 和矩阵 B 的数值。每一行矩阵占一行输入,数字之间用空格或逗号分隔即可。计算器会返回结果矩阵,其中每个元素都等于 \(A_{ij} \times B_{ij}\),同时给出所有结果元素的总和。
公式详解
对于两个 \(m \times n\) 矩阵 A 和 B,哈达玛积 \(C = \text{A} \circ \text{B}\) 是一个 \(m \times n\) 矩阵,定义为 $$\left(\text{A} \circ \text{B}\right)_{ij} = A_{ij} \cdot B_{ij}\qquad 1 \le i \le \text{Rows},\; 1 \le j \le \text{Cols}$$ 两个矩阵必须具有完全相同的形状;这里不存在常规乘法中那种行与列之间的点积运算。
实例演算
设 \(A = [[1, 2], [3, 4]]\),\(B = [[5, 6], [7, 8]]\)。那么 $$\text{A} \circ \text{B} = [[1 \times 5, 2 \times 6], [3 \times 7, 4 \times 8]] = [[5, 12], [21, 32]]$$ 所有元素之和为 \(5 + 12 + 21 + 32 = 70\)。
常见问题
它和普通的矩阵乘法有什么区别? 矩阵乘法是对行和列做点积,要求前一个矩阵的列数与后一个矩阵的行数相等。而哈达玛积只是把对应位置的元素相乘,要求两个矩阵的维度完全一致。
如果两个矩阵的尺寸不一样怎么办? 哈达玛积只对尺寸相同的矩阵有定义。本工具会根据你设置的维度,用 0 来补齐缺失的元素。
它通常用在哪些场景? 常见于神经网络(例如门控机制、Dropout 掩码)、协方差计算,以及逐像素的图像处理操作中。