0. 滤波器的大小选择

  • 大部分卷积神经网络都会采用逐层递增(1⇒ 3 ⇒ 5 ⇒ 7)的方式。
  • 每经过一次池化层,卷积层过滤器的深度都会乘以 2;

1. 权值共享:减轻过拟合 & 降低计算量

一个卷积层(Wx+b ⇒ ReLU ⇒ maxpooling)可以有多个不同的卷积核,而每一个卷积核都对应一个滤波后映射出的新图像,同一个新图像中的每一个像素都来自完全相同的卷积核,这就是卷积核的权值共享。

那么为什么要共享卷积核的权值参数呢?

  • 降低模型复杂度以减轻过拟合;
  • 降低计算量;

2. 待求参数数目的量化分析

考虑 103×10310^3\times 10^3 的输入图像:

  • 全连接,隐层神经元的数目为 10610^6 时,则每一个输入像素与每一个隐层神经元之间都是待学习的参数,

    • 数目为 106×106=101210^6\times 10^6=10^{12}
  • 卷积,卷积核的大小为 10×1010\times 10 时,
    • 步长为 10,103×10310×10×(10×10)\frac{10^3\times 10^3}{10\times 10}\times \left(10\times 10\right),103×10310×10\frac{10^3\times 10^3}{10\times 10}表示的是输入图像可划分的块数,也即经卷机作用后的输出图像;
    • 步长为 1,(103−10+1)×(103−10+1)⋅(10×10)\left(10^3-10+1\right)\times\left(10^3-10+1\right)\cdot \left(10\times 10\right)
    • 在不考虑步长的前提下,可近似将待学习的参数的数目视为 (103×103)⋅(10×10)\left(10^3\times 10^3\right)\cdot \left(10\times 10\right)

3. CNN 的卷积与信号与系统中的卷积

CNN 的卷积并没有执行“翻转”操作,而是与输入图像做滑动窗口“相关”计算;

如果 KK 个输入通道(Xk,0≤k<KX^k,\quad 0\leq k )的输入经若干卷积核的作用之后得到 LL 个通道的输出(Yℓ,0≤ℓ<LY^\ell, \quad 0\leq \ell),需要的卷积核的数目为 L×KL\times K:

Yℓ(m,n)==Xk(m,n)⋆Hkℓ(m,n)∑k=0K−1∑i=0I−1∑j=0J−1Xk(m+i,n+j)Hkℓ(i,j)

\begin{split} Y^\ell(m, n)=&X^k(m,n)\star H^{k\ell}(m,n)\\ =&\sum_{k=0}^{K-1}\sum_{i=0}^{I-1}\sum_{j=0}^{J-1}X^{k}(m+i, n+j)H^{k\ell}(i, j) \end{split}

Hkℓ(i,j)H^{k\ell}(i, j) 表示的是第 ℓ\ell 列,第 kk 行二维卷积核,卷积核的大小为 I⋅JI\cdot J。

4. 时间复杂度

  • N×NN\times N 大小的图像,FF 个 K×KK\times K 的 filters ⇒ 计算复杂度 O(N2×K2×F)O(N^2\times K^2\times F)

    • 要知道 F<script type="math/tex" id="MathJax-Element-158">F</script> 的值一般是很大的,比如 256;

