卷积神经网络参数设置

接触机器学习的时间还比较短,对于训练的结果往往无法解释,不知道为什么好,也不知道为什么不好。所以罗列了一下卷积神经网络中设置的参数,希望能有所帮助。

一、训练集选择

训练集(Training Set):训练模型,简单的说就是通过训练集的数据来确定拟合曲线的参数。

测试集(Test Set): 测试已经训练好的模型的精确度。

测试集和训练集的划分方法有留出法、交叉验证法和自助法,具体可以参考如何划分训练集和测试集的介绍。留出法用得比较多,自助法一般只用于样本数特别少的情况。但是,建议样本量应该要有足够多,否则机器学习的结果不太好。简单说一下注意点:1.样本要随机化,防止大数据淹没小数据(到底是样本间差异很大的样本集训练出的结果好,还是样本间差异小的样本集训练出的结果好,比较疑惑图像的视角不同和颜色不同对结果的影响。);2.训练集数据的数量应占2/3到4/5,剩下的是测试集;3.样本要做归一化,归一化的具体作用是归纳统一样本的统计分布性,能减少训练时间,避免出现异常样本数据引起的训练结果无法收敛。

二、卷积参数设置

如网络层数、卷积核大小、滑动步长等属于超参数,大多是通过已有的架构来做一些微调。

一般的图像识别,卷积的网络层数设置为2层以上就足够了;如果是医学图像或者是视频类图像可能要设置3层或以上。

卷积核大小和滑动步长的设置决定了最后输出多少个特征。在达到相同感受野的情况下,卷积核越小,所需要的参数和计算量越小。用多个小的卷积核叠加使用要远比一个大的卷积核单独使用效果要好的多。当然,如果卷积核过小的话,可能会无法表示其特征。具体可以参考:https://blog.csdn.net/kuangtun9713/article/details/79475457。

优化算法。每个深度学习库中,都包含了大量的优化算法,用于优化学习速率,让网络用最快的训练次数达到最优,还能防止过拟合。 常见算法可以参考一下:https://blog.csdn.net/manong_wxd/article/details/78735439

激活函数(activation function)的意义在于判定每个层的输出是否达到阈值,达到了就要提取它的特征,而没有达到就会输出为0,这样就使得和该特征无关的区域不会影响到该特征提取方式的训练。注意,激活函数一定是非线性的,因为卷积的每一层的输出都是上一层的线性函数,无论神经网络有多少层,输出都是输入的线性组合。如果激活函数仍然使用线性的,多层的隐藏函数与一层的隐藏函数作用相当,就失去了深度神经网络的意义。常用的激活函数有Sigmoid、ReLu,tanh等等,函数的选择视样本输入选择(多层神经网络一般使用relu)。具体可以参考https://blog.csdn.net/fire_light_/article/details/79542602。

Dropout layer的放置位置以及大小非常重要,一般既可以放在激活函数前也可以放在激活函数后面,具体效果要靠自己调。训练一个大型网络时,因为训练数据有限,很容易出现过拟合,即模型的泛化能力差,网络只对训练数据集的拟合能力好,换成其他的数据集,拟合能力就变差了。所以,有了Dropout layer,使网络在提取训练集特征时,舍弃掉一部分特征来提高网络的泛化能力,其作用就是防止过拟合。

三、调整的参数

1.mini-batch值

batch值是指一次性读入batch-size批量的图片。它的选择很重要,从1至几百(很大数据量的情况下)都是比较合适的,要根据数据集的大小、电脑性能等等来选择,才能达到比较好的效果。batch值太小,容易不收敛,或者需要经过很大的epoch才能收敛;太大,电脑显存受不住。详细了解可以看一下:https://blog.csdn.net/ycheng_sjtu/article/details/49804041,https://blog.csdn.net/zilanpotou182/article/details/76165241。

2.学习速率(learning rate)

很重要。深度学习模型通常由随机梯度下降算法进行训练。随机梯度下降算法有许多变形:例如 Adam、RMSProp、Adagrad 等等。这些算法都需要你设置学习率。学习率决定了在一个小批量(mini-batch)中权重在梯度方向要移动多远。如果学习率很低,训练会变得更加可靠,但是优化会耗费较长的时间,因为朝向损失函数最小值的每个步长很小。反之,如果学习率很高,训练可能根本不会收敛,甚至会发散。权重的改变量可能非常大,使得优化越过最小值,使得损失函数变得更糟。所以,训练应当从相对较大的学习率开始。这是因为在开始时,初始的随机权重远离最优值。在训练过程中,学习率应当下降,以允许细粒度的权重更新。比如一开始可以lr设置为0.1,然后运行到loss不怎么降的时候,学习速率除以10,设置为0.01,再接着训练。具体可以参考:https://blog.csdn.net/Uwr44UOuQcNsUQb60zk2/article/details/78566465
 

  • 7
    点赞
  • 94
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
神经网络参数设置包括卷核大小、卷层数、每层map个数、步幅和填充等。这些参数的确定通常需要根据具体的任务和数据集进行调整和优化。 1. 卷核大小:卷核是卷神经网络中的一个重要组成部分,它用于提取输入数据的特征。卷核的大小决定了在输入数据上进行卷操作时的感受野大小。通常情况下,较小的卷核可以捕捉到更细节的特征,而较大的卷核可以捕捉到更宏观的特征。 2. 卷层数:卷神经网络的深度由卷层数决定。增加卷层数可以增加网络的表达能力,从而提高网络对复杂特征的提取能力。然而,过深的网络可能会导致梯度消失或梯度爆炸的问题,因此需要合理选择卷层数。 3. 每层map个数:每层map个数指的是每个卷层输出的特征图的数量。增加每层map个数可以增加网络的表达能力,从而提高网络对不同特征的提取能力。然而,较大的map个数会增加网络的计算复杂度和参数量,可能导致过拟合问题。 4. 步幅和填充:步幅和填充是卷操作中的两个重要参数。步幅决定了卷核在输入数据上滑动的步长,而填充则是在输入数据的边缘周围添加额外的像素。调整步幅和填充可以改变输出特征图的大小和感受野大小,而影响网络的感知能力和输出大小。 总之,卷神经网络参数设置需要根据具体任务和数据集进行调整和优化,以提高网络的性能和效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值