dl_tips

1.数据

数据预处理
数据集尽可能大
删除或填补所有具有损坏数据的训练样本
数据增强: 创建新样本

2. 适当的激活函数

通常使用Relu函数,
Sigmoid函数的缺陷:尾部饱和梯度消失

3. 网络结构

Resnet,通常选用默认结构,或进行微调
使用比最佳隐含单元数多的数量通常是安全的,因为正则化方法一定程度上都可以处理多余的单元
隐含层只需不断增加,直到性能不在提升。层数越多表达能力越强,但过多时容易过拟合。

4. 权重初始化

使用小随机数初始化权重,通常使用框架推荐设置,如Xavier, He。

5. 超参数微调

网格搜索,效率较低
靠经验调整
随机搜索

6. 优化方法

Adam通常使用默认值
Adam比SGD好调且收敛速度快,但SGD + momentum 通常效果更好

7. batchsize

batchsize 过大影响梯度下降的随机性,过小则随机性过大,收敛不稳定。
通常100左右,可以以一定倍数增加或者减少
使用batch normalization

8.可视化

使用tensorboard or tensorboardX 可视化训练过程,观察过拟合情况,选取最优模型。