文章目录

  • 一、基础知识-向量的内积
  • 二、Gram matrix介绍
  • 三、Gram matrix的应用-风格迁移

一、基础知识-向量的内积

1.1 向量的内积定义:也叫向量的点乘,对两个向量执行内积运算,就是对这两个向量对应位一一相乘之后求和的操作,内积的结果是一个标量。

1.2 实例:

a和b的内积公式为:

1.3 作用:
内积判断向量a和向量b之间的夹角和方向关系

  • a·b>0 方向基本相同,夹角在0°到90°之间
  • a·b=0 正交,相互垂直
  • a·b<0 方向基本相反,夹角在90°到180°之间

Gram矩阵是两两向量的内积组成,所以Gram矩阵可以反映出该组向量中各个向量之间的某种关系

二、Gram matrix介绍

2.1 定义
n维欧式空间中任意k个向量之间两两的内积所组成的矩阵,称为这k个向量的格拉姆矩阵(Gram matrix),很明显,这是一个对称矩阵。

更加直观的理解:

2.2 计算和特征表示
输入图像的feature map为[ ch, h, w]。我们经过flatten(即是将hw进行平铺成一维向量)和矩阵转置操作,可以变形为[ ch, hw]和[ h*w, ch]的矩阵。再对两个作内积得到Gram Matrices。 (蓝色条表示每个通道flatten后特征点,最后得到 [ch *ch ]的G矩阵)

格拉姆矩阵可以看做feature之间的偏心协方差矩阵(即没有减去均值的协方差矩阵),在feature map中,每个数字都来自于一个特定滤波器在特定位置的卷积,因此每个数字代表一个特征的强度,而Gram计算的实际上是两两特征之间的相关性,哪两个特征是同时出现的,哪两个是此消彼长的等等。

格拉姆矩阵用于度量各个维度自己的特性以及各个维度之间的关系。内积之后得到的多尺度矩阵中,对角线元素提供了不同特征图各自的信息,其余元素提供了不同特征图之间的相关信息。这样一个矩阵,既能体现出有哪些特征,又能体现出不同特征间的紧密程度。

关键点: gram矩阵是计算每个通道 i 的feature map与每个通道 j 的feature map的内积。gram matrix的每个值可以说是代表 I 通道的feature map与 j 通道的feature map的互相关程度。

三、Gram matrix的应用-风格迁移

深度学习中经典的风格迁移大体流程是:

  1. 准备基准图像和风格图像

  2. 使用深层网络分别提取基准图像(加白噪声)和风格图像的特征向量(或者说是特征图feature map)

  3. 分别计算两个图像的特征向量的Gram矩阵,以两个图像的Gram矩阵的差异最小化为优化目标,不断调整基准图像,使风格不断接近目标风格图像

关键的一个是在网络中提取的特征图,一般来说浅层网络提取的是局部的细节纹理特征,深层网络提取的是更抽象的轮廓、大小等信息。这些特征总的结合起来表现出来的感觉就是图像的风格,由这些特征向量计算出来的的Gram矩阵,就可以把图像特征之间隐藏的联系提取出来,也就是各个特征之间的相关性高低。

如果两个图像的特征向量的Gram矩阵的差异较小,就可以认定这两个图像风格是相近的。有了表示风格的Gram Matrix,要度量两个图像风格的差异,只需比较他们Gram Matrix的差异即可。

具体可见另一篇文章《风格迁移论文理解–A Neural Algorithm of Artistic Style》展开的介绍。

