网站建设贴吧,品质好物推荐怎么上,广州专业网站建设企业,泰安人才招聘信息网卷积神经网络的基本结构
与传统的全连接神经网络一样#xff0c;卷积神经网络依然是一个层级网络#xff0c;只不过层的功能和形式发生了变化。 典型的CNN结构包括#xff1a; 数据输入层#xff08;Input Layer#xff09;卷积层#xff08;Convolutional Layer#x…卷积神经网络的基本结构
与传统的全连接神经网络一样卷积神经网络依然是一个层级网络只不过层的功能和形式发生了变化。 典型的CNN结构包括 数据输入层Input Layer卷积层Convolutional Layer激活层Activation Layer池化层Pooling Layer全连接层Full Connection Layer损失层Loss Function Layer精度层Accuracy Layer 1.数据输入层
数据输入层不属于网络结构。与传统的全连接神经网络不同卷积神经网络的输入层是原始图像而非提取的信息因此卷积神经网络是一个无监督的特征学习网络。
数据输入层主要对原始图像数据进行预处理基础操作包括取均值和灰度归一化还有一些数据增强的相关操作。
# 这是一个典型的使用protobuf协议进行配置的网络输入层它是Caffe的深度学习模型的配置文件
layer{name: datatype: ImageData# 输入层的类型是ImageData也就是原生的图像格式top: datatop: clc-label# 该层有两个参数image_data_param 和 transform_param # 参数有一些属性都是图像预处理参数image_data_param { # 这个参数有三个属性source: all_shuffle_train.txt # 表示输入训练文件路径batch size: 96 # 表示训练时输入数据的批处理大小shuffle: true # 表示是否采用随机操作}transform_param {mean_value: 104.008 # mean_value表示GRB的均值mean_value: 116.669 mean_value: 122.675crop_size: 48 # 表示输入训练图像尺寸mirror: true # 是数据增强操作指代水平翻转}include: { phase: TRAIN}
}2.卷积层
卷积层是网络的特征提取层。卷积神经网络一般包含多个卷积层一个卷积层可以有多个不同的卷积核。
# 这是一个典型的卷积网络层。
# 包含两类参数即权重参数和偏置参数其中配置了两个param属性分别表示这两类参数的学习率
layer{name: conv1type: Convolutionbottom: datatop: conv1param {lr_mult:1decay_mult:1}param {lr_mult:2decay_mult: 0}convolution_param {num_output:12 # 输出特征层的通道数目pad:1 # 在卷积前进行边界填充像素的行列数kernel_size:3 # 卷积步长stride:2weight_filler{ # 卷积权重参数的初始化策略type:xavierstd:0.01}bias_filler { # 这里配置的是偏置参数的初始化方法type: constantvalue:0.2}}
}3.激活层
网络需要激活层进行特征的选择和抑制早期的Sigmoid等函数使用较多现在多实用形式更加简单的ReLU函数。
# 这是一个激活层
# RELU激活层非常简单没有需要学习的参数。有的激活层有需要学习的参数
layer{name: relu1type:ReLUbottom: conv1top: conv1
}4.池化层
池化层用于降低特征平面的分辨率及抽象特征。
池化用于压缩网络参数和数据以降低过拟合。
如果输入为一幅图像那么池化层最主要的作用就是在压缩图像的同时保持该图像特征的不变性。
# 这是一个池化层
# 池化层包含一个参数pooling_param
layer {name: pooltype: Poolingbottom: conv3top: poolpooling_param { # 这个参数中有三个属性pool: MAX # 最大池化kernel_size: 3 # 池化操作的核的大小stride: 2 # 步长}
}5.全连接层
全连接层通常在卷积神经网络结构的最后它也有权重和偏置两个参数。
# 这是一个全连接层通常在卷积神经网络结构的最后也有权重和偏置两个参数
# 其中配置了两个param属性分别表示这两类参数的学习率
layer {name: fctype: InnerProductbottom: pooltop: fcparam {lr_mult: 1decay_mult: 1}param {lr_mult: 2decay_mult: 1}inner_product_param {num_output: 2 # 输出特征维度通常是分类任务的类别数目weight_filler{ # 权重参数的初始化方式type: xavier}bias_filler{ # 偏置参数的初始化方式type: constantvalue: 0}}
}6.损失层
卷积神经网络的优化原理同一般的机器学习算法类似需要定义损失目标函数找到最小化损失函数的参数值通常利用SGD随机梯度下降等算法来调整权值。
# 这是一个softmax损失层损失层的输入就是网络的输出和真实的标签
layer {name: losstype: SoftmaxWithLossbottom: fcbottom: clc-labeltop: loss
}7.精度层
损失目标函数可以反映网络性能的优劣但不是最终需要的指标。
对于分类任务最终需要的是分类精度
对于回归任务需要的是定位精度。
因此一个卷积神经网络还需要接上网络精度层。
# 这是一个分类任务的精度层它与损失层一样输入是网络的输出和真实的标签
layer {bottom: fcbottom: clc-labeltop: accname: acctype: Accuracy
}上面定义的完整的网络结构如图1.20所示。 参考文献 1.书名《深度学习之图像识别 核心算法与实战案例 全彩版》 作者言有三著 出版社清华大学出版社 出版时间2023年7月第一版第一次印刷 ISBN978-7-302-63527-7