模型精度问题和一般的软件问题不同,定位周期一般也更长。在通常的程序中,程序输出和预期不符意味着存在bug(编码错误)。但是对一个深度学习模型来说,模型精度达不到预期,有着更复杂的原因和更多的可能性。
-
常见现象:
精度问题的直接现象一般体现在loss(模型损失值)和metrics(模型度量指标)上。loss现象一般表现为:
(1)loss跑飞,出现NAN,+/- INF,极大值
(2)loss不收敛、收敛慢
(3)loss为0等。模型metrics一般表现为模型的accuracy、precision等metric达不到预期。
精度问题的直接现象较容易观察,借助MindInsight等可视化工具,还可以在梯度、权重、激活值等张量上观察到更多现象。常见现象如:
(1)梯度消失
(2)梯度爆炸
(3)权重不更新
(4)权重变化过小
(5)权重变化过大
(6)激活值饱和等。
-
常见原因
有果必有因,在现象的背后,是精度问题的原因,可以简单分为超参问题、模型结构问题、数据问题、算法设计问题等类别:
超参问题,例如:
学习率设置不合理,
loss_scale参数不合理,
权重初始化参数不合理等。
模型结构问题,例如:</