卷积神经网络CNN参数优化

卷积神经⽹络CNN参数优化
⽬录
⼀、训练神经⽹络模型
1、神经⽹络训练流程
变量初始化:通过满⾜正态分布的随机数来初始化神经⽹络中的参数是⼀个常⽤的⽅法。
部分训练数据:在每次迭代的开始,⾸先需要选取⼀⼩部分训练数据,这⼀⼩部分数据叫做⼀个batch。这个batch的样本会通过前向传播算法得到神经⽹络模型的预测结果。
前向传播算法:神经⽹络的结构,及每个神经元中的参数都已确定,根据输⼊,计算输出的过程,为前向传播算法。
后向传播算法:定义⼀个损失函数,量化batch样本通过前向传播算法的预测值与真实值之间的差距,反向传播算法更新神经⽹络参数的取值,使得这个batch样本通过神经⽹络模型的预测值与真实值更加接近。
循环上述神经⽹络模型参数的优化过程,直⾄达到指定的训练次数。
2、前向传播算法
输⼊根据⽹络结构和神经元参数计算预测结果的过程,为前向传播算法。
如上图所⽰的神经⽹络,前向传播算法的计算过程为:
3、反向传播算法
盐湖城丑闻使⽤梯度下降法,优化所有参数取值,从⽽使神经⽹络在训练数据上的损失函数尽可能⼩。
分类问题损失函数:
softmax函数将神经⽹络前向传播得到的结果变成概率分布:
笛卡尔坐标系
分类问题⽐较常⽤的损失函数为交叉熵,计算预测的概率分布和真实的概率分布之间的距离:
回归问题损失函数:
回归问题常⽤的损失函数为均⽅误差:
⼆、卷积神经⽹络CNN参数优化n80
1、learning_rate学习速率
0.0010.0050.010.050.1Exponential_decay
苗逢春0.2560.2060.220.220.2060.206
学习速率随迭代次数逐渐减少:1、学习速率过⼤,导致损失函数⽆法收敛到最⼩值;2、学习速率过⼩,损失函数收敛速度过慢。
Delayed_learning_rate = learning_rate * decay_rate ^ (gloabal_step/decay_steps)
当staircase为FALSE时,学习速率是连续衰减函数,不同的训练数据有不同的学习率,当学习率减⼩时,对应的训练数据对模型训练结果的影响也就减⼩;当staircase为True时,gloabal_step/decay_steps会被转化成整数,这使得学习率为⼀个阶梯函
数,Decay_steps通常代表完整的使⽤⼀遍训练数据所需要的迭代轮数,也就是总训练样本数除以每⼀个batch中的训练样本数,每完整地过完⼀遍训练数据,学习率就减少⼀次,使得训练数据中的所有数据对模型训练有相等的作⽤。
损失函数下降的速度和迭代结束后总损失的⼤⼩没有必然的联系。
2、batch_size批数据⼤⼩
50100150200300
0.230.210.270.7180.72
汪天云神经⽹络的优化过程可以分为两个阶段,第⼀个阶段先通过前向传播算法得到预测值,并将预测值和真实值做对⽐得出两者之间的差距。然后在第⼆个阶段通过反向传播算法计算损失函数对每⼀个参数的梯度,再根据梯度和学习率使⽤梯度下降算法更新每⼀个参数。
梯度下降算法在每⼀轮迭代中都需要计算全部训练数据上的损失函数,在海量训练数据下,要计算所有训练数据的损失函数是⾮常消耗时间的。随机梯度下降算法,在每⼀轮迭代中,随机优化⼀⼩部分(⼀个batch)训练数据的损失函数,⼤⼤减少收敛所需要的迭代次数。
批数据使得随机梯度下降的结果更加接近梯度下降的效果。Batch的选择决定的是下降的⽅向,batchsize太⼩,会导致下降的⽅向随机,难以达到收敛,在⼀定范围内,batchsize越⼤,其确定的下降⽅向越准,引起训练震荡越⼩。
3、训练样本要均衡
不均衡均衡
0.720.806
在分类问题中,每⼀类对应的样本个数要⼤致相同,差别不⼤。针对样本类别不均衡的情况,数据样本少的类别采⽤向上采样,数据样本多的类别采⽤向下采样。
CNN对类别不均衡⽐较敏感,不平衡的类别往往使得模型的效果下降。
4、丢弃率
丢弃率0.30.40.50.60.70.8
accuracy0.8110.8050.8160.8130.8180.817
loss  1.207  1.164  1.08  1.15  1.09  1.12
训练样本的损失函数为0.003, 测试样本的损失函数为1.66,模型过拟合。调整丢弃率,提升模型的泛化能⼒。
5、⽹络架构
经典的⽤于图⽚分类问题的卷积神经⽹络架构都满⾜:
物质的量教案输⼊层 --> (卷积层+ --> 池化层?)+ --> 全连接层+
LeNet模型(1998):
卷积层1(5*5*6) --> 池化层1 --> 卷积层2(5*5*16) --> 池化层2 --> FC3(120) --> FC4(84) -->FC5(10) --> softmax
AlexNet模型(2012):
输⼊层(227*227*3) --> 卷积层1(11*11*96) --> 池化层1 --> 卷积层2(5*5*256) --> 池化层2 -->卷积层3(3*3*384) --> 卷积层
4(3*3*384) --> 卷积层5(3*3*256) --> 池化层5 --> 全连接层6(4096) --> 全连接层7(4096) --> 全连接层8(1000)
参考资料:
《TensorFlow实战Google深度学习框架》

本文发布于:2024-09-21 04:39:16,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/412975.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:训练   函数   数据   损失   学习
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议