Gram矩阵+Gram矩阵和协方差矩阵的关系

这篇具有很好参考价值的文章主要介绍了Gram矩阵+Gram矩阵和协方差矩阵的关系。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Gram矩阵简介

gram矩阵是计算每个通道 i 的feature map与每个通道 j 的feature map 的内积
gram matrix的每个值可以说是代表 i 通道的feature map和 j 通道的 feature map的互相关程度。
参考博客

G = A T A = [ a 1 T a 2 T ⋮ a n T ] [ a 1 a 2 ⋯ a n ] = [ a 1 T a 1 a 1 T a 2 ⋯ a 1 T a n a 2 T a 1 a 2 T a 2 ⋯ a 2 T a n a n T a 1 a n T a 2 ⋯ a n T a n ] G=A^{T} A=\left[\begin{array}{c} \mathbf{a}_{1}^{T} \\ \mathbf{a}_{2}^{T} \\ \vdots \\ \mathbf{a}_{n}^{T} \end{array}\right]\left[\begin{array}{llll} \mathbf{a}_{1} & \mathbf{a}_{2} & \cdots & \mathbf{a}_{n} \end{array}\right]=\left[\begin{array}{cccc} \mathbf{a}_{1}^{T} \mathbf{a}_{1} & \mathbf{a}_{1}^{T} \mathbf{a}_{2} & \cdots & \mathbf{a}_{1}^{T} \mathbf{a}_{n} \\ \mathbf{a}_{2}^{T} \mathbf{a}_{1} & \mathbf{a}_{2}^{T} \mathbf{a}_{2} & \cdots & \mathbf{a}_{2}^{T} \mathbf{a}_{n} \\ & & & \\ \mathbf{a}_{n}^{T} \mathbf{a}_{1} & \mathbf{a}_{n}^{T} \mathbf{a}_{2} & \cdots & \mathbf{a}_{n}^{T} \mathbf{a}_{n} \end{array}\right] G=ATA=a1Ta2TanT[a1a2an]=a1Ta1a2Ta1anTa1a1Ta2a2Ta2anTa2a1Tana2TananTan
上面的 a i \mathbf{a}_{i} ai均为列向量, i = 1 , 2... n i=1,2...n i=1,2...n

对于上面的矩阵,就是一个矩阵自己的转置乘以自己。

协方差矩阵

建议先看懂这一篇:一文读懂 协方差矩阵
协方差矩阵的求解步骤是:
1.对于 X n × d X_{n\times d} Xn×d ,先求每一列的均值
2.然后对应列减去此列的均值,得矩阵 C n × d C_{n\times d} Cn×d
3. C O V d × d = 1 n − 1 C n × d T C n × d = 1 n − 1 ( C T ) d × n C n × d COV_{d\times d}=\frac{1}{n-1}C_{n\times d}^{T}C_{n\times d}=\frac{1}{n-1}(C^{T})_{d\times n}C_{n\times d} COVd×d=n11Cn×dTCn×d=n11(CT)d×nCn×d
也就是说协方差矩阵是先求均值,然后减去均值(作了一个中心化处理,白化),再求协方差矩阵(除以 1 n − 1 \frac{1}{n-1} n11,即进行了标准化)

Gram矩阵 和 协方差矩阵的关系

  • Gram矩阵和协方差矩阵的差别在于,Gram矩阵没有进行白化,也就是没有减去均值,而直接使用两个向量做内积。
  • Gram矩阵和相关系数矩阵的差别在于,Gram矩阵既没有白化,也没有标准化(也就是除以两个向量的标准差)
  • Gram Matrix实际上可以看做feature之间的偏心协方差矩阵(即没有减去均值的协方差矩阵),在feature map中,每一个数字都来自于一个特定滤波器在特定位置的卷积,因此每个数字就代表一个特征的强度,而Gram计算的实际上是两两特征之间的相关性,哪两个特征是同时出现的,哪两个是此消彼长的等等,同时,Gram的对角线元素,还体现了每个特征在图像中出现的量,因此,Gram有助于把握整个图像的大体风格。有了表示风格的Gram Matrix,要度量两个图像风格的差异,只需比较他们Gram Matrix的差异即可。

