我在阅读少乘法的神经网络时,遇到了理解二进制或三进制连接如何消除乘法需求的问题。
他们解释说,通过从[-1, 0, 1]中随机抽取权重,我们可以避免乘法运算,并且Wx可以仅通过改变符号来计算。然而,即使权重严格限定为-1, 0和1,我如何在不进行乘法的情况下改变x的符号呢?
例如,W = [0,1,-1] 且 x = [0.3, 0.2, 0.4]。我不是仍然需要将W和x相乘才能得到[0, 0.2, -0.4]吗?还是有其他更有效的方法来改变符号而不进行乘法?
回答:
是的。自从“早期”(比如1970年)以来,我所知道的所有通用处理器都有一个机器操作,可以获取一个数字的绝对值,另一个数字的符号,并返回结果。数据传输是并行进行的:操作的算术部分是一个单一的机器周期。
许多高级语言都将这种能力作为内置函数提供。这种功能通常以“copy_sign”这样的名称出现。