CNN 卷积神经网络结构

CNN 卷积神经网络结构CNNcnn每一层会输出多个featuremap,每个FeatureMap通过一种卷积滤波器提取输入的一种特征,每个featuremap由多个神经元组成,假如某个featuremap的shape是m*n,则该featuremap有m*n个神经元。对于卷积层会有kernel,记录上一层的featuremap与当前层的卷积核的权重,因此kernel的shape为(上一层feature

大家好,又见面了,我是你们的朋友全栈君。

CNN

cnn每一层会输出多个feature map, 每个Feature Map通过一种卷积滤波器提取输入的一种特征,每个feature map由多个神经元组成,假如某个feature map的shape是m*n, 则该feature map有m*n个神经元。对于卷积层会有kernel, 记录上一层的feature map与当前层的卷积核的权重,因此kernel的shape为(上一层feature map的个数,当前层的卷积核数)。本文默认子采样过程是没有重叠的,卷积过程是每次移动一个像素,即是有重叠的。默认子采样层没有权重和偏置。关于CNN的其它描述不在这里论述,可以参考一下参考文献。只关注如何训练CNN。

CNN网络结构

一种典型卷积网络结构是LeNet-5,用来识别数字的卷积网络。结构图如下(来自Yann LeCun的论文):
LeNet-5
卷积神经网络算法的一个实现文章中,有一个更好看的图:
LeNet-5
该图的输入是一张28*28大小的图像,在C1层有6个5*5的卷积核,因为C1层输出6个(28-5+1)(28-5+1)大小的feature map。然后经过子采样层,这里假设子采样层是对卷积层的均值处理(mean pooling), 其实一般还会有加偏置和激活的操作,为了简化,省略了这两步,只是对卷积层进行一个采样的操作。因此S2层输出的6个feature map大小为(24/2)(24/2).在卷积层C3中,它的输入是6个feature map,与C1不一样(C1只有一个feature map,如果是RGB的话,C1会有三个channel)。C3层有12个5*5卷积核,每个卷积核会与上一层的6个feature map分别做卷积(事实上,一般是选择几种输入feature map来做卷积,而不是全部的feature map),然后对这6个卷积结果求和组成一个新的feature map,即该层会有12个大小为(12-5+1)*(12-5+1)的feature map,这个feature map是经过sigmod 函数处理然后结果下一层S4。
这里写图片描述


图片来源


同理,S4层有12个(与卷积层的feature map数一致)大小为(8/2)*(8/2)的feature map。输出层把S4层的feature mapflatten一个向量,向量长度为12*4*4=192,以该向量作为输入,与下面的其它层全连接,进行分类等操作,也就是说把一张图片变成一个向量,接入到别的网络,如传统的BP神经网络,不过从整体来看,CNN可以看做是一个BP神经网络。在
这里有两张很生动的图来描述这个过程:


这里写图片描述


这里写图片描述

权值共享理解

从代码的实现来看,每个卷积核会与部分或全部的输入(上一层输出)feature map进行卷积求和,但是每个卷积核的权重与一个feature map是一一对应,如上一章节中的C3-S4,说是有12个卷积核,然后就有12个输出feature map,但是每个卷积核与输入的6个feature map的权重都是不一样,即kernel不一样,也就是说每个卷积核的权重与一个feature map是一一对应。至于权值共享的话,对于同一个输入的feature map的神经元patch,用的是同一个卷积核权重,这个是共享的,只在同feature map共享,不在跨feature map共享,只是个人理解,有可能有错,if wrong please correct me.

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/149707.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 小程序生成普通二维码_注册一个小程序

    小程序生成普通二维码_注册一个小程序uniapp生成二维码`参考了https://blog.csdn.net/lemontealin/article/details/104437584这篇文章并做了修改,要想实现二维码的生成的话是需要引用相应插件的,这个插件的作者是echo,echo写了整个ThorUI组件,我个人很佩服他,喜欢他的可以去ThorUI网站看看,学习一下。1)首先下载你需要下载weapp-qrcode.js(百度网盘下载链接:链接:https://pan.baidu.com/s/1VXhq3ZjxmDcH1tFujK

    2022年10月31日
    0
  • java adt入门教程_Android基础入门教程目录

    java adt入门教程_Android基础入门教程目录第一章:环境搭建与开发相关(已完结10/10)https://blog.csdn.net/coder_pig/article/details/50000773Android基础入门教程——1.1背景相关与系统架构分析Android基础入门教程——1.2开发环境搭建Android基础入门教程——1.2.1使用Eclipse+ADT+SDK开发AndroidAPPAndroid基础入…

    2022年5月27日
    32
  • Linux环境PHP5.6升级7.1.8

    Linux环境PHP5.6升级7.1.8

    2021年11月4日
    54
  • c语言-lm_LM算法的more1978

    c语言-lm_LM算法的more1978#pragmaonce#include#include”opencv2\core\core.hpp”#pragmacomment(lib,”opencv_core248d.lib”)constintMAXTIME=50;usingnamespacecv;FileStoragefs;Matjacobin(constMat&pk/*[a,b]*/,

    2022年9月1日
    1
  • Cygwin安装教程 linux模拟器「建议收藏」

    https://blog.csdn.net/u010356768/article/details/90756742

    2022年4月18日
    36
  • h5网站模板_超全超实用的80个模板网站,我全部整理在这里了「建议收藏」

    h5网站模板_超全超实用的80个模板网站,我全部整理在这里了「建议收藏」如果你喜欢本文章,欢迎关注,评论和转发,谢谢!模板网站,可谓是当代最受欢迎的网站类型之一,只要提供的足够新颖能够满足需求,必然成为懒癌青年们的最爱。这些网站深受喜爱的原因是:大家想要实现某种设计需求,但窘于自己技术没达到,时间来不及现学现卖等诸多因素,反正就是做不出来。正当你焦头烂耳临近崩溃的时候,别人告诉你有现成又好看的模板,想问又有谁能拒绝呢?当然,模板网站不一定全是免费的,都需要你付出一些东…

    2022年7月19日
    16

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号