深度学习模型调试经验

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<

你可能感兴趣的:(深度学习入门,深度学习,人工智能,回归)