读完这个你就彻底懂深度学习中的卷积了!
卷积在深度学习领域中占据核心地位。深度学习的卓越成就很大程度上得益于卷积及其神经网络的应用。卷积之所以具备如此强大的能力,其内在机制究竟是什么?本文旨在深入剖析卷积及其关联知识,以便读者能够全面掌握这一概念。
网络中已有众多文章阐述卷积及其在深度学习中的应用,然而这些文章往往一开始就堆砌过多复杂的数学描述,显得难以理解,掩盖了核心思想。本文虽然也包含数学内容,但将通过直观的图示逐步解析,力求让所有读者都能掌握。本文的首章将着重介绍卷积的基本原理,以及深度学习模型中卷积网络的工作方式。第二部分介绍了一些复杂的思想,目的是使深度学习领域的研究人员以及经验丰富的从业者更加透彻地认识卷积的内涵。
第一部分:什么是卷积
整篇文章都将围绕这个议题展开,但先梳理写作思路会很有益处。大致而言,卷积究竟是什么?可以将其理解为一种融合资讯的方式。设想有两个盛满数据的容器,将它们合并到同一个容器内,并依据特定准则进行搅拌混合。换言之,卷积就是整合两种资讯的过程。
卷积能够通过特定方式加以说明,实际上,它属于一种数学处理,与加减乘除在根本性质上并无不同,尽管这种处理过程本身颇为繁难,却对精简更为繁复的公式极为有益,物理学和工程学领域常常借助卷积来简化方程式,稍后我们将对卷积进行简明扼要的公式化阐述,从而将相关领域的理念与深度学习进行关联,以便进一步深化对卷积的认识。但现在我们先从实用的角度理解卷积。
我们如何对图像应用卷积
对图像实施卷积操作时,会在两个方向进行运算——横向与纵向,同时融合两大类数据:一是图像本身,它由三个矩阵组成,分别代表RGB三个颜色通道,每个数值介于0到255之间;二是卷积核,这是一个由浮点数构成的矩阵,其尺寸和形态可视为对图像进行混合的特定工具。卷积核的运算结果是一张经过处理的图像,在深度学习领域中通常被称为特征图。针对每一种颜色分量,都会生成对应的特征图。

边缘检测卷积核的效果
这是怎样实现的呢,我们接下来展示卷积如何融合这两种资讯。一种办法是先从输入画面中选取一个与滤波器尺寸相等的区域——假设画面为100×100,滤波器尺寸为3×3,那么选取的区域尺寸就是3×3——接着针对每一对位置相同的数值进行相乘,最后将结果累加起来(虽然这和矩阵乘法不同,但跟向量点积相似,此处是两个同样大小的矩阵之间的“点乘”)。多个数值相乘的结果就构成了feature map中的一个点,一个点计算完成后,向右平移一个单位,开始处理下一个区域,采用同样的方法,当无法再向右移动获取新区域时,对feature map的运算就终止了,这个处理过程可以通过一个动态图像来展示

RAM是输入图片,Buffer是feature map
你或许留意到此处存在一个规范化系数m,该系数具体数值为核的尺寸9;此举是为了确保输入图像与特征图的亮度保持一致。
为什么机器学习中图像卷积有用
画面里或许混杂着诸多无关紧要的杂乱信息。一个恰当的例证是我和Jannek Thomas在Burda Bootcamp合作完成的课题。Burda Bootcamp是一个专门训练学员仿照极限竞赛模式,于极短时间内迅速构思出技术成果的实践场所。当时我们和另外八位同僚一起,仅用两个月时间就成功研发出十一个不同产品。有一个专门用于时尚图片的深度编码搜索引擎,你把一张时尚服装的照片传上去,编码器就会自动帮你找到样式相近的其他服饰,这样就能快速发现同款或者类似款式的衣服。
要分辨服饰的款式,那么衣物的色彩便显得无足轻重;类似商标的细枝末节也同样无关紧要。首要考虑的应是服装的轮廓。通常而言,女性上衣的形态与衬衫、外套及裤装给人的观感大相径庭。倘若能筛除这些不必要的干扰,我们的计算模型便不会因色彩、商标等要素而分散注意力。这种处理方式能借助卷积技术高效达成。
我的同事Jannek Thomas借助索贝尔边缘检测算子,移除了图像中非边缘的所有内容,这与卷积运算常被称为滤波,以及卷积核常被称为算子(更精确的解释在后面)的现象有关。通过边缘检测算子得到的特征图,对于分辨衣物种类很有帮助开yun体育官网入口登录app,因为仅保留了轮廓特征。


