卷积卷积神经网络

article/2025/10/7 12:11:18

文章目录

    • 一、关于卷积(convolution)的直观感受
    • 二、卷积在不同领域的应用
    • 三、卷积神经网络(CNN)的诞生
    • 四、卷积神经网络(CNN)
      • (1)为什么需要卷积层
      • (2)池化(Pooling)层是干嘛的
      • (3)全连接层的调用
      • (4)为什么卷积神经网络这么厉害
      • (5)CNN未来的改进方向是什么

一、关于卷积(convolution)的直观感受

在这里插入图片描述

卷积定理:函数卷积的傅里叶变换等于函数傅里叶变换的乘积
时域的卷积等于频域的乘积

卷积的数学形式:
卷: f ( T ) g ( t − T ) f(T)g(t-T) f(T)g(tT)
积: ∫ \int

在这里插入图片描述
其实卷积不对g函数进行折叠转换也设可以的

在这里插入图片描述
卷积本质上还是一种运算,运算符是*,区别于乘法运算,比常见的加减乘除要高级很多。卷积用极简的数学形式漂亮地描述了一个动态过程。
在这里插入图片描述
动态过程:一个函数钻进另一个函数的动态过程,两个函数的重叠面积一定程度上描述了卷积的结果。

二、卷积在不同领域的应用

通信
物理
电路学
信号
图像处理
卷积
将一种信号搬移到另外的一种频率当中 实现调制功能
系统对某个输入物理量进行影响污染
某种系统线性时不变系统冲击函数对输入的响应
卷积就是对信号的滤波 过滤出我们感兴趣有价值的信息
卷积好比一把好用的锉刀 被广泛应用于平滑 锐化 展宽等各种操作

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、卷积神经网络(CNN)的诞生

法国学者Yann LeCun将卷积运算与神经网络相结合,提出了著名的卷积神经网络
在这里插入图片描述

在这里插入图片描述

伴随着21世纪海量互联网大数据和GPU等硬件设备的快速发展,深度卷积神经网络自2012年开始一炮而红,引领了过去十年间人工智能技术的再度崛起,在众多领域显示了超越人类的强大能力。

卷积神经网络最早应用于计算机视觉领域。人脸识别、数字识别、相机美颜,背后算法的核心都是CNN技术。

卷积神经网络在把图像交给神经网络之前要对图像进行一轮卷积的操作。

图片信息可以转化为数字矩阵
在这里插入图片描述

为了提取图像的特征,我们会构造一个正方形的矩阵(卷积核)。
在这里插入图片描述

将卷积核扣到原始图像上,重合格子里的数字相乘,然后相加,输出新的结果至新的图像矩阵上对应的位置(卷积核的中心位置)。这个过程用数学式子表达就是二维离散卷积操作

在这里插入图片描述

但是这样做原图图像边缘的像素点就遍历不到了,每次生成新的矩阵都要小上一圈。所以一般在卷积操作之前一般会在原始图像边缘补上一圈0,保证输入输出维度一致

在这里插入图片描述

卷积操作就是用一个输入乘上系统函数然后计算输出。
在图像处理中,输入就是原始图像的像素,系统函数就是卷积核

在这里插入图片描述

卷积操作的意义,不同卷积核会过滤出不同的图像,能够提取出图像的不同特征,因此这里的卷积核也被称为过滤器

在这里插入图片描述

卷积不仅可以用于处理二维的图像,还可以处理一维的音频信号和自然语言。只不过这里用的卷积核是1*N的一维卷积核

在这里插入图片描述

四、卷积神经网络(CNN)

神经网络:CNN、RNN、LSTM、RBM
如果说神经网络是一个黑盒子,吃进去数据吐出来结果,那么不同神经网络最大的区别就是肚子里的网络结构。卷积神经网络有什么过人优势呢?

  • 局部感知机制
  • 权值共享
    在这里插入图片描述
    什么是权值共享?
    个人理解:对于以上例子来说。对于全连接层来说,每个输出神经元都要从前一层的每个神经元学习不同的权重(输入:展平后的特征图;过滤器:输入和输出两层神经元之间的每条全连接连线上的权重(1280720);输出:全连接后的向量);
    对于卷积层来说,每个输出的神经元对于前一层的每个神经元的权重是一样的,都是那个滑动窗口的权重。(输入input layer:特征图;过滤器:卷积核(5
    5);输出:卷积操作后的特征图)

(1)为什么需要卷积层

