1. 定义
把矩阵 A 的各行依次变成各列,得到的矩阵称为 A 的转置矩阵,记作 AT。
若 A 是 m×n 矩阵,则 AT 是 n×m 矩阵,并且
(AT)ij=aji.
例如
A=(102−134)⟹AT=1230−14.
行向量与列向量也通过转置互相转换:
1−20T=(1,−2,0).
2. 基本性质
在矩阵形状允许的前提下:
(AT)T=A,
(A+B)T=AT+BT,(A−B)T=AT−BT,
(kA)T=kAT.
3. 乘积转置:顺序要颠倒
(AB)T=BTAT.
这条性质最容易写错。可以记成:转置一个乘积,不只给每项加 T,还要把因子的顺序倒过来。
进一步地,
(A1A2⋯Am)T=AmT⋯A2TA1T,
以及
(Ak)T=(AT)k.
4. 对称矩阵
若方阵 A 满足
AT=A,
则称 A 为对称矩阵。等价地,aij=aji,即主对角线两侧对应元素相等。
常用结论:
- 同阶对称矩阵的和、差仍为对称矩阵;
- kA 与 Am 仍为对称矩阵;
- 若 A,B 都对称,则 AB 对称的充要条件是 AB=BA;
- 对任意矩阵 A,ATA 与 AAT 都是对称矩阵。
最后一条可直接验证:
(ATA)T=AT(AT)T=ATA.
5. 反对称矩阵
若方阵 A 满足
AT=−A,
则称 A 为反对称矩阵。等价地,aij=−aji。
令 i=j,可得 aii=−aii,所以实数域上反对称矩阵的主对角线元素必为 0。
常用结论:
- 同阶反对称矩阵的和、差仍反对称;
- kA 仍反对称;
- 若 A 反对称,则 A2r 对称,A2r+1 反对称。
因为
(Ak)T=(AT)k=(−A)k=(−1)kAk.
6. Python 与大模型计算中的对应
import numpy as np
A = np.array([[1., 2., 3.], [0., -1., 4.]])
AT = A.T
# 检查对称性;浮点计算不要直接使用 ==
S = AT @ A
print(np.allclose(S, S.T))
PyTorch 中,二维矩阵可以写 A.T;含 batch 维度的张量推荐写 A.mT 或 A.transpose(-2, -1),只交换最后两个矩阵维度。
在大模型中,转置经常出现在批量矩阵乘法、注意力分数 QKT、协方差/Gram 矩阵 XTX 中。需要始终同时检查:维度、乘法顺序、转置的是哪两个轴。