彩图的上方左侧为检索指令,其余部分为检索成果,可以察觉到自动编码器确实只注重服饰的轮廓,而忽略色彩。
还有更多种类的核能够生成各式各样的特征图,例如增强图像的清晰度以便突出轮廓,或是降低图像的清晰度以淡化轮廓,而且这些特征图中的每一种都有助于算法进行判断,某些微小的差异,比如布料上的纽扣数量不同,或许就能用来分辨不同的衣物。
借助这种方法,先接收数据,再进行数据转换,随后将特征图交给某个特定程序,这种流程被称作特征处理。特征处理相当复杂,几乎缺乏入门指导。因此,能够精通跨领域特征处理的人并不多。这种技术开yunapp体育官网入口下载手机版,完全依靠人工实现,也是Kaggle竞赛中最为关键的一项能力。构建特征工程之所以如此困难,是因为针对不同类型的数据和各类问题,能够发挥作用的特征各不相同:专门用于处理图像类任务的特征,往往无法直接应用于时序类任务;即便两个任务都属于图像处理范畴,也极难寻获相同的有效特征开元ky888棋牌官方版,原因是需要识别的物体种类不同,导致有价值的特征也随之变化。整个过程高度依赖实践积累的经验。
因此特征提取对初学者而言十分棘手,但针对视觉信息,能否借助卷积核自动识别特定任务里最匹配的要素?
进入卷积神经网络
卷积神经网络专门用来处理这类任务。与先前采用固定数值的卷积核不同,我们为这些核配置参数,这些参数会通过数据训练得到调整。随着卷积神经网络的训练过程,这些卷积核为了提取有效信息,在图像或特征图上的过滤操作会越来越精准。这是一个自动化的过程,被称为特征提取。自动适应新任务的能力源于特征学习,通过在新的数据集上稍作训练,即可自动识别并构建新的过滤器,因此卷积神经网络无需进行复杂的手工特征提取工作,这也是其强大表现的关键因素之一!
卷积神经网络往往不会去掌握一个独立的卷积核,而是会同步掌握好几个不同层级的卷积核组合。比如说,一个32×16×16尺寸的卷积核,在处理256×256像素的图像时,能够生成32张241×241大小的特征图。这样就能自动形成32组全新的有效特征。这些特征可以被当作下一组卷积核的输入数据。一旦掌握了多级特征,我们便直接将它们交给一个全连接的简易网络,由这个网络负责分类工作。这便是理解卷积神经网络在概念层面所需了解的全部内容(至于池化,那也是一个关键主题,不过相关内容将在另一篇文章中进行探讨)。
第二部分:高级概念
如今我们已对卷积建立了基本的了解,也清楚了卷积神经网络的功能及其强大原因。接下来让我们仔细探究卷积运算的内在机制。我们会发现先前对卷积的说明比较简略,其实存在更精妙的阐释。借助深入分析,我们能够掌握卷积的核心内涵,并将这一原理运用到各类数据中。万事开头虽难,首要任务是弄清卷积的基本原理。
卷积定理
要明白卷积的原理,必须了解卷积定理,该定理将时间轴和空间轴上的复杂卷积运算,转化为频率轴上元素间直接的相乘关系。这个定理作用非凡,在众多科学学科里都得到了实际运用。卷积定理也是快速傅里叶变换方法被誉为二十世纪关键算法之一的重要缘由。

第一个公式描述了在一条连续轴上两个函数的叠加效果,第二个公式则是在一个平面网格(代表图像)中两个函数的相互作用过程。当前讨论的核心是卷积运算,这个运算与傅里叶分析密切相关,具体来说,它关联着从频率域信息恢复原始信号的过程,并且需要乘以一个调整系数以保持量纲一致。所谓离散,意味着所处理的信息由一系列独立的点组成(比如构成图像的每个像素点),而一维则表示信息沿着单条路径变化(例如时间序列),相比之下,图像表现为在两个方向上都有位置变化,而视频则增加了时间维度。
要透彻认识卷积定理,先要掌握数字图像处理里的傅里叶变换,这是基础。
快速傅里叶变换
快速傅里叶变换是一种计算方法,能够把时间域和空间域的数据转换到频率域上,傅里叶变换用若干正弦波和余弦波叠加来描述原始函数,需要强调的是,傅里叶变换通常涉及复数,也就是说一个实数会被转换成一个同时包含实数部分和虚数部分的结果,虚数部分通常只在某些特定情况下有用,比如在将频率域数据转换回时间域和空间域时,而在这篇文章中,这部分内容会被省略掉下面展示了信号的处理方式,所谓信号,指的是以时间为变量呈现周期性变化的函数,接下来将说明其如何进行傅里叶变换,

