神经网络之卷积篇:详解Padding

news/2024/9/19 15:46:06/文章来源:https://www.cnblogs.com/oten/p/18356261

详解Padding

为了构建深度神经网络,需要学会使用的一个基本的卷积操作就是padding,让来看看它是如何工作的。

如果用一个3×3的过滤器卷积一个6×6的图像,最后会得到一个4×4的输出,也就是一个4×4矩阵。那是因为3×3过滤器在6×6矩阵中,只可能有4×4种可能的位置。这背后的数学解释是,如果有一个\(n×n\)的图像,用\(f×f\)的过滤器做卷积,那么输出的维度就是\((n-f+1)×(n-f+1)\)。在这个例子里是\(6-3+1=4\),因此得到了一个4×4的输出。

这样的话会有两个缺点,第一个缺点是每次做卷积操作,图像就会缩小,从6×6缩小到4×4,可能做了几次之后,图像就会变得很小了,可能会缩小到只有1×1的大小。可不想让图像在每次识别边缘或其他特征时都缩小,这就是第一个缺点。

第二个缺点时,如果注意角落边缘的像素,这个像素点(绿色阴影标记)只被一个输出所触碰或者使用,因为它位于这个3×3的区域的一角。但如果是在中间的像素点,比如这个(红色方框标记),就会有许多3×3的区域与之重叠。所以那些在角落或者边缘区域的像素点在输出中采用较少,意味着丢掉了图像边缘位置的许多信息。

为了解决这两个问题,一是输出缩小。当建立深度神经网络时,就会知道为什么不希望每进行一步操作图像都会缩小。比如当有100层深层的网络,如果图像每经过一层都缩小的话,经过100层网络后,就会得到一个很小的图像,所以这是个问题。另一个问题是图像边缘的大部分信息都丢失了。

为了解决这些问题,可以在卷积操作之前填充这幅图像。在这个案例中,可以沿着图像边缘再填充一层像素。如果这样操作了,那么6×6的图像就被填充成了一个8×8的图像。如果用3×3的图像对这个8×8的图像卷积,得到的输出就不是4×4的,而是6×6的图像,就得到了一个尺寸和原始图像6×6的图像。习惯上,可以用0去填充,如果\(p\)是填充的数量,在这个案例中,\(p=1\),因为在周围都填充了一个像素点,输出也就变成了\((n+2p-f+1)×(n+2p-f+1)\),所以就变成了\((6+2×1-3+1)×(6+2×1-3+1)=6×6\),和输入的图像一样大。这个涂绿的像素点(左边矩阵)影响了输出中的这些格子(右边矩阵)。这样一来,丢失信息或者更准确来说角落或图像边缘的信息发挥的作用较小的这一缺点就被削弱了。

刚才已经展示过用一个像素点来填充边缘,如果想的话,也可以填充两个像素点,也就是说在这里填充一层。实际上还可以填充更多像素。这里画的这种情况,填充后\(p=2\)

至于选择填充多少像素,通常有两个选择,分别叫做Valid卷积和Same卷积。

Valid卷积意味着不填充,这样的话,如果有一个\(n×n\)的图像,用一个\(f×f\)的过滤器卷积,它将会给一个\((n-f+1)×(n-f+1)\)维的输出。这类似于在前面的例子,有一个6×6的图像,通过一个3×3的过滤器,得到一个4×4的输出。

另一个经常被用到的填充方法叫做Same卷积,那意味填充后,输出大小和输入大小是一样的。根据这个公式\(n-f+1\),当填充\(p\)个像素点,\(n\)就变成了\(n+2p\),最后公式变为\(n+2p-f+1\)。因此如果有一个\(n×n\)的图像,用\(p\)个像素填充边缘,输出的大小就是这样的\((n+2p-f+1)×(n+2p-f+1)\)。如果想让\(n+2p-f+1=n\)的话,使得输出和输入大小相等,如果用这个等式求解\(p\),那么\(p=(f-1)/2\)。所以当\(f\)是一个奇数的时候,只要选择相应的填充尺寸,就能确保得到和输入相同尺寸的输出。这也是为什么前面的例子,当过滤器是3×3时,使得输出尺寸等于输入尺寸,所需要的填充是(3-1)/2,也就是1个像素。另一个例子,当过滤器是5×5,如果\(f=5\),然后代入那个式子,就会发现需要2层填充使得输出和输入一样大,这是过滤器5×5的情况。

习惯上,计算机视觉中,\(f\)通常是奇数,甚至可能都是这样。很少看到一个偶数的过滤器在计算机视觉里使用,认为有两个原因。

其中一个可能是,如果\(f\)是一个偶数,那么只能使用一些不对称填充。只有\(f\)是奇数的情况下,Same卷积才会有自然的填充,可以以同样的数量填充四周,而不是左边填充多一点,右边填充少一点,这样不对称的填充。

第二个原因是当有一个奇数维过滤器,比如3×3或者5×5的,它就有一个中心点。有时在计算机视觉里,如果有一个中心像素点会更方便,便于指出过滤器的位置。