Gram matrix(格拉姆矩阵)相关推荐

  1. Gram matrix 格拉姆矩阵

    2019独角兽企业重金招聘Python工程师标准>>> Gram matrix 度量各个维度自己的特性以及各个维度之间的关系. 来自:https://www.zhihu.com/qu ...

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

    gram矩阵是计算每个通道I的feature map与每个通道j的feature map的内积. gram matrix的每个值可以说是代表i通道的feature map与j通道的feature ma ...

  3. 风格迁移与Gram matrix

    参考链接:https://blog.csdn.net/hellocsz/article/details/91486679 参考链接:https://blog.csdn.net/appleyuchi/a ...

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

    目录 Gram矩阵简介 协方差矩阵 Gram矩阵 和 协方差矩阵的关系 Gram Matrix代码 Gram矩阵简介 gram矩阵是计算每个通道 i 的feature map与每个通道 j 的feat ...

  5. IEEE Trans 2008 Gradient Pursuits论文学习

    之前所学习的论文中求解稀疏解的时候一般采用的都是最小二乘方法进行计算,为了降低计算复杂度和减少内存,这篇论文梯度追踪,属于贪婪算法中一种.主要为三种:梯度(gradient).共轭梯度(conjuga ...

  6. Gram矩阵及其实际含义

    1.Gram矩阵的定义 2.意义 格拉姆矩阵可以看做feature之间的偏心协方差矩阵(即没有减去均值的协方差矩阵),在feature map中,每个数字都来自于一个特定滤波器在特定位置的卷积,因此每 ...

  7. python神经结构二层_《python深度学习》笔记---8.3、神经风格迁移

    <python深度学习>笔记---8.3.神经风格迁移 一.总结 一句话总结: 神经风格迁移是指将参考图像的风格应用于目标图像,同时保留目标图像的内容. 1."神经风格迁移是指将 ...

  8. 风格化图像_【技术综述】人脸风格化核心技术与数据集总结

    我的新书<深度学习之人脸图像算法>市了,欢迎大家关注! 言有三新书来袭,业界首次深入全面讲解深度学习人脸图像算法​mp.weixin.qq.com 人脸图像是计算机视觉领域中研究历史最久, ...

  9. 【技术综述】人脸风格化核心技术与数据集总结

    人脸图像是计算机视觉领域中研究历史最久,也是应用最广泛的图像.近几年随着研究方法的进步以及相关数据集的收集,人脸风格化成为了一个非常热门的研究领域和应用方向,本文我们来介绍其中的核心技术和相关资源. ...

  10. 宫崎骏动画里的新垣结衣见过没?简直美呆!

    全世界只有3.14 % 的人关注了 爆炸吧知识 本文经机器之心(ID:almosthuman2014)授权转载 参与:肖清.思 尽管最近 2019 年的图灵奖颁给了计算机图形学.颁给了皮克斯 3D 动 ...

最新文章

  1. 第八周实践项目6 猴子选大王(数组版)
  2. mysqldump导入导出mysql数据库
  3. img disabled可以用什么替代_本特:马内不可替代,菲米是粘合剂,萨拉赫可以用姆巴佩桑乔替代...
  4. Android多点触控MultiTouch浅析
  5. 前端趋势榜:上周最实用和 yyds 的 10 大前端项目 - 211128
  6. 使用heroku进行免费分布式运算.Vs.AWS
  7. 深入了解帆软报表系统的启动过程-总结
  8. RN animated缩放动画
  9. linux系统文件系统个目录介绍,关于linux的文件系统目录详细介绍
  10. 《田野里的自然历史课》首发 科普中华农耕文明
  11. 计算机网络中为什么引入IP地址?
  12. Java测试新手_测试新手的一些经验
  13. C语言 库函数:qsort 详解
  14. 基于java 海康视频监控 jar包运行
  15. 概率论与数理统计常用公式大全
  16. 美团外卖红包,商超生鲜红包,饿了么红包天天领,果蔬抢特价,大额满减券
  17. Mysql学习日记:L13-distinct关键字
  18. 《海上钢琴师》斗琴部分的曲子
  19. 色温(Kelvin)到RGB的转换:算法和样例
  20. 数美科技成为《人工智能从业人员能力要求》等五项人才培养行业标准起草组全权成员单位

热门文章

  1. 第四季-专题13-总线设备驱动模型
  2. Python入门篇-基础数据类型整型(int),字符串(str)和切片(slice)
  3. 51nod 1067 Bash游戏 V2 博弈
  4. React 组件间通讯
  5. Create a virtualbox Based CentOS 6 OpenStack Cloud Image
  6. 大数据解读剩女现象:谁遗忘了她们的爱情?
  7. PHP ECSHOP中 诡异的问题:expects parameter 1 to be double
  8. Android入门学习3
  9. const int * pi/int * const pi的区别
  10. 如何启用Domino 8 的ODS磁盘结构