红色是时域,蓝色为频域
你或许会表示从未见过这些物件,但我确信你在日常中确有接触:倘若红色是一段旋律,那么蓝色便如你用MP3播放器时屏幕上显现的声波图景。

傅里叶域上的图像

我们怎样理解图像的频率特征呢?设想一种仅含两种状态的纸张,将其垂直摆放并沿着纹理方向观察,便能发现一系列独立的发光点。这种将黑白区域按固定距离划分的波纹形态,正是频率的体现。在频率空间里,较低频段靠近中心区域,而较高频段则趋向外围位置。频率空间中亮度值较高的区域,则揭示了图像亮度发生变化的根本路径。这种情形在下面这幅图像及其对数傅里叶变换(通过对傅里叶变换的实部实施对数运算,能够降低像素亮度的差异,从而更方便审视广阔的亮度范围)中体现得尤为清晰,

我们很快就能察觉到傅里叶变换中蕴含着物体方向的细节。假如物体被转动了一个角度,仅从图像的像素分布来看,或许难以分辨,然而在频率空间中,这种变化会非常显著。
这一发现意义重大,依据傅里叶定理,卷积神经网络能够在频率层面识别图像,并且能够捕捉到物体的朝向特征。因此,卷积神经网络在处理经过旋转的图像时,其表现要比传统算法更为出色,尽管其能力依然不及人类。
频率过滤与卷积
卷积为何常被喻为筛选,卷积核为何常被称作滤网呢?以下例证可以说明这一点,

对图像实施傅里叶变换后,再与一个圆形相乘,该圆形背景为黑色即值为0,这样所有高频分量都会被滤除,因为它们会因乘以0而变为0。过滤后的图像仍存在条纹状现象,但清晰度大幅降低,这就是jpeg压缩方法的核心运作方式,尽管其原理略有差异但采用了相似的变换技术,我们首先对图形进行转换,接着仅保留部分频率信息,最后再将其还原成平面图像,压缩程度可以通过黑色区域与圆形区域的面积比例来衡量。
我们此刻把圆圈当作一个卷积核来考虑,由此便形成了完整的卷积流程——这同卷积神经网络中的情形相仿。实现稳定且高效的傅里叶变换需要诸多方法,不过这便是核心思路。
我们已掌握卷积定理和傅里叶变换,能够将这些概念迁移至其他学科,从而深化对深度学习里卷积的认识。
流体力学的启发
流体力学针对空气和水建立了众多微分方程式,傅里叶变换能够简化卷积运算,也能简化微分过程,或者说有助于所有运用微分方程的学科领域。有时候,求解微分方程的唯一途径就是对其两边同时实施傅里叶变换。在此过程中,我们常将解表述为两个函数的卷积形式,从而获得更为简洁的公式。这是某一领域的实践,同时涉及两个领域的实践,例如天文学。
扩散
你可以将两种液体(牛奶和咖啡)进行掺和,只要使用一个工具(汤勺搅动)——这种现象称作对流,并且完成得十分迅速。你也可以静心观察两种液体自行融合——这种现象叫做扩散,一般进展得相当缓慢。
设想一个容器,用隔板分成两部分,每部分装着盐分不一样的溶液。移开隔板之后,两边的溶液会慢慢变得均匀。盐分差距越大,这种变化就会越快。
设想一个容器,用 256×256 块材料分隔成 256×256 个小格子,每个格子里的液体含盐量各不相同,这个分隔数量可能存在误差,实际情况并非如此。如果移除所有隔断,含盐量相近的小区域彼此间几乎不会发生物质交换,而含盐量悬殊的区域之间却会产生显著的物质流动。这些小区域对应图像中的像素,液体含盐量则代表像素的明暗程度,物质流动现象也就是像素明暗度的变化过程。
这表明,扩散过程和卷积操作存在某些共同之处,涉及初始时刻存在浓度差异的液体,或者强度不同的图像元素。为了继续阐述后续内容,我们有必要先弄清楚传播函数。
理解传播子
传递规律就是分布规律,说明流体粒子应当朝哪个方位移动。但是,神经网络里面并没有这种可能性函数,仅仅有一个卷积核——我们怎样才能把这两种状况融合在一起呢?
我们可以借助正规化将卷积核转变为概率密度函数,这有点类似于计算输出值的softmax过程,下面展示的是针对第一个例子中卷积核应用softmax后的结果

