machine-learning - 与具有池化的 CNN 相比,全卷积神经网络有什么好处?
问题描述
我一直在阅读一些关于用于对象检测的不同 CNN 的信息,并发现我正在研究的大多数模型都是完全卷积网络,例如最新的 YOLO 版本和视网膜网络。
除了具有较少不同层的 FCN 之外,FCN 与具有池化的传统 CNN 相比有哪些优势?我已经阅读了https://arxiv.org/pdf/1412.6806.pdf,当我阅读它时,该论文的主要兴趣是简化网络结构。这是现代检测/分类网络不使用池化的唯一原因,还是有其他好处?
解决方案
使用 FCN,我们避免使用密集层,这意味着更少的参数,因此我们可以让网络学习得更快。
如果您避免合并,您的输出将与您的输入具有相同的高度/宽度。但我们的目标是减小卷积的大小,因为它的计算效率更高。此外,通过池化我们可以更深入,因为我们通过更高层单个神经元“看到”更多的输入。此外,它有助于跨不同尺度传播信息。
通常,这些网络包含一个下采样路径以提取所有必要的特征,以及一个上采样路径以将高级特征重建回原始图像尺寸。
有一些架构,如“全卷积网络”。Springenberg,在某种意义上避免了集中,有利于速度和简单性。在本文中,作者用 stride-2 卷积替换了所有池化操作,并在输出层使用了全局平均池化。全局平均池化操作减少了给定输入的维度。
推荐阅读
- c# - ProjectItem.Object 在某些情况下为空,无法运行自定义工具
- haskell - 如何在 Parsec 中返回多个解析的 ADT?
- reactjs - 文本在 react-admin 界面中无法正确显示
- mongodb - 如何访问 MongoDB 表中的元素?
- python - 使用“空格”字符导入 python 模块目录
- php - 从sql视图中选择时如何在laravel中修复“准备好的语句需要重新准备”
- java - 如何在线创建和验证 onedrive 或 sharepoint 的 webhook?
- json - REST API:更新 JSON 对象数组的最佳实践
- java - 在文件中的每个单词后添加空格(Java)
- python - 访问 Python 虚拟环境