最新公告
  • 欢迎您光临欧资源网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • 有太多的公开课、教程在反复卷积卷积的好,却都没有讲什么是“卷积”

    傅里叶级数是傅里叶在研究哪种物理现象时提出的_二维傅里叶反变换_二维快速傅里叶变换 c语言

    (点击上方红字获取)

    有太多的公开课程和教程反复宣扬卷积神经网络的优点,却没有讲什么是“卷积”。似乎所有的读者都默认有相关的基础。外语友好而深入,所以被翻译了。文章的高级部分通过流体力学、量子力学等来解释卷积,在我看来有点激进。这些区域可能比卷积更深奥,所以简单看一下。以下为正文:

    卷积可能是目前深度学习中最重要的概念。正是在卷积和卷积神经网络的帮助下,深度学习几乎超越了所有其他机器学习方法。但为什么卷积如此强大?它的原理是什么?在这篇博客中,我将解释卷积和相关概念,以帮助您彻底理解它。网上已经有很多博客在解释深度学习中的卷积和卷积,但是我发现它们都添加了太多不必要的数学细节,既难懂又晦涩,不利于理解主要思想。这个博客也有很多数学细节,但我会以直观的方式一步一步地展示它们,以确保每个人都能理解。文章第一部分旨在帮助读者理解深度学习中卷积和卷积网络的概念。第二部分介绍了一些先进的概念,旨在帮助深度学习领域的研究人员和高级玩家进一步加深对卷积的理解。什么是卷积是关于这个问题的整篇博文,但首先了解上下文会很有帮助。所以粗略地说,什么是卷积?您可以将卷积视为混合信息的一种方式。想象两个装满信息的桶,我们将它们倒入一个桶中,并按照一些规则搅拌它们。也就是说,卷积是将两种信息混合的过程。卷积也可以形式化描述,其实它是一种数学运算,与减法、加法、乘法和除法没有本质的区别。虽然操作本身很复杂,但它对于简化更复杂的表达式非常有用。在物理和工程中,卷积被广泛用于简化方程——在稍后对卷积进行简短的正式描述之后——我们将把这些领域的想法与深度学习联系起来,以加深我们对卷积的理解。理解。但是现在让我们从实际的角度来理解卷积。我们如何将卷积应用到图像当我们将卷积应用到图像时,我们在两个维度上执行卷积 – 水平和垂直。我们混合两个桶的信息:第一个桶是输入图像,由三个矩阵组成——RGB 三通道,其中每个元素是 0 到 255 之间的整数。第二个桶是卷积核(kernel),单个矩阵浮动。将卷积核的大小和模式视为搅拌图像的一种方法。卷积核的输出是经过修改的图像,在深度学习中通常称为特征图。每个颜色通道都有一个特征图。

    傅里叶级数是傅里叶在研究哪种物理现象时提出的_二维傅里叶反变换_二维快速傅里叶变换 c语言

    边缘检测卷积核的效果是怎么做的。我们现在演示如何通过卷积混合这两种信息。一种方法是从输入图像中取出一个与卷积核大小相同的块——假设图像为 100×100″ role=”presentation”>100×100100×100,卷积核大小为 3×3 ” role=”presentation”>3×33×3二维快速傅里叶变换 c语言,那么我们取出的块的大小是3×3″ role=”presentation”>3×33×3 – 然后对中的每一对元素进行乘法和求和相同的位置(与矩阵乘法不同,但类似于向量内积,这里是两个相同大小的矩阵的“点乘”)。乘积之和在特征图中生成一个像素。当计算一个像素时,移动一个像素 取下一个块,做同样的操作,当新的块不能再移动时,特征图的计算就结束了。这个过程可以用下面的动画来演示:

    二维快速傅里叶变换 c语言_傅里叶级数是傅里叶在研究哪种物理现象时提出的_二维傅里叶反变换

    RAM 是输入图像,Buffer 是特征图。您可能注意到有一个归一化因子 m,其中 m 的值是内核大小 9;这是为了确保输入图像和特征图具有相同的亮度。为什么图像卷积在机器学习中有用图像可能包含很多我们不关心的噪声。一个很好的例子是我在 Burda Bootcamp 和 Jannek Thomas 一起做的项目。 Burda Bootcamp 是一个实验室,学生可以像黑客马拉松一样在很短的时间内创造一场技术风暴。与 9 位同事,我们在 2 个月内制作了 11 款产品。其中之一是带有时尚图像深度编码器的搜索引擎:您上传时尚服装的图片,编码器会自动找到相似款式的服装。如果要区分衣服的风格,衣服的颜色就不那么重要了;像徽标这样的细节并不那么重要。可能最重要的是衣服的形状。一般来说,衬衫的形状与衬衫、夹克和裤子的外观有很大不同。如果我们过滤掉这些不需要的噪音二维快速傅里叶变换 c语言,那么我们的算法就不会被颜色、徽标等细节分散注意力。我们可以通过卷积轻松做到这一点。我的同事 Jannek Thomas 使用 Sobel 边缘检测过滤器(类似于上一张图像)从图像中去除除边缘之外的所有信息——这就是为什么卷积应用程序通常被称为过滤,而卷积核通常被称为过滤器(更精确地定义以下)。边缘检测过滤器生成的特征图对于区分服装类型非常有用,因为只保留了形状信息。

    二维快速傅里叶变换 c语言_傅里叶级数是傅里叶在研究哪种物理现象时提出的_二维傅里叶反变换

    色图左上角为搜索查询,其他为搜索结果。你会发现自动编码器真的只关注衣服的形状,而不关注颜色。更进一步:有很多不同的内核可以产生各种特征图,比如锐化图像(强调细节),或者模糊图像(减少细节),每个特征图都可能帮助算法做出决策(一些细节,比如衣服上有3个扣子,而不是2个,可以区分一些衣服)。使用这种方法——读入输入,转换输入,然后将特征图输入算法——称为特征工程。特征工程非常难,而且可以帮助您入门的材料很少。因此,很少有人擅长在多个领域应用特征工程。特征工程——纯手工——是 Kaggle 比赛中最重要的技能。特征工程之所以如此困难,是因为每种类型的数据和每种类型的问题都有不同的有用特征:类似图像任务的特征可能不适用于时间序列任务;即使这两个任务都是类似图像的,也很难找到相同的有用特征,因为有用特征会根据要识别的对象而有所不同。这非常依赖经验。所以特征工程对于初学者来说尤其困难。但是对于图像,是否可以使用卷积核自动找到最适合某项任务的特征?进入卷积神经网络

    傅里叶级数是傅里叶在研究哪种物理现象时提出的_二维傅里叶反变换_二维快速傅里叶变换 c语言

    二维傅里叶反变换_二维快速傅里叶变换 c语言_傅里叶级数是傅里叶在研究哪种物理现象时提出的

    卷积神经网络就是这样做的。我们不只是使用固定数量的卷积核,而是为这些核分配参数,并且参数将在数据上进行训练。随着卷积神经网络的训练,这些卷积核会越来越好地过滤图像或特征图,以获得有用的信息。这个过程是自动的,称为特征学习。特征学习自动适应新任务:我们只需要训练新数据以自动找到新过滤器。这就是卷积神经网络如此强大的原因——无需繁重的特征工程!通常卷积神经网络不会学习单个内核,而是同时学习多个级别的多个内核。例如,将 32x16x16 内核应用于 256×256 图像将生成 32 241×241 (

    ) 特征图。因此自动获得了 32 个有用的新特征。这些特征可以用作下一个内核的输入。一旦学习了多级特征,我们只需将它们传递给一个简单的全连接神经网络,该网络执行分类。这就是您从概念上理解卷积神经网络所需的全部内容(池化也是一个重要主题,但这是另一篇博文的内容)。第 2 部分:高级概念我们现在对卷积有了一个很好的初步了解,卷积神经网络在做什么以及为什么它如此强大。现在让我们深入了解卷积操作中实际发生的情况。我们会意识到我们刚刚解释的卷积是肤浅的,这里有一个更优雅的解释。通过深入了解,我们可以理解卷积的本质并将其应用于许多不同的数据。万事开头难,首先要了解卷积的原理。卷积定理要理解卷积,就不得不提卷积定理,它将时空域中的复杂卷积映射为频域中元素之间的简单乘积。这个定理非常强大,被广泛应用于许多科学领域。卷积定理也是快速傅里叶变换算法被称为20世纪最重要的算法之一的原因之一。

    二维快速傅里叶变换 c语言_傅里叶级数是傅里叶在研究哪种物理现象时提出的_二维傅里叶反变换

    第一个方程是两个连续函数在一维连续域上的卷积;第二个方程是二维离散域(图像)上的卷积。这里

    指卷积,

    指傅里叶变换,

    代表傅里叶逆变换,

    是一个归一化常数。这里的“离散”是指数据由有限数量的变量(像素)组成;一维是指数据是一维的(时间),图像是二维的,视频是三维的。为了更好地理解卷积定理,我们还需要了解数字图像处理中的傅里叶变换。快速傅里叶变换 快速傅里叶变换是一种将时域和空间域中的数据转换为频域的算法。傅里叶变换将原始函数表示为一些正弦波和余弦波的总和。需要注意的是,傅里叶变换一般都涉及复数,即将实数变换为具有实部和虚部的复数。通常虚部仅在少数几个域中有用,例如将频域转换回时域和空间域;在这篇博文中将被忽略。您可以在下面看到信号(作为参数的时间周期函数通常称为信号)是如何进行傅里叶变换的:

    二维傅里叶反变换_傅里叶级数是傅里叶在研究哪种物理现象时提出的_二维快速傅里叶变换 c语言

    红色是时域,蓝色是频域 你可能会说你从未见过这些东西,但我相信你在生活中见过它们:如果红色是一首音乐,那么蓝色value 是您在 MP3 播放器屏幕上看到的频谱:

    傅里叶级数是傅里叶在研究哪种物理现象时提出的_二维快速傅里叶变换 c语言_二维傅里叶反变换

    傅里叶域中的图像

    二维快速傅里叶变换 c语言_二维傅里叶反变换_傅里叶级数是傅里叶在研究哪种物理现象时提出的

    我们如何想象图像的频率?想象一张只有两种模式的纸,现在顺着线条的方向看纸,你会看到一个个的亮点。这些波以一定的间隔被黑色和白色隔开,代表频率。在频域中,低频更靠近中心,高频更靠近边缘。频域中高强度(亮度、白色)的位置代表了原始图像亮度变化的方向。这一点在下图及其对数傅里叶变换中尤为明显(取傅里叶变换实部的对数,这样可以减少像素亮度的差异,便于查看更广范围的亮度):

    二维快速傅里叶变换 c语言_二维傅里叶反变换_傅里叶级数是傅里叶在研究哪种物理现象时提出的

    我们可以立即看到傅里叶变换包含有关对象方向的信息。如果物体旋转了一个角度,从图像像素可能很难分辨,但从频域可以清楚地看到。这是一个非常重要的启示。基于傅里叶定理,我们知道卷积神经网络在频域中检测图像并捕捉物体的方向信息。所以卷积神经网络在处理旋转图像方面比传统算法更好(尽管仍然不如人类)。频率滤波和卷积为什么卷积常被描述为滤波,为什么卷积核常被称为滤波器?这可以通过下一个例子来解释:

    傅里叶级数是傅里叶在研究哪种物理现象时提出的_二维傅里叶反变换_二维快速傅里叶变换 c语言

    如果我们对图像进行傅里叶变换,乘以一个圆(背景用黑色填充,又名0),我们可以过滤掉所有的高频值(它们变为0,因为padding 是 0). 注意过滤后的图像仍然有条纹图案,但是图像质量下降了很多——这就是 jpeg 压缩算法的工作原理(虽然有点不同但有类似的变换),我们变换图,然后只保留一些频率,最后逆变成二维图像;压缩比是黑色背景与圆的比值。我们现在把圆想象成一个卷积核,然后我们就有了全卷积过程——就像在卷积中 稳定快速地执行傅里叶变换需要很多技巧,但这是基本思想。现在我们了解了卷积定理和傅里叶变换,我们可以将这些思想应用到其他科学领域增强我们的能力深度学习中的卷积。受流体力学的启发,流体力学为空气和水创建了大量的微分方程模型,傅里叶变换不仅简化了卷积,还简化了微分或任何使用微分方程的领域。有时,获得解析解的唯一方法是对微分方程的左侧和右侧执行傅里叶变换。在这个过程中,我们经常把解写成两个函数的卷积,用 来得到一个更简单的表达式。这是一维的应用,也有二维的应用,比如天文学。扩散您可以混合两种液体(牛奶和咖啡),只需施加外力(勺子搅拌) – 这称为对流,这是一个非常快速的过程。您也可以耐心等待两种液体自然混合——这称为扩散,通常是一个缓慢的过程。想象一个被木板隔开的鱼缸,两边有不同浓度的盐水。板子取下后,两边的盐水会逐渐混合到相同的浓度。浓度差越大,过程越剧烈。现在想象一个鱼缸被分成 256 x 256 × 256 板 × 256 个部分(这个数字似乎不对),每个部分都有不同浓度的盐水。如果去掉所有的挡板,浓度相近的小块之间不会有太大的扩散,但浓度差异大的块之间会有很大的扩散。这些小块就是像素点,浓度就是像素点的亮度。浓度的扩散是像素亮度的扩散。这说明扩散现象类似于卷积——初始状态下不同浓度的液体,或不同强度的像素。为了完成下一步的讲解,我们还需要了解传播者。了解传播者

    传播子是指示流体粒子应该向哪个方向传播的密度函数。问题是神经网络中没有这样的概率函数,只有一个卷积核——我们如何统一这两个概念?我们可以通过正则化将卷积核转化为概率密度函数。这有点像计算输出值的 softmax。这是第一个例子中对卷积核执行softmax的结果:

    傅里叶级数是傅里叶在研究哪种物理现象时提出的_二维傅里叶反变换_二维快速傅里叶变换 c语言

    现在我们可以从扩散的角度来理解图像上的卷积。我们可以将卷积理解为两个扩散过程。首先,当像素亮度发生变化(从黑到白等)时会发生扩散;那么一个区域的扩散满足卷积核对应的概率分布。这意味着卷积核正在处理的区域中的像素必须根据这些概率展开。

    在上面的边缘检测器中,几乎所有来自相邻边缘的信息都收集在边缘上(这在流体扩散中是不可能的,但这里的解释在数学上是有效的)。假设 0.0001 以下的所有像素很可能会流到中间并加起来。与周围像素最不同的区域成为强度集中,因为扩散是最强烈的。相反,强度最集中的地方表示与周围环境的对比最强,也就是物体的边缘所在的位置,这就解释了为什么这个内核是边缘检测器。所以我们得到了物理解释:卷积是信息的扩散。我们可以直接将这种解释应用到其他内核上,有时我们需要在解释之前进行一次 softmax 归一化,但一般内核中的数字足以说明它要做什么。例如,你能推断出下面内核的意图吗?

    傅里叶级数是傅里叶在研究哪种物理现象时提出的_二维快速傅里叶变换 c语言_二维傅里叶反变换

    等等,有点困惑

    概率卷积核如何有一个确定的函数?我们必须根据原子核对应的概率分布来计算单个粒子的扩散,也就是传播者,不是吗?是的,它确实。但是如果你取少量液体,比如一滴水,你仍然有数百万个水分子。虽然单个分子的随机运动满足传播者,但大量分子的宏观行为基本确定。这是一种统计解释,也是一种流体动力学解释。我们可以将传播者的概率分布解释为信息或像素亮度的平均分布;也就是说,从流体动力学的角度来看,我们的解释是好的。话虽如此,卷积也有一个随机的解释。量子力学的启发式传播子是量子力学中的一个重要概念。在量子力学中,一个粒子可能处于叠加状态,其中它具有两个或多个属性,因此无法确定其在观测世界中的确切位置。例如,一个粒子可能同时存在于两个不同的位置。但是如果你测量粒子的状态——比如粒子现在在哪里——它只能存在于一个特定的位置。换句话说,你通过观察破坏了粒子的叠加。传播器描述了粒子出现位置的概率分布。例如,在测量之后,根据传播者的概率函数,一个粒子可能在 A 中占 30%,在 B 中占 70%。通过量子纠缠,几个粒子可以同时存储数百或数百万个状态——这就是量子计算机的力量。如果我们将这种解释应用到深度学习中,我们可以想象图像处于叠加状态,所以在每个 3*3 的块中,每个像素同时出现在 9 个位置。一旦我们应用卷积,我们就会进行观察,然后每个像素折叠到满足概率分布的单个位置,得到的单个像素是所有像素的平均值。为了使这种解释成立,必须保证卷积是一个随机过程。这意味着相同的图像和相同的卷积核会产生不同的结果。这种解释并没有明确比较谁和谁,但可能会启发您如何将卷积用作随机过程,或者如何在量子计算机上发明卷积网络算法。量子算法能够在线性时间内计算卷积核描述的所有可能的状态组合。来自概率论的启示

    卷积与互相关密切相关。互相关是衡量小信息(几秒钟的音乐)和大信息(整段音乐)之间的相似性(youtube 使用类似的技术来检测侵权视频)。

    二维傅里叶反变换_傅里叶级数是傅里叶在研究哪种物理现象时提出的_二维快速傅里叶变换 c语言

    虽然互相关的公式可能看起来很困难,但我们可以通过以下方式立即看到它与深度学习的联系。在图像搜索中,我们只需将查询图像倒置为内核,并通过卷积进行互相关测试。结果将是一张带有一个或多个亮点的图片。亮点的位置就是人脸的位置。

    二维傅里叶反变换_傅里叶级数是傅里叶在研究哪种物理现象时提出的_二维快速傅里叶变换 c语言

    这个例子还展示了一个通过用零填充来稳定傅里叶变换的技巧,该技巧在许多版本的傅里叶变换中都有使用。此外,还使用了其他填充技术:例如平铺内核、分而治之等。我不会深入讨论,有很多关于傅立叶变换的文献,其中有很多技巧 – 尤其是对于图像。在较低级别,卷积网络的第一层不执行互相关检查,因为第一层执行边缘检测。后面的层得到更多的抽象特征,并且可以进行互相关。可以想象,这些明亮的像素被传递给检测人脸的单元(Google Brain 项目的网络结构中有一些单元专门用于识别人脸、猫等;也许使用互相关?)模型和机器学习模型之间有什么区别?统计模型只关心少数可解释的变量。他们的目的通常是回答以下问题:药物 A 是否优于药物 B?机器学习模型专注于预测效果:对于 X 岁的人群,药物 A 的治愈率比药物 B 高 17%,而对于 Y 岁的人群,治愈率是 23%。机器学习模型通常比统计模型更擅长预测,但它们并不那么值得信赖。统计模型更擅长得到准确可信的结果:即使药物 A 比药物 B 好 17%,我们也不知道是不是偶然,我们需要统计模型来判断。对于时间序列数据,有两个重要的模型:加权移动平均和自回归模型,可以归入ARIMA模型(自回归综合移动平均模型)之下。与 LSTM 相比,ARIMA 较弱。但在低维数据(1-5 维)上,ARIMA 非常稳健。尽管它们有点难以解释,但 ARIMA 绝不是像深度学习算法那样的黑匣子。如果您需要一个可信的模型,这是一个巨大的优势。我们可以以卷积的形式编写这些统计模型,然后在深度学习中可以将其解释为产生局部 ARIMA 特征的函数。这两种形式并不完全重叠,应谨慎使用。

    傅里叶级数是傅里叶在研究哪种物理现象时提出的_二维快速傅里叶变换 c语言_二维傅里叶反变换

    C 是一个以核为参数的函数,而白噪声是归一化的不相关数据,均值为 0,方差为 1。我们在对数据进行预处理时,通常会以类似于白噪声的形式来处理数据:将数据移至均值 0 并将方差调整为 1。由于计算复杂度高,我们很少对数据进行去相关处理。但它在概念上很简单,我们旋转轴以与数据的特征向量重合:

    二维快速傅里叶变换 c语言_二维傅里叶反变换_傅里叶级数是傅里叶在研究哪种物理现象时提出的

    现在如果我们使用 C 作为偏差,我们会觉得这与卷积神经网络非常相似。所以卷积层的输出可以通过自回归模型解释为白噪声数据的输出。

    加权移动平均的解释更简单:它是输入数据与固定核的卷积。看一下文末的高斯平滑核来理解这个解释。高斯平滑核可以看成是每个像素与其相邻像素的平均值,或者每个像素被其相邻像素平均(边缘模糊)。虽然单个内核不能同时创建自回归和加权移动平均特征,但我们可以使用多个内核来产生不同的特征。为了结束这篇博客,我们了解了卷积是什么以及为什么它们在深度学习中如此有用。图像块的解释易于理解和计算,但有其理论局限性。通过学习傅里叶变换,我们知道经过傅里叶变换后,在时域中有很多关于物体方向的信息。通过强大的卷积定理,我们了解到卷积是像素之间的信息流。然后我们扩展了量子力学中传播子的概念,并在确定性过程中获得了随机解释。我们展示了互相关和卷积之间的相似性,卷积网络的性能可能基于特征图之间的互相关程度,通过卷积验证。最后,我们将卷积与两个统计模型相关联。就个人而言,我觉得写这个博客很有趣。很长一段时间以来,我觉得本科数学和统计学课是浪费时间,因为它们太不切实际了(甚至是应用数学)。但随后——就像突然中奖一样——所有的知识都交织在一起,并带来了新的理解。我认为这是一个很好的例子,说明我们应该对所有大学课程保持耐心——即使它们一开始看起来毫无用处。

    傅里叶级数是傅里叶在研究哪种物理现象时提出的_二维快速傅里叶变换 c语言_二维傅里叶反变换

    ‧‧‧‧‧‧‧‧‧‧‧‧END

    站内大部分资源收集于网络,若侵犯了您的合法权益,请联系我们删除!
    欧资源网 » 有太多的公开课、教程在反复卷积卷积的好,却都没有讲什么是“卷积”

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    欧资源网
    一个高级程序员模板开发平台

    发表评论