深度调参技巧

调参:
一般在小数据集上合适的参数,在大数据集上效果也不会太差。
learning rate: 1 0.1 0.01 0.001, 一般从1开始尝试。学习率一般要随着训练进行衰减。衰减系数一般是0.5。
对RNN来说,有个经验,如果RNN要处理的序列比较长,或者RNN层数比较多,那么learning rate一般小一些比较好,否则有可能出现结果不收敛,甚至Nan等问题。
每层结点数: 16 32 128,超过1000的情况比较少见。
batch size: 128上下开始。如果显存大小允许,可以考虑从一个比较大的值开始尝试。因为batch size太大,一般不会对结果有太大的影响,而batch size太小的话,结果有可能很差。
dropout: 0.5
L2正则:1.0,超过10的很少见。
https://zhuanlan.zhihu.com/p/24720954

神经网络经典五大超参数:
学习率(Leraning Rate)、权值初始化(Weight Initialization)、网络层数(Layers)、单层神经元数(Units)、正则惩罚项(Regularizer|Normalization)
http://www.cnblogs.com/neopenx/p/4768388.html

神经网路中的超参数主要包括1. 学习率 η,2. 正则化参数 λ,3. 神经网络的层数 L,4. 每一个隐层中神经元的个数 j,5. 学习的回合数Epoch,6. 小批量数据 minibatch 的大小,7. 输出神经元的编码方式,8. 代价函数的选择,9. 权重初始化的方法,10. 神经元激活函数的种类,11.参加训练模型数据的规模 这十一类超参数。
https://blog.csdn.net/dugudaibo/article/details/77366245

希望算法或者网络收敛更快,有些是对数据预处理,尤其是Batch Normalization,有些是采用不同的激活函数,尤其是Relu激活函数取得了巨大的成功,还有一种加速收敛方法是更换损失函数。
https://blog.csdn.net/zb1165048017/article/details/71154581

批标准化(Batch Normalization )简称BN算法,是为了克服神经网络层数加深导致难以训练而诞生的一个算法。
当训练集的样本数据和目标样本集分布不一致的时候,训练得到的模型无法很好的泛化。
而在神经网络中,每一层的输入在经过层内操作之后必然会导致与原来对应的输入信号分布不同,并且前层神经网络的增加会被后面的神经网络不断的累积放大。
这个问题的一个解决思路就是根据训练样本与目标样本的比例对训练样本进行一个矫正,而BN算法(批标准化)则可以用来规范化某些层或者所有层的输入,从而固定每层输入信号的均值与方差。

批标准化一般用在非线性映射(激活函数)之前,对y= Wx + b进行规范化,使结果(输出信号的各个维度)的均值都为0,方差为1,让每一层的输入有一个稳定的分布会有利于网络的训练。
https://blog.csdn.net/FontThrone/article/details/76652772

如果train loss下降慢,并且test loss没有上升,可以加大模型拟合能力,即加深网络和增大神经元个数。

如果train loss难以下降,并且test loss开始反弹,则应控制模型的容量,即模型的拟合能力,保持层数和神经元个数不过大,同时使用各种减轻过拟合的方法,比如dropout、batch normalization等。
http://www.infoq.com/cn/articles/cnn-and-imagenet-champion-model-analysis


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WX Chen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值