如何评价计算精度对训练结果的影响。现在有说法是将计算的精度由双精降低到单精度,甚至使用定点精度,只要网络深度足够就对最终结果没有大的影响。这个趋势是否属实? 为何深度网络没有出现那种前端小的扰动导致后续计算结果出现大的偏差?
NVIDIA中国GPU应用市场总监侯宇涛:
由于深度学习是一个直接基于实践结果体验的解决办法,因此计算精度并不能说深度足够就没有太大的影响,对于精度的选择,需要看实际的应用,如果数据足够多、足够大,那么网络深度只是一个方面;如果精度不能满足梯度,对后面的处理就会有很大的影响。因此,不能直接这样去理解,还需要看具体的训练结果,最好的解决办法就是能满足你训练和工程的需求,如果不能,大家可以一同讨论。
对于为什么网络没有出现前端小的扰动导致后续结果出现大的偏差的问题。这是深度学习一个大的优势,在大数据训练的前提下,使得小数据的影响变得不那么重要。对于内部来说,小规模数据的精度和网络实现的影响不是很大,相当于在一亿个人中,一百人的存在对它的影响不是特别大。
问题来源