现在我们可以从弥散的角度来认识图像上的卷积了。我们可以把卷积看作是两个弥散过程。首先,当像素明暗程度变化时(比如从黑到白)会发生弥散;接着某个区域的弥散遵循卷积核所对应的概率分布。这表明卷积核正在作用的区域内的像素点必须依照这些概率进行弥散。
那个边缘检测器里,几乎所有邻近边缘的细节都会汇集到边缘处,这种情况在流体扩散中是不会发生的,不过这种说法在数学上站得住脚。比如,所有数值低于0.0001的像素点,极有可能向中心位置移动并最终聚集在一起。那些跟周围像素差异特别大的地方,会成为强度汇聚的场所,原因是那里的扩散作用最为显著。换个角度想,能量最集中的区域意味着和邻近部分的差异最为显著,这正是指物体轮廓的位置,这也说明了该核心充当了轮廓识别装置。
因此我们便有了物理层面的阐释:卷积体现为信息的传播过程。这种阐释同样适用于其他各类核函数,不过有时必须借助softmax归一化步骤才能准确说明,但大体上核函数内部的数值已经足以揭示其作用目的。例如,能否推知这个核函数的具体功能?

等等,有点迷惑
对于概率化的滤波器,如何能具备明确的作用?我们确实需要借助该滤波器关联的概率分布,也就是传递函数,来推算单个质点的弥散过程,对吧?
没错,情况确实如此。即便你只取极少量的液体,例如一滴水,里面也含有数以百万计的水分子。单个分子的随机运动遵循扩散规律,然而大量分子在整体上的行为却表现出相当稳定的特性。这种解释既符合统计学原理,也契合流体力学原理。我们可以将扩散规律的概率分布理解为信息或像素亮度的平均散布;换句话说,从流体动力学的角度来看,这种解释是站得住脚的。话说回来,这里还有一个卷积的随机解释。
量子力学的启发
传播子是量子理论里的核心术语。量子理论表明,某个粒子可以处在一种叠加情形,这种情形下,它拥有两个或多个特性,导致无法明确知道它在观察环境中的确切所在。举例来说,一个粒子或许能同时处在两个不同的地方。
然而要探知微尘的某种情形——比如此刻它位于何方——那么它就必定固定于某个确切地点了。换言之,你的探查行为本身就瓦解了微尘的多种可能性并存状态。那个传播函数便标明了微尘现身于各个地点的或然程度。譬如检测过后一个微尘大概——依照传播函数的或然性规则——有30%的机会在A点,70%的机会在B点。
借助量子纠缠现象,少数粒子便能并行承载成百上千乃至数百万种不同情形,这就是量子计算的核心优势所在。
假如把这种说明套用到深度学习上,就能够把图像看作处在叠加情况,因此在每一个3*3的区域里,每个点子同时出现在九个地方。当我们实施卷积时,就进行了一次测量,接下来每个点子就收缩到符合概率分布的一个位置上,而且得到的那一个点子是所有点子的中心值。要使这种说明站得住脚,就必须确保卷积是一个偶然过程。这表明,相同的图像与同一个卷积核相作用,其输出结果会不尽相同。这种说明虽然不直接进行类比,却或许能为你提供思路,让你思考如何将卷积操作视作随机现象,又或者如何构思量子计算机上的卷积网络方案。量子方法可以在线性阶段解析卷积核所定义的所有潜在状态配置。
概率论的启发
卷积和互相关关联密切。互相关用于评估短信息(比如短小的音乐片段)和长信息(比如整首乐曲)的相似程度,像youtube检测侵权视频那样运用了这种方法。

