目录

1、卷积网络与传统网络的区别

2、整体架构

3、卷积操作​

4、卷积涉及的参数

5、卷积计算公式:

6、卷积参数中的重要特点

7、池化层作用

8、整体网络架构

9、特征图变化

10、感受野


1、卷积网络与传统网络的区别

上图中左边是NN传统网络,右边是CNN卷积网络。

传统网络输入比如784表示784个像素点,这只是一列特征;

在CNN当中输入的不是784个像素点,而是原始的一张图像28x28x1是个三维的,当使用卷积网络做事情的时候,我们得把思想再抬高一个维度,现在的数据他就不是一列,不是一个向量,不是一个特征,而是一个长方体矩阵,它是一个三维的,所以接下来我们处理的矩阵都是三维的,HxWxC的我不会先把数据拉成一个向量,而是直接对这个样本,图像数据进行一个特征提取。PS:注意这里的输入是一个HxWxC的;这里还涉及一个depth信息;

2、整体架构

简单的理解:卷积是提取特征,池化是压缩特征。

3、卷积操作

右边绿色的叫做一个特征图,表示当前得到的一个结果。最后把三个通道的值相加。

首先把图像分成一个个小区域,目的是对于不同的区域我得到的特征他是不一样的,然后接下来我要选择一种计算的方法,对于每一个小区域的计算他应该的特征值是等于多少的,这个是卷积他做的一件事。

三通道计算:

PS:必须保证你的输入的第三个维度即通道数C,必须和Filter当中第三个维度他俩必须是一样的。使用了几个Filter进行计算,最后就会得到多少个特征图。

内积和计算3=0+2+0+b(小b=1是一个偏置项),最后别忘记加上一个偏置项。

4、卷积涉及的参数

(1)步长

步长为1:表示在滑动的过程中移动一个单元格。

步长为2:表示在滑动的过程中移动两个单元格。

步长越小得到的特征图越大,得到的特征比较丰富,计算效率越慢。

(2)卷积核尺寸

卷积核越小,越细粒度进行提取。

(3)边缘填充(一般使用zero padding)

在进行卷积计算的时候,中间的点参与运算的次数较多,边界的点较少;为了公平一些,让边界点也参与运算的次数多一些。所以进行边缘填充,加上一圈数(比如0,添加0是为了避免在对结果进行计算的时候对结果产生影响,0乘任何数都等于0,所以最外层只是扩充,不会对结果产生任何影响),原来是边界的点,他就不是边界了,它能被利用的次数就会变多,代表了我一定程度上弥补了一些边界信息缺失的问题,边界提取特征利用不充分的问题,让网络能够更公平的对待一下边界特征。

添加的圈数自己控制,一般一圈。

(4)卷积核个数

卷积核个数说白了就是我最后要得到多少个特征图,如果要得到10个特征图,那么卷积核个数就是10。PS:每个卷积核里边的数字是不一样的,一开始进行随机初始化要分别进行各自的参数更新。

5、卷积计算公式:

6、卷积参数中的重要特点

卷积参数共享 

比如说现在有一个卷积核,那么他要对图像中的每一个区域做卷积;

Q1:对于不同的区域,我是不是应该选择卷积核里边的区域也应该不同呢?这样效果会更好。

A1:其实理论上应该是这样的;但是如果你对每一个区域都选择不同的filter核去做,那总共参数的个数会需要很多;之前说过传统神经网络的缺点是参数太多,缺点是不容易训练,效率较慢,过拟合现象比较大,卷积神经网络就是要解决这样的问题,他提出的一点就是参数共享,比如当前我有一个卷积核,我用这个卷积核对每一个区域进行特征提取的时候,它里边的每一个值都是一样的,也就是说用同样一个卷积核对图像中每一个小区域进行特征提取,在对图像中每一个小区域进行特征提取的时候,核里边的每一个值都是不变的。

上图中的参数一共是760个,要比之前全连接时候的参数少的多了。

7、池化层作用

