充分利用算力的精度
我们都知道现在的深度神经网络有大量的信息是冗余的,利用这个冗余进行提高效率的计数有,稀疏计算、低精度量化等等技术。
- 乘法本来就是一种数学上的定义,可以理解成一种最简单的信息处理方法、公式
- 硬件实现FP32单元实际上是按照数学定义的浮点计算去等价,
- 神经网络不像科学计算,其在算法设计上就不需要这么高的精度表达
- 神经网络算法本身就没有办法用到这么高的精度
可以从两个方面来看一下这个问题
- 硬件为什么FP32就是浪费?
- 为什么科学计算就是需要FP32甚至是FP64,而神经网络是没有办法?还是没有必要?
再进行一下推导为什么是数学乘法
- 计算首先需要把信号进行量化,使用“数“来表示信号的量
- 深度神经网络使用乘法,是因为主要使用
线性变换和梯度下降这两个关键的数学支撑的计算方法 - 线性变换本质上是在变换信息,梯度下降是在求解、回归
- 计算精度对于神经网络模型的作用?
- 思维更敏感了
- 映射空间的精细度更高了,表达的信息更丰富了
如果提高计算精度是一个方向,那么为什么不采用?
-
效率问题
- 精度的利用率是有上限的,边际效应,越高的精度越难以触碰/利用
- 利用多个低精度的计算进行等价是不是更高效?
-
更难以训练和收敛
那么问题来了,有没有一种更适合硬件电路,数字电路特点的数学模型?
- 使用
状态,替代量 - 使用
映射表替代计算 - 使用
模仿、逻辑推理来替代梯度下降
No comments to display
No comments to display