更高的浮点精度和机器学习

时间:2020-04-29 02:10:12

标签: machine-learning floating-point computer-vision precision scientific-computing

我通过许多研究论文发现,机器学习算法(尤其是CNN / DNN)实际上是非常容错的应用程序,即它们可以承受严重的数值错误,以至于结果质量和准确性都可以接受。可以通过使用8位甚至偶数字节的整数计算运算符获得。例如,一些研究论文证明,使用4位Integer MAC单元可以获得良好的结果,从而使浮点单元对于此类应用完全无效。

我的问题是关于浮点数的,您认为这在哪里真正强制性?它在任何机器学习/人工智能子域中都找不到位置吗?还是真的只有通用科学计算游戏?是否有一些指向确实需要并依赖它的有用应用程序/基准/平台的指针?

1 个答案:

答案 0 :(得分:0)

在浮点/整数和位数之间做出设计决定。做出此决定的一个好方法是对模型进行训练后量化,然后查看如何改变模型的准确性和性能改进。如果在可接受的精度下降水平内有足够的性能改进,则可以将量化作为后处理步骤添加到模型生成过程中。

此方法不仅限于单独的科学计算或任何特定领域。对初始图像识别模型进行了量化,使其预测时间性能提高了4倍。话虽如此,部署在诸如Jetson或Tensforflow-Lite应用程序之类的边缘设备上的模型中越来越多地采用量化

一个好的起点:Tensorflow post training quantisation

以下是here的基准 Benchmark of quantisation in Image Recogniton models