卷积层(convolutional layer)
来源:Coursera吴恩达深度学习课程
如何构建卷积神经网络的卷积层(convolutional layer)呢?来看一个例子。
假设使用两个过滤器进行卷积,第一个过滤器得到第一个4×4矩阵,形成一个卷积神经网络层,然后增加偏差(bias),它是一个实数(real number),通过Python的广播机制给这16个元素都加上同一偏差。然后应用非线性函数,它是一个非线性激活函数ReLU,输出结果是一个4×4矩阵。
对于第二个4×4矩阵,加上不同的偏差,它也是一个实数,16个数字都加上同一个实数,然后应用非线性函数,也就是一个非线性激活函数ReLU,最终得到另一个4×4矩阵。重复我们之前的步骤,把这两个矩阵堆叠起来,最终得到一个4×4×2的矩阵。我们通过计算,从6×6×3的输入推导出一个4×4×2矩阵,它是卷积神经网络的一层,把它映射到标准神经网络中四个卷积层中的某一层或者一个非卷积神经网络中。
注意向前传播的一个操作是:
这里的过滤器用变量W^[1]表示。卷积的输出结果是一个4×4矩阵,它的作用类似于W^[1]*a^[0],然后加上偏差。这一部分(图中蓝色边框标记的部分)就是应用激活函数ReLU之前的值,它的作用类似于z^[1],最后应用非线性函数(non-linearity),得到的这个4×4×2矩阵,成为神经网络的下一层,也就是激活层(activation layer)。
这就是a^[0]到a^[1]的演变过程,首先执行线性函数,然后所有元素相乘做卷积,具体做法是运用线性函数再加上偏差,然后应用激活函数ReLU。这样就通过神经网络的一层把一个6×6×3的维度a^[0]演化为一个4×4×2维度的a^[1],这就是卷积神经网络的一层。
这个示例中有两个过滤器(两个特征),因此最终得到一个4×4×2的输出。如果我们用了10个过滤器,而不是2个,最后会得到一个4×4×10维度的输出图像,因为我们选取了其中10个特征映射。
为了加深理解,做一个练习。
假设你有10个过滤器,神经网络的一层是3×3×3,那么,这一层有多少个参数呢?下面来计算一下,每一层都是一个3×3×3的矩阵,因此每个过滤器有27个参数,然后加上一个偏差,用参数b表示,现在参数为28个。上一页幻灯片里有2个过滤器,而现在有10个,加在一起是28×10,也就是280个参数。注意一点,无论输入的图片多大,参数始终是280个。用这10个过滤器来提取特征,如垂直边缘,水平边缘和其它特征。即使这些图片很大,参数却很少,这就是卷积神经网络的一个特征,叫作“避免过拟合”。
最后总结一下,用于描述卷积神经网络的一层,例如l层的各种标记。
其中,上标[l]用来标记l层,f^[l]表示过滤器大小,p^[l]表示padding的数量,s^[l]表示步幅。输入为上一层的激活值,所用图片的高度和宽度可能不同,分别用下标H和W标记,即:
输出图像的大小为:
联系之前的内容,l层输出图像的高度和宽度分别为:
那么通道数量又是什么?这些数字从哪儿来的?我们知道输出图像也有深度,它等于该层中过滤器的数量。如果有2个过滤器,输出图像就是4×4×2,它是二维的,如果有10个过滤器,输出图像就是4×4×10。输出图像中的通道数量就是神经网络中这一层所使用的过滤器的数量。因此,输出通道数量就是输入通道数量,所以过滤器维度为:
加上偏差和应用非线性函数之后,这一层的输出等于它的激活值a^[l],它的输出维度为:
当你执行批量梯度下降或小批量梯度下降算法时,如果有m个例子,就是有m个激活值的集合,那么输出表示为:
如果采用批量梯度下降(batch gradient descent),变量的排列顺序如下:首先是索引(index)和训练示例(training examples),然后是其它三个变量(these three variables)。
该如何确定权重参数(weights parameters),即参数W呢?权重也就是所有过滤器的集合再乘以过滤器的总数量,即
最后我们看看偏差参数(bias parameters),每个过滤器都有一个偏差参数,它是一个实数。偏差包含了这些变量,它是该维度上的一个向量。后续为了方便,偏差表示为一个的四维矩阵(four dimensional matrix)或四维张量(four dimensional tensor),即
注意一下,大家在线搜索或查看开源代码时,关于高度,宽度和通道的顺序并没有完全统一的标准卷积,有些作者会采用把通道放在首位的编码标准,有的按高度,宽度和通道损失数量的顺序依次计算。。实际上在某些架构中,当会有一个变量(variable)或参数(parameter)来标识计算通道数量和通道损失数量的先后顺序。只要保持一致,这两种卷积标准都可用。
说明:记录学习笔记,如果错误欢迎指正!转载请联系我。
卷积层(convolutional layer)相关推荐
- CNN(卷积层convolutional layer,激励层activating layer,池化层pooling,全连接层fully connected)
CNN产生的原因:当使用全连接的神经网络时,因为相邻两层之间的神经元都是有边相连的,当输入层的特征纬度非常高时(譬如图片),全连接网络需要被训练的参数就会非常多(参数太多,训练缓慢),CNN可以通过训 ...
- 卷积层 convolutional networks
卷积层 convolutional networks 卷积层的滤波器(filter)(或称:卷积核(kernel)),假设其尺寸是 5×5×35 \times 5 \times 35×5×3(宽高都是 ...
- [pytorch、学习] - 5.1 二维卷积层
参考 5.1 二维卷积层 卷积神经网络(convolutional neural network)是含有卷积层(convolutional layer)的神经网络.本章介绍的卷积神经网络均使用最常见的 ...
- 卷积层和全连接层的区别_卷积神经网络中全连接层作用理解总结
前言 一般来说,卷积神经网络会有三种类型的隐藏层--卷积层.池化层.全连接层.卷积层和池化层比较好理解,主要很多教程也会解释. • 卷积层(Convolutional layer)主要是用一个采样器 ...
- CNN模型中 卷积层 RELU层 池化层 作用及顺序
卷积层 Convolutional layer 卷积运算的目的是提取输入的不同特征 类似于CV中的滤波,通过滑动窗口来得到特征图像 非线性激活层 Relu f(x)=max(0,x) 非线性激活层 ...
- Keras.layers各种层介绍,网络层、卷积层、池化层 等
[转载]Keras.layers各种层介绍 - 心冰之海 - bk园 https://www.cnblogs.com/lhxsoft/p/13534667.html 文章导航 一.网络层 1.常用网络 ...
- 深度学习(Deep Learning)——卷积神经网络 (Convolutional Neural Networks / CNN)
一.卷积神经网络的概述 1.卷积神经网络与普通神经网络非常相似,它们都由具有可学习的权重w和偏置常量(biases)的神经元组成.每个神经元都接收一些输入,并做一些点积计算,输出是每个分类的分数,普通 ...
- Caffe Vision 层 - 卷积层 ConvLayer
Caffe Vision 层 - 卷积层 ConvLayer Caffe 的视觉层一般采用 images 作为输入,输出另一种 images. 也可以是其它类型的数据和维度. images 可以是单通 ...
- 机器学习入门(15)— 全连接层与卷积层的区别、卷积神经网络结构、卷积运算、填充、卷积步幅、三维数据卷积、多维卷积核运算以及批处理
卷积神经网络(Convolutional Neural Network,CNN)CNN 被用于图像识别.语音识别等各种场合,在图像识别的比赛中,基于深度学习的方法几乎都以 CNN 为基础. 1. 全连 ...
最新文章
- 分布式之elk日志架构的演进
- On-Heap与Off-Heap
- 一次 sql 优化经历,太有趣了!
- 2016个人阅读计划
- http协议的完整组成
- SAP UI5 应用开发教程之五十五 - 如何将本地 SAP UI5 应用通过 Node.js Express 部署到公网上试读版
- Apple Watch要用上microLED显示屏了 最早明年...
- python刚需_python案例(六): RFM在玩什么?
- 图像局部特征(十)--BRIEF描述子
- C# HttpClient Multipart 上传文件
- 【图像增强】基于matlab同态增晰图像增强【含Matlab源码 962期】
- CPU .......TensorFlow binary was not compiled to use: AVX AVX2
- 什么是概率?对我有什么用?
- EXCEL中怎样能复制公式得来的数据(选择性粘贴)
- Android TV Input Framework(TIF)--构建TV input list
- 车型数据api 根据车系查询车型数据
- 如何获取新浪微博数据
- 第四节:逻辑控制【java】
- Spring声明式事务配置管理方法
- 约翰·刘易斯·加迪斯《论大战略》读书笔记
热门文章
- Webstorm安装Less
- PPLIVE源代码泄露及两个struts命令执行漏洞
- JAVA设计模式—装饰者模式笔记
- 设计模式(五):适配器模式
- 基于TinyMce 实现 OA办公系统-自定义表单、智能表单
- c语言stand(time(0)),C语言程序设计期考试试题(含答案).doc
- 用计算机有什么坏处,电脑的危害有哪些 长期使用电脑的十大危害
- 加拿大魁北克计算机专业,计算机在加拿大魁北克就业福利
- 重启docker引擎,harbor退出问题解决
- Scrapy 2.6 Exceptions 异常处理使用指南