专栏首页鸿的学习笔记Understanding Convolution in Deep Learning(四)

Understanding Convolution in Deep Learning(四)

Frequency filtering and convolution

我们将在下面看到为何卷积内核会被称为过滤器以及卷积操作通常被描述为过滤操作的原因。

Images by Fisher & Koryllos (1998).

如果我们使用傅里叶变换来变换原始图像,然后将其乘以在傅立叶域中由零填充的圆(zeros =黑色),则滤除了所有高频值(由于是零填充的,它们将被设置为零值)。注意,滤波的图像仍然具有相同的条纹图案,但是其质量变得更糟糕了 - 这就是jpeg压缩工作原理(使用不同但相似的变换),我们变换图像,仅仅保持某些频率便变换回空间图像域; 在该示例中,压缩比将是黑色区域的大小比圆的大小。

如果我们现在想象这里的圆是一个卷积核,那么我们就有了一个完全成熟的卷积 - 就像卷积网络一样。还有许多技巧来加速和稳定具有傅里叶变换的卷积的计算,但是这里是关于如何完成的基本原理。现在我们已经建立了卷积定理和傅里叶变换的意义,我们现在可以将这种理解应用到科学中的不同领域,并增强我们对深层学习卷积的解释。

Insights from fluid mechanics

您可以通过用外力(使用勺子混合)移动流体来混合两种流体(牛奶和咖啡) - 这被称为对流,通常非常快。但你也可以等待,这两种流体会自己混合(如果它在化学上可能的话) - 这被称为扩散,并且通常是一个非常慢的对流。想象一个水族箱,被一个薄的,可移动的障碍分成两个水族箱的一侧充满盐水,另一侧用淡水。如果你现在去除薄的屏障,两种液体将混合在一起,直到整个水族馆有相同浓度的盐。淡水和盐水之间的咸度差异越大,这个过程更加“暴力”。

现在想象一个方形水族馆有256×256薄壁分离256×256个立方体,每个具有不同的盐浓度。 如果你现在去除屏障,两个立方体之间的混合很少,盐浓度差异很小,但是两个具有非常不同盐浓度的立方体之间会快速混合。现在想象一下,256×256网格是一个图像,立方体是像素,盐浓度是每个像素的强度。代替盐浓度的扩散是我们现在具有像素信息的扩散。结果是,这正是扩散方程解的卷积的一部分:一部分简单地是某一流体在某一区域(或图像术语)中的初始浓度 - 具有其初始像素强度的初始图像。 为了完成卷积作为扩散过程的解释,我们需要将解的第二部分解释为扩散方程:传播函数(propagator)。

Interpreting the propagator

传播函数是概率密度函数,其表示流体颗粒随时间扩散的方向。这里的问题是,我们在深度学习中没有概率函数,而是卷积核 - 我们如何统一这些概念?我们可以应用将卷积核转换为概率密度函数的归一化。这就像在分类任务中计算输出值的softmax。 这里是来自上面第一个例子的边缘检测器内核的softmax标准化。

Softmax of an edge detector: To calculate the softmax normalization, we taking each value [latexbackground="ffffff"]{x}[/latex] of the kernel and apply [latexbackground="ffffff"]{e^x}[/latex]. After that we divide by the sum ofall [latex background="ffffff"]{e^x}[/latex]. Please note that thistechnique to calculate the softmax will be fine for most convolution kernels,but for more complex data the computation is a bit different to ensurenumerical stability (floating point computation is inherently unstable for verylarge and very small values and you have to carefully navigate around troublesin this case).

现在我们对图像上的扩散有了一个完整的解释。我们可以想象卷积的操作是一个两步的扩散过程:首先,存在强烈扩散,其中像素强度改变(从黑色到白色,或从黄色到蓝色等),其次,在区域中的扩散过程被调节由卷积核的概率分布。这意味着内核区域中的每个像素根据内核概率密度扩散到内核中的另一个位置。

对于上面的边缘检测器,周围区域中的几乎所有信息将集中在单个空间中(这对于流体中的扩散是不自然的,但是这种解释在数学上是正确的)。例如,在0.0001值以下的所有像素将很可能流入中心像素并在那里累积。在相邻像素之间的最大差异处,最终浓度将是最大的,因为这里扩散过程是最明显的。反过来,相邻像素的最大差异在那里,其中不同对象之间的边缘,所以这解释了为什么上面的内核是边缘检测器。

所以我们有了它:卷积被视为信息的扩散。 我们可以将此解释直接应用于其他内核。 有时我们必须为了解释而应用softmax标准化,但是一般来说,数字本身对发生的事情说了很多。

Wait, there is something fishy here

如果我们有了一个具有概率的卷积核,我们如何确定确定性行为? 我们必须根据内核的概率的分布和传播函数解释单粒子的扩散。然而,如果你拿一小块流体,比如一小滴水,你仍然有数百万的水分子在这一小滴水中,而一个单一的分子行为根据传播函数的概率分布随机,一个整体束分子具有准确定性行为 - 这是统计力学(因此也用于流体力学中的扩散)的重要解释。 我们可以将传播函数的概率解释为信息或像素强度的平均分布; 因此,我们从流体力学的角度来解释是正确的。 然而,对卷积也有一个有效的随机解释。

Insights from quantum mechanics

传播函数是量子力学中的一个重要概念。 在量子力学中,粒子可以处于叠加态,就是它同时具有两个或更多个通常在我们的经验世界中排它的性质:例如,在量子力学中,粒子可以同时在两个位置 - 即单个对象,两个地方。但是,当你测量粒子的状态 - 例如粒子现在在哪里 - 它将在一个地方或另一个地方。 换句话说,你通过观察粒子破坏了重叠状态。 传播函数描述了您可以预期粒子的概率分布。 因此,在测量之后,根据传播函数的概率分布,粒子可能具有30%的概率A和70%的概率B。

