【深度学习】聊一聊什么是卷积神经网络,卷积是什么意思?

简介: 【深度学习】聊一聊什么是卷积神经网络,卷积是什么意思?

卷积

在泛函分析中,卷积、旋积或褶积(英语:Convolution)是通过两个函数f和g生成第三个函数的一种数学运算,其本质是一种特殊的积分变换,表征函数f与g经过翻转和平移的重叠部分函数值乘积对重叠长度的积分。

我们可以很容易的得到下面这个公式。直接看公式和概念是很抽象的,所以我们先看下面的这个例子。


举个例子

假如有一个人24小时内不间断吃食物,那么进食的就可以用下面这张图表示。横坐标表示进食的时间,纵轴表示进食的量。


但是呢一个人不可能只进食,所以他还会消化。所以消化也可以用一张表来表示。横轴表示消化的时间,纵轴表示对应时间你消化的比例。时间越长 消化就越多。


那么此时问:下午2点这个人体内还有什么食物?

不定时的进食,和不间断的消化是一个动态过程,并没有那么容易计算出来。但是卷积却能很好的替你解决这个问题。


解决方法

这里设 f函数表示进食,g函数表示消化。

假如我们不考虑消化的话,我们只需要将每次进食的量进行一个累加即可。那么反应到图上就是求[0,14]点的一个区域面积。

但是,他吃了东西还会一直消化,所以单纯的看f函数是远远不够的,假如这个人在12点吃了一碗米饭,那么在下午2点还剩多少呢?这里就需要看g函数了。


从12吃米饭,到下午2点共用了2小时,那么我们就需要看g函数在2小时后还剩多少食物的一个百分比。那么我们就可以得出一个公式 residue = f(12) * g(14 - 12) 。那么我们就可以得出一个进食点在下午2点还剩的食物量。

所以我们要计算所有食物最后的剩余量,需要在[0,14]点这段区间内吃的所有食物进行一个计算即可。假如我们在x时刻进食,计算t时刻还剩多少食物。可以得到一个公式。

我们仔细看f的参数和g的参数最近会把x消掉,这也是卷积的一个标志。接下来我们聊一聊xg-x分别表示什么含义。

假如我们T时刻进食,那么对应在g函数就是0时刻,就会有下面图中这样一条连线。

那么将所有进食时刻进行一个连线就是下面这张图的样子。

那么这个时候我们就得出一个相加积分公式:


现在我们推出来公式和卷积公式仅仅是符号的差异,其他均相同。我们的[0,t]表示的是时间,所有不可能有负数,有一定的物理意义。


总结

有一个系统,input不稳定 output稳定,那么我们就可以拿卷积来计算这个数值。

神经网络中的卷积

卷积神经网络主要的作用就是识别图片中的某一些特征。例如获取图片中的人脸、以及面部表情等。

像素、灰度值

例如下面这种图片是一个分辨率为80*40照片,我将其做了一个放大处理。我们可以看到其有很多的小方格。这里的每一个方格就是一个像素。灰度值就是每个格子中RGB颜色对应的数值。


卷积操作

卷积操作是使用一个二维的卷积核在一个批处理的图片上进行不断扫描。

这里我们以一个3*3的卷积核进行演示。卷积核与图片对应的俩个位置进行相乘,得到9组结果然后进行累加,得到一个新的像素点。


但是呢,这样处理完图像后,后少一圈。

所以引入Padding:为了使输入的矩阵尺寸和输出的矩阵尺寸一致,我们会在输入矩阵的外层一圈补0像素,这样就可以得到同样尺寸的图片。


思考

这和前面说的卷积操作好像不太一致啊。 哪个是f函数,哪个是g函数?

图像的卷积操作就是拿图片和卷积核先相乘后相加。这个和前面说的卷积的方法是相同的。

那么我们就可以得出图片和卷积核必然一个是f另一个是g。因为图片是一直在变化的,而卷积核是全程不变的。


卷积核作用

周围很多像素点对某一个像素点产生的影响。

为什么这么说呢,看下面这几种卷积核操作完后的效果。


平滑卷积

平滑卷积就是将图片变得更加平滑、朦胧。


这里以一张教材的图片为例。左侧为平滑前的图片,右侧为平滑后的图片。我们可以明显感觉到差异。


周围的像素点是如何对当前像素点产生影响的,理论来说可以从周围一圈像素点到无穷远的像素点为当前像素点进行的影响。但是呢当我们只需要考虑周围一圈就可以解决问题时绝对不会考虑俩圈,效率问题么。


垂直边界卷积核与水平边界卷积核

我们可以看下面这种图,垂直边界卷积核就只把垂直方向的线条给提取出来了,忽略水平方向的线条。

水平边界卷积核就只把水平方向的线条给提取出来了。


那么就是说只要我们选取的卷积核合适,最后就可以对图片实现过滤然后把想要的特征保存下来。

卷积核在数学的运算

令x,y表示在图片上某一个点位置。那么我们得出公式:f(x, y) * g(x, y) = ∑ f(x, y) · g(m-x, n-y)

这里为了方便计算。卷积核为3*3的,只考虑周围一圈对当前像素点的影响。


对应关系应该是这样的:

f(x-1, y-1) * g(1, 1) ;

f(x, y-1) * g(0, 1) ;

f(x+1, y-1) * g(-1, 1) ;

