模型调参-简略

1、首先快速搭建简单的网络模型能跑一下,看看项目难度,最好有个基线版本用来做对比

2、是否过拟合,比如训练集准确率是1,但是验证准确率是0.7,这样就过拟合

L2正则化更好,当然,也可以L1和L2正则化一起使用。y = M +入*求和(rate*|w|+(1-rate)*w*w)

      L1正则化:1、会让参数变得更稀疏,也就是会有更多的参数变为0

                         2、不可导,但是在优化时又要计算损失函数的偏导数。

      L2正则化:1、不会,因为当参数很小时,比如0.001,这个参数的平方基本就可以忽略了

                         2、可导

L1,L2小总结

那添加L1和L2正则化有什么用?下面是L1正则化和L2正则化的作用,这些表述可以在很多文章中找到。

  • L1正则化可以产生稀疏权值矩阵,即产生一个稀疏模型,可以用于特征选择
  • L2正则化可以防止模型过拟合(overfitting);一定程度上,L1也可以防止过拟合

L1的用处

详细:https://blog.csdn.net/jinping_shi/article/details/52433975

3、参数初始化方式

3、

4、学习率:指数衰减--->指数衰减法的核心思想是,先使用较大的学习率来快速得到一个比较优的解,然后随着迭代的继续逐步减小学习率,使得模型更加稳定。

5、大杀器-数据增强

使用数据增强技术(data augmentation):主要是在训练数据上增加微小的扰动或者变化

       一方面可以增加训练数据,从而提升模型的泛化能力

      另一方面可以增加噪声数据,从而增强模型的鲁棒性(稳定性)。  

      主要的数据增强方法有:

                翻转变换 flip

                随机修剪(random crop)

                色彩抖动(color jittering)

                平移变换(shift)

                尺度变换(scale)

                对比度变换(contrast)

                噪声扰动(noise)

                旋转变换 / 反射变换 (rotation/reflection)

可以参考 Keras 的官方文档 [2] 。获取一个 batch 的训练数据,进行数据增强步骤之后再送入网络进行训练

6、从模型入手

dropout详解:https://yq.aliyun.com/articles/68901

7、加深神经网络:因为梯度衰减等原因

结果分析:我们惊讶的发现,加深了网络层数之后,性能反而下降了,达不到原来的验证集准确率,网络层数从 8 层增加到 14 层,准确率有所上升,但从 14 层增加到 20 层再增加到 32 层,准确率不升反降,这说明如果网络层数过大,由于梯度衰减的原因,导致网络性能下降,因此,需要使用其他方法解决梯度衰减问题,使得深度神经网络能够正常 work。

8、终极神器:残差网络(很好的解决了梯度衰减问题)

详解:https://blog.csdn.net/diamonjoy_zone/article/details/70904212

猜你喜欢

转载自blog.csdn.net/yangyang688/article/details/82735448
今日推荐