如果我们有纠缠的粒子(在一定距离的幽灵作用),几个粒子可以同时容纳数百或甚至数百万不同的状态- 这是量子计算机将具有的能力。

因此,如果我们将这种解释用于深度学习,我们可以认为图像中的像素处于叠加状态,因此在每个图像块中,每个像素同时处于9个位置(如果我们的内核是3×3 )。一旦我们应用卷积,我们进行测量,并且每个像素的叠加折叠到如卷积核的概率分布所描述的单个位置,或换句话说:对于每个像素,我们随机选择9个像素中的一个像素(具有核的概率),并且所得到的像素是所有这些像素的平均值。为了说明这种解释是真的,这需要是一个真正的随机过程,这意味着,同一个图像和相同的内核通常会产生不同的结果。这种解释通常不是一对一的卷积,但它可能让你理解如何应用卷积随机方式或如何开发量子算法的卷积网络。量子算法将能够利用一个计算以及相对于图像和内核的大小的线性时间/量子位来计算由内核描述的所有可能的组合。

Insights from probability theory

卷积与互相关密切相关。互相关是一种操作,它通过一小段信息(几秒钟的歌曲)过滤大块信息(整首歌曲)得到相似性(类似的技术YouTube上使用在自动标记视频的版权侵权)。

Relation between cross-correlation and convolution: Here [latexbackground="ffffff"]{\star}[/latex] denotes cross correlation and[latex background="ffffff"]{f^*}[/latex] denotes the complexconjugate of [latex background="ffffff"]{f}[/latex].

虽然互相关看起来很笨重,但有一个技巧,我们可以很容易地将它与卷积在深度学习中相关:对于图像,我们可以简单地将搜索图像倒置,以通过卷积执行互相关。当我们使用人的图像与面部的上侧图像的卷积时,则结果将是在面部与人匹配的位置处具有一个或多个明亮像素的图像。

Cross-correlation via convolution: The input and kernel are padded with zeros and thekernel is rotated by 180 degrees. The white spot marks the area with thestrongest pixel-wise correlation between image and kernel. Note that the outputimage is in the spatial domain, the inverse Fourier transform was alreadyapplied. Images taken from StevenSmith’s excellent free online book about digital signal processing.

该示例还解释了利用零填充以稳定傅里叶变换,并且这在傅里叶变换的许多版本中是需要的。有一些版本需要不同的填充方案:有的实现在其自身周围扭曲内核,有的只需要填充内核,而有的实现需要分而治之方法,有的根本不需要填充。

在较低级别,卷积网络将不需要互相关,因为我们知道它们在第一卷积层中执行边缘检测。但是在生成更多抽象特征的之后的层中,卷积网学习通过卷积来执行互相关是可能的。可以想象,来自互相关的亮像素将被重定向到检测面部的单元(Google大脑项目在其架构中具有专用于面部,猫等等的一些单元;可能交叉相关在这里起作用?)。

本文分享自微信公众号 - 鸿的学习笔记(shujuxuexizhilu),作者:鸿

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2016-11-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 神经网络结构(上)

    深度神经网络和深度学习是很强大和流行的算法。他们的成功很大程度上在于神经网络架构的精心设计。所以我想重温过去几年深度学习的神经网络设计的历史。

    哒呵呵
  • Understanding Convolution in Deep Learning(一)

    卷积可能是目前深度学习中最重要的概念了。卷积和卷积网络是引发深度学习去完成几乎任何机器学习任务的最前沿地概念。但是什么使卷积这么强大?它是如何工作的?在这篇博客...

    哒呵呵
  • Understanding Convolution in Deep Learning(五)

    统计模型和机器学习模型有什么区别? 统计模型通常集中在很容易解释的很少的变量。 可以建立统计模型来回答这些问题:药物A是否比药物B好?机器学习模型关于预测性能:...

    哒呵呵
  • 深度学习: 网络超参数设定

    卷积时在 图像每一维([batch, in_height, in_width, in_channels])的步长,这是一个一维的向量,长度4。

    JNingWei
  • 直观理解深度学习的卷积操作,超赞!

    近几年随着功能强大的深度学习框架的出现,在深度学习模型中搭建卷积神经网络变得十分容易,甚至只需要一行代码就可以完成。

    智能算法
  • 直观理解深度学习的卷积操作,超赞!

    近几年随着功能强大的深度学习框架的出现,在深度学习模型中搭建卷积神经网络变得十分容易,甚至只需要一行代码就可以完成。

    昱良
  • 一文读懂卷积神经网络(CNN)

    先明确一点就是,Deep Learning是全部深度学习算法的总称,CNN是深度学习算法在图像处理领域的一个应用。

    昱良
  • 干货 | 卷积神经网络入门这一篇就够了

    【机器学习算法】:排名第一 【机器学习】:排名第一 【Python】:排名第三 【算法】:排名第四 先明确一点就是,Deep Learning是全部深度学习算法...

    昱良
  • 直观理解深度学习卷积部分

    近几年随着功能强大的深度学习框架的出现,在深度学习模型中搭建卷积神经网络变得十分容易,甚至只需要一行代码就可以完成。

    AI研习社
  • 金字塔卷积PyConv来了!"即插即用",提升你的网络性能

    论文:https://arxiv.org/abs/2006.11538代码:https://github.com/iduta/pyconv

    Amusi

扫码关注云+社区

领取腾讯云代金券