关联性较强的等式看似复杂,不过借助以下方法,能迅速揭示其与深度学习的内在关联性。在图像检索场景下,将查询图像进行上下翻转处理后,视作卷积核,再执行卷积运算进行相关性验证,最终会生成一张包含一个或多个高亮区域的图像,这些高亮区域即为人脸存在的坐标位置。

这一情形同时揭示了一种借助填充零确保傅里叶变换稳定性的方法,众多傅里叶变换的变体都应用了此方法,此外也存在其他填充策略,诸如周期性扩展,递归分解等,对此我暂不细述,有关傅里叶变换的资料浩如烟海,其中蕴含的技巧极为丰富——尤其针对图像分析而言。
在更深层次,卷积网络起始层不会进行特征匹配验证,因为起始层主要负责轮廓识别。往后的层级会提取更概括性的信息,这时才可能进行特征匹配验证。可以设想这些突出像素点会提供给专门用于识别人脸的部件(Google Brain项目的网络构造里包含一些部件专门用于辨认人脸、猫咪等;或许就是通过特征匹配验证实现的)
统计学的启发
统计模型与机器学习模型有何不同之处?统计模型主要关注少数几个具备解释性的变量,它们的目标通常在于解答特定问题,例如药品A是否优于药品B。
机器学习模型以预测为主要功能:针对年龄段X,药品A的康复比例高于B,达到17个百分点;而在年龄段Y,这一优势则扩大到23个百分点。
机器学习模型一般预测能力较强,不过其可靠性相对不足。统计模型则更注重结果的精确性与可信度,即便药品A较B效果高出17个百分点,也无法排除偶然性因素,必须借助统计模型来加以验证。
时间序列分析领域存在两种关键方法,分别是加权移动平均法和自回归法,后者属于ARIMA模型,即自回归积分移动平均模型。与LSTM相比,ARIMA的表现较为逊色。在低维数据空间,比如一维到五维的情况下,ARIMA模型展现出很强的稳定性,尽管它的运作机制不太容易理解,但这个模型并非像深度学习算法那样是个完全不可见的系统,如果你追求一个可靠的分析工具,这个特点就非常关键。
这些统计模型能够表述为卷积结构,深度学习里的卷积可视为生成局部ARIMA特性的运算。这两种表述方式并非完全等同,应用时需格外小心。

C是一个以核心为变量的函数,白噪声指的是标准化的均值为零方差为一的彼此独立的数据。
在准备资料时,我们常把资料处理成类似白噪声的样子:把资料中心化到平均值为零,把资料标准化到方差为一。我们极少消除资料间的关联性,因为计算难度很大。不过从理论上讲,这并不复杂,我们只需变换坐标轴,使资料的特征向量对齐。

倘若把C当作偏差,便极易联想到卷积神经网络,这种网络结构颇为相似。卷积层所产生的结果,能够理解为白噪声数据在自回归模型作用下形成的产物。
加权移动平均的计算方式更直观:它相当于将数据序列和某个预设的模板进行逐点匹配。观察下方的正态分布平滑模板就能理解这个原理。这个正态分布模板可以理解为每个数据点与其邻近点的均值运算,也可以看作每个数据点被周围数值所平均化(边界区域变得模糊)。

斯平滑核问题的答案
单个核不能同时生成autoregressive特征,也不能同时生成weighted moving average特征,但多个核可以用来制造不同的特征。
总结
本篇日志使我们明白了卷积的含义及其在深度学习中的重要价值。图像区域的阐述虽简明且易于推算,却存在一定的理论制约。借助对傅里叶变换的研习,我们了解到变换后的时域里蕴含着大量关于物体方向的资讯。凭借功能强大的卷积定理,我们领悟到卷积实为一种在像素层面上进行的信息传递过程。我们进一步发展了量子力学里传播子的定义,从而为某个特定过程构建了随机性诠释。我们揭示了互相关运算与卷积运算之间的关联,并且卷积网络的功能或许取决于特征图之间的互相关水平,这个水平可以通过卷积检测来衡量。最终我们将卷积运算与两种统计学模型建立了联系。
我个人认为,撰写这篇日志非常有趣。过去很长一段时间,我都觉得大学里的数学和统计学课程是虚度光阴,毕竟它们显得过于空洞(即便是应用数学)。然而后来——宛如幸运降临——这些知识彼此关联,并让我有了全新的认知。我认为这是个绝佳的启示,提醒我们应当耐心钻研每一门大学课程——即便它们初看之下毫无价值。