卷积神经网络(CNN)的细节问题(滤波器的大小选择)相关推荐

  1. python卷积神经网络cnn的训练算法_【深度学习系列】卷积神经网络CNN原理详解(一)——基本原理...

    上篇文章我们给出了用paddlepaddle来做手写数字识别的示例,并对网络结构进行到了调整,提高了识别的精度.有的同学表示不是很理解原理,为什么传统的机器学习算法,简单的神经网络(如多层感知机)都可 ...

  2. CNN---用于图像分类的经典的卷积神经网络CNN

    文章目录 概览 1.计算机视觉简介: 2.图像分类 一.LeNet-5 1.模型架构 2.模型简介 3.模型特点 二.AlexNet 1.网络架构 2.模型介绍 3.模型特点 三.VGGNet 1.模 ...

  3. 卷积神经网络CNN原理详解(一)——基本原理

    卷积神经网络CNN原理详解(一)--基本原理 转载过来为了自己以后学习方便,大家请看原文章 为什么要用神经网络? 特征提取的高效性. 大家可能会疑惑,对于同一个分类任务,我们可以用机器学习的算法来做, ...

  4. 【综述】一文读懂卷积神经网络(CNN)

    卷积神经网络(Convolutional Neural Networks, CNN)是一类包含卷积计算且具有深度结构的前馈神经网络(Feedforward Neural Networks),是深度学习 ...

  5. [人工智能-深度学习-24]:卷积神经网络CNN - CS231n解读 - 卷积神经网络基本层级

    作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客 本文网址:[人工智能-深度学习-23]:卷积神经网络CNN - CS231n解读 - 卷积神经网络基本层级_ ...

  6. 卷积神经网络(CNN,ConvNet)

    卷积神经网络(CNN,ConvNet) 卷积神经网络(CNN,有时被称为 ConvNet)是很吸引人的.在短时间内,变成了一种颠覆性的技术,打破了从文本.视频到语音等多个领域所有最先进的算法,远远超出 ...

  7. 卷积神经网络CNN总结

    从神经网络到卷积神经网络(CNN) 我们知道神经网络的结构是这样的: 那卷积神经网络跟它是什么关系呢? 其实卷积神经网络依旧是层级网络,只是层的功能和形式做了变化,可以说是传统神经网络的一个改进.比如 ...

  8. TF之CNN:Tensorflow构建卷积神经网络CNN的简介、使用方法、应用之详细攻略

    TF之CNN:Tensorflow构建卷积神经网络CNN的简介.使用方法.应用之详细攻略 目录 TensorFlow 中的卷积有关函数入门 1.tf.nn.conv2d函数 案例应用 1.TF之CNN ...

  9. 卷积神经网络(CNN)介绍与实践

    七月 上海 | 高性能计算之GPU CUDA培训 7月27-29日三天密集式学习  快速带你入门阅读全文> 正文共4499个字,26张图,预计阅读时间18分钟. CNN的前世今世 1.1.大脑 ...

最新文章

  1. iphone录屏怎么录声音_ev录屏怎么录制声音 ev录屏声音设置教程
  2. 根据 UserAgent 判断网页是在浏览器、或在微信、或在APP中
  3. Latex:表格制作全攻略
  4. sql 插入text字段包含特殊字符_Kettle(PDI)转换中输出之插入/更新详解
  5. bootstrap清除拟态框内添加新HTML再打开时会有缓存现象
  6. 奇异值分解(Singular Value Decomposition,SVD)
  7. python环境配置(一)——Linux下将python2.6升级到2.7 安装pip 以及升级中遇到问题的解决方法
  8. TypeError: type ‘types.GenericAlias‘ is not an acceptable base type
  9. 2021年全球电力线通信(PLC)系统收入大约7385.8百万美元,预计2028年达到14530百万美元,2022至2028期间,年复合增长率CAGR为11.0%
  10. python语言实现指纹识别_Python语言之指纹识别是目前最成熟的识别技术!Python能分分钟做出一个来!...
  11. wps如何设置分段页眉
  12. 可以放游戏网站云服务器,游戏网站选择哪个云服务器好?游戏服务器配置方案?...
  13. java 正则表达式匹配冒号_用于匹配与冒号连接的单词对的正则表达式
  14. 如何让梯形变成平行四边形_把梯形转化成平行四边形.ppt
  15. 待得天晴花已老,不如携手雨中看
  16. Android中关于Manifest的权限注册问题
  17. java 随机手机验证码_Java实现随机生成手机短信验证码的简单代码
  18. 初学C语言一些知识点的整理
  19. 人工智能的出现,赋予零售业6种应用新生命!
  20. JavaScript 高级3 :函数进阶

热门文章

  1. android timepicker分割线颜色,Android修改DatePicker字体颜色及分割线颜色详细介绍
  2. java清除缓存池_Java 缓存池(使用Map实现)
  3. HelloKafka入门 helloKafka
  4. gsm模块 java 录音_Android GSM驱动模块详细分析
  5. Doris之磁盘空间管理(重点)
  6. xml里写sql语句大于、小于的正确方法
  7. 集群、分布式、集中式、伪分布式的概念与区别
  8. java多线程交替打印_java多线程 更优雅的实现线程同步:交替打印A、B LockSupport实现...
  9. flink的Yarn模式
  10. 均值滤波python实现_python手写均值滤波