本公开一般涉及人工智能(ai)技术,尤其涉及量化贝叶斯深度学习。
背景技术:
1、深度神经网络(dnn)已经成为在我们的日常生活中从自动驾驶汽车、智能手机、游戏、无人机到各种其他应用实现人工智能的重要解决方案。dnn通常包括输入层、输出层和若干隐藏层。尽管神经网络深度可以在许多应用中提供高级性能,但是它们通常具有高计算成本。因此,将dnn部署到具有有限功率和计算能力的终端或边缘设备中是不切实际的。
2、最近,人们对低精度甚至二进制模型的兴趣日益增加,因为它们的存储器大小减小并且效率更好,这使得模型能够在低功率设备上运行。这可以通过用低位宽算法量化参数(诸如神经网络的不同层中的神经元之间的权重)来实现。然而,精度的降低不可避免地伴随着性能的降低。如何在训练量化网络时保持性能成为重要的问题。
技术实现思路
1、以下呈现了根据本公开的一个或多个方面的简化概述,以便提供对这些方面的基本理解。该概述不是对所有预期方面的广泛概述,并且既不旨在标识所有方面的关键或重要元素,也不旨在描绘任何或所有方面的范围。其唯一目的是以简化形式呈现一个或多个方面的一些概念,作为稍后呈现的更详细描述的序言。
2、通常,在本公开中设计了一种随机梯度马尔可夫链蒙特卡罗(sgmcmc)方法,其具有用于量化贝叶斯神经网络(qbnn)的后验推断的近似metropoli-hastings(m-h)校正。所公开的方法利用直通估计器(ste)来提出sgmcmc的近似下降方向。然后,利用具有进一步简化的随机m-h测试来有效地校正由离散化和ste引起的偏差。所公开的方法可以保证正确的平衡分布,即使仅ste-近似方向(而不是随机梯度)被给予sgmcmc。在一个方面,所提出的方法可以用于二元贝叶斯神经网络的后验推断,其具有二值化的激活和权重。还说明了所公开的方法可以在uci、mnist、cifar和imagenet数据集上实现比基线sgmcmc和sgd算法更高的准确性。
3、在本公开的一方面,公开了一种用于利用蒙特卡罗(mc)采样来训练量化贝叶斯神经网络的方法。该方法包括:利用未量化参数空间中的参数初始化贝叶斯神经网络(bnn),其中bnn用于基于输入图像做出具有不确定性的推断;在metropolis-hastings(m-h)间隔期间更新未量化参数空间中的参数;执行m-h测试以决定更新的参数是否可接受,其中基于未量化参数空间中的参数来计算m-h测试的接受率;以及利用量化器将更新的参数量化到量化参数空间中。
4、在本公开的另一方面,公开了一种用于利用蒙特卡罗(mc)采样来训练量化贝叶斯神经网络的装置。该装置可以包括存储器和耦合到所述存储器的至少一个处理器。所述至少一个处理器可以被配置为:利用未量化参数空间中的参数来初始化贝叶斯神经网络(bnn),其中bnn用于基于输入图像做出具有不确定性的推断;在metropolis-hastings(m-h)间隔期间更新未量化参数空间中的参数;执行m-h测试以决定更新的参数是否可接受,其中基于未量化参数空间中的参数来计算m-h测试的接受率;以及利用量化器将更新的参数量化到量化参数空间中。。
5、在本公开的另一方面,公开了一种存储用于利用蒙特卡罗(mc)采样来训练量化贝叶斯神经网络的计算机代码的计算机可读介质。计算机代码在由处理器执行时可以使处理器利用未量化参数空间中的参数初始化贝叶斯神经网络(bnn),其中bnn用于基于输入图像做出具有不确定性的推断;在metropolis-hastings(m-h)间隔期间更新未量化参数空间中的参数;执行m-h测试以决定更新的参数是否可接受,其中基于未量化参数空间中的参数来计算m-h测试的接受率;以及利用量化器将更新的参数量化到量化参数空间。
6、在本公开的另一方面,公开了一种用于利用蒙特卡罗(mc)采样来训练量化贝叶斯神经网络的计算机程序产品。该计算机程序产品可以包括处理器可执行计算机代码用于:利用未量化参数空间中的参数初始化贝叶斯神经网络(bnn),其中bnn用于基于输入图像做出具有不确定性的推断;在metropolis-hastings(m-h)间隔期间更新未量化参数空间中的参数;执行m-h测试以决定更新的参数是否可接受,其中基于未量化参数空间中的参数来计算m-h测试的接受率;以及利用量化器将更新的参数量化到量化参数空间中。
7、通过考虑以下详细描述和附图,本公开的其他方面或变型将变得显而易见。
1.一种用于利用蒙特卡罗(mc)采样来训练量化贝叶斯神经网络的计算机实现的方法,包括:
2.根据权利要求1所述的方法,其中,所述图像是由相机、雷达、lidar、超声成像仪和热成像仪中的一者捕获的。
3.根据权利要求1所述的方法,其中,由所述bnn做出的所述推断包括以下中的一者:所述图像中是否存在异常以及所述图像中是否存在目标对象。
4.根据权利要求1所述的方法,其中,所述mc采样包括随机梯度哈密顿蒙特卡罗(sghmc)采样,并且其中,更新所述参数包括基于所述参数在所述未量化参数空间中的动量来更新所述参数,所述动量是基于量化参数来更新的。
5.根据权利要求1所述的方法,其中,所述m-h测试是基于置信度阈值的近似m-h测试,并且其中,所述近似m-h测试包括:
6.根据权利要求1所述的方法,其中,所述量化器是自适应二进制量化器。
7.一种用于利用蒙特卡罗(mc)采样来训练量化贝叶斯神经网络的装置,包括:
8.根据权利要求7所述的装置,其中,所述图像是由相机、雷达、lidar、超声成像仪和热成像仪中的一者捕获的。
9.根据权利要求7所述的装置,其中,由所述bnn做出的所述推断包括以下中的一者:所述图像中是否存在异常以及所述图像中是否存在目标对象。
10.根据权利要求7所述的装置,其中,所述mc采样包括随机梯度哈密顿蒙特卡罗(sghmc)采样,并且其中,被配置为更新所述参数的所述至少一个处理器被配置为:基于所述参数在所述未量化参数空间中的动量来更新所述参数,所述动量是基于量化参数来更新的。
11.根据权利要求7所述的装置,其中,所述m-h测试是基于置信度阈值的近似m-h测试,并且其中,所述近似m-h测试包括:
12.根据权利要求7所述的装置,其中,所述量化器是自适应二进制量化器。
13.一种计算机可读介质,其存储用于利用蒙特卡罗(mc)采样来训练量化贝叶斯神经网络的计算机代码,所述计算机代码在由处理器执行时使所述处理器执行根据权利要求1-6中的一项所述的方法。
14.一种用于利用蒙特卡罗(mc)采样来训练量化贝叶斯神经网络的计算机程序产品,包括:用于执行根据权利要求1-6中的一项所述的方法的处理器可执行计算机代码。