这样,Gram所表达的意义和协方差矩阵相差不大,只是没有白化,标准化处理,显得比较粗糙。两个向量的协方差表示两个向量之间的相似程度,协方差越大越相似。对角线的元素值越大,表示其所代表的向量或者说特征越重要。

参考博客

参考博客

Gram Matrix详细解读

Gram Matrix代码

# Gram matrix格拉姆矩阵,是矩阵的内积运算,
# 在运算过后输入到此矩阵的特征图中的大的数字会变得更大,
# 这就相当于图片中的风格被放大了,放大的风格再参与损失计算,
# 能够对最后的合成图片产生更大的影响

class Gram_matrix(nn.Module):
    def forward(self, input):
        batch, channel, height, weight = input.size()
        M = input.view(batch * channel, height * weight)
        gram = torch.mm(M, M.t())
        return gram.div(batch * channel * height * weight)

# 代码来源: 深度学习之PyTorch实战计算机视觉  Chapter8

代码过程解释如下:
gram matrix,深度学习,矩阵,线性代数,算法
如上图所示:每个batch有3张图片,每张图片经过cnn后得到feature map的channel=6,把每个channel的图片给展平成一个向量,则一共有batch*channel个向量,即得到矩阵 M b ∗ c , h ∗ w M_{b*c, h*w} Mbc,hw,矩阵M中的每一行就表示一个特征图展成的特征向量,每一列就代表一个feature map的总的像素个数.

torch.mm(M, M.t())的过程如下:
gram matrix,深度学习,矩阵,线性代数,算法

上面的是 M ∗ M T M*M^{T} MMT,而协方差矩阵中是 1 n − 1 ( C T ) d × n C n × d \frac{1}{n-1}(C^{T})_{d\times n}C_{n\times d} n11(CT)d×nCn×d,其实是一样的:因为M的每一行表示的是feature,即有b*c个feature variable. 而 ( C T ) d × n (C^{T})_{d\times n} (CT)d×n的每一行也表示feature,即 ( C T ) d × n (C^{T})_{d\times n} (CT)d×n有d个feature variable

也就是说:其实这里的M是对应着一文读懂协方差矩阵中的方法2。

看到这里,再去理解:

Gram Matrix实际上可以看做是feature之间的偏心协方差矩阵(即没有减去均值的协方差矩阵), 在feature map中,每一个数字都来自于一个特定卷积核在特定位置的卷积,因此feature map 中的每个数字就代表此特征(一个channel的feature map展平后就叫一个特征)在此位置的强度,而Gram计算的实际上是两两fature之间的相关性,哪两个feature是同时出现的,哪两个是此消彼长的。同时,Gram Matrix的对角线元素体现了每个特征在图像中出现的量, 对角线的元素的值越大,表示其所代表的向量或者说特征越重要。因此Gram矩阵有助于把握整个图像的大体风格。
有了表示风格的Gram Matrix, 要度量两个图像风格的差异,只需比较他们的Gram Matrix的差异即可。

Gram Matrix的对角线元素提供了不同特征图(a1,a2 … ,an)各自的信息,其余元素提供了不同特征图之间的相关信息。

于是,在一个Gram矩阵中,既能体现出有哪些特征,又能体现出不同特征间的紧密程度。论文中作者把这个定义为风格。

Gram矩阵被用于表征图像的风格。在图像修复问题中,很常用的一项损失叫做风格损失(style loss),风格损失正是基于预测结果和真值之间的Gram矩阵的差异构建的。
参考博客文章来源地址https://www.toymoban.com/news/detail-685541.html