卷积神经网络(CNN)的结构

卷积神经网络模型:
在这里插入图片描述

传统意义上的神经元:

在这里插入图片描述
在这里插入图片描述

节点表示神经元,连线表示计算关系,每条线都有一个权重。所谓学习或训练就是输入大量数据,在训练中调整权重。

传统意义上的神经网络,每层节点都和上一层的所有节点相连,构成所谓的全连接网络。看上去密密麻麻,但是冗余度大,这种模型比较笨拙,吃的东西多,又没什么显著效果。学术一点说就是参数众多,难以训练

而卷积运算恰恰相反,一个简洁优美的公式就能描述,因此科学家们萌生了想要借助卷积给神经网络减肥的想法。

以二维图像为例,3*3的卷积核却能起到特征提取的大作用,通过二维离散卷积操作全连接变成一个个小的局部连接,实现了高效的图像特征提取,这些小小的卷积核却具备传说中的空间平移不变的特性

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

对于一张照片,不管你的脸在哪个位置,她都能找出来。无论图像大小如何,每个滑动区域都具有相同的共享权重,如果使用3*3大小的卷积核就只需要学习9个参数(忽略bias)。

在这里插入图片描述

卷积运算得到的结果通常被称为:特征图(feature map),特征图的每个点都是由上一层的若干个点共同决定的,如果用的是3*3的卷积核,每个点是由上一层的9个点决定的,我们就把这9个点称为这一点的感受野

在这里插入图片描述

深度卷积神经网络:卷积层数越多,每点的感受野就越大,对复杂特征的表达能力越强。

以图像分类为例,在多层卷积神经网络中,第一层可以表示在特定的角度和位置是否出现边缘;第二层可以将这些边缘组合成有趣的模式,比如花纹;在第三层中,也许上一层的花纹能够进一步汇合成物体特征部位的模式。这样逐级表示下去,就能够学到图像的各种特征了。

在这里插入图片描述

在这里插入图片描述

之所以神经网络能解决非线性问题,本质上是因为加入了激活函数这一非线性因素。

在这里插入图片描述

卷积神经网络解决非线性问题的本质是加入了线性整流单元(Rectified Linear Unit)。

在这里插入图片描述

把特征图上的所有负数都变成0,正数不变:把所有意义不大的特征全部换成0,保留意义较大的特征。

在这里插入图片描述

(2)池化(Pooling)层是干嘛的

池化的意思是淤积、汇聚。

在这里插入图片描述

抓住主要矛盾,忽略次要因素。池化层把局部多个神经元的输出组合成下层单个神经元来减少数据维度(在一个小矩阵中找最大值【最大池化】或者平均值【平均池化】)。局部池化一般选择2*2的卷积核即可。目的是进一步放大主要特征,忽略掉几个像素的偏差,其意义不光能降低数据的维度减少训练参数,同时还能避免过拟合

(3)全连接层的调用

在这里插入图片描述

全连接层将相邻两层的神经元全部交叉相连,与传统的神经网络的做法是一样的。其作用好比从局部出发做出最终结论,和前面的卷积层共同形成了先局部再整体的学习结构:卷积+池化,多层集连,对输入数据进行多尺度特征提取和深度学习。

  • 输入
    在这里插入图片描述

在这里插入图片描述
展平:将得到的55的矩阵拼接成一个行向量(125)

  • 输出
    比如:one-hot编码
    在这里插入图片描述
  • 有了期望的输入和输出就可以对网络进行训练了
    在这里插入图片描述

(4)为什么卷积神经网络这么厉害

在这里插入图片描述

  • LeNet
    在这里插入图片描述

  • AlexNet
    这个网络结构和LeNet非常相似,但是更深更大,并且使用层叠的卷积层来获取特征。识别率超高,使学术界意识到卷积对神经网络改造的巨大潜力。

  • ZFNet
    通过可视化展示了卷积神经网络各层的功能和作用

  • VGGNet
    牛津大学提出了VGGNet,采用堆积的小卷积核替代大的卷积核不仅能够增加决策函数的判别性还能够减少参数量。

  • GoogleNet
    增加了神经网络的宽度,使用1*1卷积降维,减少参数量,在多个不同尺寸的卷积核上进行卷积后再聚合。

  • ResNet(残差网络)
    解决了网络模型的退化问题,使得神经网络可以更深。