池化层是做压缩的,或者说叫做下采样。在你原始得到特征的基础上进行一个筛选。只能去做一个缩减,但是不能修改我的特征图的个数(即最后的通道数)。池化层没有涉及任何的矩阵计算,他只是一个特征的筛选,只是一个压缩过滤的东西。

最大池化:

8、整体网络架构

最后得到的特征图它是一个立体的,在这个立体中我怎么样对他进行一个分类任务,如何把这个立体转化成5个概率的分类值呢?PS:前边的卷积和池化只是做特征提取的,最后当你想得到一个结果还得靠全连接(FC)层;

全连接层的矩阵大小,比如最后是5分类的,那么就是[ n, 5],前边的n是连接前边提取出来的特征,但是对于全连接层他不能连接三维的东西,所以我们需要把之前提取出来的三维特征图(比如32x32x10)你得给我拉成一个特征向量,非常非常长的特征向量,特征向量就是里边每一个他都是一个值,特征向量长度是32x32x10=10240,所以最后全连接层得到的结果n=10240,即[10240,5]相当于得到全连接层的结果,相当于把这个10240个特征转化成我预测的5个类别的概率值,所以在最后的pooling层和FC之间还存在一个拉长的操作(就是把一个图拉成一个特征向量,把之前所有的结果都总结在一起了,通过全连接层得到我们最终的一个分类结果了);

几层神经网络中的层是指:带参数计算的才能叫做一层。

卷积层带参数计算:要乘权重内积再加偏置的。

Relu层不带参数计算:没有权重参数,没有偏置,也不用更新什么;所以激活层统统不带,因为他不用去更新什么东西。

池化层不带参数计算:没有w和b,不需要更新。

全连接层带参数计算:有权重矩阵。

只有带参数的东西才能称作神经网络的一层,不带参数的统统不叫做层。

9、特征图变化

转换就是拉伸(把长方体特征转化成一条向量特征) ,向量才能连接全连接层,最终得到分类的结果。

10、感受野

首先理解感受这个词,下图是一个5x5的原始输入当中,在这个区域中比如说我现在拿到一个小区域3x3(就是绿色部分)要对他进行卷积,卷积之后得到一个值5,这个5这个值对应的原始就是前边的值是多大呢?就是前边绿色3x3的区域,因为这个值它是由前边的3x3的区域得到的,说白了就是我当前这个值就是卷积结果5这个值,能看到能感受到前边的输入是3x3的。

第二次卷积得到结果1,是对前边的输入进行卷积,他能感受到前一层是3x3的,前边这个3x3他能感受到前边一层(原始输入数据)的5x5的,比如就做两次,那么我就说最后一次的卷积结果是1,他当前的感受野是5x5的;说白了就是当前最后得到的值他能看到前边的是多少,或者说最后这个值他是由前边原始输入数据中多少个值参与计算得到的。

一般情况下希望感受野越大越好(我目前得到的值既与前景有关也与背景有关)。

上边所需参数的计算参见图:

2个3x3x3的Filter。

