卷积神经网络相关模型
- 1. CNN架构
- 2. CNN架构模型
- 2.1LeNet模型
- 2.2Alexnet模型
- 2.3VGG16模型
- 2.3.1 使用多层小卷积核代替一层大的卷积核优点
- 2.3.2 使用1*1卷积核优点
- 2.3.2 模型特点
- 卷积神经网络基本概念相关知识连接
卷积神经网络基本概念相关知识连接
1. CNN架构
- 模型分为2部分【卷积层,全连接层】
- CNN架构堆列一系列卷积层
- 会有多次的卷积=》池化操作
- 在卷积之后,池化之前,会有非线性变换操作【非线性变换一般为Relu】
- 卷积层完成后,进入全连接层
- 在全连接之前,需要把数据reshape为二维数据,才能进入全连接层
- 只有卷积层与全连接才需要计算参数,非线性变换层,池化层不需要计算参数
2. CNN架构模型
2.1LeNet模型
- LeNet5【5代表有五层需要计算参数】
- 模型操作步骤
5*5
卷积【1】=》sigmoid层 (非线性变换)=》池化(使用平均池化)【2】5*5
卷积【3】=》sigmoid层 (非线性变换)=》池化(使用平均池化)【4】- 全连接层【5】=》全连接层【6】=》全连接层【7】(使用tanh为激活函数)
- 一共7层,【1,3,5,6,7】层需要计算参数
- 模型特点
- 重复使用卷积层
- 卷积层使用非线性激活函数sigmoid
- 全连接层使用非线性激活函数tanh
- 池化层使用
平均池化
- 全部使用5*5大小的卷积核
- 总需计算的参数小于
1百万
2.2Alexnet模型
- Alexnet8【8代表有8层需要计算参数】
- 模型操作步骤
11*11
卷积【1】=》ReLu层 (非线性变换)=》池化(使用最大池化)【2】5*5
卷积 【3】 =》ReLu层 (非线性变换) =》池化(使用最大池化)【4】3*3
卷积【5】=》3*3
卷积【6】=》3*3
卷积【7】=》ReLu层 (非线性变换) =》池化(使用最大池化)【8】- 全连接层【9】=》全连接层【10】=》全连接层【11】(使用ReLu为激活函数)
- 一共11层,【1,3,5,6,7,9,10,11】层需要计算参数
- 模型特点
- 重复使用卷积层
- 全部使用非线性激活函数
ReLu
【卷积层与全连接层】 - 使用
11*11
,5*5
,3*3
不同规格的卷积核 - 池化层使用
最大池化
- 总需计算的参数大约为
60百万
- 训练模型使用了dropout,并且做了数据增强(image augmentation)
2.3VGG16模型
VGG16
【16代表有16层需要计算参数】- 模型操作步骤
3*3
卷积【1】=》3*3
卷积【2】(使用padding填充,使特征图大小不变)=》 池化(使用最大池化)【3】3*3
卷积【4】=》3*3
卷积【5】(使用padding填充,使特征图大小不变)=》池化(使用最大池化)【6】3*3
卷积【7】=》3*3
卷积【8】(使用padding填充,使特征图大小不变)=》1*1
卷积【9】=》池化(使用最大池化)【10】3*3
卷积【11】=》3*3
卷积【12】(使用padding填充,使特征图大小不变)=》1*1
卷积【13】=》池化(使用最大池化)【14】3*3
卷积【15】=》3*3
卷积【16】(使用padding填充,使特征图大小不变)=》1*1
卷积【17】=》池化(使用最大池化)【18】- 全连接层【19】=》全连接层【20】=》全连接层【21】(使用ReLu为激活函数)
- 一共21层,【1,2,4,5,7,8,9,11,12,13,15,16,17,19,20,21】层需要计算参数
2.3.1 使用多层小卷积核代替一层大的卷积核优点
- 减少参数计算
- 例如:使用3层
3*3
的卷积核代替一层7*7
卷积核- 使用3层
3*3
的卷积核与一层7*7
卷积核输出的特征图的大小是一致的 - 设输入特征图个数为C,输出特征图个数也为C
- 当进行3次
3*3
的卷积时,参数个数( n u m b e r 3 number3 number3)为
n u m b e r = 3 ∗ ( 3 ∗ 3 ∗ C ∗ C ) = 27 C 2 \begin{aligned} number&=3*(3*3*C*C) \\&=27C^2 \end{aligned} number=3∗(3∗3∗C∗C)=27C2 - 当进行1次
7*7
的卷积时,参数个数( n u m b e r 7 number7 number7)为
n u m b e r = 7 ∗ 7 ∗ C ∗ C = 49 C 2 \begin{aligned} number&=7*7*C*C \\&=49C^2 \end{aligned} number=7∗7∗C∗C=49C2
- 当进行3次
- 使用3层
- 即 n u m b e r 3 < n u m b e r 7 number3<number7 number3<number7,选择小卷积核的卷积组合能够对输入数据表达出更有力的特征,同时使用参数也更少,提高模型的泛化能力
- 例如:使用3层
- 提高泛化能力
- 在每次卷积之后,都会进行非线性转换,多层卷积核卷积,就会增加非线性次数,提高泛化能力
- 例如:使用3层
3*3
的卷积核比一层7*7
卷积核多一次非线性转换
2.3.2 使用1*1卷积核优点
- 优点
- 升维与降维
- 1*1卷积层不会改变卷积核的大小,只会改变通道数,调整通道数,控制模型复杂度【升维,降维】
- 通道数比卷积前小,是对数据降维,降低模型复杂度
- 通道数比卷积前大,是对数据升维,增加模型复杂度
- 1*1卷积层不会改变卷积核的大小,只会改变通道数,调整通道数,控制模型复杂度【升维,降维】
- 增加非线性变换
- 可以替代全连接层【通道数就是神经元的个数】
- 当作池化层
- 使用1*1卷积核,当输入输出的特征图个数一致时,设置步长(stride),也可以代替池化层【相当于改变特征图的大小】
- 升维与降维
2.3.2 模型特点
- 全部使用非线性激活函数ReLu【卷积层与全连接层】
- 连续使用小的卷积核
- 池化层使用
最大池化
- 使用了
1*1
卷积核