初始学习率设定
可以从0.0001到0.1每次扩大10倍试验,直到验证集上的loss增大。
一般0.01-0.1左右
样本不平衡问题
解决方式
- 采样层面
过采样&降采样 - 基础版本的过采样:随机过采样训练样本中数量比较少的数据;缺点,容易过拟合;
- 改进版本的过采样:SMOTE,通过插值的方式加入近邻的数据点;
- 神经网络中的过采样:SGD训练时,保证每个batch内部样本均衡。
- 改变loss 权重
代表工作:focal loss,正负样本分别赋予不同的权重 - 当作异常检测任务处理
GPU利用率低
由于CPU数据读取跟不上(读到内存+多线程+二进制文件),而GPU的处理速度太快,导致GPU的利用率不高。
- 提高batch_size;
- 减少日志IO操作频率;
- dataloader 多线程读取数据
Loss 为NaN的原因
- 梯度爆炸
- 出现除零、对数函数自变量为负值等数学问题
- 出现坏样本