一张灰度图像,就是一个单通道,h*w*1表示高和宽和1通道,每个像素值范围0-255,只有宽和高的图像就是2d矩阵,可以表示成0-1或者0-255,0表示黑色,255表示白色。彩色图像RGB或者BGR是3通道,h*w*3,是一个张量。

卷积:卷积是原始图像与卷积核之间的滑动局部加乘计算过程

1、单通道卷积

比如一个6*6*1的图像,一个3*3*1的卷积核,卷积俩个参数一个是步长stride,就是卷积核在原图像上移动的间隔,padding是填充,有时候为了获取特征需要,在原图像边界处添加一圈0或者1,padding=1表示添加一圈。

卷积计算过程:对应位置相乘,所有相加

0*2+(-1*2)+0*2+(-1)*2+5*3+2*(-1)+0*2+(-1)*2+0*2=15-8=7

所以左后输出7

卷积过程展示:stride=1,padding=0

卷积后尺寸计算:输出图像尺寸=(输出图像尺寸−卷积核尺寸+2∗填充值)/步长+1

卷积后不考虑多次卷积,得到的特征图,进行扁平化处理,就是按行整合,得到,一列多行的一个特征值,作为全连接神经网络的输入训练。

2、多通道输入和输出

输入是一个RGB5*5*3,一个过滤器卷积核是3*3*3,因为3个3*3分别对应图像的3个通道,因为是一张图像的不同通道,所以卷积核的大小必须一致,但是不同通道上的卷积核的参数并不相同。最后结果相加作为输出。最后输出的特征faturemap是一个通道,与过滤器数量相同。实际操作中会添加多个过滤器,因为一个过滤器无法提取训练所满足的特征。

 权值:

卷积核的值就是待学习的权重参数。网络训练时,输出的结果会和数据集标签做损失计算,然后把计算得到的损失反向梯度下降去更新卷积核里的每一个参数。所以卷积核里面的参数最终是训练得到的。

偏置:

每一个 滤波器 都包括一个偏置参数(bias)。这个偏置参数是该 滤波器 中所有 卷积核 共享的。最终的卷积结果需要在加上该偏置值。

激活:

卷积与偏置加和后的值,还需要再经过激活函数(比如 ReLU)才得到最终特征图上的值,图像一般都选ReLU作为激活函数,因为大于1的时候趋向无穷大,这样反向计算损失的时候不会出现梯度消失的风险。

卷积的感受野和权值共享:

感受野:就是一个卷积核进行一次计算出来的哪一个值。

权值共享:单个卷积核卷积时,卷积核权值和偏置是不变的。

初始化权重方法:

  • 取偏差很小的高斯分布随机取值
  • Xavier 初始化方法
  • He kai ming 初始化方法

卷积模式:卷积的参数

full mode和same mode、valid mode

橙色部分为 image, 蓝色部分为 filter。

1、full 模式的意思是,从 filter 和 image 刚相交开始做卷积,白色部分为填 0。filter 的运动范围如图所示。

2、same mode,当filter的中心 K 与 image 的边角重合时,开始做卷积运算。当卷积步长 stride = 1 时,卷积之后输出的 feature map 尺寸相对于输入图片保持不变(same)。

3、 valid mode 当卷积核全部在image里面的时候,进行卷积运算。

前向和反向传播:

前向传播采用 valid 模式,反向是full 模式

当误差反向传播到卷积层时,我们的操作方法依然是一个卷积,只不过要把卷积核翻转(旋转180°),然后在周围补 0,前向传播采用 valid mode 卷积,反向传播时是 full mode 卷积,

如果前向传播是 full mode 卷积,那么反向传播就是 valid mode 卷积,不过依旧要将卷积核翻过来。

而对于 same mode 卷积,它的反向传播也是一个 same mode 卷积,同样也需要翻转卷积核。

最后,对于 strided 卷积(跨超过 1 步的卷积),反向传播是 fractional strided 卷积,反之依然。卷积核同样也要翻转。

池化:池化层也称下采样层,会压缩输入的特征图

一种是平均池化(Average Pooling),即对邻域内的特征点求平均;另一种是最大池化(Max Pooling),即对邻域内的特征点取最大。

最大池化:

平均池化:

池化的反向传播:

假设采用步长为 1 的2×2 池化,将 4×4 的 feature map 池化为2×2

对于最大池化,需要在前向传播时,记住每个池化块中最大值的位置,然后将误差放回去即可。假设四个位置分别为左上,右下,右上,左下,则有

平均池化反向传播:只需要将池化单元的误差平均值放回原来的子矩阵

