神经网络训练tricks总结

由于神经网络可以随意设计,先验假设较少,参数多,超参数更多,那模型的自由度就非常高了,精心设计对于新手就变得较难了。

这里简单介绍一些CNN的trick

CNN的使用

 

神经网络是特征学习方法,其能力取决隐层,更多的连接意味着参数爆炸的增长,模型复杂直接导致很多问题。比如严重过拟合,过高的计算复杂度。


CNN其优越的性能十分值得使用,参数数量只和卷积核大小,数量有关,保证隐含节点数量(与卷积步长相关)的同时,大量降低了参数的数量!当然CNN更多用于图像,其他任务靠你自己抽象啦,多多尝试!


这里简单介绍一些CNN的trick

 

  • pooling或卷积尺寸和步长不一样,增加数据多样性

  • data augumentation,避免过拟合,提高泛化,加噪声扰动

  • weight regularization

  • SGD使用decay的训练方法

  • 最后使用pooling(avgpooling)代替全连接,减少参数量

  • maxpooling代替avgpooling,避免avgpooling带来的模糊化效果

  • 2个3x3代替一个5x5等,减少参数,增加非线性映射,使CNN对特征学习能力强

  • 3x3,2x2窗口

  • 预训练方法等

  • 数据预处理后(PCA,ZCA)喂给模型

  • 输出结果窗口ensemble

  • 中间节点作为辅助输出节点,相当于模型融合,同时增加反向传播的梯度信号,提供了额外的正则化

  • 1x1卷积,夸通道组织信息,提高网络表达,可对输出降维,低成本,性价比高,增加非线性映射,符合Hebbian原理

  • NIN增加网络对不同尺度的适应性,类似Multi-Scale思想

  • Factorization into small convolution,7x7用1x7和7x1代替,节约参数,增加非线性映射

  • BN减少Internal Covariance Shift问题,提高学习速度,减少过拟合,可以取消dropout,增大学习率,减轻正则,减少光学畸变的数据增强

  • 模型遇到退化问题考虑shortcut结构,增加深度

  • 等等

 

RNN使用

 

小的细节和其他很像,简单说两句个人感觉的其他方面吧,其实RNN也是shortcut结构

 

  • 一般用LSTM结构防止BPTT的梯度消失,GRU拥有更少的参数,可以优先考虑

  • 预处理细节,padding,序列长度设定,罕见词语处理等

  • 一般语言模型的数据量一定要非常大

  • Gradient Clipping

  • Seq2Seq结构考虑attention,前提数据量大

  • 序列模型考率性能优良的CNN+gate结构

  • 一般生成模型可以参考GAN,VAE,产生随机变量

  • RL的框架结合

  • 数据量少考虑简单的MLP

  • 预测采用层级结构降低训练复杂度

  • 设计采样方法,增加模型收敛速度

  • 增加多级shortcut结构

详细参考:https://mp.weixin.qq.com/s/ISjW_kCHJVKiYCBMtr5MXg

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值