卷积神经网络基础:(6)卷积神经网络原理相关推荐

  1. 图神经网络基础--基于图神经网络的节点表征学习

    图神经网络基础–基于图神经网络的节点表征学习 引言 在图节点预测或边预测任务中,首先需要生成节点表征(Node Representation).我们使用图神经网络来生成节点表征,并通过基于监督学习的对 ...

  2. 神经网络基础视频教程下载,神经网络训练全过程

    神经网络(深度学习)的几个基础概念 从广义上说深度学习的网络结构也是多层神经网络的一种.传统意义上的多层神经网络是只有输入层.隐藏层.输出层.其中隐藏层的层数根据需要而定,没有明确的理论推导来说明到底 ...

  3. 神经网络基础与顺序神经网络的构建

    作为神经网络的基础,在我看来可以从感知机说起,感知机作为最简单的神经网络之一,他拥有一个输入层,一个隐藏层,一个输出层,最基本的感知机的作用是为了作为一个二类分类的线性分类模型.作为感知机的基本公式, ...

  4. 卷积神经网络(CNN)的原理

    https://blog.csdn.net/weixin_42278173/article/details/81776807 卷积神经网络(CNN)的原理 本文主要内容: CNN的定义 CNN的构成 ...

  5. 温州大学《深度学习》课程课件(七、卷积神经网络基础)

    这学期我上的另一门课是本科生的<深度学习>,主要用的是吴恩达老师的<深度学习>视频课的内容. 使用教材:吴恩达<深度学习>课程笔记 课外参考书:<深度学习&g ...

  6. 计算机视觉:卷积神经网络基础

    计算机视觉:卷积神经网络基础 计算机视觉概述 计算机视觉的发展历程 卷积神经网络 卷积(Convolution) 卷积计算 填充(padding) 步幅(stride) 感受野(Receptive F ...

  7. 动手学深度学习(PyTorch实现)(六)--卷积神经网络基础

    卷积神经网络基础 1. 二维卷积层 1.1 二维互相关运算 1.2 互相关运算与卷积运算 1.3 特征图与感受野 2. 填充与步幅 2.1 填充 2.2 步幅 3. 多通道 3.1 多输入通道 3.2 ...

  8. pytorch卷积神经网络_知识干货-动手学深度学习(pytorch)-06 卷积神经网络基础

    卷积神经网络基础 本节我们介绍卷积神经网络的基础概念,主要是卷积层和池化层,并解释填充.步幅.输入通道和输出通道的含义. 二维卷积层 本节介绍的是最常见的二维卷积层,常用于处理图像数据. 二维互相关运 ...

  9. 【AI Studio】飞桨图像分类零基础训练营 - 03 - 卷积神经网络基础

    前言:第三天,老师结合ppt文图详细讲解了线性和卷积网络的构建,由简单到复杂的讲解卷积网络的发展.最后结合几个项目加深理解.愈发感觉老师讲的好了.第二天的课听完后还感觉自己什么都懂了,结果轮到自己动手 ...

最新文章

  1. 20165313-张晨晖课设个人报告
  2. 写了一个Windows服务,通过C#模拟网站用户登录并爬取BUG列表查询有没有新的BUG,并提醒我...
  3. 对不起,亲爱的,我将离开你
  4. for循环只执行一次_Python中for循环和while循环有什么区别?
  5. HDU - 5790 Prefix(主席树+字典树)
  6. 惠新宸php教程_百度PHP高级顾问惠新宸:PHP在百度的发展历程
  7. Net设计模式实例之装饰者模式(Decorator Pattern)(1)
  8. Java基础学习总结(79)——Java本地接口JNI详解
  9. Extjs核心概念之Store
  10. shell脚本实现FTP自动上传文件
  11. 阿里巴巴国际站新手运营攻略
  12. 如何去掉百度地图 信息框的白色箭头
  13. iOS解决键盘收起时页面上移的问题
  14. 使用python制作时间戳转换工具
  15. 企业数据治理体系一文读懂
  16. 基于微信小程序的体育课评分系统小程序
  17. JSD-2204-VueCLI-Day01
  18. 证件照背景色怎么换白色?这两个小技巧要掌握
  19. 身份证号码组件:lt;idcardgt; —— 快应用组件库H-UI
  20. 免杀学习——PHP免杀

热门文章

  1. 谷歌不更新android studio,彻底迈向64位:谷歌宣布 Android Studio 将停止 32 位版本更新...
  2. 基本的函数返回值 使用
  3. django文件上传
  4. 2022-2028年中国出行O2O市场深度调研及投资前景预测报告
  5. MySQL 学习笔记(2)— 通配符/正则表达/运算符
  6. Python入门系列教程(三)列表和元组
  7. 开发Eclipse自定义控件
  8. corepython第九章:文件和输入输出
  9. log4cxx第三篇----使用多个logger
  10. c++标准库 及 命名空间std