CNN 卷积神经网络(过程解析)相关推荐

  1. CNN卷积神经网络深度解析

    1. 概述 卷积神经网络是一种特殊的深层的神经网络模型,它的特殊性体现在两个方面,一方面它的神经元间的连接是非全连接的,另一方面同一层中某些神经元之间的连接的权重是共享的(即相同的).它的非全连接和权 ...

  2. Deep Learning模型之:CNN卷积神经网络(一)深度解析CNN

    本文整理了网上几位大牛的博客,详细地讲解了CNN的基础结构与核心思想,欢迎交流. [1]Deep learning简介 [2]Deep Learning训练过程 [3]Deep Learning模型之 ...

  3. [转]Deep Learning模型之:CNN卷积神经网络(一)深度解析CNN

    Deep Learning模型之:CNN卷积神经网络(一)深度解析CNN 原文地址:http://m.blog.csdn.net/blog/wu010555688/24487301 本文整理了网上几位 ...

  4. cnn 预测过程代码_代码实践 | CNN卷积神经网络之文本分类

    学习目录阿力阿哩哩:深度学习 | 学习目录​zhuanlan.zhihu.com 前面我们介绍了:阿力阿哩哩:一文掌握CNN卷积神经网络​zhuanlan.zhihu.com阿力阿哩哩:代码实践|全连 ...

  5. cnn(卷积神经网络)比较系统的讲解

    本文整理了网上几位大牛的博客,详细地讲解了CNN的基础结构与核心思想,欢迎交流. [1]Deep learning简介 [2]Deep Learning训练过程 [3]Deep Learning模型之 ...

  6. 【深度学习】5:CNN卷积神经网络原理

    前言:先坦白的说,深度神经网络的学习在一开始对我造成的困扰还是很大的,我也是通过不断地看相关的视频资料.文献讲解尝试去理解记忆.毕竟这些内容大多都是不可查的,我们看到的都只是输入输出的东西,里面的内部 ...

  7. CNN卷积神经网络案例程序源代码合集matlab/Python等

    CNN卷积神经网络案例程序源代码合集matlab/Python等 1.深入理解CNN(包括CNN的过程显示和前向后向推倒,以及CNN的应用举例.) 2.kerasttensorflowCNN(CNN_ ...

  8. 3层-CNN卷积神经网络预测MNIST数字

    3层-CNN卷积神经网络预测MNIST数字 本文创建一个简单的三层卷积网络来预测 MNIST 数字.这个深层网络由两个带有 ReLU 和 maxpool 的卷积层以及两个全连接层组成. MNIST 由 ...

  9. DeepLearning tutorial(4)CNN卷积神经网络原理简介+代码详解

    FROM: http://blog.csdn.net/u012162613/article/details/43225445 DeepLearning tutorial(4)CNN卷积神经网络原理简介 ...

  10. Deep Learning论文笔记之(五)CNN卷积神经网络代码理解

    Deep Learning论文笔记之(五)CNN卷积神经网络代码理解 zouxy09@qq.com http://blog.csdn.net/zouxy09          自己平时看了一些论文,但 ...

最新文章

  1. vi/vim: 使用taglist插件
  2. 每隔k次反转一次 链表_PTA 5-2 Reversing Linked List (25) [法一] - 线性表 - 链表反转 (PAT 1074)...
  3. mockito mock void方法_纯干货,浅谈Mockito在单元测试中的实际应用
  4. php excel中文名称乱码,phpexcel导出中文文件名乱码的解决办法
  5. 列的数目比列的名字要多_你们要的甘特图来啦!还有具体做法哦!
  6. 现在最简单的赚钱套路
  7. 和阿里同年创办,为何当当却走向了“卖身”的结局?
  8. 数据结构一些自己没搞懂的点
  9. 软考-网络工程师复习资料
  10. 可怕!让无数女明星下海的换脸术来了,Facebook推出视频换脸功能!
  11. 图解机器学习基本概念及分类
  12. [转]Windows服务“允许服务与桌面交互”的使用和修改方法
  13. linux下的定时任务
  14. 拓宽你的认知,优秀的人都掌握的40个经典思维模型「附全部模型PPT」
  15. 怎么做革命性创新产品
  16. ActiveMQ消息持久化_队列_7
  17. 万万没想过,10年之后,游戏3D建模师逆袭了
  18. 松下与Delos中国携手,共同推动健康人居空间的研究和实证
  19. 安卓Launcher 简介
  20. html中如何等比缩小图片,css实现图片的等比缩放

热门文章

  1. ⭐算法入门⭐《堆》中等02 —— LeetCode 703. 数据流中的第 K 大元素
  2. FlowLayout的使用
  3. 64. Minimum Path Sum 路径最小总和
  4. 《Unity》FixedUpdate
  5. 双重边际效用(Double Marginalization)
  6. Panoply安装步骤(for Mac)
  7. 怎么将本地做好的网站部署到服务器上?
  8. 【132】求把字符串分割成回文串的最少切分次数
  9. pytorch c++混编报错 Error checking compiler version for cl: [WinError 2] 系统找 不到指定的文件。
  10. codeforces24D(高斯消元)