鼻子大的小狗 · OAuth2实现单点登录SSO完整教程,其实 ...· 2 周前 · |
暗恋学妹的小摩托 · 概念解析| 电磁计算的新篇章:智能电磁计算· 3 天前 · |
暗恋学妹的小摩托 · 机器学习功能特点、使用限制、相关函数_日志服 ...· 3 天前 · |
长情的山羊 · android tv固件下载包- CSDN文库· 2 天前 · |
个性的火柴 · mysql存储过程中动态sql - CSDN文库· 5 月前 · |
想旅行的鸵鸟 · 重磅!材料连续登上顶刊,这是什么新风向?- ...· 1 年前 · |
乐观的针织衫 · 双类神经网络:组件参考 - Azure ...· 1 年前 · |
一身肌肉的砖头 · SharePoint Webhook 概述 ...· 1 年前 · |
卷积运算中的卷积核需要进行上下翻转和左右翻转:
S\left( {i,j} \right) = \begin{bmatrix} \begin{matrix} {I\left( {i - 2,j - 2} \right)} & {I\left( {i - 2,j - 1} \right)} & {I\left( {i - 2,j} \right)}\\{I\left( {i - 1,j - 2} \right)} & {I\left( {i - 1,j - 1} \right)} & {I\left( {i - 1,j} \right)}\\{I\left( {i,j - 2} \right)} & {I\left( {i,j - 1} \right)} & {I\left( {i,j} \right)}\\\end{matrix} \end{bmatrix}.*\begin{bmatrix} \begin{matrix} {K\left( {2,2} \right)} & {K\left( {2,1} \right)} & {K\left( {2,0} \right)}\\{K\left( {1,2} \right)} & {K\left( {1,1} \right)} & {K\left( {1,0} \right)}\\{K\left( {0,2} \right)} & {K\left( {0,1} \right)} & {K\left( {0,0} \right)}\\\end{matrix} \end{bmatrix} S ( i , j ) = ⎣ ⎡ I ( i − 2 , j − 2 ) I ( i − 1 , j − 2 ) I ( i , j − 2 ) I ( i − 2 , j − 1 ) I ( i − 1 , j − 1 ) I ( i , j − 1 ) I ( i − 2 , j ) I ( i − 1 , j ) I ( i , j ) ⎦ ⎤ . ∗ ⎣ ⎡ K ( 2 , 2 ) K ( 1 , 2 ) K ( 0 , 2 ) K ( 2 , 1 ) K ( 1 , 1 ) K ( 0 , 1 ) K ( 2 , 0 ) K ( 1 , 0 ) K ( 0 , 0 ) ⎦ ⎤
如果忽略卷积核的左右翻转,对于实数卷积实际上与互相换运算是一致的:
▲ 图1.1.1 二维卷积 运算示意图
卷积步长,也就是每次卷积核移动的步长。
下图显示了卷积步长分别为1,2两种情况下的输出结果。从中可以看到,当步长大于1之后,相当于从原来的的步长为1的情况下结果进行降采样。
▲ 图1.1.2 卷积步长分别为1,2两种情况下输出的结果
根据结果是否要求卷积核与原始图像完全重合,部分重合以及结果尺寸的要求,卷积模式包括有三种:
下面显示了三种卷积模式对应的情况。实际上可以通过对于原始图像补零(Padding)然后通过Validate模式获得前面的Full,Same两种模式的卷积结果。
▲ 图1.1.3 三种卷积模式示意图
数据填充,也称为Padding。如果有一个尺寸为
感受野:卷积神经网络每一层输出的特征图(featuremap)上的像素点在输 入图片上映射的区域大小,即特征图上的一个点对应输入图上的区 域。
下图反映了经过几层卷积之后,卷积结果所对应前几层的图像数据范围。
▲ 图1.1.7 经过几层卷积之后,卷积结果所对应前几层的图像数据范围
计算感受野的大小,可以从后往前逐层计算:
( k − 1 ) / 2 就不是整数了。
在CNN中,进行卷积操作时一般会以卷积核模块的一个位置为基准进行滑动,这个基准通常就是卷积核模块的中心。若卷积核为奇数,卷积锚点很好找,自然就是卷积模块中心,但如果卷积核是偶数,这时候就没有办法确定了,让谁是锚点似乎都不怎么好。
▲ , LeNET CNN的结构示意图
激活函数是用来加入非线性因素,提高网络表达能力,卷积神经网络中最常用的是ReLU,Sigmoid使用较少。
▲ 图1.2.1 常见到的激活函数
ReLU函数的缺点:
CNN在卷积层尽量不要使用Sigmoid和Tanh,将导致梯度消失。首先选用ReLU,使用较小的学习率,以免造成神经元死亡的情况。
如果ReLU失效,考虑使用Leaky ReLU、PReLU、ELU或者Maxout,此时一般情况都可以解决
池化操作使用某位置相邻输出的总体统计特征作为该位置 的输出,常用最大池化 (max-pooling)和均值池化(average- pooling) 。
池化层不包含需要训练学习的参数,仅需指定池化操作的核大小、操作步幅以及池化类型。
▲ 图1.3.1 最大值池化一是均值池化示意图
池化的作用:
CNN的训练,也称神经网络的学习算法与经典BP网络是一样的,都属于随机梯度下降(SGD:Stochastic Gradient Descent),也称增量梯度下降,实验中用于优化可微分目标函数的迭代算法。
Step 1 :用随机数初始化所有的卷积核和参数/权重
Step 2 :将训练图片作为输入,执行前向步骤(卷积, ReLU,池化以及全连接层的前向传播)并计算每个类别的对应输出概率。
Step 3 :计算输出层的总误差
Step 4 :反向传播算法计算误差相对于所有权重的梯度,并用梯度下降法更新所有的卷积核和参数/权重的值,以使输出误差最小化
注:卷积核个数、卷积核尺寸、网络架构这些参数,是在 Step 1 之前就已经固定的,且不会在训练过程中改变——只有卷 积核矩阵和神经元权重会更新。
和多层神经网络一样,卷积神经网络中的参数训练也是使用误差反向传播算法,关于池化层的训练,需要再提一下,是将池化层改为多层神经网络的形式:
▲ 图1.5.1 神经网络中池化层对应着多层神经网络
LeNet-5由LeCun等人提出于1998年提出,主要进行手写数字识别和英文字母识别。经典的卷积神经网络,LeNet虽小,各模块齐全,是学习 CNN的基础。
参考 : http://yann.lecun.com/exdb/lenet/
Y. LeCun, L. Bottou, Y. Bengio, and P. Haffner. Gradient-based learning applied to document recognition. Proceedings of the IEEE, November 1998.
▲ 图2.1.1 LeNet-5网络结构
输入层 :32 × 32 的图片,也就是相当于1024个神经元;
C1层(卷积层) :选择6个 5 × 5 的卷积核,得到6个大小为32-5+1=28的特征图,也就是神经元的个数为 6 × 28 × 28 = 4704;
S2层(下采样层) :每个下抽样节点的4个输入节点求和后取平均(平均池化),均值 乘上一个权重参数加上一个偏置参数作为激活函数的输入,激活函数的输出即是下一层节点的值。池化核大小选择 2 ∗ 2 得到6个 14 ×14大小特征图
C3层(卷积层) :用 5 × 5 的卷积核对S2层输出的特征图进行卷积后,得到6张10 × 10新 图片,然后将这6张图片相加在一起,然后加一个偏置项b,然后用 激活函数进行映射,就可以得到1张 10 × 10 的特征图。我们希望得到 16 张 10 × 10 的 特 征 图 , 因 此 我 们 就 需 要 参 数 个 数 为 16 × ( 6 × ( 5 × 5 ) ) 个参数
S4层(下采样层) :对C3的16张 10 × 10 特征图进行最大池化,池化核大小为2 × 2,得到16张大小为 5 × 5的特征图。神经元个数已经减少为:16 × 5 × 5 =400
C5层(卷积层) :用 5 × 5 的卷积核进行卷积,然后我们希望得到120个特征图,特征图 大小为5-5+1=1。神经元个数为120(这里实际上是全连接,但是原文还是称之为了卷积层)
F6层(全连接层) :有84个节点,该层的训练参数和连接数都( 120 + 1 ) × 84 = 10164
Output层 :共有10个节点,分别代表数字0到9,如果节点i的输出值为0,则网络识别的结果是数字i。采用的是径向基函数(RBF)的网络连接方式:
AlexNet由Hinton的学生Alex Krizhevsky于2012年提出,获得ImageNet LSVRC-2012(物体识别挑战赛)的冠军,1000个类别120万幅高清图像(Error: 26.2%(2011) →15.3%(2012)),通过AlexNet确定了CNN在计算机视觉领域的王者地位。
参考 :A. Krizhevsky, I. Sutskever, and G. Hinton. Imagenet classification with deep convolutional neural networks. In NIPS, 2012.
AlexNet可分为8层(池化层未单独算作一层),包括5个卷 积层以及3个全连接层:
▲ 图2.2.1 AlexNet网络结构
输入层 :AlexNet首先使用大小为224×224×3图像作为输入(后改为227×227×3) (227-11+2*0)/4+1=55
第一层(卷积层) :包含96个大小为11×11的卷积核,卷积步长为4,因此第一层输出大小为55×55×96;然后构建一个核大小为3×3、步长为2的最大池化层进行数据降采样,进而输出大小为27×27×96
第二层(卷积层) :包含256个大小为5×5卷积核,卷积步长为1,同时利用padding保证 输出尺寸不变,因此该层输出大小为27×27×256;然后再次通过 核大小为3×3、步长为2的最大池化层进行数据降采样,进而输出大小为13×13×256
第三层与第四层(卷积层) :均为卷积核大小为3×3、步长为1的same卷积,共包含384个卷积核,因此两层的输出大小为13×13×384
第五层(卷积层) :同样为卷积核大小为3×3、步长为1的same卷积,但包含256个卷积 核,进而输出大小为13×13×256;在数据进入全连接层之前再次 通过一个核大小为3×3、步长为2的最大池化层进行数据降采样, 数据大小降为6×6×256,并将数据扁平化处理展开为9216个单元
第六层、第七层和第八层(全连接层) :全连接加上Softmax分类器输出1000类的分类结果,有将近6千万个参数
VGGNet由牛津大学和DeepMind公司提出:
参考 :K. Simonyan and A. Zisserman. Very deep convolutional networks for large-scale image recognition. In ICLR, 2015.
比较常用的是VGG-16,结构规整,具有很强的拓展性。相较于AlexNet,VGG-16网络模型中的卷积层均使用 3 ∗ 3 3 33∗3 的 卷积核,且均为步长为1的same卷积,池化层均使用 2 ∗ 2 2 22∗2 的 池化核,步长为2。
▲ 图2.3.1 VGGNet网络结构
Inception Net 是Google公司2014年提出,获得ImageNet LSVRC-2014冠军。文章提出获得高质量模型最保险的做法就是增加模型的深度(层数)或者是其宽度(层核或者神经元数),采用了22层网络。
Inception四个版本所对应的论文及ILSVRC中的Top-5错误率:
Going Deeper with Convolutions: 6.67%
Batch Normalization: Accelerating Deep Network Training by
Reducing Internal Covariate Shift: 4.8%
RethinkingtheInceptionArchitectureforComputerVision:3.5%
Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning: 3.08%
Inception Module
▲ 图2.4.1 Inception Net网络结构
ResNet(Residual Neural Network),又叫做残差神经网 络,是由微软研究院的何凯明等人2015年提出,获得ImageNet ILSVRC 2015比赛冠军,获得CVPR2016最佳论文奖。
随着卷积网络层数的增加,误差的逆传播过程中存在的梯 度消失和梯度爆炸问题同样也会导致模型的训练难以进行,甚至会出现随着网络深度的加深,模型在训练集上的训练误差会出现先降低再升高的现象。残差网络的引入则有助于解决梯度消失和梯度爆炸问题。
残差块 :
ResNet的核心是叫做残差块(Residual block)的小单元, 残差块可以视作在标准神经网络基础上加入了跳跃连接(Skip connection)。
▲ 图2.5.1 原链接结构示意图
▲ 图2.5.2 跳跃结构示意图
DenseNet中,两个层之间都有直接的连接,因此该网络的直接连接个数为L(L+1)/2。
对于每一层,使用前面所有层的特征映射作为输入,并且使用其自身的特征映射作为所有后续层的输入:
▲ 图2.6.1 DenseNet示意图
参考 :Huang, G., Liu, Z., Van Der Maaten, L., & Weinberger, K. Q. (2017). Densely connected convolutional networks. In Proceedings of the IEEE conference on computer vision and pattern recognition (pp. 4700- 4708).
5层的稠密块示意图:
▲ 图2.6.2 5层DenseNet的结构
DenseNets可以自然地扩展到数百个层,而没有表现出优化困难。在实验中,DenseNets随着参数数量的增加,在精度上产生一致的提高,而没有任何性能下降或过拟合的迹象。
这 是 love1005lin 在CSDN上2021-11-19发布的一篇深度学习的卷积神经网,内容整理的精简,移动,现在将其进行转载,并发布在公众号“ TSINGHUAZHUOQING ”中。
深度学习-卷积神经网络(CNN) : https://blog.csdn.net/love1005lin/article/details/121418206?utm_source=app&app_version=4.20.0
■ 相关文献链接:
● 相关图表链接:
暗恋学妹的小摩托 · 概念解析| 电磁计算的新篇章:智能电磁计算 3 天前 |
长情的山羊 · android tv固件下载包- CSDN文库 2 天前 |
个性的火柴 · mysql存储过程中动态sql - CSDN文库 5 月前 |