卷积神经网络越变越宽,越变越深,越来越复杂。应用也从最初的计算机视觉快速拓展到语音识别、自然语言处理等领域,进而应用到工程科学的各个行业。但不管怎么变,CNN的核心思想都没变:利用卷积核的特征提取能力,通过多层级联,实现多尺度特征学习。

(5)CNN未来的改进方向是什么

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

传统的CNN对于输入形式、卷积核、级联和初始化方法都没有严格的要求,在这些方面都有很大的改进空间。

  • 例如,有人在做CNN显著性检测时,就是把图像先进行了超像素分割

在这里插入图片描述

在这里插入图片描述
然后把分割后的超像素,作为新的网络输入。

  • 传统的CNN在进行特征提取的时候,认为提取到最后就是精华,其实中间晒出去的东西,也可以好好利用。有人把这种思想用在人脸识别上,取得了很好的效果。

  • 传统的CNN就是单纯的卷积核,其实也可以利用其它类型的矩阵。如gabor过滤器、小波核之类,也有不错的效果
    在这里插入图片描述

  • 训练算法也有改进的空间
    非线性激活函数
    在这里插入图片描述

整理自视频资料:B站up主耿直哥
【卷积】直观形象的实例,10分钟彻底搞懂
【卷积神经网络】8分钟搞懂CNN,动画讲解喜闻乐见


http://chatgpt.dhexx.cn/article/N0hBV2NK.shtml

相关文章

MATLAB (n,k,m)卷积码原理及仿真代码(你值得拥有)

卷积码原理介绍 1.基本概念 首先卷积码是一种纠错码,让我们先从大格局出发,去认识卷积码。如图1所示我是先从通信原理书上了解了卷积码的概念,再结合网上部分资料,勉强搞懂,感觉主要需要掌握卷积码编码器、状态图、网…

通信原理学习笔记4:信道编码、分组码、卷积码、现代信道编码(Turbo码、LDPC码、Polar码)

信道编码 / 前向纠错码FEC 思想是在数据中增加冗余信息,即校验码元 / 监督码元,从而检错、纠错 信道编码的优劣评判 首先,最基本的是要追求低差错率 实现纠错很简单,只要多添加冗余信息就好;但实际中,我…

韩信点兵算法:

