卷积神经网络(CNN)

大家好,这里是七七,今天来更新关于CNN相关的内容同了。本文是针对CNN原理的说明,但对于小白不是非常友好,建议先掌握神经网络相应知识再进行阅读哦。


一、卷积与互相关

卷积

卷积运算是对两个函数进行的一种数学运算,结果是一个新的函数,如果第一个函数为f(x),第二个为g(x),那么其卷积运算被定义为

对于这种运算,如果用手算的话,我们一般先画出f(t),再画出g(t),然后再对g(t)沿y轴翻过去变为g(-t),然后根据偏移量x来进行平移,最后再相乘,就可以得到对应点的卷积值了

值得一提的是,卷积运算满足交换律

互相关

互相关运算与卷积运算极为相似,其公式是这样的

计算过程同上,不再赘述。

值得一提的是,互相关运算不满足交换律

二、卷积核与特征映射图

在图像处理领域中,我们经常使用卷积神经网络(CNN)来进行处理。一般来说,用卷积操作或互相关操作,两者的作用是完全相同的。但出于算法简便性考虑,一般用互相关运算。其实很多神经网络平台提供的库函数中所使用的就是互相关而非卷积,但习惯地称之为卷积。

再用CNN处理图像时,待处理的图像称之为输入,并表示为一个二元离散函数f(m,n)。为了从图片中提取出来特征,我们还需要另一个函数与图像进行卷积,从而提取出相应的特征,而对应的函数就是卷积核,或核函数g(n,m)。卷积的结果是一个新的二元离散函数,被称为特征映射图。这一过程被称为特征提取。

三、CNN的一般结构

  1. 在第二部介绍过特征提取物过程,就是用核函数与原始数据进行卷积,从而提取出特征。
  2. 下一步就是用激活函数对特征映射图进行非线性处理,如把小于0的数据都变为0。
  3. 接着就是采用池化函数分别对特征图进行池化,原理就是使用图像中某个位置及其周边相邻位置的总体统计特征来代替该位置的取值。可以采用最大池化、平均池化等一系列方法。池化的目的是亚索图像的尺寸,凸显特征。
  4. 最后呢,就是需要将池化后的数据展开为1维的数据,然后投入MLP中进行训练。

在这一过程中,也有一些术语,这里简要介绍一下

  • 卷积级:将原始图像与核函数进行卷积这一过程
  • 探测级:用激活函数对特征映射图进行非线性处理
  • 池化级:池化这一过程
  • 卷积层:卷积级、探测级、池化级合起来

因此呢,框架也就基本确定了,CNN的一般架构在大的层面上可分为卷积层+MLP层。其中卷积层权值不变,MLP层权值会改变。

当然,也可以设立很多个卷积层1、卷积层2......;卷积层中也可能存在某些带训练的参数(如偏移量)。

三、边界策略和池化

边界策略

一般来说,输入图像的尺寸远大于核函数的尺寸,而特征图的尺寸不仅取决于原始尺寸和核函数,与边界策略也有关系。

所幸的是,边界策略一般不是那么重要,因为一般来说,图像的特征更多会集中在中心,与边界关系不大

池化

这里比较重要的是步幅,就是每次池化窗口移动的距离。最为常见的情况是等于池化窗口边长-1。

池化还有一个很重要的特征,就是对局部微小位移的不变性。也就是说,被池化的图像中所有像素或部分像素发生了微小位移后,池化的结果并不会发生改变。

相关推荐
巴里巴气17 分钟前
安装GPU版本的Pytorch
人工智能·pytorch·python
「、皓子~26 分钟前
后台管理系统的诞生 - 利用AI 1天完成整个后台管理系统的微服务后端+前端
前端·人工智能·微服务·小程序·go·ai编程·ai写作
笑衬人心。1 小时前
初学Spring AI 笔记
人工智能·笔记·spring
luofeiju1 小时前
RGB下的色彩变换:用线性代数解构色彩世界
图像处理·人工智能·opencv·线性代数
测试者家园1 小时前
基于DeepSeek和crewAI构建测试用例脚本生成器
人工智能·python·测试用例·智能体·智能化测试·crewai
张较瘦_1 小时前
[论文阅读] 人工智能 + 软件工程 | Call Me Maybe:用图神经网络增强JavaScript调用图构建
论文阅读·人工智能·软件工程
大模型真好玩1 小时前
准确率飙升!Graph RAG如何利用知识图谱提升RAG答案质量(四)——微软GraphRAG代码实战
人工智能·python·mcp
Baihai_IDP2 小时前
vec2text 技术已开源!一定条件下,文本嵌入向量可“近乎完美地”还原
人工智能·面试·llm
江太翁2 小时前
Pytorch torch
人工智能·pytorch·python
拓端研究室2 小时前
专题:2025即时零售与各类人群消费行为洞察报告|附400+份报告PDF、原数据表汇总下载
大数据·人工智能