f(x-1, y) * g(1, 0) ;

f(x, y) * g(0, 0) ;

f(x, y-1) * g(0, 1) ;

f(x-1, y+1) * g(1, -1) ;

f(x, y+1) * g(0, -1) ;

f(x+1, y+1) * g(-1, -1) ;


仔细发现就是刚好g表倒过来。


所以我们发现g函数不等于卷积核。因为卷积核并没有进行翻转操作。


卷积神经网络

卷积神经网络一般用来做图像识别的,就比如下面这种情况,输入x/o通过卷积神经网络(CNN)就可以识别出来他们是x还是o。

不仅可以识别整整齐齐的这种图片,就比如下面这种不规则的也可以识别。

这里我简化像素值,认为黑色是-1,白色是1。

我们可以将规则的x和不规则的x进行对比。发现虽然它们不是一模一样,但是局部是存在相同部分的。


所以卷积神经网络的第一步就是把图片的局部特征进行提取。然后将这些局部特征交给神经网络。然后由神经网络来做判别。

这里我们可以使用三个卷积核对特征进行一个提取。分别为左上到右下为1,x的位置是1,左下到右上都是1。

下面这种情况就是刚好匹配。最后结果为1;

然后将所有的图像都进行一次卷积操作。最后我们就可以得出三张卷积后的图像。

至于之后的池化啊、归一化等等后面再说。

目录
相关文章
|
3天前
|
机器学习/深度学习 搜索推荐 安全
深度学习之社交网络中的社区检测
在社交网络分析中,社区检测是一项核心任务,旨在将网络中的节点(用户)划分为具有高内部连接密度且相对独立的子群。基于深度学习的社区检测方法,通过捕获复杂的网络结构信息和节点特征,在传统方法基础上实现了更准确、更具鲁棒性的社区划分。
18 7
|
1天前
|
机器学习/深度学习 监控 自动驾驶
卷积神经网络有什么应用场景
【10月更文挑战第23天】卷积神经网络有什么应用场景
6 2
|
1天前
|
机器学习/深度学习 自然语言处理 算法
什么是卷积神经网络
【10月更文挑战第23天】什么是卷积神经网络
9 1
|
4天前
|
机器学习/深度学习 自然语言处理 TensorFlow
深度学习的奥秘:探索神经网络背后的魔法
【10月更文挑战第22天】本文将带你走进深度学习的世界,揭示神经网络背后的神秘面纱。我们将一起探讨深度学习的基本原理,以及如何通过编程实现一个简单的神经网络。无论你是初学者还是有一定基础的学习者,这篇文章都将为你提供有价值的信息和启示。让我们一起踏上这段奇妙的旅程吧!
|
4天前
|
机器学习/深度学习 人工智能 算法
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型
车辆车型识别,使用Python作为主要编程语言,通过收集多种车辆车型图像数据集,然后基于TensorFlow搭建卷积网络算法模型,并对数据集进行训练,最后得到一个识别精度较高的模型文件。再基于Django搭建web网页端操作界面,实现用户上传一张车辆图片识别其类型。
12 0
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型
|
5天前
|
机器学习/深度学习 人工智能 自动驾驶
深度学习中的卷积神经网络(CNN)及其应用
【10月更文挑战第21天】本文旨在深入探讨深度学习领域的核心组成部分——卷积神经网络(CNN)。通过分析CNN的基本结构、工作原理以及在图像识别、语音处理等领域的广泛应用,我们不仅能够理解其背后的技术原理,还能把握其在现实世界问题解决中的强大能力。文章将用浅显的语言和生动的例子带领读者一步步走进CNN的世界,揭示这一技术如何改变我们的生活和工作方式。
|
2天前
|
机器学习/深度学习 算法 计算机视觉
深度学习与生活:如何利用卷积神经网络识别日常物品
【10月更文挑战第24天】在这篇文章中,我们将探索深度学习如何从理论走向实践,特别是卷积神经网络(CNN)在图像识别中的应用。通过一个简单的示例,我们将了解如何使用CNN来识别日常生活中的物体,如水果和家具。这不仅是对深度学习概念的一次直观体验,也是对技术如何融入日常生活的一次深刻反思。文章将引导读者思考技术背后的哲理,以及它如何影响我们的生活和思维方式。
|
19天前
|
机器学习/深度学习 人工智能 算法框架/工具
深度学习中的卷积神经网络(CNN)及其在图像识别中的应用
【10月更文挑战第7天】本文将深入探讨卷积神经网络(CNN)的基本原理,以及它如何在图像识别领域中大放异彩。我们将从CNN的核心组件出发,逐步解析其工作原理,并通过一个实际的代码示例,展示如何利用Python和深度学习框架实现一个简单的图像分类模型。文章旨在为初学者提供一个清晰的入门路径,同时为有经验的开发者提供一些深入理解的视角。
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习中的卷积神经网络(CNN)及其应用
【9月更文挑战第24天】本文将深入探讨深度学习中的一种重要模型——卷积神经网络(CNN)。我们将通过简单的代码示例,了解CNN的工作原理和应用场景。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的信息。
80 1
|
12天前
|
机器学习/深度学习 人工智能 监控
深入理解深度学习中的卷积神经网络(CNN):从原理到实践
【10月更文挑战第14天】深入理解深度学习中的卷积神经网络(CNN):从原理到实践
42 1