资讯详情

卷积神经网络(一)- 卷积神经网络

本学习笔记主要记录深度学习时的各种记录,包括吴恩达先生的视频学习和书籍。作者的能力有限。如果有错误,请联系修改。非常感谢!

卷积神经网络(1)- 卷积神经网络

  • 一、计算机视觉(Computer vision)
  • 二、边缘检测示例(Edge detection example)
  • 三、更多边缘检测内容(More edge detection)
  • 四、Padding
  • 五、卷积步长(Strided convolutions)
  • 六、三维卷积(Convolutions over volumes)
  • 七、单层卷积网络(One layer of a convolutional network)
  • 八、简单卷积网络示例(A simple convolution network example)
  • 九、池化层(Pooling layers)
  • 十、卷积神经网络示例(Convolutional neural network example)
  • 为什么使用卷积?(Why convolutions?)


第一版2022-06-28初稿

一、计算机视觉(Computer vision)

1.计算机视觉的快速发展标志着新应用的可能性; 2.即使CV没有成就,但能激发人类。 在这里插入图片描述 `例如,在左上图中识别猫,在左下图中检测目标(不一定要测量车辆,但要计算位置),在右图中迁移图片风格。 计算机视觉面临挑战:数据输入可能非常大。 在实际操作中,图片数据量为64x64x3.每张图片有三个颜色通道。因此,我们的特征向量x维度为12288.

如果输入300万数据,则特征向量x的维度高达300万。所有权值构成矩阵W[1],有30亿参数,很难获得足够的数据来防止过拟合和竞争需求。

二、边缘检测示例(Edge detection example)

卷积运算是卷积神经网络最基本的组成部分。 垂直线和水平线的检测如下图所示, 6x6x1矩阵。构建一个3,以检测图像的垂直边缘x卷积神经网络中常称为过滤器,有时称为核。 在数学中,卷积用*说;但在python常用于表示乘法或元素乘法。

如图元素乘法,逐步移动。python中卷积为conv_forward函数,tensorflow为tf.conv2d,Keras中用Conv2D。

三、更多边缘检测内容(More edge detection)

本节区分正负边。 图片颠倒,结果变化如图。 不在乎两者的区别,可以取出矩阵的绝对值。 sobel 过滤器的优点是增加了中间元素的权重,使结果更加鲁棒。 Scharr过滤器实际上是一种垂直边缘检测。 还有一种过滤器,何手写过滤器都能检测到45度或70度。

四、Padding

基本的卷积操作padding。 假如我们有一个nxn的图像,用fxf的过滤器做卷积,那么输出的维度是(n-f 1)x(n-f 1)。

:1.每次做卷积操作,图像都会缩小;2.角边缘像素制备输出接触或使用,图像边缘位置的许多信息丢失。 :在卷积操作前填充图像,在图像边缘填充一层像素。 如果为填充量,则输出为(n 2p-f 1)x(n 2p-f 1)。 通常有两种选择可以选择填充多少像素,Valid卷积和Same卷积。 Valid卷积:意味着不填充。 Same卷积:输出大小与输入大小相同,习惯上f通常是奇数。 f偶数的原因很少:1。可能会使用一些不对称的填充物;2.奇数会有一个中心像素点

五、卷积步长(Strided convolutions)

另一个基本操作是卷积步幅。 用3x3过滤器卷积7x7、步幅为2。padding为p,步幅为s。 公式: ? n 2 p ? f s 1 ? ? ? n 2 p ? f s 1 ? \lfloor \frac{n 2p-f}{s} 1 \rfloor *\lfloor \frac{n 2p-f}{s} 1 \rfloor ?sn 2p?f 1??⌊sn+2p−f​+1⌋ 商不是正数则向下取整,也叫作对z进行地板除(floor)。 有时称为互相关而不叫卷积。但在深度学习文献中,按惯例叫做卷积操作。

六、三维卷积(Convolutions over volumes)

彩色图像为三维,图像通道数必须和过滤器的通道数匹配,紫框的数必须相等。 把过滤器画成立方体。 过滤器有27个数,把它放在最左上角位置,先取红色的前9个数,再是绿色,再是蓝色。然后把这些数加起来得左上角数。 接着向右滑动一个单位计算。

若不关心垂直边界在哪个颜色通道里,可以用三个过滤器: ( 1 0 − 1 1 0 − 1 1 0 − 1 ) \left( \begin{matrix} 1& 0& -1\\ 1& 0& -1\\ 1& 0& -1\\ \end{matrix} \right) ⎝⎛​111​000​−1−1−1​⎠⎞​ 同时检测垂直边缘和水平边缘,还有45°倾斜边缘,70°倾斜边缘怎么办? 同时卷积,将所得结果堆叠在一起,得4x4x2的立方体。

若有n x n x nc的输入图像,nc为通道数目(或者叫做深度),然后卷积上一个f x f x nc的过滤器,前后通道数目必须相同。就得到(n-f+1) x (n-f+1) x nc’。nc’是下一层的通道数,就是过滤器个数。若使用padding,数值便发生变化。

七、单层卷积网络(One layer of a convolutional network)

如图是上节降到的三维卷积,最后形成一个卷积神经网络层,通过广播机制增加偏差,然后应用非线性函数,即ReLU函数。 同样,第二个矩阵也加上不同的偏差,

前向传播中一个操作是z[1]=W[1]a[0]+b[1],其中a[0]=x,执行非线性函数得a[1]。W[1]表示过滤器。 10个过滤器,神经网络一层是3x3x3,那么一层有多少个参数?    每个过滤器有27个参数,加上一个偏差,参数增加到28。10个过滤器,加一起是28x10,即120个参数。不管输入图片多大,参数始终280个。卷积神经网络一个特征:避免过拟合。 如图为卷积层的各种标记。 Activations中,若是批量梯度下降,变量排列顺序为索引,训练示例和其它三个变量。

八、简单卷积网络示例(A simple convolution network example)

把需输入图片定义为x,用0或1辨别图中是否有猫。 1.例子中,高宽都为39,nc=3,第一层用3x3的过滤器来提取特征,高宽使用了valid卷积。 2.若有10个过滤器,下层激活值则为37x37x10,37由下公式所得: n + 2 p − f s + 1 \frac{n+2p-f}{s}+1 sn+2p−f​+1 39 + 0 − 3 1 + 1 = 37 \frac{39+0-3}{1}+1=37 139+0−3​+1=37 然后第二层继续卷积,用到5x5的过滤器,有20个。输出为17x17x20。 接着第三层卷积,40个5x5的过滤器,步幅为2,得到7x7x40。 计算出1960个特征,对该卷积进行处理,可以将其平滑或展开成1960个单元。填充到logistic回归或softmax回归中。

设计卷积神经网络时,要考虑过滤器大小、步幅、padding、过滤器数目,图像的高宽会随网络深度加深而减小,通道数量会增加。 一个典型的卷积神经网络通常有三层: 1.卷积层CONV 2.池化层POOL 3.全连接层FC 池化层和全连接层比卷积层更易设计。

九、池化层(Pooling layers)

除了卷积层,通常会用池化层来缩减模型的大小,提高计算速度,同时提高所提取特征的鲁棒性。

如图所用池化类型为最大池化,执行最大池化的树池是一个2x2矩阵,此输出每个元素对应颜色区域里的最大元素值。就如使用了一个2x2的过滤器,步幅为2。左上角所得很大,可能是CAP特征。

最大化运算实际作用是,如果在过滤器中提取到某个特征,那么保留其最大值。若没有提取到这个特征,可能右上象限不存在这个特征,其中的最大值也很小,这就是最大池化的直观理解。 其有个特点是,由一组超参数,但并没有参数需要学习。 输入5x5,采用最大池化法,过滤器为3x3,步幅1,输出为3x3。 平均池化不常用。深度很深的神经网络可以用平均池化来分解规模为7x7x1000的网络的表示层,在整个空间内求平均值,得到1x1x1000。 池化的超参数包括: 1.过滤器大小f 2.步幅s 3.最大池化 或 平均池化 常用f=2,s=2,相当于高宽减半。池化过程没有需要学习的参数。

十、卷积神经网络示例(Convolutional neural network example)

有32x32x3的输入图片,做手写体数字识别0-9。: 1.所用模型和LeNet-5相似。第一层6个过滤器为5x5,步幅1,padding=0,所得标记为CONV1。 2.构建池化层,选用最大池化,f=2,s=2,padding=0,输出标记为POOL1。 3.接着构建Layer2,包含CONV2和POOL2。 4.5x5x16有400个元素,平整化一个大小为400的一维向量,想象为神经元集合,利用400元素构建下一层,包含120个元素,标记为FC3,即400元素和120元素为全连接层。 5.再对FC3加一个全连接层FC4,含有84个单元。 6.用84个单元填充soft函数,softmax识别手写数字就会有10个输出。

: 1.一个卷积层和一个池化层为一层,是神经网络的Layer1, 2.卷积层作为一层,池化层单独作为一层。 在计算神经网络层数时,通常只统计具有权重和参数的层。池化层没有权重和参数。 随着网络加深,高宽都会减小,通道数会增加。卷积神经网络中常见的还有,一个或多个卷积后面跟随一个池化层,接着一个或多个卷积后跟随一个池化层,然后是几个全连接层,最后是一个softmax。

1.池化层和最大池化层无参数 2.卷积层参数相对较少 3.许多参数集中在全连接层

十一、为什么使用卷积(Why convolutions?)

卷积层优势在于 。 1.参数共享 特征检测若适用于图片的某个区域,那么也可能适用于其他区域。 2.稀疏连接 输出的左上角的0仅仅依赖输入左上角的九个数。 通过这两种机制可以减少参数,以便用更小的训练集训练它,预防过拟合。 最后,把这些层整合起来:输入图片,增加卷积层和池化层,再添加全连接层,最后输出一个softmax,即y^。

1


  1. 深度学习-吴恩达 ↩︎

标签: 2x10p线对线连接器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台