【小概念】格拉姆矩阵(gram matrix)

本文介绍了Gram矩阵的概念及其在特征映射中的应用。Gram矩阵通过计算不同通道的特征映射之间的内积来衡量它们之间的互相关性。

gram矩阵是计算每个通道I的feature map与每个通道j的feature map的内积。

gram matrix的每个值可以说是代表i通道的feature map与j通道的feature map的互相关程度。


### 定义 格拉姆矩阵Gram matrix)是一个用于度量各个维度自己的特性以及各个维度之间关系的矩阵。其元素 \(g_{ij}=\sum_{k = 1}^{n}x_{ki}x_{kj}\),其中 \(i = 1,2,\cdots,p\),\(j = 1,2,\cdots,p\),即每一个元素都是矩阵 \(X\) 中两个向量的内积 [^3]。格拉姆矩阵可以看做 feature 之间的偏心协方差矩阵(即没有减去均值的协方差矩阵) [^4]。 ### 性质 - **对称性**:由于 \(g_{ij}=\sum_{k = 1}^{n}x_{ki}x_{kj}\),\(g_{ji}=\sum_{k = 1}^{n}x_{kj}x_{ki}\),所以 \(g_{ij}=g_{ji}\),即格拉姆矩阵是对称矩阵。 - **半正定性**:对于任意非零向量 \(c\),有 \(c^T G c=\sum_{i = 1}^{p}\sum_{j = 1}^{p}c_{i}g_{ij}c_{j}=\sum_{i = 1}^{p}\sum_{j = 1}^{p}c_{i}(\sum_{k = 1}^{n}x_{ki}x_{kj})c_{j}=\sum_{k = 1}^{n}(\sum_{i = 1}^{p}c_{i}x_{ki})^2\geq0\),所以格拉姆矩阵是半正定的。 ### 应用 - **特征关系度量**:在特征图中,每个数字代表一个特征的强度,格拉姆矩阵计算的实际上是两两特征之间的相关性,能体现出有哪些特征以及不同特征间的紧密程度 [^1][^4]。 - **风格迁移**:通过使用格拉姆矩阵,可高效利用不同节点的输出信息,将其便捷地插入到成熟的神经网络框架中,实现特征向量的格拉姆矩阵运算。在浅层的神经网络中,浅层网络主要提取全局的风格特征,此时对于浅层特征使用格拉姆矩阵,可以描述浅层特征相互之间、空间性的相互关系,构建出一个可用于后续网络的特征空间(纹理信息) [^2]。 - **矩阵运算**:在 MLlib 中,IndexedRowMatrix 可通过 `computeGramianMatrix` 方法计算格拉姆矩阵,还可进行奇异值分解、矩阵乘法等运算 [^5]。 ### 代码示例 以下是使用 Python 的 `numpy` 库计算格拉姆矩阵的示例代码: ```python import numpy as np # 示例数据矩阵 X X = np.random.rand(5, 3) # 5 个样本,3 个特征 # 计算格拉姆矩阵 G = np.dot(X.T, X) print("格拉姆矩阵:") print(G) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值