到了这里,关于Gram矩阵+Gram矩阵和协方差矩阵的关系的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【概率论理论】协方差,协方差矩阵理论(机器学习)

      在许多算法中需要求出两个分量间相互关系的信息。协方差就是描述这种相互关联程度的一个特征数。   设 ( X , Y ) (X,Y) ( X , Y ) 是一个二维随机变量,若 E [ ( X − E ( X ) ) ( Y − E ( Y ) ) ] E[(X-E(X))(Y-E(Y))] E [ ( X − E ( X ) ) ( Y − E ( Y ) ) ] 存在,则称此数学期望为 X X X 与

    2024年02月14日
    浏览(49)
  • 协方差矩阵在torch和numpy中的比较,自行实现torch协方差矩阵

    数学中(教科书、大学课堂、数学相关的科普视频),一个矩阵的向量往往是竖着的, 一列作为一个vector ,这一点numpy库也是这样默认的。 但是在机器学习以torch框架为例,一个有意义的向量或者说embedding 是横着的 。 因为numpy库默认是一列是一个向量而torch等机器学习框架

    2023年04月08日
    浏览(38)
  • 协方差矩阵

    首先先了解方差与协方差: 协方差: (1)针对 一维样本集合 时(y i =x i ),求出的协方差其实就是方差,既方差是协方差的一种特殊情况。协方差意义和方差一样,都是 反应集合中各元素离散程度 。 (2)针对 二维样本集合 时,求出的协方差反映的就是 两个维度之间的相

    2024年02月10日
    浏览(65)
  • 因子模型:协方差矩阵

    本文是Quantitative Methods and Analysis: Pairs Trading此书的读书笔记。 因子协方差矩阵 (factor covariance matrix)在计算风险的时候很重要。如果一个模型有个因子,那么协方差矩阵的大小就是。对角线元素是每个因子的方差,非对角线元素是协方差,这些协方差有可能不为零。 协方差

    2024年02月04日
    浏览(86)
  • 协方差矩阵的研究

    (1)协方差矩阵的定义、计算过程。         协方差(Covariance):在概率论和统计学中用于衡量两个变量的总体误差。协方差在某种意义上给出了两个变量线性相关性的强度以及这些变量的尺度。而方差是协方差的一种特殊情况,即当两个变量是相同的情况。协方差矩阵

    2024年02月13日
    浏览(37)
  • 协方差矩阵到底有什么用?

    我们知道,线性代数,可以完成空间上的线性变换——旋转,缩放。对于协方差,我们隐约可以想到,它能解释一个随机变量,它在各个维度的变化程度。但是,这种认识其实还是处于比较浅层次的。数学嘛,总要落实到公式上,才算认识比较深刻。 我认为,协方差一个经典

    2024年02月16日
    浏览(45)
  • 基于 Matlab 的方差-协方差矩阵可视化表示(椭圆、椭球)

    因为在学习模糊度固定的时候涉及了『搜索椭球』这一概念,很想知道是如何用椭球来表示搜索空间的。出于好奇,在查阅了一些相关文献,终于解决了笔者的疑惑,此篇博文就简要记录一下如何根据协方差矩阵来绘制椭球。 下面是得到的一些结论: 对协方差矩阵进行奇异

    2024年02月06日
    浏览(71)
  • 阿白数模笔记之协方差矩阵与相关矩阵

    目录 前言 一、方差 二、协方差矩阵 ①协方差 ②自协方差矩阵 互协方差矩阵​编辑 ③互协方差矩阵 Ⅰ、数学定义 Ⅱ、MATLAB运算 三、相关矩阵 ①person相关系数 ②自相关矩阵 ③互相关矩阵 Ⅰ、数学定义 Ⅱ、matlab运算         作为数模小白,前天在学习FA算法时看到协方差

    2024年02月11日
    浏览(44)
  • matlab 计算点云协方差矩阵

    本文由CSDN点云侠原创,原文链接。如

    2024年02月10日
    浏览(39)
  • 概率论之 多维随机变量的期望,协方差矩阵

    上一次写了一维随机变量的期望,方差,协方差。本次来记录多维随机变量的期望和协方差矩阵。这一块内容由浅入深,因此会有更新。 假设系统状态有多个分量 x 1 , x 2 , … , x n x_1,x_2,dots,x_n x 1 ​ , x 2 ​ , … , x n ​ ,则将其表示为向量的形式 X = ( x 1 , x 2 , … , x n ) T X=

    2024年02月04日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包