当前位置:网站首页>卷积神经网络“卷积”的深层理解
卷积神经网络“卷积”的深层理解
2022-06-21 12:18:00 【小小小~】
一、什么是卷积:
在高等数学中,卷积是一个泛函数,具体来说就是通过两个函数f和g生成第三个函数的一种数学运算,其本质是一种特殊的积分变换,表征函数f与g经过翻转和平移的重叠部分函数值乘积对重叠长度的积分。卷积有如下的定义公式:
将f函数和g函数设定为如下两个曲线。
可以设f(t)曲线为我们一天的时间与进食量的关系曲线。g(t)为时间与剩余食物的多少。
从图像可以看出,假设要求t时刻胃里的食物残余量。在x时刻吃了一份米饭,那么在t时刻胃里米饭的剩余量为g(t-x),这仅仅是x时刻大米饭的剩余量。对以上进行扩展的话,t时刻之前所有进食的东西到t时刻剩余量我们可以以积分的形式进行表达。也就是 ∫ 0 t f ( x ) g ( t − x ) d x \int_0^t {f(x)g(t-x)} \,{\rm d}x ∫0tf(x)g(t−x)dx,对以上的解释进行一个总结的话我们就可以得出如下结论:
t时刻的食物剩余量与t时刻之前所有时刻的进食量有关,也就是t时刻之前的进食量越多,其剩余量越多。
这也就是卷积的基本表达形式。反应到图像即为如下图:
上图链接两个函数图像的白色线就是t时刻之前吃的东西与剩余多少的关系点。,将上图进行翻转会出现如下图。
原分享者认为,之所以叫卷积是因为有一个反转的操作,也就是向上或者向下叠的操作,也就是“卷”的动作,所以为卷积。
二、神经网络的卷积又是什么样子的?

上图就是一个卷积核在图像上进行卷积的一个操作。点对点相乘,后将相乘的结果进行一个相加的操作。那么这又和卷积有什么关系呢?如下图:
在第一节我们例子里也说过,t时刻的食物剩余量与t时刻之前所有时刻的进食量有关,也就是t时刻之前的进食量越多,其剩余量越多。
抽象为卷积核如上图,可以将卷积核中的中心核定义为t时刻剩余的食物量。周围一圈的数值可以定义为t时刻之前所有时刻的进食量,在原始的卷积公式 ∫ 0 t f ( x ) g ( t − x ) d x \int_0^t {f(x)g(t-x)} \,{\rm d}x ∫0tf(x)g(t−x)dx可以看出,f(x)可以与g(t-x)相消,得到t的。反应到如上图可以看出,我们如果想要求f(x-1,y-1)这个点对应的g(x)时,我们可以假设x-1,y-1与那个数相加会得到x,y。可以得出是1,1。也就是f(x-1,y-1)对应的g(x)为g(1,1),综上我们可以得出如下图的公式:
那么我们从图中可以看出,这两两对应的点与传统卷积对应的方式是反的。所以需要将g函数,也就是上图中我们绘制的"卷积核"进行反转180度才能够对应上,如下:
这个操作与数学上的卷积”卷“的动作一致了。综合卷积函数的解释我们可以得出卷积核的意义所在。也就是卷积核所对应源图像上中心点的数值受其周围点影响。也可以解释为中心点对周围点的一个试探,即如果想要考虑这个特征点时,我们就将此点对应的数值调高,反之则调低。而卷积核,也就是g函数就是规定影响多少的这个函数。也就将图像卷积与泛函数的卷积定义联系了起来。
三、卷积到底在做什么?

上幅图是经过卷积前后的对比,整体上来看,其主要特征基本相似,但是并不是完全相等。但是缩小到局部来看,他们确实相等的。这也是神经网络中局部特征提取的一个过程。如下图所示:
上图中左面的数字也就是卷积核中的数值矩阵(水平边界过滤器、垂直边界过滤器),而右面的部分是对应卷积核在特征提取完之后特征图。卷积核之所以称为过滤器,是因为它可以过滤掉与卷积核特征不一致的特征局部特征,如下图:
当卷积核运算到蓝框时,他们的特征是完全对应的,则卷积运算后的数值相对较高图中显示为1。反之如下图,结果为0.55。
将具有不同特征的卷积核运用到同一图像时,则会出现如下情况:
最后三个输出结果相加,则就出现了本节开头的那个特征了。这也是为什么神经网络需要多个卷积核来进行特征提取的原因,多个卷积核可以获得不同的特征,来过滤出最想要的特征图效果。
本文仅对学习进行记录,原版出自王木头视频分享,侵删!感谢分享,受益匪浅。
原版链接如下:
https://www.bilibili.com/video/BV1VV411478E?spm_id_from=333.999.0.0&vd_source=daca59f06bb2dadbd77ae52d8da8748c
边栏推荐
- Quantitative research on heterogeneous communities 4 rate of change with bands
- Why are there only 13 root domain name servers in the world
- Centos7 upgrade MySQL 5.6.40 to enterprise 5.6.49
- Vs code + GDB download and debugging of STM32 development
- A recovery solution of system paralysis caused by upgrading glibc of VMware virtual machine
- How does Huawei build a project centered project management system from 0 to 1?
- i. MX - rt1052 clock and phase locked loop (PLL) analysis
- Apache shardingsphere 5.1.2 release | new driving API + cloud native deployment to create a high-performance data gateway
- Transaction
- 5. 数组
猜你喜欢

Quantitative research on heterogeneous communities 4 rate of change with bands

3D Slicer将分割结果保存

CPU、MPU、MCU、SoC、MCM介绍

Apache shardingsphere 5.1.2 release | new driving API + cloud native deployment to create a high-performance data gateway

动手学数据分析 数据重构

配电室环境监控系统技术方案

20n10-asemi medium and low voltage MOS tube 20n10

DVWA配置教程

搭建zabbix监控及邮件报警

Methods commonly used in uniapp (part) - timestamp problem and rich text parsing image problem
随机推荐
3D Slicer导入标签与查看标签
[100 unity stepping pit knowledge points] | draw cube dotted line and sphere dotted line (gizmos auxiliary wireframe) in the editor
[100 unity pit knowledge points] | unity uses quaternion Angleaxis random one direction
Transaction
Is it safe to hit new bonds with one click? Is it reliable?
Architect training plan - infinite thinking - variables
Hands on data analysis data reconstruction
Why are there only 13 root domain name servers in the world
五大(七大)原则-系统学习三
Inheritance and override of methods
Methods commonly used in uniapp (part) - timestamp problem and rich text parsing image problem
CPU、MPU、MCU、SoC、MCM介绍
Hands on data analysis data visualization
2. 数据类型
"Forget to learn again" shell process control - 36. Introduction to the for loop
Redis里5种基本数据类型常用指令
[100 unity step pit knowledge points] | collision box detection physics in unity OverlapBox、OverlapCaps
i. MX - rt1052 clock and phase locked loop (PLL) analysis
Some functions used in tensorflow
How does Huawei build a project centered project management system from 0 to 1?