1. 尽量简单
模型简单,数据简单,一般10个一下数据,经理保证模型过拟合。
2. loss设计是否合理
初始loss期望值和实际值误差是否过大,多分类例子。
初始loss测试.
数据不均衡的时候是不是可以尝试一下focal loss
3. 网络中间输出检查、网络连接检查
确认所有子网络的输入输出shape对齐,并确认全部都连接上了
梯度更新是否正确
如果参数的梯度大部分是0,那么是不是学习率太小了
时刻监测一下梯度对不对/时刻进行修正。经典问题:梯度消失,梯度爆炸。
参数的梯度是否真的被更新了
4. 时刻关注着模型参数
模型参数保持正常, 1. 调整batch_size 2. 统计梯度下降中,我们需要的batch size要求是:1、batch size足够大到能让我们在loss反向传播时候正确估算出梯度;2、batch size足够小到统计梯度下降(SGD)能够一定程度上regularize我们的网络结构。batch size太小优化困难,太大又会导致:Generalization Gap和Sharp Minima 3. 调整learning rate学习率:学习率太小可能会导致局部最优,而太大又会导致模型无法收敛。4. 梯度裁剪:在反向传播的时候,将参数的梯度限制在一个范围之类:[-min, max] 5。Batch normalization<