首页 > 编程知识 正文

卷积神经网络层结构,cnn卷积神经网络的优点

时间:2023-05-05 10:07:09 阅读:14860 作者:3025

一、CNN的基本结构:1.图像为输入层

2 .接着是CNN特有的卷积,卷积层的自激活函数使用了ReLU

3 .接下来是CNN特有的池化层(pooling ),

4 .卷积层池化层组合可多次出现在隐层中。 也可以灵活组合、卷积池化、卷积等

5 .一些卷积层池化层之后是全连通层,实际上是DNN结构,输出层采用Softmax激活函数进行图像识别分类

6 .常见的fc是CNN的全连接层。 全连接层通常包含最后在softmax中激活函数的输出层

二、卷积原理: https://MP.csdn.net/editor/html/109519709

总结:一补二乘三扫,CNN采用valid模式

三.多维卷积,例如,如果有三个5*5矩阵,三个2*2卷积核。 也就是说,卷取机的行列是5*5*3的tensor,卷积核是2*2*3的tensor。 或者输入的是RGB图像,可以分为三层。 那么在卷积的情况下,将卷积了三个二维tensor的结果相加并添加偏移。

见动图https://cs 231 n.github.io/assets/conv-demo/index.html

请注意,排成一列是卷积核。 但是,该卷积核的tensor.size ()为n x n x 3。 对应的偏移量也是三维的tensor

四. CNN特有的池化层池化是对输入张量的各个部分矩阵进行维压缩。 有两种方式: max和average。

假设filter的维数为nxn,则使用该filter扫描输入张量上,输出每个重叠小块的最大值或平均值。 可以把n维变成一维。

## CNN输入:

如果是二维张量,则等于有二维矩阵n x n。

如果是三维张量,则等于有m个二维矩阵n x n x m。 m不一定是3。

如果是四维张量,则有k个三维矩阵,每个三维矩阵又是m个二维矩阵。 所以四维输入的矩阵形式其实是n x n x m x k。 k也不一定是4。

CNN的全连接层经过卷积层和池化层,输入层输出到二维的tensor束。

全连接层的各层是有很多神经元的瓷砖。 基本结构如下图所示

那么,如何将以前输出的tensor转换为1xn的形式呢? n是第一层全连接层的神经元数。

这句话说:

类似于卷积。 在此折叠核的kernel_size=3x3x5。 也就是说,用五个3x3的子矩阵卷积卷积池化层的输出结果。 各个卷积核的卷积结果是神经元的输入。 因此,为了使这5个子矩阵与4069个神经元的第一层的所有连接层对应,需要利用3x3x5x4069的卷积核进行卷积。

在这里有两个作用:

1 .进行卷积,使卷积池化层的输出与所有连接层相对应。

2 .将分布式特征representation映射到样本标签空间,输出为一个值,并且基于该值来确定分类结果。 大幅减少特征位置对分类的影响

3 .多个全连接层可以有效解决非线性问题

#所有连接层一般进行dropout正则化。 这里有特点。 对于批量训练中的第一个数据jydxz,随机禁用一些神经元,得到的残差DNN结构训练数据并更新整个网络中所有神经元的w和b参数。

训练后,失活的神经元复活。 下一个数据到来时,又随机失活部分神经元得到新的缺失DNN结构,但这两次得到的结构不一定相同。

CNN前向传播算法

另一方面,CNN输入层向前传播到卷积层1 .卷积内核的维数(子矩阵的个数)与子矩阵的个数一致。

无论输入维数如何,前向传播算法都可以表示为:

上标是第几个图层,a是该图层的输入,w是该图层的权重矩阵,b是该图层的偏移。 z是该层的输入的中间输出,是表示卷积的激活函数。

2 .卷积核的个数和维数需要用卷积层来定义,是卷积层的属性。 就像卷积层所拥有的relu

与激活函数相同。

3 .卷积核的数目一般有多个,并且例如在k的情况下,卷积层的输出或下一卷积层的输入的数目是k。

4 .为了填充填充填充(p )并更好地识别边缘,通常在输入矩阵的周围添加几层0。 层数取决于卷积核的维数。

5 .步幅stride。

二.隐层向前传播到卷积层。 前面所有的卷积层和池化层包含全部连接层而构成的是隐藏层。

这里的输入来自隐藏的层。

还需要定义CNN模型卷积核的数量、卷积核矩阵的维度、填充大小和步长。

三、隐层正向池化层传播:1.定义池化趋势大小k

2 .池化标准、最大或平均

3 .如果输入为nxn,则输出的维度为n/k

四.隐层向前向全连接层传播

1 .激活函数选择rule、sigmoid、tanh、softma

x

2.经过若干全连接层(一般不止一层),最后一层就是输出层。输出层一般选softmax做激活函数。其他的一般选另外的激活函数。

3.要定义全连接层各层的神经元

五、总结

1.输入是一个图片样本。CNN模型的层数,所有隐藏层的参数和类型
2.若为卷积层,给出卷积核的个数、维度、填充、步幅

  若为池化层,给出池化区域的大小k和池化标准

   对于全连接层,给出各层的神经元数和激活函数的类型

3.根据填充,得到输入的张量a^1.并初始化所有隐藏层的参数w和b

4.for l in range(2,L):

    若为卷积层,输出

    若为池化层,输出

    若为全连接层,输出

    若为最后一层全连接层,即输出层

 

最后补充一句:卷积层和全连接层表达式看似相同,实际有很大的区别:

在卷积层中W是卷积核,星号(*)表示卷积,W卷积核矩阵是右乘的。W是却别与被卷机矩阵a的矩阵。

在全连接层中,W是参数矩阵,b是偏置,是单纯的矩阵的乘法而不是卷积,且是左乘。W和b 都是该层神经网络附带的属性只不过在训练过程中要不断跳整。

 

参考:CNN 入门讲解:什么是全连接层(Fully Connected Layer)?

深度神经网络(DNN)的正则化

卷积神经网络(CNN)模型结构

卷积神经网络(CNN)前向传播算法

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。