CNN 卷积神经网络(过程解析)
一张灰度图像,就是一个单通道,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 卷积神经网络(过程解析)相关推荐
- CNN卷积神经网络深度解析
1. 概述 卷积神经网络是一种特殊的深层的神经网络模型,它的特殊性体现在两个方面,一方面它的神经元间的连接是非全连接的,另一方面同一层中某些神经元之间的连接的权重是共享的(即相同的).它的非全连接和权 ...
- Deep Learning模型之:CNN卷积神经网络(一)深度解析CNN
本文整理了网上几位大牛的博客,详细地讲解了CNN的基础结构与核心思想,欢迎交流. [1]Deep learning简介 [2]Deep Learning训练过程 [3]Deep Learning模型之 ...
- [转]Deep Learning模型之:CNN卷积神经网络(一)深度解析CNN
Deep Learning模型之:CNN卷积神经网络(一)深度解析CNN 原文地址:http://m.blog.csdn.net/blog/wu010555688/24487301 本文整理了网上几位 ...
- cnn 预测过程代码_代码实践 | CNN卷积神经网络之文本分类
学习目录阿力阿哩哩:深度学习 | 学习目录zhuanlan.zhihu.com 前面我们介绍了:阿力阿哩哩:一文掌握CNN卷积神经网络zhuanlan.zhihu.com阿力阿哩哩:代码实践|全连 ...
- cnn(卷积神经网络)比较系统的讲解
本文整理了网上几位大牛的博客,详细地讲解了CNN的基础结构与核心思想,欢迎交流. [1]Deep learning简介 [2]Deep Learning训练过程 [3]Deep Learning模型之 ...
- 【深度学习】5:CNN卷积神经网络原理
前言:先坦白的说,深度神经网络的学习在一开始对我造成的困扰还是很大的,我也是通过不断地看相关的视频资料.文献讲解尝试去理解记忆.毕竟这些内容大多都是不可查的,我们看到的都只是输入输出的东西,里面的内部 ...
- CNN卷积神经网络案例程序源代码合集matlab/Python等
CNN卷积神经网络案例程序源代码合集matlab/Python等 1.深入理解CNN(包括CNN的过程显示和前向后向推倒,以及CNN的应用举例.) 2.kerasttensorflowCNN(CNN_ ...
- 3层-CNN卷积神经网络预测MNIST数字
3层-CNN卷积神经网络预测MNIST数字 本文创建一个简单的三层卷积网络来预测 MNIST 数字.这个深层网络由两个带有 ReLU 和 maxpool 的卷积层以及两个全连接层组成. MNIST 由 ...
- DeepLearning tutorial(4)CNN卷积神经网络原理简介+代码详解
FROM: http://blog.csdn.net/u012162613/article/details/43225445 DeepLearning tutorial(4)CNN卷积神经网络原理简介 ...
- Deep Learning论文笔记之(五)CNN卷积神经网络代码理解
Deep Learning论文笔记之(五)CNN卷积神经网络代码理解 zouxy09@qq.com http://blog.csdn.net/zouxy09 自己平时看了一些论文,但 ...
最新文章
- vi/vim: 使用taglist插件
- 每隔k次反转一次 链表_PTA 5-2 Reversing Linked List (25) [法一] - 线性表 - 链表反转 (PAT 1074)...
- mockito mock void方法_纯干货,浅谈Mockito在单元测试中的实际应用
- php excel中文名称乱码,phpexcel导出中文文件名乱码的解决办法
- 列的数目比列的名字要多_你们要的甘特图来啦!还有具体做法哦!
- 现在最简单的赚钱套路
- 和阿里同年创办,为何当当却走向了“卖身”的结局?
- 数据结构一些自己没搞懂的点
- 软考-网络工程师复习资料
- 可怕!让无数女明星下海的换脸术来了,Facebook推出视频换脸功能!
- 图解机器学习基本概念及分类
- [转]Windows服务“允许服务与桌面交互”的使用和修改方法
- linux下的定时任务
- 拓宽你的认知,优秀的人都掌握的40个经典思维模型「附全部模型PPT」
- 怎么做革命性创新产品
- ActiveMQ消息持久化_队列_7
- 万万没想过,10年之后,游戏3D建模师逆袭了
- 松下与Delos中国携手,共同推动健康人居空间的研究和实证
- 安卓Launcher 简介
- html中如何等比缩小图片,css实现图片的等比缩放
热门文章
- ⭐算法入门⭐《堆》中等02 —— LeetCode 703. 数据流中的第 K 大元素
- FlowLayout的使用
- 64. Minimum Path Sum 路径最小总和
- 《Unity》FixedUpdate
- 双重边际效用(Double Marginalization)
- Panoply安装步骤(for Mac)
- 怎么将本地做好的网站部署到服务器上?
- 【132】求把字符串分割成回文串的最少切分次数
- pytorch c++混编报错 Error checking compiler version for cl: [WinError 2] 系统找 不到指定的文件。
- codeforces24D(高斯消元)