IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 卷积与池化过程维度尺寸变化与一些名词整理 -> 正文阅读

[人工智能]卷积与池化过程维度尺寸变化与一些名词整理

? 之前整理过全连接层的前向传播过程中一些权重参数的维度。这篇文章整理一下带有卷积与池化的神经网络。还是直接给一个例子,从例子出发把各个方面梳理一下。

? 以AlexNet为例(如下图):

卷积

? 卷积的作用在于提取特征。可以用不同的卷积核提取不同层次的特征

? 一般用到卷积和池化的网络都是用于图像任务,我们的输入一般就是一个三通道图像,比如上图中输入图像的尺寸为227*227*3。

? 在上图也就是第一步卷积中,对于输入尺寸为227*227*3的图像,虽然图中写了卷积核的尺寸是11*11吗?但具体来说,是11*11*3,因为输入图像有三个通道!卷积核深度要和输入图像的深度保持一致。同一个卷积核上的三个通道的并不相同,它们分别去和输入图像的三个通道进行卷积操作,因为得到的结果尺寸必然相同,将三个结果相加就得到了初步卷积的结果了。此外,每个卷积核还带有一个偏置b,因此最终得到的输出为output上各个值都+b,这就是这一步卷积的最终结果。

? 如图,一个卷积核的三个通道分别于输入图像三个通道进行卷积,并将三个结果相加,再与偏置1相加,就可以得到这个三通道卷积核对应的深度为1的特征层了。

? 除此之外,在这一步卷积过程中,因为我们得到了96个特征层(图中写了55*55*96),所以可以推断在这一步当中使用了96个卷积核。结合上面卷积核的尺寸,也就是说,在这一步卷积过程中,总共使用了96个大小为11*11*3的卷积核。

再强调一下几个重要的点:

1.卷积核深度=输入图像深度。比如输入图像是3通道的,那么这个卷积核的深度也是3,但这只是1个卷积核。

2.卷积层输出的深度也就是feature map的个数=卷积核个数。一个卷积核(不管它是多深)只能得到一个深度为1的输出(计算方式上面讲了)。

Padding

??如图,在卷积之前,我们在输入特征图的周围添加值为0的点(白色虚线框框),就是最常见的Padding。

? Padding其实就是一种边缘填充,为了减轻“越往边界处的点被计算的次数越少”这个问题,在图像最外面加一圈0,就可以增加边界点被利用的次数。一定程度上弥补边界信息缺失的问题。并且因为添加的是0,所以算出来不会对结果产生影响。也叫做Zero-padding。

卷积结果的尺寸变化

? 假设卷积前图像高H1,宽W1;

? Fh表示滤波器Filter的高,Fw表示滤波器Filter的宽;

? S为stride表示滑动窗口的步长;P为padding表示补了几圈0。

? 卷积后特征图高H2,宽W2,则有如下公式:

? 做个小补充:如果要让卷积后尺寸不变,我们另H1=H2,W1=W2? 解方程很容易有结论:
? 卷积核尺寸为3*3,padding=1,步长为1,卷积后尺寸不变

? 卷积核尺寸为5*5,padding=2,步长为1,卷积后尺寸不变
? ……以此类推?

? 比如对于下面找个卷积过程,我们来验证一下(这里没有进行padding,P=0):

? 从图中可知H1=W1=227;步长s告知=4;滤波器宽高Fh=Fw=11;H2=W2=55(用来验证)。因此有:

? H2 = W2 =(227-11+2*0)/4 + 1 = 55 符合已知。

权值共享

????卷积过程中的“权值共享”是一个比较常见的概念。其实这个我们已经知道了,我们用一个卷积核去遍历游走输入图像,那么这个filter里的数就是权重,并且它是不会变的,因此图像中的每个地方都被同样的filter扫描,就是共享。

? 举个例子,还是拿这一步卷积来说明:

? 我们已经知道了在这一步过程当中共有96个大小为11*11*3的卷积核,每个卷积核又都还有一个偏置参数b。所以共需要96*11*11*3+96 = 34944个参数,这些参数权值共享,比全连接层要减少很多参数。(假如说这里我们用全连接层去做,w层共有227*227*3*55*55*96个参数,再加上55*55*96个偏置项,共44892355200个参数。)

可以发现,通过卷积(的权值共享),我们极大地减少了参数的个数

池化

? ?池化操作的目的在于降维,进一步缩小参数量。最常用的就是max pooling,保留最大的特征值。池化核也可以定义大小和步长,类似地,池化前后的尺寸变化公式也和卷积一样。

最后要通过全连接层得到最终结果

? 卷积池化之后,要得到最终预测结果,中间还需要进行全连接层。全连接层无法连接“带形状”的输入,所以我们还是需要将其打平(转化成一个一维的向量),将其变成“一列神经元”去处理。

一些名词解释

? feature map 一般指的是卷积网络里面的卷积层的输出一层就是一个feature map

? Filter、kernel是一个意思,都是指卷积核。

? 数一个神经网络有几层,带参数计算的才算一层。因此卷积层算一层。像激活函数以及池化并没有什么参数,所以不算层数。全连接层有参数,也算一层。

? 这篇主要总结了一下卷积池化维度参数相关的细节吧,有的以前自己也是比较模糊,现在就清楚了。

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-02-27 10:59:45  更:2022-02-27 11:00:07 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 18:22:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码