也许这些都不是为什么\(f\)通常是奇数的充分原因,但如果看了卷积的文献,经常会看到3×3的过滤器,也可能会看到一些5×5,7×7的过滤器。后面也会谈到1×1的过滤器,以及什么时候它是有意义的。但是习惯上,推荐只使用奇数的过滤器。想如果使用偶数f也可能会得到不错的表现,如果遵循计算机视觉的惯例,通常使用奇数值的\(f\)

已经看到如何使用padding卷积,为了指定卷积操作中的padding,可以指定\(p\)的值。也可以使用Valid卷积,也就是\(p=0\)。也可使用Same卷积填充像素,使输出和输入大小相同。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/783149.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ChatMoneyAI嘴替,高情商回复

本文由 ChatMoney团队出品会说话是一个人的优势,而会接话才是一个人的本事。现实中很多人有这样的困扰:朋友聚会、上门拜访以及和人聊天。是不是完全不知道如何回应,只会说“嗯”、“对”、“好”。这种回应方式,会让人没有和你聊下去的欲望,也容易把天聊死,从而错失大把…

ChatMoney智能体高情商接话神器

本文由 ChatMoney团队出品会说话是一个人的优势,而会接话才是一个人的本事。现实中很多人有这样的困扰:朋友聚会、上门拜访以及和人聊天。是不是完全不知道如何回应,只会说“嗯”、“对”、“好”。这种回应方式,会让人没有和你聊下去的欲望,也容易把天聊死,从而错失大把…

MySQL时区设置和查看

检查: 操作系统的时区 MYSQL的时区中国标准时间(CST) 在修改系统时间之后,重新启动MySQL服务器,以确保修改生效。mysql 时区查看‌MySQL时区设置查看全局和会话时区使用命令 SELECT @@global.time_zone, @@session.time_zone; 可以查看全局和会话的时区设置。 使用命令 SH…

vue3的defineAsyncComponent是如何实现异步组件的呢?

这篇文章我们将通过debug源码的方式来带你搞清楚defineAsyncComponent是如何实现异步组件的前言 在上一篇 给我5分钟,保证教会你在vue3中动态加载远程组件文章中,我们通过defineAsyncComponent实现了动态加载远程组件。这篇文章我们将通过debug源码的方式来带你搞清楚defineA…

从自建到云原生:数据管理的未来与变革

在数据技术不断演进的背景下,云数据库的崛起和云原生数据库的普及标志着数据库技术的显著变革。从最初的自建数据库模式到如今的云原生数据库,企业在数据管理上的选择变得更加丰富和灵活。云数据库不仅仅是对传统数据库技术的一个迁移,更是对其进行了一次全面的升级和优化。…

P9520 [JOISC2022] 监狱

P9520 [JOISC2022] 监狱 题目描述 有一棵 \(N\) 个节点的树,有 \(M\) 个囚犯,要从 \(S_i\) 走到 \(T_i\)。每一时刻可以发布一个命令让一名囚犯走到相邻的节点,要求任意时刻囚犯不能走到同一个节点上,求是否可以令每一个囚犯从 \(S_i\) 走到 \(T_i\)。 做法解析 首先我们可…

《软件性能测试分析与调优实践之路》(第2版) 读书笔记(一)总体介绍(上)-真正从性能分析与调优来看性能测试

《软件性能测试分析与调优实践之路》(第2版) 是清华大学出版社出版的一本图书,作者为张永清,全书共分为9章,如下图所示 图书介绍:《软件性能测试分析与调优实践之路》(第2版) 1、为什么需要性能测试与分析 1)、了解系统的各项性能指标,通过性能压测来了解系统能承受多大…

人人都能搞定的大模型原理 - 神经网络

​人工智能的发展起步于1950年,期间经历了各种里程碑和变革,与此相关的神经网络技术也从最初的单层感知到复杂的层级和卷积神经网络一路创新和变革,不断推动人工智能领域的发展,直到 2022 年 ChatGPT 的问世,彻底引爆了大众的目光。 人工智能技术经历了漫长的迭代过程,无…

SpringBoot优雅开发REST API最佳实践

接口服务主要由两部分组成,即参数(输入)部分,响应(输出)部分。其中在SpringBoot中主要是Controller层作为API的开发处,其实在架构层面来讲,Controller本身是一个最高的应用层,它的职责是调用、组装下层的interface服务数据,核心是组装和调用,不应该掺杂其他相关的逻…

开源的 P2P 跨平台传文件应用「GitHub 热点速览」

起初,我以为这是“微软菩萨”降临,但玩了一圈下来,发现实际效果并没有那么惊艳,还没上周热门的开源项目有趣。例如,基于 WebRTC 的文件传输平台 ShareDrop,只需打开网页,就能在局域网或互联网上安全地跨设备传文件。而可自建支持目标检测和安全报警的视频监控平台 Friga…

删除个文件夹,vfs2上传文件到ftp就异常553,这么不经事吗

开心一刻 今天逛街碰到街头采访,一上来就问我敏感话题 主持人:小哥哥,你单身吗 我:是啊 主持人:你找女朋友的话,是想找一个小奶猫呢,还是小野猫呢 我沉思了一下,叹气道:如果可以的话,我想找个人,而且是女人上传文件 基于 commons-vfs2 实现文件到 FTP 服务器的上传,…