两年前MeliusNet问世的时候,机器之心发表了一篇技术文章《??第一次胜过 MobileNet 的二值神经网络,-1 与 + 1 的三年艰苦跋涉???》,回顾了BNN的发展历程。当时以BNN早期工作XNOR-Net起家的XNOR.AI被苹果收购。大家都在想,这种低功耗、高效率的二进制神经网络技术是否会很快打开广阔的应用前景。但是,近两年来,我们很难从苹果那里获得更多关于BNN技术应用的信息,对技术严格保密,学术界和工业界都没有其他特别亮眼的应用案例。另一方面,随着终端设备数量的暴增,边缘人工智能应用和市场正在快速增长:预计到2030年将产生50至1250亿台边缘设备,边缘计算市场将飙升至600亿美元。其中有几个目前比较热门的应用领域:AIoT、元宇宙和机器人终端设备。相关行业正在加速技术落地。同时,AI能力已经嵌入上述领域的多个核心技术环节,如AI技术在3D重建、视频压缩、实时机器人感知等场景的广泛应用。在此背景下,业界对基于边缘的高效低功耗AI技术、软件工具、硬件加速的需求日益迫切。目前,制约BNN应用的瓶颈主要有两个:一是无法有效缩小与传统32位深度学习模型的精度差距;第二,缺乏在不同硬件上的高性能算法实现。机器学习论文的加速通常不会转化为您使用的GPU或CPU。第二个原因可能来自第一个原因。BNN无法达到令人满意的精度,因此无法引起系统和硬件加速优化领域从业者的广泛关注。而机器学习算法社区通常无法自行开发高性能硬件代码。因此,要想同时获得高精度和强加速,BNN应用或加速器无疑需要这两个不同领域的开发者的通力合作。为什么BNN的计算和内存效率高?例如,Meta推荐系统模型DLRM使用32位浮点数来存储权重和激活参数,其模型大小约为2.2GB。虽然精度下降较小(<4%)的二进制版本的模型大小仅为67.5MB,但可以看出二进制神经网络可以节省模型大小的32倍。这对于存储受限的边缘设备具有非常强大的优势。此外,BNN也非常适合在分布式AI场景中应用。例如,联邦学习经常对模型权重进行传输和聚合操作,因此有限的模型大小和带宽往往成为整个系统的瓶颈。一种常见的方法是增加模型的局部优化迭代次数,以换取权重传递频率的降低。这种折衷的方法是用来提高整体效率的,比如著名的GoogleFedAvg算法。然而,增加本地计算量的策略对端侧用户并不友好。这里,如果使用BNN,数据传输量可以轻松减少几十倍。BNN的第二个显着优势是它们的计算效率极高。它只用1bit,即两种状态来表示变量。这意味着所有的运算只需通过位运算就可以完成,传统的乘法和加法运算可以被与门、异或门等运算所取代。位运算是电路中的基本单元。熟悉电路设计的同学应该明白,有效减少乘加计算单元的面积和减少片外内存访问是降低功耗最有效的手段,而BNN是从内存和计算两个方面入手的.两者都有独特的优势。WRPN[1]表明,与全精度相比,BNN在定制的FPGA和ASIC上可以实现1000倍的节能。最近的工作BoolNet[2]展示了一种几乎不能使用浮点运算并保持纯二进制信息流的BNN结构设计,在ASIC仿真中实现了出色的功耗和精度权衡。第一个准确率为80%的BNN是什么样子的?德国HassoPlattner计算机系统工程研究所的NianhuiGuo和HaojinYang等研究人员提出了BNext模型,成为第一个在ImageNet数据集上top1分类准确率超过80%的BNN:图1基于ImageNet的SOTABNN性能对比论文地址:https://arxiv.org/pdf/2211.12933.pdf作者首先基于LossLandscape可视化对比了当前主流BNN模型与32位模型在优化友好性上的巨大差异(图2),它提出BNN粗糙的LossLandscape是阻碍当前研究界进一步探索BNN性能边界的主要原因之一。基于这一假设,作者试图通过使用新颖的结构设计来提高BNN模型的优化友好性,并通过构建具有更平滑的LossLandscape的二元神经网络架构来降低优化高精度BNN模型的难度。具体来说,作者强调模型的二值化极大地限制了可用于前向传播的特征模式,使得二值卷积只能在有限的特征空间中提取和处理信息,而这种有限的前馈传播模式带来的优化困难about可以通过两个层面的结构设计得到有效缓解:(1)构建灵活的相邻卷积特征标定模块,提高模型对二值表示的适应性;(2)探索高效的旁路结构,缓解前馈传播中特征二值化带来的信息瓶颈问题。图2流行的BNN架构的LossLandscape的视觉比较(2D轮廓透视图)。基于以上分析,作者提出了BNext,这是第一个在ImageNe图像分类任务中准确率>80%的二元神经网络架构。具体的网络架构设计如图4所示。作者首先设计了一个基于Info-Recoupling(Info-RCP)模块的基本二进制处理单元。针对相邻卷积之间的信息瓶颈问题,通过引入额外的BatchNormalization层和PReLU层,完成二元卷积输出分布的初步校准设计。然后作者构建了基于反向残差结构和Squeeze-And-Expand分支结构的二次动态分布校准设计。如图3所示,相比于传统的Real2Binary标定结构,附加的逆残差结构充分考虑了二进制单元输入输出之间的特征差距,避免了完全基于输入信息的次优分布标定。这种两阶段的动态分布校准可以有效降低后续相邻二元卷积层中特征提取的难度。图3卷积模块设计对比图其次,作者提出了一种结合Element-wiseAttention(ELM-Attention)的增强二进制BasicBlock模块。作者通过堆叠多个Info-RCP模块完成BasicBlock的基本构建,并在每个Info-RCP模块中引入额外的BatchNormalization和continuousresidualconnection,进一步缓解不同Info-RCP模块之间的信息瓶颈问题。基于旁路结构对二元模型优化影响的分析,作者提出使用Element-wise矩阵乘法分支对每个BasicBlock的第一个3x3Info-RCP模块的输出进行分布校准.额外的空域注意力加权机制可以帮助BasicBlock以更灵活的机制进行前向信息融合和分发,提高模型LossLandscape的平滑度。如图2.e和图2.f所示,所提出的模块设计可以显着提高模型LossLandscape的平滑度。图4BNext架构设计。"Processor代表Info-RCP模块,"BN"代表BatchNormalization层,"C"代表模型的基本宽度,"N"和"M"代表模型不同阶段的深度尺度参数。表1BNext系列。“Q”代表输入层、SEbranch和输出层量化设置,作者将上述结构设计与流行的MoboleNetv1基准模型结合起来,通过改变比例系数构建了四个不同复杂度的BNext模型系列(表1)modeldepthandwidth:BNex-Tiny,BNext-Small,BNext-Middle,BNext-Large由于LossLandscape比较粗糙,目前的二元模型优化一般依赖知识蒸馏等方法提供的更精细的监督信息来摆脱广泛的次优收敛。BNext的作者首次考虑了教师模型和二元学生模型的预测分布之间的巨大差距可能带来的影响在优化过程中,并指出仅基于模型准确性的教师选择会带来反直觉的学生过度拟合结果。为了解决这个问题,作者提出了知识复杂度(KC)作为一种新的教师选择指标,同时考虑了教师模型输出软标签的有效性与教师模型的参数复杂度之间的相关性。如图5所示,作者基于知识复杂度,对ResNet、EfficientNet、ConvNext等流行的全精度模型系列的复杂度进行了测量和排序,结合BNext-T作为学生模型,初步验证了该方法的有效性metric,并在后续实验中根据排序结果进行知识蒸馏模型选择。图5不同教师选择下反直觉的过拟合效果和知识复杂度在此基础上,论文作者进一步考虑了强教师优化过程中早期预测分布差距带来的优化问题,提出了DiversifiedConsecutiveKD。如下图,作者在优化过程中通过强弱教师相结合的知识整合方法对目标函数进行了调制。在此基础上进一步引入knowledge-boostingstrategy,在训练过程中使用多个预定义的候选教师平均切换弱教师,组合知识的复杂度按照课程从弱到强的顺序引导,降低预测分配。差异造成的优化干扰。在优化技术方面,BNext的作者充分考虑了现代高精度模型优化中数据扩充可能带来的收益,并首次提供了现有流行的数据扩充策略在二元模型优化中可能产生的影响的分析结果。实验结果表明,现有的数据扩充方法并不完全适用于二元模型优化,这为后续研究中针对二元模型优化设计数据扩充策略提供了思路。基于提出的架构设计和优化方法,作者在大规模图像分类任务ImageNet-1k上验证了该方法。实验结果如图6所示。图6SOTABNN方法在ImageNet-1k上的比较。与现有方法相比,BNext-L在ImageNet-1k上首次将二值模型的性能边界推至80.57%,并取得了超过大多数现有方法的10%+精度。与Google的PokeBNN相比,BNext-M在参数相似的前提下高出0.7%。作者还强调,PokeBNN的优化依赖于更高的计算资源,例如高达8192BacthSize和720EpochTPUComputational优化,而BNext-L仅迭代512Epochs常规BatchSize512,这体现了有效性BNext结构设计与优化方法。在基于相同基线模型的对比中,BNext-T和BNext-18都有较大的精度提升。与RegNetY-4G(80.0%)等全精度模型相比,BNext-L仅使用有限的参数空间和计算复杂度,同时展现出匹配的视觉表示学习能力,是部署在边缘的绝佳选择。基于二元模型特征提取器的下游视觉任务模型提供了丰富的想象空间。接下来是什么?BNext的作者在论文中提到,他们和他们的合作者正在积极实施和验证这种高精度BNN架构在GPU硬件上的运行效率,并计划在未来扩展到其他更广泛的硬件平台。不过在小编看来,社区对BNN重拾了信心,吸引了更多系统和硬件领域极客的关注。或许这项工作更重要的意义在于重塑了对BNN应用潜力的想象。从长远来看,随着越来越多的应用从以云为中心的计算范式迁移到去中心化的边缘计算,未来海量边缘设备将需要更高效的人工智能技术、软件框架和硬件计算平台。目前,大多数主流的人工智能模型和计算架构都没有针对边缘场景进行设计和优化。因此,在找到边缘AI的答案之前,我相信BNN永远是一个充满技术挑战和巨大潜力的重要选择。
