当前位置:网站首页>CNN的一点理解
CNN的一点理解
2022-07-31 05:16:00 【王大队长】
目录
1.3. 并且对于操作图像来说,全连接层并不能利用到图像的空间信息。
1. 背景(全连接层带来的局限性)
1.1. 全连接带来的参数爆炸
我们之前往往用的大部分是全连接层,但是这有一个问题,全连接层一多的话会使得参数数目变得很多。加入我们有一张大小为32*32的彩色图片(已经很小了),那么如果使用全连接层的话,一张图片就有32*32*3=3072个特征。我们用下面由全连接层和激活函数组成的网络作为模型,这个模型显然是很小的。
但是我们看到最后的参数数目竟然有370万个!那如果我们的图片大小为1024*1024的话,我们会有超过30亿个参数!使用 32 位浮 点数,我们就已经需要 12 GB 的内存,更不用说计算和存储梯度了,现在的大多数 GPU 都 不能满足。
1.2. 全连接不具备平移不变性
1.3. 并且对于操作图像来说,全连接层并不能利用到图像的空间信息。
2. 卷积层、池化层
卷积层的参数大小不取决于图像中像素数目,而取决于卷积核的大小以及输出通道数,假设5*5的卷积核且输出通道为7,则参数数目为7*5*5,这显然比线性层的参数少的多。
2.1. 卷积层的局部性和平移不变性
卷积提供局部性和平移不变性。
平移不变性已经说过便不再多说。
局部性:如果我们想要识别出与物体相对应的图案,如天空中的一架飞机,我们可能需要看看附近的像素是如何排列的,但我们对那些彼此相距很远的组合的像素是如何出现的并不那 么感兴趣。事实上,喷火式战斗机的图像角落里有没有树、云或风筝并不重要。
2.2. padding
因为一次卷积操作会使输入图像变小,为了防止我多个卷积后输入图像变小到1*1了那还玩毛?
卷积层的输出通道中每一个通道对应不同的特征,例如一个通道代表平均值,一个通道代表垂直边缘
2.3. 池化层
但是还有一个问题,使用3*3等小的卷积核无法反映整体情况,比如图像中有一个飞机占据了25*25像素,我们难道要用25*25的核吗?显然不是,经验告诉我们用小的卷积核比较好。于是我们采用的方法是在一个卷积后跟着另一个卷积,中间跟已知池化层进行下采样。
上图的卷积都经过了padding所以大小不变,第 2 组卷积核操作的是缩小了一半的 3×3 的邻域,因此它有效地映射回输入的 8×8 的邻域。此外,第 2 组卷积核获取第 1 组卷积核的输出(像平均值、边缘等特征),并在这些输出的基础上提取额外的特征。因此,第 1 组卷积核对一阶、低级特征的小邻域进行操作,而第 2 组卷积核则有效地对更宽的邻域进行操作,生成由先前特征组成的特征。这是一种非常强大的机制,它为卷积神经网络提供了查看非常复杂场景的能力(可以理解为感受野变大了),感受野的理解和计算可以看这篇文章:感受野(Receptive Field)的理解与计算 - 知乎 (zhihu.com)
边栏推荐
- VTK:Could not locate vtkTextRenderer object.
- Build vulhub vulnerability shooting range on kali
- DeFi Token in the project management
- The browser looks for events bound or listened to by js
- MySQL高级学习笔记
- 使用 OpenCV 提取图像的 HOG、SURF 及 LBP 特征 (含代码)
- 使用ps | egrep时过滤排除掉egrep自身
- cocoscreator 显示刘海内容
- MySQL面试题大全(陆续更新)
- js中的对象与函数的理解
猜你喜欢
npm WARN config global `--global`, `--local` are deprecated. Use `--location solution
Principle analysis of famous website msdn.itellyou.cn
js中的对象与函数的理解
VS connects to MYSQL through ODBC (2)
flutter 混合开发 module 依赖
浏览器查找js绑定或者监听的事件
What is an EVM Compatible Chain?
CMOS管原理,及其在推挽电路中的应用
安装Multisim出现 No software will be installed or removed解决方法
Sqlite A列数据复制到B列
随机推荐
如何修改数据库密码
quick lua加密
360 加固 file path not exists.
Build DVWA with phpstudy
cocos2d-x 实现跨平台的目录遍历
Android软件安全与逆向分析阅读笔记
Gradle sync failed: Uninitialized object exists on backward branch 142
Flutter mixed development module dependencies
Common JVM interview questions and answers
Flow control statement in js
unicloud 云开发记录
configure:error no SDL library found
The server time zone value ‘й‘ is unrecognized or represents more than one time zone
flutter arr 依赖
为什么bash中的read要配合while才能读取/dev/stdin的内容
quick-3.5 无法使用模拟器修改
数据库 | SQL查询进阶语法
VS通过ODBC连接MYSQL(一)
OpenCV中的图像数据格式CV_8U定义
[Cloud Native] What should I do if SQL (and stored procedures) run too slowly?