韩信点兵问题:韩信点兵不足百人,3人一行排列多一人,7人一行排列少两人,5人一行正好, 输出韩信究竟点了多少兵。 使用 math 类的DivRem 方法进行运算。 static void Main(string[] args){///韩信点兵不足百人&#xff…

韩信点兵

韩信点兵&#xff1a; 韩信带1500名兵士打仗&#xff0c;战死四五百人&#xff0c;站3人一排&#xff0c;多出2人&#xff1b;站5人一排&#xff0c;多出4人&#xff1b;站7人一排&#xff0c;多出6人。韩信马上说出人数&#xff1a;1049。 代码实现&#xff1a; <span styl…

韩信点兵(python)

韩信点兵 全部士兵按每行8人站立&#xff0c;剩余7人 全部士兵按每行7人站立&#xff0c;剩余6人 问题&#xff1a;已知每一营士兵人数在1000~2000之间&#xff0c;如何利用循环判断表示出代码逻辑 for num in range (1000,2000):if num % 87 and num %76 and num%65\and num%5…

经典算法--韩信点兵

韩信点兵是一道古代的数学题&#xff0c;题意&#xff1a;韩信点兵不足百人&#xff0c;三人一排多1人&#xff0c;七人一排少2人&#xff0c;五人一排正好。问韩信带兵多少&#xff1f; /*** 韩信点兵&#xff1a;* 韩信带兵不足百人&#xff0c;3人一排多1人&#xff0c;7人一…

枚举算法:韩信点兵。

韩信点兵。韩信在点兵的时候&#xff0c;为了知道有多少名士兵&#xff0c;同时又能保住军事机密&#xff0c;便让士兵排队报数。 按从1至5报数&#xff0c;最末一个士兵报的数为1。 再按从1至6报数&#xff0c;最末一个士兵报的数为5。 再按1至7报数&#xff0c;最末一个士兵报…

java工作流activity_activity 工作流学习(一)

启动流程实例 什么是流程实例?根据一个流程定义具体的一次执行过程就是一个流程实例,一个流程定义对应多个流程实例(一对多关系) 为了演示:在流程图中指定办理人是谁,现在是写死的,表示只能张三能提交请假申请。后面会讲解如何动态指定。 //根据流程定义的Id启动一个流程实…

工作流:一文让你学会使用flowable工作流

1.请假流程图 下图是 一个请假申请的简单流程图 &#xff08;1&#xff09;申请人通过发起流程进行请假申请&#xff0c;给经理发送一个待审批事项&#xff1b; &#xff08;2&#xff09;经理在待办列表选择事项&#xff0c;进行审批&#xff0c;approved同意或者rejected驳回…

jeesite工作流使用

问题&#xff1a;jeesite工作流如何使用&#xff1f; 背景&#xff1a;公司没人熟悉工作流&#xff0c;现在要上线办公系统&#xff0c;请假&#xff0c;加班&#xff0c;报销&#xff0c;预审批&#xff0c;用印&#xff0c;付款等工作流要写&#xff0c;之前有简单版本&…

工作流的大致开发流程

前段时间公司在做一个oa的项目&#xff0c;用到了flowable工作流&#xff0c;刚开始的时候还在纠结于是用activity还是flowable&#xff0c;后来查了相关资料发现flowable的作者之前就是开发activity的作者&#xff0c;只不过后来自己出去又搞了一套就叫做flowable&#xff0c;…

flowable工作流所有业务概念

1.什么是工作流审批 根据本人的理解&#xff0c;就是审批流程管理。 2.什么是flowable 1.官方解释 官方解释如下&#xff1a; Flowable 项目提供了一套核心的开源业务流程引擎&#xff0c;这些引擎紧凑且高效。它们为开发人员、系统管理员和业务用户提供工作流和业务流程管…

微服务与工作流

本文主要想谈一谈工作流在微服务系统中的使用以及工作流能够为微服务系统带来的好处。 通过查找资料可得&#xff0c;微服务的编排主要分为两种形式&#xff0c;一种是“choreography”&#xff0c;有人将其翻译成微服务的编排&#xff1b;另一种是“orchestration”,有人将其翻…

Camunda工作流引擎入门

文档集合 1、camunda文档&#xff1a;https://docs.camunda.org/get-started/quick-start/ 2、camunda资源下载&#xff1a;https://camunda.com/download/ 3、camunda示例github仓库&#xff1a;https://github.com/camunda/camunda-bpm-examples 4、camunda 代码仓库&…

工作流设计详解

工作流 概念&#xff1a; workflow流程性通知和审批控制&#xff0c;业务流程中、发送、提供附加信息或进行附加业务处理&#xff0c;两个或两个以上的人为共同目标&#xff0c;连续以并行或串行的方式完成某一业务。 工作流 设计&#xff1a; 按照业务规划流程图&#xff0…

什么是工作流?为什么程序员要用它?

每一个程序员&#xff0c;在接触到工作流的时候&#xff0c;都会有这么一个疑问——我用一般的方法可以实现&#xff0c;为什么还要用工作流&#xff1f; 我曾经也问过这个问题&#xff0c;不过现在稍微有点明白了。别着急要答案&#xff0c;看过下面的例子&#xff0c;或许你…

什么是工作流

什么是工作流&#xff1f; 工作流是从英文单词work flow中直译过来的。最直白的意思就是日常工作中相对固定的流程计算机化。 在此列举两个工作流简例&#xff1a; 客户到银行开户的工作流&#xff1a; 客户索取开户资料单——资料填写——营业员核对个人证件——营业员核对帐款…

什么是工作流?如何利用工作流引擎实现业务流程

工作流引擎是用来实现工作流的一种组件化工具&#xff0c;它是一整套解决方案&#xff0c;比如说一般工作流引擎包含这些功能&#xff1a;流程节点管理、流向管理等&#xff0c;是为了减小开发成本而推出的。因为在软件开发过程中&#xff0c;如果是从零开始实现工作流&#xf…

什么是工作流,flowable 与 Activiti对比

工作流 什么是工作流工作流是复杂版本的状态机Java工作流开源框架工作流对比Activiti设计器 Flowable兼容性 Camunda设计器兼容性&#xff1a;小结&#xff1a; 社区活跃度FlowableActivitiCamunda 总结 什么是工作流 工作流&#xff0c;是指“业务​过程的部分或整体在​计算…

工作流是什么

刚入职一家公司不久&#xff0c;昨天去和经理与客户对接需求的之前&#xff0c;经理问我接触过工作流没有之前。作为一个20年毕业的老人了&#xff0c;只能尴尬的说一句没有我下去会去了解下。这里我就暂且找一下别人总结的文章和大家一起学习下。 一、什么是工作流 工作流&a…