tokenpockettokenpocket下载|bnn

作者: tokenpockettokenpocket下载
2024-03-07 17:27:48

二值化神经网络(BNN)综述 - 知乎

二值化神经网络(BNN)综述 - 知乎切换模式写文章登录/注册二值化神经网络(BNN)综述Ironboy学了忘,忘了学,忘了还得学英文原文 : Simons T, Lee D J. A review of binarized neural networks[J]. Electronics, 2019, 8(6): 661.下载链接:注:本文主要是对上述英文综述论文的部分中文翻译和一些对BNN的个人理解,这篇综述的发表日期是2019年6月份,个人感觉这篇综述写的很好,语言简洁,内容详实。后续2020年3月北航发表了一篇更新的二值化综述,但因为已经有人翻译过了,所以不再重复造轮子,原文链接贴在下面,中文翻译知乎随便一搜就能找到。闲扯淡自大四毕业进入课题组以来,在模型压缩与优化加速领域的学习也有一年多了。过去的一年虽然主要是做的模型8-bit量化方面的工程实践(给硬件组当狗),但是同时也看了很多论文,陆陆续续也对整个领域其他方面如剪枝,知识蒸馏,矩阵低秩分解等,和一些基本的轻量级网络如SqueezeNet, ShuffleNet系列,MobileNet系列,EfficientNet系列的结构设计有了一定的了解。其中,二值化神经网络(BNN)尤为引起我的兴趣,因为它有着最为极端的压缩率和极低的计算量。虽然BNN仍受限于复杂数据集/任务上很不理想的准确率和对特定硬件架构或软件框架的依赖,而模型压缩领域真正能应用于实处且算得上通用的技术仍然限于通道剪枝,8bit量化和轻量级网络设计(如果可以归类为模型压缩领域的话),但是我仍然认为BNN是模型压缩领域皇冠上的明珠,因为大道至简。开始正文二值化神经网络(BNN)指的是仅使用+1和-1两个值来表示weights和activations的神经网络,相比于全精度的神经网络,它可以用XNOR+popcount这样极简单的组合代替float32的乘累加来实现卷积操作,从而节省了大量的内存和计算,大大方便了模型在资源受限设备上的部署。但同时,由于二值所能表达的信息量有限,所以BNN在模型精度方面一直都是远低于全精度模型,虽然最近的研究如MeliusNet,IRNet和ReActNet已经努力地将BNNs在ImageNet数据集上的Top-1拉到了0.70以上,与相应的全精度模型差距拉到3个点左右,但他们同时也增加了不少计算量,并且暂时还难以有效地推广到目标检测,语义分割等复杂任务上,所以BNN的升级打怪之路仍然道阻且长。目前有关BNN的研究从大的方面来说就是两个:如何提升BNN的精度和如何有效地部署在低功耗且资源受限的平台上。 本篇综述主要从以下几个方面进行的阐述: 二值化神经网络的基本介绍; 二值化神经网络的主要发展; 提升二值化神经网络精度和推理速度的技巧; 二值化神经网络在不同数据集上的精度表现; 二值化神经网络的硬件实现; 特意说明,因为本篇综述是2019年6月发表的,所以这个时间点之后的相关论文的贡献并没有被总结在内,而我发现这段时间出现了不少优秀的论文,如Bi-real Net, MeliusNet,IRNet, ReActNet等等,他们提出了很多巧妙的技术来解决目前二值化神经网络中存在的问题,所以我会将自己对这些论文的一些总结穿插在接下来的阐述中,其中势必有一些理解不正确的地方,希望能够指出,我们共同进步!基本介绍二值化神经网络的idea最初源于2016年深度学习三巨头之一Yoshua Bengio的论文《BinaryNet: Training Deep Neural Networks with Weights and Activations Constrained to +1 or -1.》,它首次提出一种方法,可以用随机梯度下降的方式训练同时使用二值化的weights和activations的神经网络。为了解决二值化weights中梯度的传递问题,作者提出在训练过程中保持一个实值(float32)的weights,然后使用信号函数sign来获得二值化的weightsW_B = \rm{sign}(W_R) 并且针对sign函数在0处不可导,其他地方导数为0无法有效进行梯度传递的问题,设计了直通估计器STE (straight through estimator),即当梯度传递遇到sign函数时,直接跳过这个函数,或者说默认sign函数输出对输入的梯度为1,即:\frac{\partial L}{\partial W_R} = \frac{\partial L}{\partial W_B} 前向和反向计算的流程如下图所示STE的可视化 使用了STE之后,实值的weights就可以使用如SGD和Adam这样常见的优化器来进行更新了,同时考虑到这个实值weights是没有设置边界的,这样它就有可能会一直累加到特别大的值,从而与二值化的weights之间的量化误差越来越大,积重难返,所以作者对实值的weights还单独加了一个截断函数clip(x,-1,1),将其限制在-1和+1之间,这样使得实值weights和二值化weights的距离更近。对于activations的二值化和weights是相似的,并且在实验中作者发现,当sign函数的输入的绝对值大于1的时候,将梯度置0可以得到更好的实验结果,即:\frac{\partial L}{\partial a_R} = \frac{\partial L}{\partial a_B}*1_{|a_R|\leq1} 简单总结一下,我们可以看到作者在训练过程中对weights和activations做了不同的设置,两个在梯度更新上都是遵照STE的原则,直接将sign函数跳过,而实值weights在更新之后会裁剪到[-1,1]之间,从而减小实值weights和二值化weights之间的距离,而activations的梯度在更新的时候,当实值activations的绝对值大于1时会将梯度置0,避免特别大的梯度向下传递使得训练时候出现震荡。 花这么大的力气来训练这个BNN,然而最后实验结果看起来与全精度相比也没有什么任何优势,肯定是这个模型存在什么惊喜?我来翻译翻译,作者设计BNN的初衷还是为了加速模型的前向推理,这里面最大的功劳就是用1bit数的XNOR和popcount代替了传统卷积的float32乘累加操作,用脚想也能理解这个在理论上不仅能减少32倍的参数存储,还能跑的比曹操快。虽然在BNN各个数据集上的实验都是强差人意,但快不快就完事了。同时也有些亟待毕业的博士研究发现BNN在对抗攻击方面有很强的鲁棒性,除了快,还稳,好家伙,直呼BNN牛逼。XNOR计算主要发展Yoshua Bengio作为BNN的开山祖师,不仅给众多人指明了山的方向 —— 更快更准更泛化,还在一路上留下了数不清的果实让后来者去慢慢摘 —— STE的优化,二值友好结构的设计,更细致的training tricks......,于是这个领域开始了轰轰烈烈的刷榜竞赛,以下将介绍一些在BNN发展道路上带来创新的模型,其中综述中谈到的DeReFa-Net,个人认为它主要是为低比特量化及训练设计的,将乘法用多个bitwise+shift的操作代替,梯度也可以用低比特数来表示,但如果把它的W/A的位宽设置为1/1,并没有看出很多结构上的创新,故在此处不阐述。XNOR-Net 在第一篇BNN发表不久,XNOR-Net横空出世,这篇论文其实提出了两个模型,一个是BWN(Binary Weight Networks),另一个才是XNOR-Net,BWN只使用了二值化的weights,而activation仍然采取的float32全精度,按照BNN的定义其实BWN不能算在二值化网络的范畴,但它的效果那是杠杠的,跟全精度相差不大,看来神经网络对weights的二值化还挺不敏感的。而该文的主角XNOR-Net是正儿八经不掺水的二值化神经网络,weights和activations都采取的二值化。它主要是在原始BNN基础上考虑了量化误差,并且提出了对实值weights每个输出通道方向上提取出一个scaling factor,用于恢复二值化weights的信息,同时对activation在HW方向上每个pixel上提取一个scaling factor,用于恢复二值化activations的信息,这两种scaling factor都无需学习,直接计算相应的L-1范数就能得到,且不影响二值化高效的卷积计算过程。最后的实验也比原始的BNN要好不少,并且首次展示了BNN在ImageNet这种大型数据集上的实验结果,还声称在卷积计算上可以达到58倍的加速效果,节省32倍的内存。XNOR-Net 本文是BNN领域一个非常重要的工作,用scaling factor恢复量化误差来提升精度的思想一直被沿用至今,在各个论文中都能看到。但同时该文也有一些诟病的地方,如计算结果无法复现(我翻译的这篇英文综述说的,不是我说的),没有真正部署在硬件上实测加速效果,只是阐述了一个理论值,毕竟在前向推理过程中每层activation在HW方向每个pixel上计算scaling factor的操作是非常耗时的。ABC-Net 这是大疆创新被NIPS2017收录的论文,论文中主要针对二值化数据表达信息太弱的问题,提出使用多个二值化weights和activations线性加权求和的方式来近似表示全精度的weights和activations,如下面的公式所示。为了得到不同的二值化的bases,作者通过在sign函数中加入变量u,结合weights的均值和方差,通过改变u的值就可以获得不同的二值化tensor。而对于activations来说,使用相同的二值化操作会和XNOR-Net一样在前向推理过程中为了计算均值方差增加大量计算,所以这里选择在sign函数中使用N个可学习的变量u来进行二值化。其实可以看出,这篇论文的思想和DoReFa-Net还是挺相似的,只不过DoReFa-Net是低比特量化,而ABC-Net使用的更巧妙一些,本质还是BNN,但我们一眼也能看出,这个ABC-Net比之前的BNN在计算量上增加了很多,相当于是用时间和空间换取精度。论文说用5个bases可以达到非常好的实验效果,但实际上消耗的资源比W/A=2/2还多了。W \approx \alpha_1B_1+\alpha_2B_2+...+\alpha_MB_M\\ R \approx \beta_1A_1+\beta_2A_2+...+\beta_NA_N \\ \rm{Conv}(W,R) \approx Conv(\sum_{m=1}^M \alpha_mB_m, \sum_{n=1}^N \beta_nA_n)=\sum_{m=1}^M\sum_{n=1}^N \rm{Conv} (B_m, A_n)MeliusNet这是一篇BNN结构设计的论文,作者从两大经典的网络结构ResNet和DenseNet获得启发,针对在此之前的二值化feature map信息表达很弱的问题提出了两个概念:Quality(质量)和Capacity(数量),即ResNet的shortcut可以增强了每个通道的feature map的信息表达,DenseNet中的concat可以增加feature map的通道数,从而增强整体的信息表达。其实这两个想法在前作Bi-real Net和BinaryDenseNet中也分别提到了,本来打算单独讲这两篇,但是考虑到和MeliusNet思想的重合,就只单独把这一篇拎出来讲一下,但实际上述两篇论文的BNN结构上个人觉得更加的简洁,有兴趣的可以下下来看一下。 话题转回来,MeliusNet根据用shotcut和concat增强Quality和Capacity的指导思想设计了两个二值友好的模块,如下图所示,一个是Dense Block,另一个是Improvement Block,这两个模块在网络中每次都是交错出现,在整个信息流中不断地增强二值化feature map的信息表达,从而提升精度。这篇论文除了这个核心思想之外,还提出了一个我觉得比较有意思的思路,那就是二值化网络应该有一套自己的网络结构,这种二值化友好结构的效果要优于相似FLOPs下全精度模型二值化后的结构,并且做了相应的实验进行验证,通俗地来讲就是倡导大家要走二值化特色社会主义道路。IR-Net这是一篇很有意思,我非常喜欢的一篇论文,它的作者就是最开始我提到另一篇综述的作者,2020年上半年也有机会在商汤的泰坦公开课中聆听了主创们对这篇论文的解读。这篇论文主要针对的是二值化在前向计算和反向梯度传播中带来的信息损失问题,作者分别提出了两个技术,一个是 Libra-PB(Libra Parameter Binarization),用于在前向计算中同时最小化weights的量化损失和信息熵损失,另一个是EDE(Error Decay Estimator),通过渐进近似sign函数来最小化反向传播过程中梯度的信息损失。 Libra-PB简单来说就是在weights被二值化之前,先对它做归一化处理,即减均值除方差,这样的话在二值化之前,就大概有一半的weights是大于0,一半的weights小于0,从而使得二值化之后的weights信息熵损失最小。



(二维码自动识别)而EDE则是利用k×tanh(t×x)在不同训练阶段渐进近似sign函数,并用其梯度来代替sign函数的梯度进行反向传播,从而使得整个训练过程可以更加的平滑,从而减少信息损失。EDE之所以喜欢这篇论文,是因为它提出的两个技术非常的简洁有效,一下子就能让人理解,一点都不花里胡哨,然后得到的结果也非常的好。ReActNet这篇论文的一座和Bi-Real Net是同一个人——刘泽春,作者之前还在知乎上和另一个未经作者允许就直接发表了Bi-Real Net V2的研究人员发生了争辩,快来一起吃瓜呀! 并且从这个争论中才了解到ReActNet这篇论文,于是赶忙去下载下来,焚香沐浴,仔细拜读了大佬的作品。这篇论文是延续Bi-Real Net的一篇二值化神经网络研究的工作,作者首先利用Bi-Real Net的思路,即在原始网络中增加shortcut层来改造了MobileNetV1,然后通过大量的实验发现BNN的性能对activations的分布变化特别敏感,即对Activations进行平移/缩放对BNN的性能影响很明显,那么作者思考的是肯定每一层的Activations都各自有一个最适合的偏移值和缩放值使得整个模型的性能最优,于是作者提出了对sign函数和PReLU函数进行改造,加入可学习的参数变量,让模型自动去学每一层最佳的偏移值和缩放值,命名为ReAct-Sign(简称RSign)和ReAct-PReLU(简称RPReLU),另外需要说明的是这些参数都是channel-wise的,计算量其实还是有些的哈,但是因为选的模型是MobileNetV1,参数量较小,所以相比其他的BNN模型在整个计算量上还是少了很多,且精度还高了不少。 另外基于之前的观测结果,作者将最后一层输出经过softmax的结果与label的cross entropy 换成了与全精度模型的最后一层输出经过softmax的cross entropy,以此来学习全精度模型最后一层输出的数据分布,称之为distributional loss,有知识蒸馏那味了,并且作者强调相比于之前一些论文将二值化模型每一层输出都与全精度模型对应层输出进行匹配的做法,这个distributional loss更加简洁,且效果非也很好。以上就是个人结合本篇英文综述和自己看过的一些论文总结的二值化神经网络发展史上一些重要进展的论文。因为本人水平有限,势必不够完整,如有遗漏请多多见谅!提升性能的技术总结现在来总结一下自最初的BNNs论文出来之后,为了提升性能用到的技术总结:Gain term 增益项这个主要指的是一些为了减少数据二值化损失而增加的一些额外的项,如XNOR-Net首次提出的在weights二值化之前计算一个channel-wise的scaling factors(一般是每个通道权重的均值)用于恢复量化损失,这个思想被沿用至今简单有效。 还有各种在activations上增加的可学习的参数,如ReActNet提到的RSign和RPReLU,这些增益项虽然增加一点点的计算,但对模型精度却有大幅度的提升。另外要说明的XNOR-Net里面对activations在HW方向上每个pixel计算一个scale,这个虽然可以减少二值化的信息损失,但是在前向过程中对推理速度的影响很严重,所以暂不列入其中,这也说明了一点,weights上的增益项无论是可学习的还是在线计算的都不会对推理速度有较大影响,因为训练结束之后可以得到固定的系数。而activations的增益项最好是用可学习的,因为在前向推理过程中,每次输入数据不同,在线计算的增益项都需要重新计算,这个对推理速度影响很大。2. 多个二值化base这个特指ABC-Net的做法,用多个二值化的base线性加权近似全精度的weights和activations,性能不错,典型的以时间和空间换取精度的做法。3. 二值友好的结构设计Bi-Real Net,BinaryDenseNet和MeliusNet三篇论文验证了在BNNs网络结构中加入shortcut和concat操作能够大大增强模型的Quality和Capacity,从而大大提升性能。4. 关键层的设计神经网络中关键层一般指的第一层,下采样层和最后一层,这些层相对于其他普通层对模型性能影响更大,所以需要额外注意。第一层第一层的输入是原始数据,且卷积核的参数量较少,如果第一层出现了巨大的信息损失,那么后面层基本上也学不到啥了,原始BNN论文没有对输入直接二值化,因为输入的图像数据是UINT8类型,范围[0,255],二值化基本都是1了,信息损失殆尽,所以作者直接输入原始的数据与二值weights进行卷积计算。为了提升计算效率,作者将输入按比特位切片出来,用移位和XNOR代替乘法,如下图所示。 但这个做法不太妥当的是,输入数据虽然没有丢失信息,但是没有做数据的归一化。在主流的模型训练中我们可以知道,数据的normalize对结果影响还蛮大的,所以目前主流的BNNs基本上第一层都是使用全精度的卷积层,输入数据正常归一化处理后输入网络,因为通常认为这块计算量不大。但是MeliusNet在实验中发现目前很多BNNs计算中,浮点计算占了60%以上,第一层很多人使用的7×7的卷积核,计算量还是蛮大的,所以MeliusNet用三个3×3的卷积进行了代替,节省了一半的计算。输入数据需要做normalize和二值化结构真的就无缘了吗?在FBNA论文中我们发现,可以使用如下技巧,输入数据正常归一化之后,缩放到[-128,128]的范围并取整,然后每个pixel的值用一个长度为256的一维二值化向量表示,两者关系是这个二值化向量累加求和之后的结果除以2等于这个整数值,如下所示:下图中(a,b,c)以2Bit的数据为例再次展示了上述分解过程。输入数据假设为CIFAR10,分辨率是(32,32,3),那么经过分解之后就会变成(32,32,256,3),这个时候我们会发现输入数据巨大无比,第一层计算量指数级增加,于是作者将原图像8bit数据的高位截掉,在分解向量中的体现就是直接去掉右侧的正负1的数,如下图所示,我们可以发现pruning之后的图像其实仍然保留了大多数的信息,且可以大大降低计算量,整个过程如下图(d)所示。FBNA下采样层下采样层的特点是图像分辨率会直接减少一半,这个过程是一个不可逆的信息损失的过程。早期的BNNs都倾向于使用MaxPooling来进行下采样操作,但是存在一个问题是,如果在每一层activations二值化之后进行MaxPooling,会导致梯度反传到这块的时候将梯度均匀的分给多个+1或者多个-1,然而实际上只有real-value最大的那个值真正起了作用,这样的分配是不公平的,所以比较好的做法是遇到MaxPooling操作的时候,将activations的二值化延后,对实值的weights进行下采样,这样可以得到更好的效果。但目前的网络设计人员通常认为MaxPooling是不可学习的算子,倾向于使用stride=2的卷积层来进行下采样,这样可以保留更多的信息,所以在目前的BNNs当中,这块通常也是使用全精度的卷积来计算,避免造成较大精度损失,同时可以利用组卷积+channel shuffle的方式来进一步降低浮点的计算量。输出层这一层在分类任务中通常是全连接的结构,输出最后的预测结果,为了避免二值化的影响,通常也是采取全精度的计算,本来想提一下很多人对FC做的random pruning能降低计算,但又仔细想了想,这中任意剪枝方式在硬件上实现尤为麻烦,估计很难加速。5. 渐进式地学习如IR-Net中的EDE,用其他可微的函数来代替sign函数,并且在训练过程中不断地逼近真正的sign,使得整个训练过程梯度传递更加的平滑。还有一些论文在训练的时候渐进地对weights和activations进行二值化,根据一些原则,一开始的时候二值化部分数据,然后在训练过程中渐渐增大二值化的比例,最后将整个模型二值化,这个过程也是相对平滑的,比直接二值化更有效,这让我想起了老本行模型量化中的INQ。6. padding策略在实值卷积神经网络中,我们通常在输入四周padding的0,但是在BNN当中并没有0这种数的存在,所以大家大多数选择全-1或者全+1。有研究者发现这种padding策略对结果是有影响的,毕竟使得整个输入数据朝着1或者-1发生了偏移,上述的ReActNet也说过activations的发生偏移对结果影响还是很明显的,所以有人提出了Odd-Even padding的方式,即奇偶填充,1和-1间隔填充,如下图所示,并且发现这种填充方式可以达到填充0的效果。7. 其他训练技巧使用全精度模型在数据集上训练好的参数作为对应BNN的初始化参数;Batch Normlization 和输入数据的normalize是必要操作;损失函数增加正则项,如下图中的L-1 norm和L-2 norm,将α设为1,可以使得weights在训练过程中绝对值更加趋近于1,有利于减少量化误差;使用较小的学习率,然后累计梯度,间隔更新的方式;8. 前向加速用INT4/INT8/FP16的卷积代替全精度卷积计算的部分;将Batch Normalization和sign函数合并起来,将浮点计算变成符号判断和数值大小比较;不同数据集上的精度表现由于BNN的模型实在是太多,而每一篇论文的实验结果也非常丰富,故我从两篇综述中截取出CIFAR10,ImageNet,PASCAL VOC2007和MS COCO2017最好的一些结果,如下所示:(注意:其中MS COCO2017的结果我似乎没有在论文原文中找到依据,所以大家就图个乐,不要较真)硬件实现由于我不是搞硬件的,所以这块只能简述一下。由于BNN的主要加速原因就是用XNOR+bitcount操作来代替了传统卷积中昂贵的乘累加操作,而我们使用的x86计算架构基本上都是对float32类型数据的计算做了很大程度的优化,所以直接将BNN部署在现有的x86计算平台上是很吃亏的,有可能不仅没有加速效果,甚至比同等的全精度模型跑的还慢。在我的调研中,硬件部署实现有如下两种方式:ARM CPU,可以部署在手机端BMXNet框架,来自于德国的Hasso Plattner Institute,MeliusNet的作者,支持ios和Android的部署;daBNN框架,来自京东AI研究院,目前仅支持Android手机上的部署;2. FPGA和ASIC相比于传统的CPU,FPGA在硬件架构设计方面很灵活,可以支持bitswise的高效运算,而且功耗很低,其对应的终极版的专用集成电路ASIC更是如此,可以比FPGA运算更高效,更节能。目前用FPGA设计AI加速器基本都是以Xilinx的器件和开发工具为主,而他们也为二值化神经网络专门设计了一款架构FINN,开发者可以利用高层次综合工具(HLS),用C语言进行开发,直接将二值化模型部署到FPGA上,下图是一些对比结果。而Intel的Accelerator Architecture Lab也为BNN设计了一款layer accelerator的ASIC,不过并没有找到很多的相关数据,就不赘述。最后的总结二值化神经网络BNN由于可以实现极高的压缩比和加速效果,所以它是推动以深度神经网络为代表的人工智能模型在资源受限和功耗受限的移动端设备,嵌入式设备上落地应用的一门非常有潜力的技术。虽然目前的BNN仍然存在着很多不足,如模型精度仍然比全精度低了不少,无法有效地泛化到更复杂的任务上,依赖于特定的硬件架构和软件框架......,但我们同时也能看到BNN从最初的2015年ImageNet上只有27%的Top-1准确率发展到2020年ReActNet-C的71.4%的进步,这五年时间众多研究人员在这条道路上不断推动着BNN朝着更准更快更稳的方向发展,所以我们有理由相信,BNN未来可期!编辑于 2020-11-01 19:01深度学习(Deep Learning)压缩量化​赞同 186​​9 条评论​分享​喜欢​收藏​申请

贝叶斯神经网络BNN(推导+代码实现) - 知乎

贝叶斯神经网络BNN(推导+代码实现) - 知乎首发于常见机器学习算法介绍切换模式写文章登录/注册贝叶斯神经网络BNN(推导+代码实现)来咯兔子1. 简介贝叶斯神经网络不同于一般的神经网络,其权重参数是随机变量,而非确定的值。如下图所示:也就是说,和传统的神经网络用交叉熵,mse等损失函数去拟合标签值相反,贝叶斯神经网络拟合后验分布。这样做的好处,就是降低过拟合。2. BNN模型BNN 不同于 DNN,可以对预测分布进行学习,不仅可以给出预测值,而且可以给出预测的不确定性。这对于很多问题来说非常关键,比如:机器学习中著名的 Exploration & Exploitation (EE)的问题,在强化学习问题中,agent 是需要利用现有知识来做决策还是尝试一些未知的东西;实验设计问题中,用贝叶斯优化来调超参数,选择下一个点是根据当前模型的最优值还是利用探索一些不确定性较高的空间。比如:异常样本检测,对抗样本检测等任务,由于 BNN 具有不确定性量化能力,所以具有非常强的鲁棒性。概率建模: 在这里,选择似然分布的共轭分布,这样后验可以分析计算。 比如,beta分布的先验和伯努利分布的似然,会得到服从beta分布的后验。 由于共轭分布,需要对先验分布进行约束。因此,我们尝试使用采用和变分推断来近似后验分布。神经网络: 使用全连接网络来拟合数据,相当于使用多个全连接网络。 但是神经网络容易过拟合,泛化性差;并且对预测的结果无法给出置信度。BNN: 把概率建模和神经网络结合起来,并能够给出预测结果的置信度。先验用来描述关键参数,并作为神经网络的输入。神经网络的输出用来描述特定的概率分布的似然。通过采样或者变分推断来计算后验分布。 同时,和神经网络不同,权重 W 不再是一个确定的值,而是一个概率分布。BNN建模如下:假设 NN 的网络参数为 W,p(W) 是参数的先验分布,给定观测数据 D={X,Y},这里 X 是输入数据,Y 是标签数据。BNN 希望给出以下的分布:也就是我们预测值为:P\left(Y^{\star} | X^{\star}, D\right)=\int P\left(Y^{\star} | X^{\star}, W\right) P(W | D) d W (1) \\由于,W是随机变量,因此,我们的预测值也是个随机变量。其中:P(W | D)=\frac{P(W) P(D | W)}{P(D)} (2) \\这里 P(W|D) 是后验分布,P(D|W) 是似然函数,P(D) 是边缘似然。从公式(1)中可以看出,用 BNN 对数据进行概率建模并预测的核心在于做高效近似后验推断,而 变分推断 VI 或者采样是一个非常合适的方法。如果采样的话: 我们通过采样后验分布P(W \vert \mathcal{D}) 来评估 P(W \vert \mathcal{D}) , 每个样本计算 f(X \vert w), 其中 f 是我们的神经网络。正是我们的输出是一个分布,而不是一个值,我们可以估计我们预测的不确定度。3. 基于变分推断的BNN训练如果直接采样后验概率 p(W|D) 来评估 p(Y|X, D)的话,存在后验分布多维的问题,而变分推断的思想是使用简单分布去近似后验分布。表示\theta = (\mu, \sigma), 每个权重 w_i 从正态分布(\mu_i, \sigma_i) 中采样。希望 q(w \vert \theta) 和 P(w \vert \mathcal{D}) 相近,并使用 KL 散度来度量这两个分布的距离。 也就是优化:\theta^* = \underset{\theta}{\mathrm{argmin}} \text{ KL}\left[q(w \vert \theta) \vert \vert P(w \vert \mathcal{D})\right] \; (3) \\进一步推导:\begin{array}{l} \theta^* &= \underset{\theta}{\mathrm{argmin}} \text{ KL}\left[q(w \vert \theta) \vert \vert P(w \vert \mathcal{D})\right] & \\\\ &= \underset{\theta}{\mathrm{argmin}} \text{ }\mathbb{E}_{q(w \vert \theta)}\left[ \log\left[\frac{ q(w \vert \theta) }{P( w \vert \mathcal{D})}\right]\right] & \text{(definition of KL divegence)} \\\\ &= \underset{\theta}{\mathrm{argmin}} \text{ }\mathbb{E}_{q(w \vert \theta)}\left[ \log\left[\frac{ q(w \vert \theta)P(\mathcal{D}) }{P( \mathcal{D} \vert w)P(w)}\right]\right] & \text{(Bayes Theorem)} \\\\ &= \underset{\theta}{\mathrm{argmin}} \text{ }\mathbb{E}_{q(w \vert \theta)}\left[ \log\left[\frac{ q(w \vert \theta) }{P( \mathcal{D} \vert w)P(w)}\right]\right] & \text{(Drop }P(\mathcal{D})\text{ because it doesn't depend on } \theta) \end{array} \;(4) \\公式中, q(w|\theta) 表示给定正态分布的参数后,权重参数的分布; P(D|w) 表示给定网络参数后,观测数据的似然; P(w) 表示权重的先验,这部分可以作为模型的正则化。并且使用\mathcal{L} = - \mathbb{E}_{q(w \vert \theta)}\left[ \log\left[\frac{ q(w \vert \theta) }{P( \mathcal{D} \vert w)P(w)}\right]\right] \;(5) \\来表示变分下界ELBO, 也就是公式(4)等价于最大化ELBO: \mathcal{L} = \sum_i \log q(w_i \vert \theta_i) - \sum_i \log P(w_i) - \sum_j \log P(y_j \vert w, x_j) \;(6) \\其中,D =\{ (x, y)\}我们需要对公式(4)中的期望进行求导,但是,这里,我们使用对权重进行重参数的技巧:w_i = \mu_i + \sigma_i \times \epsilon_i \; (7) \\其中, \epsilon_i \sim \mathcal{N}(0,1).于是,用 \epsilon代 替 w 后有:\frac{\partial}{\partial \theta}\mathbb{E}_{q(\epsilon)}\left[ \log\left[\frac{ q(w \vert \theta) }{P( \mathcal{D} \vert w)P(w)}\right]\right] =\mathbb{E}_{q(\epsilon)}\left[ \frac{\partial}{\partial \theta}\log\left[\frac{ q(w \vert \theta) }{P( \mathcal{D} \vert w)P(w)}\right]\right] \; (8) \\也就是说,我们可以通过 多个不同的 \epsilon \sim \mathcal{N}(0,1) ,求取\frac{\partial}{\partial \theta}\log\left[\frac{ q(w \vert \theta) }{P( \mathcal{D} \vert w)P(w)}\right] 的平均值,来近似 KL 散度对 \theta 的求导。此外,除了对 w 进行重采样之外,为了保证 \theta 参数取值范围包含这个实轴,对 \sigma 进行重采样,可以令,\sigma = \log (1 + e^{\rho}) \;\;\; (9) \\然后,\theta = (\mu, \rho),这里的 \theta 已经和原来定义的\theta = (\mu, \sigma) 不一样了。4. BNN实践算法:从 N(\mu, log(1+e^\rho)) 中采样,获得 w;分别计算 \log q(w|\theta)、 \log p(w)、 \log p(y|w,x). 其中,计算 \log p(y|w,x) 实际计算 \log p(y|y_{pred}), y_{pred} = w*x. 也就可以得到 \mathcal{L} = \sum_i \log q(w_i \vert \theta_i) - \sum_i \log P(w_i) - \sum_j \log P(y_j \vert w, x_j)。重复更新参数\theta’ = \theta -\alpha \nabla_\theta \mathcal{L}.Pytorch实现:import torch

import torch.nn as nn

import torch.nn.functional as F

import torch.optim as optim

from torch.distributions import Normal

import numpy as np

from scipy.stats import norm

import matplotlib.pyplot as plt

class Linear_BBB(nn.Module):

"""

Layer of our BNN.

"""

def __init__(self, input_features, output_features, prior_var=1.):

"""

Initialization of our layer : our prior is a normal distribution

centered in 0 and of variance 20.

"""

# initialize layers

super().__init__()

# set input and output dimensions

self.input_features = input_features

self.output_features = output_features

# initialize mu and rho parameters for the weights of the layer

self.w_mu = nn.Parameter(torch.zeros(output_features, input_features))

self.w_rho = nn.Parameter(torch.zeros(output_features, input_features))

#initialize mu and rho parameters for the layer's bias

self.b_mu = nn.Parameter(torch.zeros(output_features))

self.b_rho = nn.Parameter(torch.zeros(output_features))

#initialize weight samples (these will be calculated whenever the layer makes a prediction)

self.w = None

self.b = None

# initialize prior distribution for all of the weights and biases

self.prior = torch.distributions.Normal(0,prior_var)

def forward(self, input):

"""

Optimization process

"""

# sample weights

w_epsilon = Normal(0,1).sample(self.w_mu.shape)

self.w = self.w_mu + torch.log(1+torch.exp(self.w_rho)) * w_epsilon

# sample bias

b_epsilon = Normal(0,1).sample(self.b_mu.shape)

self.b = self.b_mu + torch.log(1+torch.exp(self.b_rho)) * b_epsilon

# record log prior by evaluating log pdf of prior at sampled weight and bias

w_log_prior = self.prior.log_prob(self.w)

b_log_prior = self.prior.log_prob(self.b)

self.log_prior = torch.sum(w_log_prior) + torch.sum(b_log_prior)

# record log variational posterior by evaluating log pdf of normal distribution defined by parameters with respect at the sampled values

self.w_post = Normal(self.w_mu.data, torch.log(1+torch.exp(self.w_rho)))

self.b_post = Normal(self.b_mu.data, torch.log(1+torch.exp(self.b_rho)))

self.log_post = self.w_post.log_prob(self.w).sum() + self.b_post.log_prob(self.b).sum()

return F.linear(input, self.w, self.b)

class MLP_BBB(nn.Module):

def __init__(self, hidden_units, noise_tol=.1, prior_var=1.):

# initialize the network like you would with a standard multilayer perceptron, but using the BBB layer

super().__init__()

self.hidden = Linear_BBB(1,hidden_units, prior_var=prior_var)

self.out = Linear_BBB(hidden_units, 1, prior_var=prior_var)

self.noise_tol = noise_tol # we will use the noise tolerance to calculate our likelihood

def forward(self, x):

# again, this is equivalent to a standard multilayer perceptron

x = torch.sigmoid(self.hidden(x))

x = self.out(x)

return x

def log_prior(self):

# calculate the log prior over all the layers

return self.hidden.log_prior + self.out.log_prior

def log_post(self):

# calculate the log posterior over all the layers

return self.hidden.log_post + self.out.log_post

def sample_elbo(self, input, target, samples):

# we calculate the negative elbo, which will be our loss function

#initialize tensors

outputs = torch.zeros(samples, target.shape[0])

log_priors = torch.zeros(samples)

log_posts = torch.zeros(samples)

log_likes = torch.zeros(samples)

# make predictions and calculate prior, posterior, and likelihood for a given number of samples

for i in range(samples):

outputs[i] = self(input).reshape(-1) # make predictions

log_priors[i] = self.log_prior() # get log prior

log_posts[i] = self.log_post() # get log variational posterior

log_likes[i] = Normal(outputs[i], self.noise_tol).log_prob(target.reshape(-1)).sum() # calculate the log likelihood

# calculate monte carlo estimate of prior posterior and likelihood

log_prior = log_priors.mean()

log_post = log_posts.mean()

log_like = log_likes.mean()

# calculate the negative elbo (which is our loss function)

loss = log_post - log_prior - log_like

return loss

def toy_function(x):

return -x**4 + 3*x**2 + 1

# toy dataset we can start with

x = torch.tensor([-2, -1.8, -1, 1, 1.8, 2]).reshape(-1,1)

y = toy_function(x)

net = MLP_BBB(32, prior_var=10)

optimizer = optim.Adam(net.parameters(), lr=.1)

epochs = 2000

for epoch in range(epochs): # loop over the dataset multiple times

optimizer.zero_grad()

# forward + backward + optimize

loss = net.sample_elbo(x, y, 1)

loss.backward()

optimizer.step()

if epoch % 10 == 0:

print('epoch: {}/{}'.format(epoch+1,epochs))

print('Loss:', loss.item())

print('Finished Training')

# samples is the number of "predictions" we make for 1 x-value.

samples = 100

x_tmp = torch.linspace(-5,5,100).reshape(-1,1)

y_samp = np.zeros((samples,100))

for s in range(samples):

y_tmp = net(x_tmp).detach().numpy()

y_samp[s] = y_tmp.reshape(-1)

plt.plot(x_tmp.numpy(), np.mean(y_samp, axis = 0), label='Mean Posterior Predictive')

plt.fill_between(x_tmp.numpy().reshape(-1), np.percentile(y_samp, 2.5, axis = 0), np.percentile(y_samp, 97.5, axis = 0), alpha = 0.25, label='95% Confidence')

plt.legend()

plt.scatter(x, toy_function(x))

plt.title('Posterior Predictive')

plt.show()这里是重复计算100次的平均值和100次平均值的97.5%大和2.5%小的区域线图(即置信度95%)。 参考:变分推断;Weight Uncertainty in Neural Networks Tutorial;Bayesian Neural Networks; 编辑于 2020-10-26 22:33机器学习统计学习神经网络​赞同 420​​24 条评论​分享​喜欢​收藏​申请转载​文章被以下专栏收录常见机器学习算法介绍分享机器学习算法,结合数学进行推导和代码进行实践。算法集锦关于各种算法

二值神经网络(Binary Neural Networks)最新综述 - 知乎

二值神经网络(Binary Neural Networks)最新综述 - 知乎首发于PaperWeekly切换模式写文章登录/注册二值神经网络(Binary Neural Networks)最新综述PaperWeekly作者|秦浩桐、龚睿昊、张祥国单位|北京航空航天大学研究方向|网络量化压缩本文介绍了来自北京航空航天大学刘祥龙副教授研究团队的最新综述文章 Binary Neural Networks: A Survey,合作者包括中国电子科技大学的宋井宽教授和意大利特伦托大学计算机系主任 Nicu Sebe 教授。神经网络二值化能够最大程度地降低模型的存储占用和模型的计算量,将神经网络中原本 32 位浮点数参数量化至 1 位定点数,降低了模型部署的存储资源消耗,同时极大加速了神经网络的推断过程。但二值化会不可避免地导致严重的信息损失,其量化函数不连续性也给深度网络的优化带来了困难。近年来许多算法被提出致力于解决上述问题,并取得了令人满意的进展。在本文中,我们对这些方法进行了全面的总结和概括,主要分为直接量化的朴素二值化方法,以及使用最小化量化误差、改善网络损失函数和减小梯度误差等技术的改进二值化方法。本文还调研了二值神经网络的其他实用方面,例如硬件友好的设计和训练技巧。然后,我们对图像分类,目标检测和语义分割等不同任务进行了评估和讨论。最后,本文展望了未来研究可能面临的挑战。关键词:二值神经网络,深度学习,模型压缩,网络量化,模型加速论文标题:Binary Neural Networks: A Survey论文链接:https://www.sciencedirect.com/science/article/abs/pii/S0031320320300856引言由于深度模型具有多层结构和数百万个参数,因此深层 CNN 具有很强的学习能力,通常具有令人满意的性能。例如,VGG-16 网络包含大约 1.4 亿个 32 位浮点参数,对于 ImageNet 数据集上的图像分类任务,可以达到 92.7% 的 Top-5 测试准确率。整个网络需要占用 500M 字节以上的存储空间,并再一次推理过程中执行 1.6x1010 次浮点算术运算。这使得深层的卷积神经网络严重依赖于 GPU 等高性能硬件,而在实际应用中,通常只有计算资源有限的设备可用,如移动电话和嵌入式设备。以基于 FPGA 的嵌入式设备为例,通常该类设备只有数千个计算单元,远远不能处理常见深度模型中的数百万次浮点运算,复杂的模型与有限的计算资源之间存在着严重的矛盾。尽管目前涌现了大量用于深度学习的专用硬件,这些硬件提供了高效的矢量运算操作以实现正向推理中的快速卷积,但繁重的计算和存储仍然不可避免地限制了深度卷积神经网络的实际应用。此外,由于巨大的模型参数空间,神经网络的推理通常被视为一个黑盒,这给 CNN 的可解释性带来了巨大挑战。许多工作从经验上探索了网络中每一层的功能。他们将从不同滤波器中提取的特征图可视化,并将每个滤波器视为一个聚焦于不同视觉部分的视觉单元。从可解释的机器学习角度来看,我们可以得出一些结论:一些滤波器在模型中起着相似的作用,尤其是当神经网络模型规模较大时。因此,剪去一些无用的滤波器或将其精度降低到较低比特表示是合理的。一方面,我们可以通过这种压缩技术实现更高效的推理。另一方面,我们可以利用它来进一步研究卷积神经网络的可解释性,即找出哪一层是重要的,哪一层是无用的并且可以从黑盒中删除,哪种结构有利于准确预测。在文献中,用于压缩深层网络的方法可分为五类:参数剪枝,参数量化,低秩分解,迁移/压缩卷积滤波器和知识蒸馏。在现有的网络压缩技术中,基于量化的技术是一种很有潜力且十分高效的解决方案,与浮点模型相比,量化模型可以通过以非常低的精度表示网络权重来压缩、加速原始网络。沿此方向,最极端的量化是二值化,这是本次综述的重点所在。二值化是一种 1 位的量化,其数据只有两个可能的值,即 -1(0)或 +1。使用二值化进行压缩后,网络中的权重和激活都可以用 1 位表示,而不会占用太多内存。此外,通过二值化,二值网络可以使用轻量级的 XNOR 和 Bitcount 位运算代替繁重的浮点乘加运算。因此,与其他压缩方法相比,二值神经网络具有许多硬件友好的特性,包括节省内存、提高能源效率和显著地加速。BNN 和 XNOR-Net 之类的开创性工作证明了二值化的有效性,使用 1 位卷积运算的 XNOR-Net 在 CPU 上的加速可达到 58 倍,压缩率可至 32 倍。除了关注模型二值化的策略外,许多研究还试图揭示模型二值化行为地本质影响,并据此进一步解释模型鲁棒性与深度神经网络结构之间的联系。一些研究表明,二值神经网络可以过滤输入噪声,并指出:与全精度的神经网络相比,经过特殊设计的 BNN 更加鲁棒。基于 BNN 的研究还可以帮助我们分析深度神经网络中的结构是如何工作的。有许多工作探索了不同层对二值化的敏感性。通常,第一层和最后一层应保持较高的精度,这意味着这些层在神经网络的预测中起着更重要的作用。本文试图探究二值神经网络的本质,将现有的二值化方法分类为未改进量化函数的朴素二值化方法,和基于优化的二值化方法,优化包括最小化量化误差、改善损失函数和减小梯度误差。我们还讨论了硬件友好的架构设计和训练二值神经网络的有效技巧。此外,本文介绍了目前广泛被用于评估二值神经网络的通用数据集和网络结构,并比较了当前方法在不同任务上的性能。背景介绍在全精度卷积神经网络中,基本运算可以表示为:其中 w 和 a 分别表示网络层权重张量和之前的网络层生成的激活张量。σ(•) 表示非线性函数,z 表示输出张量,⊗ 表示卷积运算。在神经网络的正向推理过程中,卷积运算包含大量的浮点运算,包括浮点乘法和浮点加法,它们构成了神经网络推理中的绝大多数计算。2.1 前向传播网络二值化的目标是使用 1 位表示浮点权重 w 和 / 或激活 a。二值化函数的常用定义如下:其中 b_w 和 b_a 代表二值化权重(卷积核)和二值化激活量的张量,相应的尺度因子分别为 α 和 β,用于二值化得到 Q_w 和 Q_a 的 sign 函数如下:通过权重和激活二值化,可以将正向传播中的浮点卷积操作重新表示为:其中 ⊙ 表示由位运算 XNOR 和 Bitcount 实现的向量内积。图 1 表示了二值神经网络中的卷积过程。2.2 反向传播在训练一个二值神经网络时,可以直接采用基于梯度下降的强大的反向传播(BP)算法来更新参数。但是,通常二值化函数(例如sign函数)是不可微的,甚至更糟的是,该函数的部分的导数值消失了(sign函数的导数几乎处处为0)。因此,普通的基于梯度下降的反向传播算法不能直接应用于更新二值化的权重。Hinton 等人最早提出在反向传播中使用直通估计器(STE),用于解决训练中因为 sign 函数的导数几乎处处为 0 所产生梯度问题。STE 的导数定义如下:通过应用 STE,我们可以使用与全精度神经网络相同的梯度下降方法直接训练二值神经网络。但是,在反向传播中使用函数近似 sign 函数时,如果全精度激活的绝对值大于 1,则无法在反向传播中进行更新。因此,在实际情况下,函数也会被用来近似 sign 函数的导数。二值神经网络近年来,各种各样的二值神经网络方法被提出,从使用预定义函数直接对权重和输入进行量化的朴素二值化方法,到使用基于多种角度和技术的基于优化的二值化方法,其中包括通过最小化量化误差来近似全精度值、通过修改网络损失函数来限制权重、和通过减小梯度误差来学习离散参数。表 1 汇总了不同类别二值化方法。3.1 朴素的二值神经网络朴素的二值神经网络通过固定的二值化函数将神经网络中的权重和激活直接量化为 1 位。然后在标准训练方式中采用带有 STE 的基本反向传播策略来优化深度模型。2016 年,Courbariaux 等人提出的 BinaryConnect [1] 开创了二值神经网络的研究先河。BinaryConnect 将神经网络内部的全精度权重转换为 1 位的二值权重。遵循网络二值化的标准范式,Courbariaux 等人进一步介绍了 Binarized Neural Network,并详细介绍了二值网络的训练和加速技巧。Smaragdis 等人也研究了网络的二值化,并提出了适合于资源受限环境的 Bitwise Neural Network [2]。3.2 基于优化的二值神经网络朴素的二值化方法具有节省计算资源的优点,因其以非常简单的方式量化网络。但是,由于不考虑二值化在前向和反向过程中的影响,这些方法不可避免地会在很多任务中造成精度损失。因此,为了减轻二值神经网络中的精度损失,在过去的几年中,大量基于优化的解决方案出现,相对于原始的解决方案,这些方案表现出了成功的提升。3.2.1 最小化量化误差为了优化二值神经网络,通常的做法是减少权重和激活的量化误差。这是一种简单的解决方案,类似于标准的量化机制,即量化参数应尽可能接近全精度参数,并期望二值神经网络模型的性能接近全精度模型。作为考虑量化误差的早期研究,Rastegari 等人提出了二值权重网络(BWN)和 XNOR-Net [3]。BWN 采用二值化权重和全精度激活的设置,而 XNOR-Net将权重和激活都二值化。与先前的研究不同,该工作通过引入二值参数的比例因子很好地近似了浮点参数。具体来说,可以将 BWN 和 XNOR-Net 中的权重量化过程公式化为 w=\alpha b_w ,其中 α 是二值化权重 b_w 的尺度因子(浮点数),然后通过将量化误差最小化确定最佳的比例因子和二值参数:与直接使用 1 位(-1 / +1)相比,该解决方案的量化误差要小得多,从而提高了网络的推理精度。高阶残差量化(HORQ)为了进一步减少量化误差采用了基于量化残差的对于全精度激活的递归逼近,而不是 XNOR-Net 中使用的单步逼近,这进一步减小了网络中的量化误差 [4]。3.2.2 改进网络损失函数仅关注某一层很难保证经过一系列层的最终输出的精确性。因此,网络的训练需要能够全局考虑二值化以及特定的任务目标。最近,大量研究工作在探究在二值化带来的限制下仍能引导网络参数的学习过程的损失函数。通常,一般的二值化方案仅关注对浮点数的精确局部逼近,而忽略二值参数对全局损失的影响。Hou 等人提出了损失感知二值化(LAB)[5],使用拟牛顿算法直接将与二值权重相关的总损失最小化。除了从量化角度考虑与任务相关的损失外,事实证明设计额外的量化感知损失项也是可行的。Ding 等人总结了二值神经网络中由前向二值化和反向传播引起的问题,包括“退化”,“饱和”和“梯度不匹配”。用于训练二值神经网络的指导信息也可以从大规模的全精度模型中得出。Apprentice 方法使用预训练的全精度大规模教师网络训练低精度的学生网络 [6]。3.2.3 降低梯度误差二值神经网络的训练仍然依赖于广泛应用的 BP 算法。然而,sign 函数和 STE 生成的梯度之间存在明显的梯度不匹配。此外,还存在以下问题:[-1,+1] 范围之外的参数将不被更新。这些问题很容易导致二值网络优化不足,从而严重降低性能。直观来看,精心设计的二值化的近似函数可以缓解反向传播中的梯度失配问题。Bi-Real 提供了一个自定义的 ApproxSign 函数来替换 sign 函数以进行反向传播中的梯度计算 [7]。Binary Neural Networks +(BNN +)直接提出了对 sign 函数的导数的更好近似 [8],并引入了一个正则化函数来激励二进制值周围的可学习权重。Gong 等人提出了一种可微分的软量化(DSQ)方法 [9],用软量化功能代替了传统的量化功能:Qin 等人提出的 IR-Net 用一个自适应误差衰减估计器(EDE)来减少训练中的梯度误差 [10],它考虑了训练过程不同阶段的不同需求,并平衡了参数的更新能力和梯度误差的降低。3.3 二值神经网络的高效计算架构二值神经网络最大的亮点是它们具有计算速度快,功耗低和内存占用少的优点,可以支持计算资源有限的通用硬件(包括 FPGA,ASIC,CPU 等)。FPGA 是使用最广泛的平台,因为它们允许自定义数据路径和调整设计。尤其是,FPGA 允许围绕 XNOR-Bitcount 操作来进行优化。ASIC 也可以为二值神经网络提供其所需的功率和计算效率,因为 ASIC 的硬件布局可以根据网络结构进行设计。为了使二值化算法在具有不同硬件环境的场景中更加实用,研究人员还致力于研究硬件友好的二值网络。我们在表 2 中的不同 FPGA 平台上列出了不同的二值神经网络实现的比较。可以看出,一些提出的方法虽然效率不高,可以达到与全精度模型相当的精度。我们必须指出,尽管在开发硬件友好算法方面取得了进步,但到目前为止,在速度和准确性方面,只有很少的二值模型能够在如 ImageNet 之类的大型数据集上良好地运行。3.4 二值神经网络的应用图像分类是计算机视觉和机器学习中的一项基本任务。因此,大多数现有研究选择在图像分类任务上评估二值神经网络。BNN 可以显著加速和压缩神经网络模型,这对深度学习研究者具有极大的吸引力。BNN 中的权重和激活都是二进制数,从理论上讲,它可使卷积运算速度提高 58 倍,并节省 32 倍的内存。因此,二值神经网络也可以应用于其他常见任务,例如目标检测和语义分割。在已有工作中,Kung 等人利用二值神经网络对红外图像进行目标识别和图像分类任务 [11]。在这项工作中,二值神经网络在 MNIST 和 IR 数据集上的性能与全精度网络相当,并且在 GPU 上实现了至少 4 倍的加速和三个数量级的节能。BWBDN 通过统一预测和对象检测过程来解决快速对象检测算法 [18],它使用二值 VGG-16 网络获得了 62 倍的加速并节省了 32 倍的存储空间,其中除最后一个卷积层外,所有其他层都进行了二值化。Li 等人基于 RetinaNet 和更快的 R-CNN 生成了量化的目标检测神经网络 [12],并证明这些检测器取得了令人满意的性能。Leng 等人将 BNN 应用于不同的任务,并在用于图像分类和目标检测的卷积神经网络以及用于语言模型的递归神经网络上评估了它们的方法 [13]。Zhuang 等人提出了一种称为“组网”的“网络分解”策略,该策略显示出对不同任务(包括分类和语义分段)的强大概括,在准确性和节省大量计算方面均胜过以前最好的二值神经网络 [14]。SeerNet 通过低位量化来考虑特征图稀疏性,适用于一般的卷积神经网络和任务 [15]。研究人员还试图通过模型二值化来增强神经网络模型的鲁棒性 [16]。二值模型通常被认为比全精度模型更健壮,因为它们被认为可以过滤部分输入噪声。Lin 等人探索了量化对模型鲁棒性的影响,他们表明,对参数的量化运算可在噪声量较小时消除扰动影响,但对于一般 BNN,当噪声幅度较大时,噪声的影响会增大。较差的鲁棒性来自 BNN 前向传播中的误差放大效应,其中量化操作进一步扩大了由放大噪声引起的距离。因此他们提出了防御性量化(DQ),以通过抑制噪声放大效应并使各层的噪声幅度较小来捍卫量化模型的对抗性示例。量化提高了鲁棒性,而不是使它在 DQ 模型中变差,因此它们比全精度网络更鲁棒。3.5 训练二值神经网络的技巧由于二值化的高度离散性,训练二值神经网络经常需要引入特殊的训练技术,以使训练过程更加稳定并且收敛精度更高。在本节中,我们从网络结构转换,优化器和超参数选择,梯度近似和渐近量化等方面总结了文献中广泛采用的通用高效二值神经网络训练方法。3.5.1 网络结构调整模型二值化将激活和权重量化到 {1, +1}。这实际等效于对数据进行正则化,从而使二值化后的数据改变分布,调整网络结构是使数据分布合理变化的有效方案。简单地对网络中的层重新排序可以改善二值神经网络的性能。牛津大学的研究人员指出,几乎所有二值化研究都重新定位了池化层的位置。在卷积层之后立即使用池化层可以避免因二值化之后的最大池化而导致信息丢失。实验表明,这种位置重排在准确性上有很大的提高。除池化层外,Batch Normalization (BN) 层的位置还极大地影响了二值神经网络训练的稳定性。TSQ 和 HWGQ 在所有量化操作之前插入批处理归一化层以纠正数据。经过这种变换,量化的输入服从稳定的分布(有时接近高斯分布),因此均值和方差保持在合理范围内,并且训练过程变得更加平滑。基于类似的思想,最近的一些工作没有直接添加新的层,而是尝试直接修改网络结构。例如,Bi-Real 将每层卷积的输入特征图连接到后续网络,这种方法实质上是通过结构转换来调整数据分布的。Mishra 等人设计了加宽低精度网络(WRPN),该网络增加了每层中的滤波器数量,从而改变了数据分布。二值集成神经网络(BENN)利用集成方法来拟合基础数据分布。Liu 等人提出了循环滤波器(CiFs)和循环二进制卷积(CBConv)来增强二值化卷积特征的表达能力,并且还提出了循环反向传播(CBP)来训练结构。BBG 甚至附加了门控残差以补偿其在转发过程中的信息丢失。3.5.2 优化器和超参数选择在训练二值神经网络时选择适当的超参数和特定的优化器也可以提高 BNN 的性能。大多数现有的二值神经网络模型都选择了自适应学习速率优化器,例如 Adam。使用 Adam 可以使训练过程更好,更快,并且二阶导数的平滑系数尤其关键。一些工作表明,如果使用不考虑历史信息的固定学习率优化器,例如随机梯度下降(SGD)算法,则需要采用更大 batch 的数据来提高性能。同时,批次归一化动量系数的设置也很关键。通过比较不同动量系数下的精度结果,可以发现需要适当设置批归一化的参数以适应二值化操作引起的抖动。3.5.3 渐近量化由于量化操作对训练有负面影响,许多方法采用渐近量化策略,逐渐增加量化程度,以减少由参数二值化导致的性能损失。实践表明,这种逐步量化方法对寻找最优解是有效的。例如,INQ 对参数进行分组,并逐渐增加参与量化的组的数量,以实现基于组的逐步量化。Zhuang 等人引入了逐步扩展位宽的想法,该方法首先量化为较高的位宽,然后量化为较低的位宽。这种策略可以帮助避免由极低位量化引起的较大扰动,从而补偿训练过程中量化参数的梯度误差。3.5.4 梯度近似在二值神经网络训练过程中,使用更平滑的估计器已成为一种常见的做法。由于直通估计器的使用,在反向传播中通常存在梯度误差。找到接近二值化函数的近似函数是一种简单而实用的解决方案。这成为最近研究中广泛考虑的一种流行技术,其中根据不同的动机对近似函数进行了相应的调整,以替代引起梯度误差的标准削波函数。为了设计适当的近似函数,一个直接的想法是将其形状与二值化函数的形状对齐。评估对比4.1 数据集和网络结构为了评估二值神经网络算法,研究者一般选择图像分类任务对比其性能,并通常使用两个常见的图像数据集:CIFAR-10 和 ImageNet。CIFAR-10 是一个相对较小的数据集,其中包含 60,000 张具有 10 个类别的图像,而 ImageNet 数据集是当前最受欢迎的图像分类数据集。对于其他任务,例如对象检测和语义分段,PASCAL VOC 和 COCO 也用于评估二值神经网络的性能。PASCAL VOC 数据集源于 PASCAL 视觉目标检测比赛,它用于评估计算机视觉领域中各种任务的模型的性能。许多出色的计算机视觉模型(包括分类,定位,检测,分割,识别等)基于 PASCAL VOC 数据集,尤其是某些目标检测模型。COCO 是 Microsoft 团队提供的用于图像识别和目标检测的数据集。它通过搜索 80 个对象类别和各种场景类型(例如 Flickr)来收集图像。为了研究二值神经网络算法在不同网络结构上的泛化能力,包括 VGG,AlexNet,ResNet-18,ResNet-20,ResNet-34 和 ResNet-50 等。将被二值化和测试。这些模型为深度学习的发展做出了杰出贡献,在I mageNet 分类任务中取得了重大突破。其中,VGG 网络包含大量参数和卷积运算,因此对 VGG 进行二值化可以明显显示不同算法的推理速度。ResNet 当前是许多任务中最受欢迎的深度模型,具有足够数量的层。4.2 图像分类任务比较二值神经网络在不同数据集上的性能,我们可以首先观察到二值神经网络可以在小数据集(例如 MNIST,CIFAR-10)上接近全精度神经网络的性能,但是在大型数据集(例如 ImageNet)。这主要是因为对于大型数据集,二值化网络缺乏足够的能力来捕获数据之间的较大差异。这一事实表明,仍然需要付出巨大的努力来寻求精巧的二值化和优化解决方案,以设计出令人满意的二值神经网络。从表 3 和表 4 可以得出结论:神经网络对激活的二值化更为敏感。当仅将权重量化为 1 位并将激活保持为全精度时,性能下降的幅度较小。以 ImageNet 数据集上 ABC-Net 中的 ResNet-18 为例,对权重进行二值化后,精度损失仅约 7%,而对激活进行二值化后,精度损失又约 20%。因此,在设计二进制网络时,消除激活二进制化的影响通常更为重要,这成为 RAD 和 PACT 等研究的主要动机。在对激活的分布添加合理的正则化之后,将减少二值化对激活造成的有害影响,随后自然提高了准确性。此外,二值神经网络的鲁棒性与其结构高度相关。一些特定的结构模式对二值化很友好,例如 Bi-Real 提出的连接结构和在 WRPN 中提出的更宽的块。Bi-Real 通过连接结构将全精度特征图直接传递到下层,从而获得了接近全精度模型的性能。使用 3 倍的结构,ResNet-34 中的精度损失低于 1%。实际上,他们实质上所做的是使信息尽可能地通过整个网络。尽管结构修改可能会增加计算量,但受益于 XNOR-Bitcount 操作,它们仍然可以得到显著的加速。基于优化的不同方法代表对 BNN 的不同理解。在旨在最小化量化误差的论文中,提出了许多直接降低量化误差的方法,以使二元神经网络近似于高精度神经网络。这些论文认为二进制参数越接近全精度参数,BNN 的性能越好。另一个想法是改善损失函数。这种类型的方法通过修改损失函数,使 BNN 中的参数分布对二值化操作友好。此外,BinaryConnect 中提出的 STE 粗糙,会导致一些问题,例如梯度不匹配。因此,许多最近的工作都使用诸如 tanh 函数之类的平滑过渡来减少梯度损失,并且使用更平滑的估计器成为一种常见的做法。我们认为二值神经网络不应该被简单地视为全精度神经网络的近似,而需要针对 BNN 的特殊特性进行更具体的设计。实际上,一些最近的工作基本上是在此基础上的,例如 XNOR-Net ++,CBCN,Self-Binarizing Networks,BENN 等。结果表明,考虑到 BNN 特性的特殊设计方法可以获得更好的性能。研究者证明了尽管 BNN 与全精度模型共享相同的网络体系结构,但仍需要不同的优化。值得一提的是,准确性不是 BNN 的唯一标准,通用性是衡量一种方法是否可以在实践中使用的另一个关键。现存论文中提出的一些方法非常通用,例如比例因子,反向平滑近似,附加结构连接等。由于这些方法实施简单且耦合低,所以这些方法是通用的。因此,它们成为了提高 BNN 性能的常见方法。一些方法通过设计或学习精细的量化器来提高二值神经网络的性能。这种量化器通常具有更强的信息保存能力。但是,我们必须指出,其中一些需要复杂的计算甚至是多阶段的训练流水线,这有时对硬件实现不友好且不易复现。这意味着在实际部署中很难通过这种量化器有效地提高速度。因此,在不考虑加速实现的情况下单纯追求高精度是没有实际意义的。精度和速度之间的平衡也是二值化研究的重要标准,应始终牢记。4.3 其他任务从表 5 和表 6 中,我们可以看到,现有的二值化算法在目标检测任务上取得了令人鼓舞的进展,同时在实际系统中部署时带来了显着的加速。但也应注意,二进制模型仍然面临巨大挑战,尤其是当激活量化为 1 位时。对于语义分割任务,如表 6 所示,最近的方法仅使用 1 位就实现了高精度,这几乎与全精度模型相同。但是尚不清楚它是如何工作的,仍然需要验证该方法的实际速度。在这些结果中,我们发现尽管二值神经网络在分类任务上表现良好,但在其他任务上仍然存在无法接受的损失。这使得为分类任务而设计的二值神经网络很难直接应用于其他任务,例如对象检测和语义分割。在分类任务中,网络更加关注全局特征,而忽略了二值化导致的局部特征损失。但是,局部特征在其他任务中更为重要。因此,当为其他任务设计二值神经网络时,需要更加关注特征图的局部特征。在这些结果中,我们发现尽管二值神经网络在分类任务上表现良好,但在其他任务上仍然存在不可接受的精度损失。这使得为分类任务而设计的二值神经网络很难直接应用于其他任务,例如目标检测和语义分割。在分类任务中,网络更加关注全局特征,而忽略了二值化导致的局部特征损失。但是,局部特征在其他任务中更为重要。因此,在设计用于其他任务的二值神经网络时,需要更加关注特征图的局部特征。未来趋势与结论基于 1 位表示的二值神经网络虽然具有压缩存储和加快推理速度的优点,但是却存在性能下降的问题。正如我们在本次调查中总结的那样,为了弥补二进制模型和全精度模型之间的差距,近年来出现了各种解决方案,可以将其粗略地分类为朴素的方案和优化的方案。我们的分析表明,使用不同方法优化的二值网络可以保证更好的性能。这些方法主要聚焦在如何在前向传播中保留信息以及如何在反向传播中优化网络。研究表明,在前向和反向传播中保留各种信息是训练高性能 BNN 的关键因素之一。尽管已经取得了很大的进步,但是用于神经网络二值化的现有技术仍然面临性能损失的问题,尤其是对于大型网络和数据集而言。主要原因可能包括:1)目前尚不清楚什么网络结构适合于二值化,即经过二值化后,也可以保留通过网络的信息;2)即使我们有用于二值化的梯度估计器或近似函数,在离散空间中优化二值网络也是一个难题。我们相信将来会出现更多的实践和理论研究来解决这两个问题。此外,随着移动设备在现实世界中的广泛使用,将出现更多针对这些应用进行的研究工作,以实现不同的任务以及模型在不同硬件上的部署。例如,Wu 等人考虑到人脸识别的开放集特征,提出了一种新颖的旋转一致性损失,使用 4 位模型实现了与全精度模型相当的性能。因此,不同的研究课题将会出现,例如针对不同任务定制或转换二值网络,设计硬件友好或能耗较低的二值化算法等。除了权重和激活之外,最近还出现了量化包括梯度在内的反向传播过程以加速整个训练过程的新研究点。Zhu 等人提出的统一框架从准确性和速度方面证明了神经网络的 8 位训练的可能性 [17]。为加快训练而进行的二值化反向传播计算的可行性值得进一步探讨。最后,对可解释机器学习的研究表明,神经网络的推理中存在关键路径,并且不同的网络结构遵循不同的模式。因此,根据层的重要性设计混合精度策略,并设计出对二值神经网络的信息流友好的新网络结构,也具有重要意义。Reference[1] Courbariaux, Matthieu, Yoshua Bengio, and Jean-Pierre David. "Binaryconnect: Training deep neural networks with binary weights during propagations." NeurIPS. 2015.[2] Kim M, Smaragdis P. Bitwise neural networks[J]. arXiv preprint arXiv:1601.06071, 2016.[3] Rastegari M, Ordonez V, Redmon J, et al. Xnor-net: Imagenet classification using binary convolutional neural networks[C]//ECCV. Springer, Cham, 2016: 525-542.[4] Li Z, Ni B, Zhang W, et al. Performance guaranteed network acceleration via high-order residual quantization[C]//IEEE ICVV. 2017: 2584-2592.[5] Hou L, Yao Q, Kwok J T. Loss-aware binarization of deep networks[J]. arXiv preprint arXiv:1611.01600, 2016.[6] Mishra A, Marr D. Apprentice: Using knowledge distillation techniques to improve low-precision network accuracy[J]. arXiv preprint arXiv:1711.05852, 2017.[7] Liu Z, Wu B, Luo W, et al. Bi-real net: Enhancing the performance of 1-bit cnns with improved representational capability and advanced training algorithm[C]// ECCV. 2018: 722-737.[8] Darabi S, Belbahri M, Courbariaux M, et al. BNN+: Improved binary network training[J]. arXiv preprint arXiv:1812.11800, 2018.[9] Gong R, Liu X, Jiang S, et al. Differentiable soft quantization: Bridging full-precision and low-bit neural networks[C]// IEEE ICVV. 2019: 4852-4861.[10] Qin H, Gong R, Liu X, et al. IR-Net: Forward and Backward Information Retention for Highly Accurate Binary Neural Networks[J]. arXiv preprint arXiv:1909.10788, 2019.[11] Kung J, Zhang D, Van der Wal G, et al. Efficient object detection using embedded binarized neural networks[J]. Journal of Signal Processing Systems, 2018, 90(6): 877-890.[12] Li R, Wang Y, Liang F, et al. Fully quantized network for object detection[C]//IEEE CVPR. 2019: 2810-2819.[13] Leng C, Dou Z, Li H, et al. Extremely low bit neural network: Squeeze the last bit out with admm[C]//AAAI. 2018.[14] Zhuang B, Shen C, Tan M, et al. Structured binary neural networks for accurate image classification and semantic segmentation[C]//IEEE CVPR. 2019: 413-422.[15] Cao S, Ma L, Xiao W, et al. Seernet: Predicting convolutional neural network feature-map sparsity through low-bit quantization[C]//IEEE CVPR. 2019: 11216-11225.[16] Lin J, Gan C, Han S. Defensive quantization: When efficiency meets robustness[J]. arXiv preprint arXiv:1904.08444, 2019.[17] Zhu F, Gong R, Yu F, et al. Towards Unified INT8 Training for Convolutional Neural Network[J]. arXiv preprint arXiv:1912.12607, 2019.[18] Sun S, Yin Y, Wang X, et al. Fast object detection based on binary deep convolution neural networks[J]. CAAI Transactions on Intelligence Technology, 2018, 3(4): 191-197.#投 稿 通 道#如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢? 答案就是:你不认识的人。总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学习心得或技术干货。我们的目的只有一个,让知识真正流动起来。 来稿标准:• 稿件确系个人原创作品,来稿需注明作者个人信息(姓名+学校/工作单位+学历/职位+研究方向)• 如果文章并非首发,请在投稿时提醒并附上所有已发布链接• PaperWeekly 默认每篇文章都是首发,均会添加“原创”标志 投稿方式:• 方法一:在PaperWeekly知乎专栏页面点击“投稿”,即可递交文章• 方法二:发送邮件至:hr@paperweekly.site ,所有文章配图,请单独在附件中发送• 请留下即时联系方式(微信或手机),以便我们在编辑发布时和作者沟通关于PaperWeeklyPaperWeekly 是一个推荐、解读、讨论、报道人工智能前沿论文成果的学术平台。如果你研究或从事 AI 领域,欢迎在公众号后台点击「交流群」,小助手将把你带入 PaperWeekly 的交流群里。加入社区:http://paperweek.ly微信公众号:PaperWeekly新浪微博:@PaperWeekly编辑于 2020-03-26 14:10神经网络深度学习(Deep Learning)机器学习​赞同 295​​1 条评论​分享​喜欢​收藏​申请转载​文章被以下专栏收录PaperWeekly专注推荐、解读、讨论和报道人工智能前沿论文

BNN Bloomberg - Canadian Business News, TSX Today, interest rates and Bank of Canada coverage

>

BNN Bloomberg - Canadian Business News, TSX Today, interest rates and Bank of Canada coverage

{{ currentBoardShortName }}

Markets

Indices

Currencies

Energy

Metals

{{data.symbol | reutersRICLabelFormat:group.RICS}}

 

{{data.netChng | number: 4 }}

{{data.netChng | number: 2 }}

{{data | displayCurrencySymbol}} {{data.price | number: 4 }}

{{data.price | number: 2 }}

{{data.symbol | reutersRICLabelFormat:group.RICS}}

 

{{data.netChng | number: 4 }}

{{data.netChng | number: 2 }}

{{data | displayCurrencySymbol}} {{data.price | number: 4 }}

{{data.price | number: 2 }}

Markets

As of:

{{timeStamp.date}}

{{timeStamp.time}}

Markets

{{ currentBoardShortName }}

Markets

Indices

Currencies

Energy

Metals

{{data.symbol | reutersRICLabelFormat:group.RICS}}

 

{{data.netChng | number: 4 }}

{{data.netChng | number: 2 }}

{{data | displayCurrencySymbol}} {{data.price | number: 4 }}

{{data.price | number: 2 }}

{{data.symbol | reutersRICLabelFormat:group.RICS}}

 

{{data.netChng | number: 4 }}

{{data.netChng | number: 2 }}

{{data | displayCurrencySymbol}} {{data.price | number: 4 }}

{{data.price | number: 2 }}

{{ stock.symbol }}

{{ stock.price | currency }}

 

{{ stock | formatPrefix }}{{ stock.netChng | formatNetChange }}

Are you looking for a stock?

Try one of these

{{result.description}}

{{result.ric}}

More Results

BNN

Are you looking for a stock?

Try one of these

{{result.description}}

{{result.ric}}

More Results

Live

Video

Shows

Market Call

Markets

Investing

Personal Finance

Real Estate

Company News

Commodities

Economics

Politics

Technology

Opinion

ETFs

Business of Sports

International

Market Call

Schedule

Listen

Live

Video

Shows

Market Call

Markets

Scoreboard

BNN

News

Investing

News

Video

ETFs

REITs

Hot Money Ready to Pour Into Egypt With Next Can’t-Miss Bond Bet

Andreessen Horowitz Is Planning to Raise Two AI-Focused Funds

European Stocks Ease From Record as Focus Turns to ECB Decision

Japan’s Top Union Group Demands Highest Wage Hike in 30 Years

Philippines Says Two Citizens Killed in Houthi Attack Off Yemen

Brevan Howard Builds Abu Dhabi Outpost Into a $10 Billion Hub

German Factory Orders Plummet as Major Orders Retreat

Hunt’s Budget Will Benefit UK Millennials Most, Resolution Says

South Africa’s ANC To Pursue Prescribed Assets Plan After Vote

Japan’s Wage Gains Beat Consensus at Fastest Pace Since June

China’s Gold Splurge Reaches 16th Month as Prices Hit Record

UK Insurer Aviva Plans to Buy Back £300 Million of Shares

Nationwide Announces Possible £2.9 Billion Deal for Virgin Money

Bruce Lee Film Studio Weighing Sale of Singapore Cinemas, Sources Say

India Roils Market With New Crackdowns on IPO Financing, Gold

Asia Stocks to Echo US Rise on Powell Rate Outlook: Markets Wrap

AI Frenzy Seen Powering TSMC’s Rally From Overbought Levels

Senegal Sets March Presidential Vote Before End of Sall’s Term

Deutsche Pfandbriefbank Skips Dividend Amid Property Crisis

Malaysia Leaves Key Rate Unchanged Amid Ringgit Weakness

Personal Finance

News

Video

5 financial mistakes to avoid when you are self-employed

Time to shift that parked RRSP contribution into drive

Ontario regulator launches consumer tool to verify financial adviser credentials

Are you getting paid for an extra day of work on Feb. 29?

Boundaries, communication are key for parents running the Bank of Mom and Dad

Make the most of loyalty programs by timing purchases, combining offers: expert

6 RRSP contribution myths debunked

Millennials in a pension pickle as they overtake boomers

Options to boost credit scores are growing, but principles remain the same

Group RRSP use rising as retirement savings burden 'largely on employees': experts

New tax reporting requirements for bare trusts 'not easy to file': expert

'This is the time to brag': How to successfully negotiate a raise

Millennial Money: It’s time to change your investment strategy

Tax season officially kicks off with most Canadians' returns due by April 30

Personal cyber insurance nascent but growing in demand as digital crimes increase

Is an RRSP the best choice for retirement investments? It depends

Nearly half of Canadians still expect to make an RRSP contribution: survey

Ontarians paying for basic needs over retirement savings: poll

What young investors need to know about RRSPs

Worried about retirement savings? Here's one way to catch up: Dale Jackson

Real Estate

News

Video

REITs

UBS Ditches Credit Suisse Plan to Phase Out Coal Financing

Deutsche Pfandbriefbank Skips Dividend Amid Property Crisis

China Vanke Pressure Mounts as Insurers Seek Private Debt Solution

UK House Prices Rise for a Fifth Month, Halifax Says

Yi Gang Proposes Plan to Help China Real Estate Developers Access $139 Billion

Mnuchin Leaps Into Bank Turmoil With Familiar Playbook and Ally

NYCB Raises More Than $1 Billion in Equity Led by Steven Mnuchin’s Firm

Open House: Cheapest Hong Kong Luxury Housing Comes With a Major Catch

Markets today: Tech lifts stocks with jobs and Powell in focus

Chicago Mayor’s ‘Mansion Tax’ Back on Ballot After Court Ruling

Mexico REIT Sinks as Unit Share Offering Pushed Back Further

US Economic Activity Increasing Slightly, Fed’s Beige Book Shows

Montreal real estate market sees 'dynamic start' to 2024 as February home sales rise

Fed’s Powell Says Significant Changes to Bank Capital Plan Likely

Powell Reiterates Fed Needs More Confidence on Inflation to Cut

NYCB Tumbles on Report Bank Is Trying to Raise Equity Capital

UK to Abolish Holiday Home Tax Breaks to Tackle Housing Shortage

State Street Is Set to Reopen Dubai Office After Four Years

BlackRock Manager Predicts 40% Jump in Bank Risk Transfer Deals

China Defends 5% Goal, Vows Vigorous Effort to Grow Economy

Company News

News

Video

Labour Attacks Tory ‘Unfunded’ Plan to Ditch National Insurance

Andreessen Horowitz Is Planning to Raise Two AI-Focused Funds

European Stocks Ease From Record as Focus Turns to ECB Decision

Houthi-Sunk Ship Seen as Likely Cause of Severed Red Sea Cables

Japan’s Top Union Group Demands Highest Wage Hike in 30 Years

Philippines Says Two Citizens Killed in Houthi Attack Off Yemen

Continental Sees Higher Margins on Auto Job Cuts, Savings

Brevan Howard Builds Abu Dhabi Outpost Into a $10 Billion Hub

South Africa’s ANC To Pursue Prescribed Assets Plan After Vote

China’s Gold Splurge Reaches 16th Month as Prices Hit Record

India’s Surprise GDP Wasn’t Only One-Off Factors, Adviser Says

UK Insurer Aviva Plans to Buy Back £300 Million of Shares

Apple Set to Be Quizzed by EU Over ‘Fortnite’ Maker Shutout

UBS Ditches Credit Suisse Plan to Phase Out Coal Financing

Nationwide Announces Possible £2.9 Billion Deal for Virgin Money

Bruce Lee Film Studio Weighing Sale of Singapore Cinemas, Sources Say

India Roils Market With New Crackdowns on IPO Financing, Gold

Lufthansa Labor Strike Spoils First-Quarter Earnings Rebound

Asia Stocks to Echo US Rise on Powell Rate Outlook: Markets Wrap

AI Frenzy Seen Powering TSMC’s Rally From Overbought Levels

Commodities

News

Show

Guests

CANNABIS

Oil

Gold

Silver

Hot Money Ready to Pour Into Egypt With Next Can’t-Miss Bond Bet

Houthi-Sunk Ship Seen as Likely Cause of Severed Red Sea Cables

Philippines Says Two Citizens Killed in Houthi Attack Off Yemen

South Africa’s ANC To Pursue Prescribed Assets Plan After Vote

China’s Gold Splurge Reaches 16th Month as Prices Hit Record

UBS Ditches Credit Suisse Plan to Phase Out Coal Financing

Asia Stocks to Echo US Rise on Powell Rate Outlook: Markets Wrap

Senegal Sets March Presidential Vote Before End of Sall’s Term

Malaysia Leaves Key Rate Unchanged Amid Ringgit Weakness

Yen Gains With Bank Stocks as Wages, BOJ Remarks Lift Hike Bets

Erratic Weather Lowers India’s Chance to Reap Record Wheat Crop

US Urges Allies to Further Squeeze China on Chip Technology

Xi’s High-Tech Drive Spurs Hunt for New Chinese Growth Stocks

Taiwan to Decide on Power Tariff Hikes That Would Hit Chipmakers

Chinese Oil Imports Drop Over Last Two Months in Seasonal Lull

China Adds Persian Gulf Oil Bookings as Red Sea Crisis Persists

Russia to Bolster Famed Eastern Railroads as China Trade Booms

China’s Copper Smelters to Discuss Production Cut as Fees Slump

China’s Commodities Imports Surge But Demand May Yet Disappoint

Nigeria Tycoon Calls for Revamp of Power Sector to Revive Growth

Economics

News

Video

Bank of Canada holds key rate at 5%, says too early to talk cuts

What mortgage owners need to know about the BoC rate hold

Experts react to Bank of Canada hold

Early signals are showing cooling wage growth in Canada

Read the full text of the Bank of Canada rate decision

The Daily Chase: Bank of Canada expected to hold rates

U.S. Fed Chair Powell's testimony to be watched for any hint on rate-cut timing

Economist predicts a more 'dovish' stance from the BoC amid 'clear hold'

Bitcoin briefly touches all-time high before retreat

Bank of Canada to hold as downside risks fade

The Daily Chase: GTA housing market showing signs of spring thaw

The Daily Chase: Apple fined by EU for music streaming

Major grocers expanding discount footprint as customers keep budgets tight

BoC expected to hold interest rates this week as grey cloud hangs over economy

The Daily Chase: Ex-PM Mulroney dead at 84, big bank earnings week ends

'Nobody needs an extra coat': Apparel sector braces for another year of no splurging

GDP numbers suggest a 'wait and see' approach from Bank of Canada: economist

Canada averts recession with meagre growth in Q4, consumers and businesses pinched

Plunging productivity 'threatening the stability of wage growth': economist

The Daily Chase: Why worker pay isn't necessarily jumping higher this Leap Day

Politics

News

Video

Labour Attacks Tory ‘Unfunded’ Plan to Ditch National Insurance

Hunt’s Budget Will Benefit UK Millennials Most, Resolution Says

South Africa’s ANC To Pursue Prescribed Assets Plan After Vote

EU Proposes New Russia Sanctions Over Death of Alexey Navalny

Senegal Sets March Presidential Vote Before End of Sall’s Term

China Slams US for Monopolizing Tech as Biden Seen Pushing Curbs

Russia Prepares for Long-Term Standoff in Baltic, Lithuania Says

Orban’s Feud With Central Bank Chief Triggers Investor Alarm

Netherlands Proposes Stronger EU Export Control Coordination After ASML Episode

South Korea Adds Funds for Emergency Care Staff During Walkout

US Spends Big to Highlight Beijing’s Tactics in South China Sea

Australia, Vietnam Upgrade Diplomatic Ties Amid US-China Rivalry

What Buzzwords From China’s Key Political Meeting Reveal, From ‘AI Plus’ to ‘New Three’

Chevron Restarts Drilling in Key Venezuela Oil Field

Kim Jong Un Observes Training to Storm Border Posts in War Prep

Intel Stands to Win $3.5 Billion to Produce Chips for Military

Sunak’s Rwanda Bill Suffers Second Round of Defeats by UK Lords

New York Politicians Renew Push to Solve Sovereign Debt Crises

Trump Dares Biden to Debate After Jilting Republican Rivals

Congress to Vote on Raising Security Funds for Convention Cities

Technology

News

Video

Andreessen Horowitz Is Planning to Raise Two AI-Focused Funds

Houthi-Sunk Ship Seen as Likely Cause of Severed Red Sea Cables

Apple Set to Be Quizzed by EU Over ‘Fortnite’ Maker Shutout

Asia Stocks to Echo US Rise on Powell Rate Outlook: Markets Wrap

AI Frenzy Seen Powering TSMC’s Rally From Overbought Levels

WuXi AppTec Drops as US Senate Panel Advances Bill Banning Deals

Nvidia ‘Bubble’ Talk Spreads to ESG Fund Managers Who Rode Highs

US Urges Allies to Further Squeeze China on Chip Technology

China Slams US for Monopolizing Tech as Biden Seen Pushing Curbs

Xi’s High-Tech Drive Spurs Hunt for New Chinese Growth Stocks

SK Hynix Investing $1 Billion to Widen Lead in AI Memory Chips

Taiwan to Decide on Power Tariff Hikes That Would Hit Chipmakers

Spike in Bitcoin Volatility Heralds an Early Test of US ETF Demand

Singtel Cuts Stake in Bharti Airtel Through $710 Million Sale

LinkedIn Suffers Outage, With Cause Unclear

French Startup Raises $73 Million for Blockchain, AI Privacy

Netherlands Proposes Stronger EU Export Control Coordination After ASML Episode

Salesforce’s Shih Says Diversity Is Key to Building AI Models

What Buzzwords From China’s Key Political Meeting Reveal, From ‘AI Plus’ to ‘New Three’

Struggling Australian Cobalt Miner Blames Chinese Overproduction for Job Cuts

Opinion

News

Alphabet investors shouldn't ignore the warning signs: Martin Peers

The U.S. Fed is failing in four ways: Mohamed A. El-Erian

Apple, JPMorgan turn to pay now grow later

Remote Working Boom Is Huge for College Towns Like Knoxville

Walmart flashes a warning sign to the entire consumer economy: Andrea Felsted

Millennials are finally spending like grown-ups

Dismal U.S. GDP report raises the odds of recession this year: Gary Shilling

Musk is wrong for Twitter even if deal math works out

Chocolate bunnies can teach us to save our food supply

The Fed has made a U.S. recession inevitable

America's oil reserve weapon risks misfiring

Four-day workweeks can burn you out

U.S. Fed expects a soft landing. Don't count on it

Markets are pushing Fed into developing-economy territory

Commodity traders go from bonanza to bailout plea

Putin's war shows West must clean up dirty money

Salary transparency is good for everyone

Microsoft's US$69B Activision deal could be a blunder

What if the oil market bulls are wrong and this lonely bear is right?

Canada's trucker protest may spread from Ottawa to U.S.

ETFs

News

Video

Berman's Call

Asia Stocks to Echo US Rise on Powell Rate Outlook: Markets Wrap

Spike in Bitcoin Volatility Heralds an Early Test of US ETF Demand

South Korea to Launch Asia’s First Retail Carbon-Linked Investment Product

Markets today: Tech lifts stocks with jobs and Powell in focus

Bitcoin Retreats After a Record-Breaking Run That Topped $69,000

Bitcoin Faces ‘Sell-the-News’ Moment After Setting Record High

BlackRock’s Bitcoin ETF Draws Record Influx as Coin Tops $69,000

‘My Mom Texted Me’: Bitcoin’s Comeback Energizes Long-Time Proponents

Crypto’s $800 Billion Rally Widens Beyond Record-Setting Bitcoin

Bitcoin and Gold Both Hitting All-Time Highs Are a Jarring Contrast for Markets

Gold Climbs to Record as Momentum Builds on Rate Bets

Bitcoin Surges to Record Above $69,000 on Sustained ETF Demand

BOJ Needs 9 Years to Normalize Balance Sheet, Ex-Official Says

Bitcoin Miners Are Better Bets Than Actual Token, Bernstein Says

Bitcoin briefly touches all-time high before retreat

Bitcoin, Gold ETFs Demand Diverges With Prices at Record Highs

Gold Steady After Jumping to Near Record on Rate-Cut Speculation

JPMorgan Sees ‘Froth’ in US Stocks, While Goldman Says Rally Justified

Chinese Stocks Decline as 2024 Growth Target Fails to Impress

Memecoin Frenzy Reaches a Crescendo on Back of Bitcoin Rally

Business of Sports

The Super Bowl’s stay in Vegas

Looking for an early retirement? Try competitive League of Legends

Raptors return on investment is the real deal

What to watch for in the Canadian sports betting and gaming biz in 2024

Esports popularity shifting the playing field

Tennis' break point opportunity

NBA’s In-Season Tournament a slam dunk for Off-Season Negotiations

MLS Cup the winning goal in record-breaking season for soccer in North America

The debate continues over sports betting advertising in Canada

North America’s oldest sport catches momentum in new professional locales

Jump serving women’s volleyball into the spotlight

How Vegas suddenly became a rockin’ sports town

World Series breakthrough for teams’ business

Shane Pinto suspension the result of a regulated gambling market that works, say industry insiders

Canadian Football League fanatics fuel financials

What’s next for private equity investment in professional sports?

Canada’s Davis Cup team finding love

Impact of Jersey Ads on the NHL

Promising Puck Drop for PWHL

Betting on Women's Sports is on the Rise

International

News

Video

More...

Market Call

Schedule

Listen

Live

Video

Shows

Market Call

Markets

More

Live

Video

Shows

Market Call

Markets

BANK OF CANADA

INFLATION

INTEREST RATES

REAL ESTATE

CANNABIS

OIL

GOLD

NEWSLETTERS

TOP PICKS

LIVE:

Watch BNN Bloomberg, Canada's Business News Network, live here now

Top Stories

Early signals are showing cooling wage growth in Canada

What mortgage owners need to know about the BoC rate hold

Experts react to Bank of Canada hold

Laurentian Bank, former CEO Llewellyn square off on severance pay

Sleep Country earns $22.5 million in fourth quarter amid 'industry challenges'

Tourmaline Oil Corp. earns $700 million in fourth quarter, revenues lower

Bank of Canada holds key rate at 5%, says too early to talk cuts

6:51

Top Stories

Early signals are showing cooling wage growth in Canada

What mortgage owners need to know about the BoC rate hold

Experts react to Bank of Canada hold

Laurentian Bank, former CEO Llewellyn square off on severance pay

Sleep Country earns $22.5 million in fourth quarter amid 'industry challenges'

Tourmaline Oil Corp. earns $700 million in fourth quarter, revenues lower

Latest Videos

{{ currentStream.Name }}

Related Video

Up Next

Now Showing

{{ video.Name }}

Continuous Play:

ON

OFF

The information you requested is not available at this time, please check back again soon.

More Video

 

 

Columnists

Larry Berman

Larry Berman: Market sentiment and the jinx of magazine covers

Dale Jackson

Time to shift that parked RRSP contribution into drive

Larry Berman

Larry Berman: Market breadth improving – not bullish, but not bad

Dale Jackson

Millennials in a pension pickle as they overtake boomers

Today's Guests

{{guestAppearance.guest.name}}

{{guestAppearance.guest.position}}, {{guestAppearance.guest.company}}

{{guestAppearance.focus}}

{{ guestAppearance.date | GuestAppearanceRailDateFormat }}

Full Guest Schedule

Ask A Lawyer

Fired without cause in Ontario? Here's what you need to know

SPONSORED: Companies are, perhaps surprisingly, allowed to fire employees without cause, for just about any reason. The important thing to note is that if you’re fired without cause, the company is required to pay severance.

 

 

 

BNN Bloomberg Newsletters

BUSINESS OF SPORTS

An exclusive dive into the money, movers and business of sports.

Subscribe

BREAKING NEWS

Sign up and get breaking news email alerts sent straight to your inbox.

Subscribe

THE DAILY CHASE

Our morning newsletter will keep you updated on program highlights of the day's top stories.

Subscribe

MARKET CALL

Our top picks newsletter delivers analysis and stock recommendations from our Market Call guests.

Subscribe

 

Most Popular Stocks

Recently Viewed Stocks

{{column.title}}

{{column.title}}

{{stock[column.field]}}

{{stock[column.field] | filterVolumeDisplay: column.field }}

- -

{{stock[column.field] | number: 2}}

- -

{{stock[column.field] | currency}}

- -

{{stock[column.field] | number: 2}}

- -

{{stock[column.field] | number: 2}}

- -

{{stock[column.field]}}

{{stock[column.field]}}

- -

{{stock[column.field]}}

{{stock[column.field] | filterVolumeDisplay: column.field}}

- -

{{stock[column.field] | number: 2}}

- -

{{stock[column.field] }}

{{stock[column.field] | currency}}

- -

{{stock[column.field] | number: 2}}

- -

{{stock[column.field] | number: 2}}

- -

{{stock[column.field]}}

{{stock[column.field]}}

- -

As of: {{timeStamp}}

No Data Found

 

 

 

BNN Bloomberg Picks

6:12

Stellantis to produce electric muscle cars in Windsor. Ont. plant

6:52

Women are making gains in employment, but face barriers in management: report

5:37

Federal government discontinues First-Time Home Buyer Incentive

4:03

Canada's 'student trafficking' industry is backfiring on Trudeau

6:49

Canada tax changes to be aware of in 2024

5:08

Do you want AI with that? Fast food chains go digital with dynamic pricing, bots

Investing

11h ago

Canada's top pension funds pressured by CEOs to invest more at home in open letter

9:08

Canada's top pension funds pressured by CEOs to invest more at home in open letter

Almost 100 top Canadian business leaders have signed an open letter to Finance Minister Chrystia Freeland and her provincial counterparts, urging them to change investment rules for pension funds to “encourage them to invest in Canada.”

Kodak explores tapping pension fund's US$1.2 Billion surplus

Company News

10h ago

Linamar Corp. earns $104.4 million in fourth quarter as sales rise to $2.5 billion

Linamar Corp. says it earned $104.4 million in the fourth quarter of 2023, up from $92.2 million a year earlier.

Commodities

13h ago

7:14

Enbridge bullish on Mainline, sees Canadian pipelines maxing out capacity by 2026

Enbridge Inc. is bullish on the future of its Mainline pipeline system in light of projections that Canadian oil output could exceed the country's pipeline export capacity as early as 2026.

Company News

10h ago

Constellation Software sees earnings, revenues rise in fourth quarter

Constellation Software Inc. says its net income attributable to common shareholders was US$141 million in the fourth quarter of 2023, down from US$152 million a year earlier.

Real Estate

13h ago

4:14

Montreal real estate market sees 'dynamic start' to 2024 as February home sales rise

The Quebec Professional Association of Real Estate Brokers says Montreal-area home sales jumped 30 per cent in February compared with the same month a year earlier, but sales activity remained slightly below the historical average for this time of year.

Company News

Mar 4

'The world is growing': Rio Tinto CEO shares outlook amid changing mining landscape

6:04

'The world is growing': Rio Tinto CEO shares outlook amid changing mining landscape

The head of the world’s second-largest mining company says that despite ongoing economic and geopolitical challenges, global demand for mined metals and minerals remains strong.

Rio Tinto says Diavik diamond mine employees were on crashed NWT plane

Economics

21h ago

6:28

U.S. Fed Chair Powell's testimony to be watched for any hint on rate-cut timing

With the economy and inflation running hotter than expected, those questions will seize attention Wednesday, when U.S. Fed Chair Jerome Powell begins two days of testimony to Congress.

Technology

Investing

Company News

News Wire

21h ago

5:08

Alphabet’s AI missteps present opportunity for one fund manager

Concerns about Alphabet Inc.’s artificial intelligence missteps have weighed heavily on the Google-parent’s stock, but a Boston Partners fund manager believes this has created a golden opportunity for investors.

Economics

Mar 4

BoC expected to hold interest rates this week as grey cloud hangs over economy

6:44

BoC expected to hold interest rates this week as grey cloud hangs over economy

The Bank of Canada is expected to preach patience at its interest rate announcement this week as economists say weakening economic conditions are setting the stage for rate cuts in the coming months.

'Nobody needs an extra coat': Apparel sector braces for another year of no splurging

GDP numbers suggest a 'wait and see' approach from Bank of Canada: economist

Expert reaction to Q1 earnings from Canada's 'Big 6' banks

Company News

12h ago

RBC raises renewable funding target, reports little progress on oil and gas emissions

Royal Bank of Canada plans to ramp up its renewable energy funding, even as it also reported little progress on reducing the emissions intensity of its oil and gas financing.

Commodities

14h ago

TC Energy confirms latest round of job cuts; unspecified number of employees affected

TC Energy Corp. has cut an unspecified number of jobs, primarily in Calgary and Houston, the pipeline company confirmed Wednesday.

Real Estate

Mar 5

7:05

Toronto home sales up in February from last year as consumers eye rate cuts

Greater Toronto home sales and listings were up in February from last year, but adjusted sales were down from a month earlier, the region's real estate board said Tuesday.

Company News

Canada

11h ago

Days before festival cancellation, bailiff seized assets from Just for Laughs

A bailiff seized more than $800,000 in assets from the Montreal company that runs the Just for Laughs comedy festival one week before the company announced it was seeking protection from its creditors.

Company News

Feb 29

Expert reaction to Q1 earnings from Canada's 'Big 6' banks

5:15

Expert reaction to Q1 earnings from Canada's 'Big 6' banks

Thursday’s results from TD Bank and the Canadian Imperial Bank of Commerce wrapped up first-quarter earnings week for Canada’s biggest lenders. Here’s what experts had to say about each of them.

'Healthy earnings': Portfolio manager reacts to RBC, National Bank Q1 results

Scotiabank impresses, as BMO 'missed on everything that mattered': expert

GDP numbers suggest a 'wait and see' approach from Bank of Canada: economist

Economics

18h ago

5:24

Read the full text of the Bank of Canada rate decision

The Bank of Canada held its benchmark interest rate at five per cent.

Company News

20h ago

4:03

Oscar Mayer debuts vegan hot dog with help from Bezos-backed startup

Meatless hot dogs and sausages are coming from one of the country’s most iconic brands.

Load More

 

Subscribe to BNN Bloomberg Newsletters

BNN Bloomberg Personalities

Weekly Guest Schedule

Channel Guide

Contact Us

Privacy Policy

Accessibility

Political Ad Registry

Terms & Conditions

FAQ

© 2024 All Rights Reserved

CTV News Sites

什么是二值神经网络,它的前景如何? - 知乎

什么是二值神经网络,它的前景如何? - 知乎首页知乎知学堂发现等你来答​切换模式登录/注册神经网络深度学习(Deep Learning)什么是二值神经网络,它的前景如何?补贴几篇paper,欢迎补充 XNOR-Net: ImageNet Classification Using Binary Convolutional…显示全部 ​关注者517被浏览87,476关注问题​写回答​邀请回答​好问题 1​添加评论​分享​8 个回答默认排序Ethan Sun技术新丁​ 关注旷视科技(Face++)研究员周舒畅写的二值神经网络:催生手腕上的AlphaGo--百度百家,我认为可以作为很好的科普另外雨石写的笔记二值神经网络(Binary Neural Network,BNN)是对courbariaux2016binarynet这篇论文(Binarized Neural Networks: Training Deep Neural Networks with Weights and Activations Constrained to +1 or -1)的介绍,在理论上更详细编辑于 2016-08-31 05:06​赞同 57​​1 条评论​分享​收藏​喜欢收起​Emilylulu​machine learning​ 关注最早的一篇应该是是Bengio组的binaryconnect模型,这个模型用符号函数把weight二值化了,从而把前向传播中大部分的单精度乘法换成了单精度加法。他们组之后的一篇binarynet进而把activation也二值化了,那么单精度加法进一步变成了xnor位运算操作。个人认为二值网络最大的贡献主要在于三点:1. 尽管模型精度降低了非常多,但是在训练效果却不比全精度的网络差,有的时候二值网络的训练效果甚至会超越全精度网络,因为二值化过程给神经网络带来了noise,像dropout一样,反而是一种regularization,可以部分避免网络的overfitting。2.二值化网络可以把单精度乘法变成位操作,这大大地减少了训练过程中的运算复杂度。这种位运算可以写成gpu kernel, 或者用fpga实现,会给神经网络训练速度带来提升。3. 存储神经网络模型主要是存储weights. 二值化的weight只要一个bit就可以存下来了,相比之前的32bit,模型减小了32倍,那么把训练好的模型放在移动设备,比如手机上面做测试就比较容易了。当前还有一些二值化网络的变种,比如给二值加一个系数(xnor net)来更好地逼近全值网络。比如通过离散化梯度把后向传播中的乘法也变成加法。因为训练速度的提高和存储空间的减少,二值化网络的发展将会让深度神经网络在更多计算能力和存储空间相对比较弱的平台上得到作用,比如手机,嵌入式系统等。发布于 2016-10-30 19:49​赞同 50​​18 条评论​分享​收藏​喜欢

【深度学习——BNN】:二值神经网络BNN——学习与总结-CSDN博客

>

【深度学习——BNN】:二值神经网络BNN——学习与总结-CSDN博客

【深度学习——BNN】:二值神经网络BNN——学习与总结

最新推荐文章于 2023-12-28 15:01:11 发布

VIP文章

Lily_9

最新推荐文章于 2023-12-28 15:01:11 发布

阅读量3w

收藏

105

点赞数

18

分类专栏:

Python

深度学习

文章标签:

BNN

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/Lily_9/article/details/81409249

版权

最近一直在做深度学习的FPGA布署,偶然研读到Bengio大神的著作《Binarized Neural Networks: Training Neural Networks with Weights and Activations Constrained to +1 or −1》:

链接:https://arxiv.org/abs/1602.02830

关于BNN,已经有不少前辈做了mark,根据这几天的学习,做了一下整理。

二值神经网络是在CNN的基础上,对权值和激活值(特征值)做二值化处理,即取值是+1或-1。BNN网络结构与CNN相同,主要在梯度下降、权值更新、卷积运算上做了一些优化处理。

1.二值化

所谓二值化,就是权值和激活值只能取+1或-1,作者指明,二值化,有两种方法:①Deterministic(确定法);②Stochastic(统计法)。

Deterministic(确定法):大于等于0,取+1;否则,取-1。

Stochastic(统计法):以一定的概率 ,取+1,或-1。

虽然Stochastic(统计法)更合理,但是,实际操作需要用硬件生成随机数,比较困难,所以在这篇paper中,作者采用的是Deterministic(确定法)。

在前向传播过程中,经Deterministic(确定法)的Sign函数,可以将实数型的权值和激活值量化成+1,-1,当用于预测时,参数值仅为+1或-1,可以减小参数的内存占用和存取量;但是,训练时,仍需要对实数型的权值和激活值计算梯度,并以此更新权值。

2.权值更新

在权值更新之前,需要先了解一下前向传播的具体过程。作者在第一个算法中,

最低0.47元/天 解锁文章

优惠劵

Lily_9

关注

关注

18

点赞

105

收藏

觉得还不错?

一键收藏

知道了

12

评论

【深度学习——BNN】:二值神经网络BNN——学习与总结

最近一直在做深度学习的FPGA布署,偶然研读到Bengio大神的著作《Binarized Neural Networks: Training Neural Networks with Weights and Activations Constrained to +1 or −1》:链接:https://arxiv.org/abs/1602.02830关于BNN,已经有不少前辈做了mark,...

复制链接

扫一扫

专栏目录

二值神经网络综述(Binary Neural Networks: A Survey)【北航】.pdf

04-10

在本文中,我们对这些算法进行了全面的概述,主要分为直接进行二值化的本机解决方案,以及使用使量化误差最小化,改善网络损耗函数和减小梯度误差等技术进行优化的解决方案。我们还将研究二进制神经网络的其他实用方面,例如硬件友好的设计和训练技巧。然后,我们对不同的任务进行了评估和讨论,包括图像分类,对象检测和语义分割。最后,展望了未来研究可能面临的挑战。

二值化网络(BNN)如何训练?这篇ICML 2021论文给你答案

Paper weekly

07-24

1536

二值化网络(Binary Neural Networks)是一种神经网络压缩方法,把原本需要32 bit 表示的神经网络参数值和激活值二值化到只需要用 1 bit 表示,即 -1/+1 表...

12 条评论

您还未登录,请先

登录

后发表或查看评论

二值神经网络(BNN)

最新发布

m0_52889836的博客

12-28

429

二值神经网络不是一种新的网络模型,实际上它是一种极致的量化方法——将神经网络的权重和激活量化为1bit。随着神经网络的发展,神经网络的性能越来越高,但是同时,模型的大小也越来越大。对于资源有限,功耗又有要求的边沿设备,多数神经网络模型不适合进行部署,这限制了深度学习的发展。因此出现了许多模型压缩的方法,比如知识蒸馏、剪枝、量化等等。二值神经网络(BNN)的前身可以追溯到BWN,他只是将神经网络的权值进行二值量化,激活还是浮点的形式,实现了不错的性能。

二值化神经网络(BNN)基础学习(一)

weixin_30929011的博客

03-30

1225

目录

1.简介

2.优点

3.基本原理

3.1 权重和激活值二值化[3]

3.2 乘法优化

3.3 权重和激活值更新

4.结论[3]

参考资料

1.简介

​ 二值化神经网络,在...

BNN - 基于low-bits量化压缩的跨平台深度学习框架

weixin_34292402的博客

11-02

1373

写在最前

本文介绍阿里IDST部门研发、基于low-bits量化压缩的深度学习框架BNN(Binary

Neural Network),BNN具有以下特点:

1) 跨平台:BNN可以在不同的主流硬件平台上进行部署,包括ARM系列移动端处理器、Intel系列服务器以及正在开发中的NVidia的图形处理器;

2)压缩比高:使用了自...

combinational-bnn:系统Verilog代码,描述了完全组合的二值神经网络

05-08

组合二值化神经网络(BNN)

该存储库包含描述硬件完全组合的BNN模型的System-Verilog源文件。

文件夹内容

src\包含基本BNN构建块(空间卷积层和完全连接层)的HDL描述

test\包含网络模型的多个示例

src\包含特定于网络的HDL描述。 其中weights.sv包含网络参数。

tb\包含用于运行模拟的测试台文件。

sim\用于ModelSim的仿真目的(已通过版本10.6b测试)

尝试代码

只需导航到所需网络示例的sim\文件夹并输入

make clean build run

用于合成和仿真。 刺激在tb/data.sv定义。

结果

报道了用GF22 SOI技术进行的腐霉属结果。 如果您使用我们的代码,请确认。

Rusci, Manuele, Lukas Cavigelli, and Luca Benini.

"Design Automation for

基于随机效应贝叶斯神经网络(RE-BNN)的多区域出行模式选择分析

zuiyishihefang的博客

11-09

914

1.文章信息本次介绍的文章为《A Random Effect Bayesian Neural Network (RE-BNN) for travel mode choice analysis across multiple regions》,发表在Travel Behaviour and Society上。该工作在经济学的随机效用理论下,利用深度学习进行了跨区域的出行行为选择的预测,并且对于英国不...

BNN方法总结

whereever123的博客

12-23

3951

BNN方法总结

二值神经网络(Binary Neural Network,BNN)

edward_zcl的博客

08-15

2693

缺点:BNN在训练过程中仍然需要保存实数的参数,这是整个计算的瓶颈。BNN虽然需要保存实数的参数,但是实数范围是[-1,1],所以可以做压缩,即使用16bit或者更少的位数来表示浮点数。模型尺寸变小,正向传播计算速度变快,意味着可以将正向传播层放到客户端去做了,虽然随着网络带宽的增大,给服务器传个图片也么啥。将图像的特征学习和哈希码学习可以无缝整合到一起,因为都是二值化。暂时就这些!...

二值神经网络的原理、代码实现、训练测试等相关学习笔记

m0_49663564的博客

07-21

2372

二值神经网络的原理、代码实现、训练测试等相关学习笔记

Bayes Belief Networks详解(附带详细公式推导)

Ἥλιος

08-07

4033

Bayes Belief Networks详解

第十次写博客,本人数学基础不是太好,如果有幸能得到读者指正,感激不尽,希望能借此机会向大家学习。这篇文章主要分为一下三部分来介绍贝叶斯信念网(Bayes  \ Belief  \ Networks):BNN的简要介绍、如何构建BNN、如何基于BNN进行估计以及BNN的特点。

PYNQ上实现BNN网络识别数字

06-27

在PYNQ上实现了一个简单的BNN网络,并对比了用FPGA加速和不用FPGA加速的时间,发现使用FPGA确实可以加速深度学习网络的识别。

二值神经网络(Binary Neural Networks)最新综述.md

04-02

知乎转引的此文介绍了来自北京航空航天大学刘祥龙副教授研究团队的最新综述文章 **Binary Neural Networks: A Survey**,合作者包括中国电子科技大学的宋井宽教授和意大利特伦托大学计算机系主任 Nicu Sebe 教授。在阅读基础上,做了.md的笔记。

摘要如下:

神经网络二值化能够**最大程度地降低模型的存储占用和模型的计算量**,将神经网络中**原本 32 位浮点数参数量化至 1 位定点数**,**降低了模型部署的存储资源消耗,同时极大加速了神经网络的推断过程**。但二值化会不可避免地导致**严重的信息损失**,其**量化函数不连续性也给深度网络的优化带来了困难**。

近年来许多算法被提出致力于解决上述问题,并取得了令人满意的进展。在本文中,我们对这些方法进行了全面的总结和概括,主要分为**直接量化的朴素二值化方法**,以及使用**最小化量化误差**、**改善网络损失函数和减小梯度误差**等技术的**改进二值化方法**。

本文还调研了二值神经网络的**其他实用方面**,例如**硬件友好的设计和训练技巧**。然后,我们对**图像分类,目标检测和语义分割**等不同任务进行了**评估和讨论**。最后,本文展望了**未来研究可能面临的挑战**。

Matlab代码verilog-BNN:神经网络

05-27

Matlab代码verilog

具有资源优化架构构建工具的组合式BNN工具链。

论文的一部分:“((Tadej

Murovic,Andrej

Trost),资源优化的组合式二元神经网络电路”->尚未出版。

构建用于二进制神经网络的组合Verilog电路的框架。

实现上述图像的主要文件是MATLAB文件FPGA_deployment_framework.m。

在其中,我们分为三个部分,分别为特定的边缘处理应用程序(影像,网络安全和高能物理)构建Verilog模型。

在运行之前,需要某些库和依赖项。

Matlab

R2017a

Python

2.7

茶野

千层面

Pylearn2

脾气暴躁的

麻辣

最新的python依赖版本应该可以使用。

如果有问题,请看一下。

这来自关于二进制神经网络的原始论文之一,从中获取了我们的python训练脚本(仅出于我们的目的进行了一些修改)。

对于我们而言,由于网络相对较小,因此不需要GPU。

可以通过修改脚本来支持GPU训练。

步骤1-2

文件cybersecurity_dataset_unswb15.m,hep_dataset_susy.m和Imagin

BinaryNet.tf:张量流中的BNN实现

05-14

BinaryNet.tf

用权重和激活限制为+1或-1的深层神经网络进行训练。 在tensorflow中实施( )

这是不完整的使用Binary-Backpropagation算法的BinaryNet训练示例,如“二值化神经网络:使用权重和激活限制为+1或-1的深度神经网络,对以下数据集:Cifar10 / 100进行解释。

请注意,在此文件夹中,我尚未实现(但...)基于班次的BN和基于班次的AdaMax(相反,我只是使用普通的BN和Adam)。 同样,我使用确定性二值化方法,并且不应用GLorot&Bengio 2010的初始化系数。最后,如果SquareHingeLoss使用“ sparse_softmax_cross_entropy_with_logits”损失代替。

该实现基于但是主要思想可以轻松地转移到任何tensorflow包装器中。 我可能会尽快将其更改为kera

Training-Tricks-for-Binarized-Neural-Networks:二值神经网络训练技巧的集合

05-16

进一步提供了一个开源深度学习库,用于训练具有极低精度权重和激活的神经网络,例如Binarized Neural Networks(BNN)。 1.修改后的ResNet块结构 class BinActiveF ( torch . autograd . Function ): def forward...

【Python——opencv篇】 bitwise_and、bitwise_not等图像基本运算及掩膜

热门推荐

Lily_9的博客

10-18

1万+

1.图像基本运算

图像的基本运算有很多种,比如两幅图像可以相加、相减、相乘、相除、位运算、平方根、对数、绝对值等;图像也可以放大、缩小、旋转,还可以截取其中的一部分作为ROI(感兴趣区域)进行操作,各个颜色通道还可以分别提取及对各个颜色通道进行各种运算操作。总之,对于图像可以进行的基本运算非常的多,只是挑了些常用的操作详解。

void add(InputArray src1, InputAr...

【Anaconda ——问题篇】Import cv2 ImportError:DLL load failed:找不到指定模块 解决方法

Lily_9的博客

10-17

6827

实验环境:

系统版本:Win 7 旗舰版

Anaconda :Python 3.5.6 | Anaconda 4.2.0(64-bit)

问题描述:

安装OpenCV后使用import cv2 时出现如下错误 :

解决方法:

1.检查Visual C++ Redistributable for Visual Studio 2015

首先保证有Visual C++ Redistributa...

“相关推荐”对你有帮助么?

非常没帮助

没帮助

一般

有帮助

非常有帮助

提交

Lily_9

CSDN认证博客专家

CSDN认证企业博客

码龄6年

暂无认证

42

原创

12万+

周排名

78万+

总排名

47万+

访问

等级

3869

积分

370

粉丝

407

获赞

171

评论

2299

收藏

私信

关注

热门文章

【FPGA——工具篇】:Modelsim SE-64 10.4下载、破解、安装过程

90039

UltraEdit+注册机+激活方法全攻略(亲测有效)

54627

【深度学习——BNN】:二值神经网络BNN——学习与总结

30196

【FPGA——基础篇】同步FIFO与异步FIFO——Verilog实现

26174

【Python——opencv篇】 bitwise_and、bitwise_not等图像基本运算及掩膜

19143

分类专栏

vivado

12篇

Python

10篇

多目标识别

4篇

计算机

5篇

matlab

2篇

Xilinx

9篇

FPGA

29篇

UltraEdit

1篇

C语言

7篇

深度学习

5篇

Linux

11篇

图像识别

6篇

算法

11篇

最新评论

【FPGA——工具篇】:Modelsim SE-64 10.4下载、破解、安装过程

e3e5s:

搞了半天,license要大写的才对

【FPGA——工具篇】:Modelsim SE-64 10.4下载、破解、安装过程

白子皍:

在压缩包里。这个是原帖,文件是全的

【FPGA——工具篇】:Modelsim SE-64 10.4下载、破解、安装过程

brouner:

第三步的两个文件在哪呢

【ZYNQ-7000 开发之七】PL读写DDR3

茶茶酱和FPGA:

最近在看zynq的文档,通过GP应该不能访问DDR,至少读写不成功

UltraEdit+注册机+激活方法全攻略(亲测有效)

Cchaofan:

提取码不对啊

您愿意向朋友推荐“博客详情页”吗?

强烈不推荐

不推荐

一般般

推荐

强烈推荐

提交

最新文章

【Vivado——综合】Vivado 综合设置指令列表(RTL/GUI/TCL版本)

【FPGA——乘法运算】基于USE_DSP资源来实现

【ZYNQ】 cache解决问题

2020年2篇

2019年24篇

2018年56篇

2017年2篇

目录

目录

分类专栏

vivado

12篇

Python

10篇

多目标识别

4篇

计算机

5篇

matlab

2篇

Xilinx

9篇

FPGA

29篇

UltraEdit

1篇

C语言

7篇

深度学习

5篇

Linux

11篇

图像识别

6篇

算法

11篇

目录

评论 12

被折叠的  条评论

为什么被折叠?

到【灌水乐园】发言

查看更多评论

添加红包

祝福语

请填写红包祝福语或标题

红包数量

红包个数最小为10个

红包总金额

红包金额最低5元

余额支付

当前余额3.43元

前往充值 >

需支付:10.00元

取消

确定

下一步

知道了

成就一亿技术人!

领取后你会自动成为博主和红包主的粉丝

规则

hope_wisdom 发出的红包

实付元

使用余额支付

点击重新获取

扫码支付

钱包余额

0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深度学习--二值神经网络BNN基础概念学习总结+官方代码解析_bnn代码详解-CSDN博客

>

深度学习--二值神经网络BNN基础概念学习总结+官方代码解析_bnn代码详解-CSDN博客

深度学习--二值神经网络BNN基础概念学习总结+官方代码解析

最新推荐文章于 2024-03-04 10:22:26 发布

S.T.A.R.

最新推荐文章于 2024-03-04 10:22:26 发布

阅读量2.7k

收藏

13

点赞数

文章标签:

深度学习

神经网络

人工智能

机器学习

python

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/weixin_44886683/article/details/104121308

版权

BNN网络

1.基础概念学习总结

优势

加速训练 减小权重的值的尺度的影响 归一化所带来的噪声也有模型正则化的作用 由于二值网络权值W中的元素只占一位二进制,因此在保存训练好后的模型时所需的内存非常小;同时又去除了普通的乘法操作。在减少模型参数所占的内存和运算量的同时还能保持神经网络的性能,这给深度学习在移动端的应用带来了非常大的前景。

摘要解读: 介绍了一种训练二值化神经网络(BNNs)的方法。在训练时,使用二元权值和激活度来计算参数梯度。在前向传递过程中,BNNs大大减小了内存大小和访问,并将大部分算术运算替换为按位运算,有望大幅度提高效率。 我们进行了两组实验Torch7和Theano框架,前者结合lua脚本语言,后者结合python 实验结果得出,在这两个框架,BNNs都取得了几乎是最先进的成果 MNIST, CIFAR-10和SVHN数据集。最后,我们写了一个二进制矩阵乘法 GPU内核(runtime),它可以运行我们的MNIST, BNN的速度比未优化的GPU内核快7倍,并且在分类精度上没有任何损失。 我们介绍了一种训练二元神经网络(BNNs)的方法,即在运行时训练具有二元权值和激活的神经网络,以及在训练时计算参数梯度的方法 主要思想

在前向传播过程中,经Deterministic(确定法)的Sign函数,可以将实数型的权值和激活值量化成+1,-1,当用于预测时,参数值仅为+1或-1,可以减小参数的内存占用和存取量;但是,训练时,仍需要对实数型的权值和激活值计算梯度,并以此更新权值

乘法优化 背景介绍:batch Normalization,简称BN。所谓的BN是指在数据经过一层进入下一层之前,需要对数据进行归一化,使之均值为0,方差为1。这样可以使得各层的参数量级上没有太大的差别。 有三个优点:加速训练,减小权重的值的尺度的影响,归一化所带来的噪声也有模型正则化的作用。 本研究创新 Shift-based Batch Normalization:二值网络对Batch Normalization操作的优化主要是通过AP2(x)操作和<<>>操作来代替普通的乘法。AP2(x)的作用是求与x最接近的2的幂次方,如AP2(3.14)=4,AP2(2.5)=2;而<<>>操作就是位移操作。AP2(x)的操作,在作者给出的源码中能够找到;但是<<>>的操作,从源码中只能看到Torch的点乘函数cmul()。(注:Shift-based AdaMax中的乘法操作也是用上述两个操作代替)

国内研究现状 有论文已经实现resnet和BNN的结合(应用于行人识别)[1] 摘要 网络结构

但是他们的实践表明如下这种二值化方法效果更好

[1]曹立宇,方向忠.一种基于BNN的行人再识别方法[J].信息技术,2018,42(12):129-133.

自然语言识别领域也有应用

2.代码解析

代码来源:https://github.com/MatthieuCourbariaux/BinaryNet 源码分为两个文件夹,其中train time,runtime运用了论文中XNOR和GPU核 然后安装代码前面的一些如theano等等包,到了这里 from pylearn2.datasets.mnist import MNIST from pylearn2.utils import serial 先上这个网址https://github.com/lisa-lab/pylearn2下载这个文件夹,解压到site-packages下,然后在pycharm的local中输入(省略号里面写自己的路径)

cd C:\...site-packages\pylearn2-master

python setup.py develop

如果出现这个No module named ‘theano.compat.six’错,参考这个网址https://blog.csdn.net/qq_43232373/article/details/82999076

优惠劵

S.T.A.R.

关注

关注

0

点赞

13

收藏

觉得还不错?

一键收藏

知道了

2

评论

深度学习--二值神经网络BNN基础概念学习总结+官方代码解析

BNN网络1.基础概念学习总结优势加速训练减小权重的值的尺度的影响归一化所带来的噪声也有模型正则化的作用由于二值网络权值W中的元素只占一位二进制,因此在保存训练好后的模型时所需的内存非常小;同时又去除了普通的乘法操作。在减少模型参数所占的内存和运算量的同时还能保持神经网络的性能,这给深度学习在移动端的应用带来了非常大的前景。摘要解读:介绍了一种训练二值化神经网络...

复制链接

扫一扫

Binarized Neural Network : BNN二值神经网络代码实例

Airbser的博客

12-30

1036

我自己在研究BNN,苦于找不到代码(没有一个人写一个吗???)

自己写了一个,也不知道是不是标准的BNN,反正就是把所有参数都二值化了,用的MNIST,效果一般。如果只二值权值的话就需要分别对每一层进行二值,这个代码量挺大的而且没有意义。

from torchvision import datasets, transforms

import torch

import torch.nn as nn

import torch.nn.functional as F

import numpy as np

impor

论文二值化神经网络模型BNN计算训练预测及代码

qq_35608277的博客

03-08

2039

Binarized Neural Networks: Training Neural Networks with Weights and

Activations Constrained to +1 or − 1

1 前向和反向传播的数值计算

1.1权重和激活函数值二值化公式

就符号函数,跟零比,判断正负。

1.2二值化的数据梯度

对于输入r,经过上面的符号函数后,反向传播时候怎么求梯度gr。

...

2 条评论

您还未登录,请先

登录

后发表或查看评论

二值神经网络(BNN)

m0_52889836的博客

12-28

429

二值神经网络不是一种新的网络模型,实际上它是一种极致的量化方法——将神经网络的权重和激活量化为1bit。随着神经网络的发展,神经网络的性能越来越高,但是同时,模型的大小也越来越大。对于资源有限,功耗又有要求的边沿设备,多数神经网络模型不适合进行部署,这限制了深度学习的发展。因此出现了许多模型压缩的方法,比如知识蒸馏、剪枝、量化等等。二值神经网络(BNN)的前身可以追溯到BWN,他只是将神经网络的权值进行二值量化,激活还是浮点的形式,实现了不错的性能。

combinational-bnn:系统Verilog代码,描述了完全组合的二值神经网络

05-08

组合二值化神经网络(BNN)

该存储库包含描述硬件完全组合的BNN模型的System-Verilog源文件。

文件夹内容

src\包含基本BNN构建块(空间卷积层和完全连接层)的HDL描述

test\包含网络模型的多个示例

src\包含特定于网络的HDL描述。 其中weights.sv包含网络参数。

tb\包含用于运行模拟的测试台文件。

sim\用于ModelSim的仿真目的(已通过版本10.6b测试)

尝试代码

只需导航到所需网络示例的sim\文件夹并输入

make clean build run

用于合成和仿真。 刺激在tb/data.sv定义。

结果

报道了用GF22 SOI技术进行的腐霉属结果。 如果您使用我们的代码,请确认。

Rusci, Manuele, Lukas Cavigelli, and Luca Benini.

"Design Automation for

【二值化网络】Back to Simplicity: 思考BNN网络的设计

Lingyun

07-20

603

Paper: https://arxiv.org/abs/1906.08637

开源代码:https://github.com/hpi-xnor/BMXNet-v2

2019年6月19的一篇新paper。BNN用于降低成本和计算量,非常有效。作者重新思考了BNN中一些常用技术的有效性,并且为BNN网络提出了几项设计准则,并且搭建了一个BinaryDenseNet网络。

主要是通过实验数据去...

基于PYNQ-Z2重建BNN工程

谦豫

08-12

3221

基于PYNQ重建BNN工程

Github链接

环境:ubuntu18.04 vivado2018.3

参考步骤(源自Github的Readme)

Hardware design rebuilt

In order to rebuild the hardware designs, the repo should be cloned in a machine with installation of the Vivado Design Suite (tested with 2018.2).

Following

机器学习: 神经网络中的Batch Normalization(BN)算法

JacksonKim的博客

05-12

2884

aa

神经网络中BN层的原理与作用

weixin_42080490的博客

09-28

2万+

BN层介绍

BN,全称Batch Normalization,是2015年提出的一种方法,在进行深度网络训练时,大都会采取这种算法。

原文链接:Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift

BN被广泛应用于深度学习的各个地方,由于在实习过程中需要修改网络,修改的网络在训练过程中无法收敛,就添加了BN层进去来替换掉LRN层,网络可以收敛。BN层和卷积层,池化层一样都是一

神经网络中的常用算法-BN算法

kupePoem的专栏

10-16

1983

但是当一张图片输入到神经网络经过卷积计算之后,这个分布就不会满足刚才经过image normalization操作之后的分布了,可能适应了新的数据分布规律,这个时候将数据接入激活函数中,很可能一些新的数据会落入激活函数的饱和区,导致神经网络训练的梯度消失,如下图所示当feature map的数据为10的时候,就会落入饱和区,影响网络的训练效果。另一方面使得每一层可以尽量面对同一特征分布的输入值,减少了变化带来的不确定性,也降低了对后层网络的影响,各层网络变得相对独立,缓解了训练中的梯度消失问题。

卷积神经网络CNN(2)—— BN(Batch Normalization) 原理与使用过程详解

热门推荐

Fate_fjh的博客

11-28

10万+

Batch Normalization是由google提出的一种训练优化方法。网上对BN解释详细的不多,大多从原理上解释,没有说出实际使用的过程,这里从what, why, how三个角度去解释BN。

网络骨架:Backbone(神经网络基本组成——BN层、全连接层)

weixin_42782833的博客

06-27

3080

BN层

为了追求更高的性能,卷积网络被设计得越来越深,然而网络却变得难以训练收敛与调参。原因在于,浅层参数的微弱变化经过多层线性变化与激活函数后会被放大,改变了每一层的输入分布,造成深层的网络需要不断调整以适应这些分布变化,最终导致模型难以训练收敛

由于网络中参数变化导致的内部节点数据分布发生变化的现象被称作ICS(Internal Covariate Shift)。ICS现象更容易使训练过程陷入饱和区,减慢网络的收敛。ReLU从激活函数的角度出发,在一定程度上解决了梯度饱和的现象,而2015年提出的BN层

BNN-PYNQ-master.zip_BNN_PYNQ_PYNQ+神经网络_labelm2j_pynq bnn

07-15

BNN二值神经网络在PYNQ平台上的实现

Training-Tricks-for-Binarized-Neural-Networks:二值神经网络训练技巧的集合

05-16

进一步提供了一个开源深度学习库,用于训练具有极低精度权重和激活的神经网络,例如Binarized Neural Networks(BNN)。 1.修改后的ResNet块结构 class BinActiveF ( torch . autograd . Function ): def forward...

Matlab代码verilog-BNN:神经网络

05-27

构建用于二进制神经网络的组合Verilog电路的框架。 实现上述图像的主要文件是MATLAB文件FPGA_deployment_framework.m。 在其中,我们分为三个部分,分别为特定的边缘处理应用程序(影像,网络安全和高能物理)构建...

二值神经网络(Binary Neural Networks)最新综述.md

04-02

神经网络二值化能够**最大程度地降低模型的存储占用和模型的计算量**,将神经网络中**原本 32 位浮点数参数量化至 1 位定点数**,**降低了模型部署的存储资源消耗,同时极大加速了神经网络的推断过程**。但二值化会...

李沐动手学习深度学习——4.1练习

weixin_45496725的博客

03-02

1214

多层感知机

RMSNorm 类中引入一些参数

最新发布

weixin_43013480的博客

03-04

929

引入可学习的参数可以增加模型的复杂性,但同时也可能提高模型的泛化能力和性能。在设计模型时,需要权衡模型的复杂度和训练的难度。,可以为每个维度引入一个可学习的缩放参数。这可以通过创建一个与输入维度相同的权重矩阵来实现,而不是一个向量。可以设计一个自定义的归一化函数,其中包含可学习的参数。在归一化之后,可以引入一个可学习的激活函数,其参数也可以是可训练的。类中,引入可学习的参数,以增强模型的表达能力和适应性。除了缩放,还可以为每个维度引入一个可学习的偏移参数。中的激活函数,并将可学习参数作为激活函数的输入。

卷积神经网络增强数据

LIjin_1006的博客

03-04

822

卷积神经网络增强数据

通过MNIST手写数字识别任务快速入门深度学习(事无巨细版)

你不懂猪刚鬣

03-03

1115

深度学习(DL, Deep Learning)是机器学习(ML, Machine Learning)领域中一个研究方向。深度学习通过对样本数据的内在规律和特征的提取与抽象,在不同维度和层次上进行处理,让机器能够像人一样具有分析学习能力,能够识别文字、图像和声音等数据。相比于初期的机器学习,深度学习是更加复杂的算法,但是同时因为深度学习算法的普适性,以及在语音和图像识别方面取得的惊人效果,他的发展速度远远超过先前相关技术。

二值化神经网络(BNN)基础学习(一)

05-24

二值化神经网络(Binary Neural Network, BNN)是一种特殊的神经网络结构,它在前向和反向传播过程中只使用二进制数值(+1和-1)来表示网络中的权重和激活值。相对于传统的神经网络,BNN显著降低了计算复杂度和存储...

“相关推荐”对你有帮助么?

非常没帮助

没帮助

一般

有帮助

非常有帮助

提交

S.T.A.R.

CSDN认证博客专家

CSDN认证企业博客

码龄5年

暂无认证

40

原创

30万+

周排名

21万+

总排名

13万+

访问

等级

1171

积分

28

粉丝

68

获赞

32

评论

415

收藏

私信

关注

热门文章

! LaTeX Error: File xxx.sty not found.统一解决办法

36853

Latex表格排版大全 基于 IEEE双栏论文(设置单元格行列间距,自动换行设置)

9346

PPT 无法播放媒体/视频媒体不可用怎么解决

6892

InceptionV3模型介绍+参数设置+迁移学习方法

6524

python 求图像SNR代码

6398

分类专栏

主动学习

1篇

最新评论

unet预测图片全黑/全灰解决方案(keras)

MCMXCVII:

您好 你解决了吗 我用U-Net++图片是全灰

C++处理tiff图片--libtiff库(附读写图片代码)

-Thomas杨-:

想问下C++版本的能打开含中文的路径吗 我用pylibtiff的open函数没法打开带中文的路径

python 求图像SNR代码

S.T.A.R.:

那个不用管的 只是选取我想测SNR的帧

python 求图像SNR代码

炎髪灼眼の讨ち手:

pre_post_frame是什么

C++处理tiff图片--libtiff库(附读写图片代码)

werewolf 141:

如果用imshow()函数来显示图片,应该如何传参呢

您愿意向朋友推荐“博客详情页”吗?

强烈不推荐

不推荐

一般般

推荐

强烈推荐

提交

最新文章

python版本要和pip的pytorch适配

PPT 无法播放媒体/视频媒体不可用怎么解决

如何发布pip可以直接安装的包(2021.12更新,针对最近网站变动)

2023年1篇

2022年1篇

2021年16篇

2020年19篇

2019年6篇

目录

目录

分类专栏

主动学习

1篇

目录

评论 2

被折叠的  条评论

为什么被折叠?

到【灌水乐园】发言

查看更多评论

添加红包

祝福语

请填写红包祝福语或标题

红包数量

红包个数最小为10个

红包总金额

红包金额最低5元

余额支付

当前余额3.43元

前往充值 >

需支付:10.00元

取消

确定

下一步

知道了

成就一亿技术人!

领取后你会自动成为博主和红包主的粉丝

规则

hope_wisdom 发出的红包

实付元

使用余额支付

点击重新获取

扫码支付

钱包余额

0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

Badische Neueste Nachrichten - Ihre regionale Tageszeitung für Karlsruhe und Umgebung

Badische Neueste Nachrichten - Ihre regionale Tageszeitung für Karlsruhe und Umgebung

Skip to main content

Anzeigen

Private Anzeigen

Gewerbliche Anzeigen

Jobportal

Trauerportal

Abo & Service

Abo-Übersicht

Abo-Service

Meine Zeitung im Urlaub

Zustellung

Kontakt

ePaper

Anmelden

Karlsruhe

Mittelbaden

Kraichgau

Pforzheim

Erleben

Nachrichten

Mehr

Schwerpunkte

KSC

BNN+

BNN bei WhatsApp

Newsletter

Sporttabellen

Anzeigen

Private Anzeigen

Gewerbliche Anzeigen

Jobportal

Trauerportal

Abo & Service

Abo-Übersicht

Abo-Service

Meine Zeitung im Urlaub

Zustellung

Kontakt

ePaper

Anmelden

Schwerpunkte

KSC

BNN+

BNN bei WhatsApp

Newsletter

Sporttabellen

Suche

Karlsruhe

Karlsruhe-Stadt

Karlsruher Norden

Ettlingen

Rheinstetten

Pfinztal

Mittelbaden

Rastatt

Baden-Baden

Gaggenau

Bühl

Ortenau

Kraichgau

Bruchsal

Bretten

Pforzheim

Pforzheim-Stadt

Enzkreis

Erleben

Nachrichten

Sport

Wirtschaft

Kultur

Baden-Württemberg

Deutschland & Welt

Medienhaus

Kontakt

Karriere

Akademie

Geschäftsstellen

Über uns

Donnerstag, 07. März 2024

Haftbefehl des Generalbundesanwalts

Frühere RAF-Terroristin Daniela Klette ist in ihrer Heimatstadt Karlsruhe

von dpa, unserer Redaktion

vor 1 Minute

Radikale Ansichten schon in der Schule

Wie aus der Karlsruherin Daniela Klette eine RAF-Terroristin wurde – ehemalige Lehrer erinnern sich

Interaktive Karte

Von Buback-Mord bis Klette-Radikalisierung: Die Spuren der RAF in Karlsruhe

Neueröffnung im April

Über 400 Quadratmeter: Schuhgeschäft Humanic kehrt nach Karlsruhe zurück

von Judith Midinet-Horst

vor 4 Stunden

Bahn und Lufthansa

Was Reisende aus Karlsruhe und der Region über die Streiks wissen müssen

von Pascal Schütt

vor 3 Stunden

Gemeinderat entscheidet

Kreuzung Goethe- und Dieselstraße: Ettlingen macht ersten Schritt in Richtung Verkehrswende

von Florian Krekel

vor 4 Stunden

Jörg Kräuter

Bühler Künstler zieht Schlussstrich und räumt sein Kellermuseum aus

von Wilfried Lienhard

vor 3 Stunden

Raubüberfall

Achern: Einbrecher überwältigt Seniorin und klaut ihr die Bankkarte

von unserer Redaktion

vor 18 Minuten

Blaulicht

alle

vor 15 Min.

Oberkirch

Rollerfahrer kollidiert in Oberkirch mit Jogger

vor 36 Min.

Achern

E-Scooter-Fahrerin mit Handy beim Fahren in Achern erwischt

06. März

Sasbach

Feuerwehr-Einsatz in Sasbach nach Austritt von Schwefelsäure

06. März

Pforzheim

Zwei Unbekannte schlagen und treten Jungen in Pforzheim

Schlagzeilen

alle

vor 9 Min.

Wirtschaft

Chinas Außenhandel zieht unerwartet stark an

vor 10 Min.

Deutschland & Welt

US-Militär: Drei Tote bei Huthi-Angriff auf Frachtschiff

vor 2 Std.

Wirtschaft

GDL-Chef Weselsky: Habe nie gelogen

vor 2 Std.

Deutschland & Welt

Cameron reist nach Berlin: „Verteidigung ausbauen“

Heuschnupfen aktuell

Mehr

Nachrichten aus Karlsruhe und Umgebung

alle Artikel anzeigen

Rätselfolge 21

„Erkennen Sie Karlsruhe?“: Wo in der Stadt steht dieses markante Haus?

Die BNN-Rätselserie mit alten Fotos aus Karlsruhe fragt diesmal nach einer richtigen Trutzburg. Um was handelt es sich?

von Stefan Proetel

vor 56 Minuten

SPD will langen Leerstand verhindern

Karlsruher Theaterhaus-Team in Raumnot besichtigt Immobilie nebenan

von Tina Givoni

vor 3 Stunden

Viele Veranstaltungen

Auch die Pfadfinder in Stutensee beteiligen sich an den Wochen gegen Rassismus

von Marianne Lother

vor 3 Stunden

Erste Ausstellung zu Lily Greenham

Weltpremiere und einzigartige Klänge im Badischen Kunstverein Karlsruhe

von Carmela Thiele

vor 3 Stunden

Renommierter Gast am KIT

Mit 100 Jahren kehrt der Physiker Herwig Schopper an die Uni Karlsruhe zurück

von Elvira Weisenburger

vor 4 Stunden

Mehr

Nachrichten aus Mittelbaden

alle Artikel anzeigen

Barrierefreie Wohnungen

Weisenbach verkauft kommunale Grundstücke zur Entwicklung des Hirsch-Areals

Mit der Unterschrift unter die Urkunden steht es fest: In Weisenbach wird eine Baulücke geschlossen. Auf dem ehemaligen Hirsch-Areal entstehen 26 Wohnungen.

von Ulrich Jahn

vor 4 Stunden

Kiosk am Bahnhof

Warum am Baustellen-Stammtisch in Gernsbach immer gute Laune herrscht

von Stephan Juch

vor 4 Stunden

Neubau in Oos-West

Ingenieurbüro Wald + Corbe zieht von Hügelsheim nach Baden-Baden

von Nico Fricke

vor 4 Stunden

Seelsorger gestorben

Kirchenmusik spielte für Rastatter Stadtpfarrer Dieter Bender stets eine zentrale Rolle

von Yvonne Hauptmann

vor 5 Stunden

Sichere Kommunikation

Beim Ebersteinburger Funkmast in Baden-Baden baut Netze BW ein Technikgebäude

von Veronika Gareus-Kugel

06. März 2024

Mehr

Karlsruher SC

alle Artikel anzeigen

Badener an der Förde

KSC-Experte mit Kiel im Höhenflug: Trainer Rapp mag es „Holstein-like“

Marcel Rapp winkt ab. Vor dem Duell mit seinem früheren Club Karlsruher SC will Holstein Kiels Trainer von Aufstiegsambitionen an der Förde nichts wissen.

von René Dankert

06. März 2024

Nur Gondorf fehlt am Mittwoch

Die KSC-Reihen sind wieder dichter und Matanovic hat Grund zur Freude

von René Dankert

06. März 2024

Start in die Trainingswoche

Engpass im KSC-Mittelfeld: Burnic und Wanitzek pausieren, Stindl noch keine Option

von Marius Bücher

05. März 2024

Ärger über Sperre

Kleiner, giftiger Nebel fehlt dem KSC: „Die fünf Gelben Karten kommen nicht von ungefähr“

von Marius Bücher

03. März 2024

Interaktiver Überblick

Alle Tops und Flops auf einen Blick in der KSC-Noten-Zentrale

von BNN-Sportredaktion

03. März 2024

Mehr

Empfehlungen unserer Redaktion

alle BNN+ Artikel anzeigen

Ihre Vorteile

9,90 € pro Monat

Weniger Werbung

Monatlich kündbar

Mehr Infos

Bis Ende März offen

„Mein Real“ in Bühl-Vimbuch schließt bald – für das Gebäude gibt es aber eine Zukunft

von Joachim Eiermann

06. März 2024

Afterwork-Event geplant

„Seasalt“ in Bruchsal: Neueröffnung mit vielfältigem Angebot

von Petra Steinmann-Plücker

06. März 2024

Strippenzieherin des Nachtlebens

Die einstige Karlsruher Rotlichtkönigin Margarete Reinhardt starb einsam und ziemlich verwahrlost

von Wolfgang Voigt

05. März 2024

Mehr

Nachrichten aus dem Kraichgau

alle Artikel anzeigen

Neun Bewerber für den Kreistag

Der Kreisvorsitzende führt die SPD-Liste aus dem Wahlkreis elf „Kraichtal“ an

Mit dem Kreisvorsitzenden an der Spitze geht die SPD aus dem Wahlkreis elf „Kraichtal“ in den Wahlkampf. Neben Kreisrat Volker Geisel stehen acht weitere Bewerber auf der Liste.

von Christof Bindschädel

vor 9 Minuten

Entscheidende Weichenstellung

Finanzsituation der Gemeinde verschärft sich: Knifflige Haushaltsberatung in Knittlingen

von Jochen Göbel

vor 3 Stunden

Ortstermin im Fußballkreis

Verletzungspech ist ständiger Begleiter des SV Philippsburg

von Fabian Herling

vor 4 Stunden

Zum Tag der gesunden Ernährung

Expertin des Ernährungszentrums in Bruchsal gibt Tipps

von Charlotte Elisa Blum

vor 4 Stunden

Interessen unvereinbar

Bruchsaler Umfahrung: Für Kraichtal kommt nur die Rotenberg-Lösung infrage

von Christina Zäpfel

06. März 2024

Mehr

Nachrichten aus Pforzheim und Umgebung

alle Artikel anzeigen

Gesetzentwurf ist gut gemacht

Belästigung von Schwangeren: Bekommt Pforzheim eine Handhabung gegen die Abtreibungsgegner?

Aktuell wird im Bundestag ein Gesetz zum Schutz vor radikalen Abtreibungsgegnern beraten. Der Pforzheimer Rechtsamtsleiter Detlef Wagner nennt den Entwurf gelungen. Was ist davon zu erwarten?

von Claudia Kraus

vor 4 Stunden

Interview nach Misstrauensvotum

Pforzheims Bürgermeisterin Schüssler lässt Kandidatur offen

von Sebastian Kapp

vor 11 Stunden

Däne neuer Trainer des Frauenteams

Hans Christensen tritt bei der SG Steinbach/Kappelwindeck in große Fußstapfen

von Wolfram Braxmaier

06. März 2024

Laufserie feiert Jubiläum

Volkslauf-Cup der Sparkasse Pforzheim Calw startet im März in die 20. Saison

von Nico Roller

06. März 2024

Mögliche Standorte werden geprüft

Es gibt viele Gerüchte über die geplante Freiflächen-PV-Anlage in Knittlingen

von Jochen Göbel

06. März 2024

Mehr

Meinung

alle Artikel anzeigen

Meinung

von Hartmut Metz

„Feinschmecker“-Auszeichnung

Bei der Bad Rotenfelser Bäckerei Liedtke stimmt die Chemie

Die Bäckerei Liedtke in Bad Rotenfels überzeugt das Magazin „Feinschmecker“ einmal mehr. Das Familienunternehmen ist nicht nur deshalb etwas Besonderes.

von Hartmut Metz

06. März 2024

Meinung

von Dieter Klink

Drei Monate vor der Europa-Wahl

Die EU verspricht Reformen, aber die kommen nicht

von Dieter Klink

06. März 2024

Meinung

von Frank Löhnig

XL-Stellflächen im Zentrum

Acherner Investor schafft auf seinem Parkplatz Tatsachen: Die Stadt ist jetzt in Zugzwang

von Frank Löhnig

06. März 2024

Meinung

von Stephanie Hölzle

Sparkurs der evangelischen Kirche

Kirche ist da, wo die Menschen sie brauchen

von Stephanie Hölzle

06. März 2024

Meinung

von Joachim Eiermann

Zukunft für Standort

Bald unter neuer Flagge: Am „Mein Real“-Standort in Bühl-Vimbuch hat der Wandel Tradition

von Joachim Eiermann

06. März 2024

Bildergalerien

16

Vom 3D-Plan bis zur Einrichtung

In Bildern: So entstehen Tiny Houses in Karlsbad

Die Karlsbader Firma „Tiny Woods“ stellt Tiny Houses her – und zwar vom 3D-Plan über die Fassade bis hin zum Innenausbau mit maßangefertigten Möbeln.

von Philipp Kungl

06. März 2024

23

Viel los in Cafés und im Zoo

Karlsruher genießen frühlingshafte Temperaturen

03. März 2024

11

Nach Komplett-Sanierung

Kurz vor Wiedereröffnung: Wie es im sanierten Restaurant „Nachtigall“ in Gernsbach aussieht

von Adrian Mahler

02. März 2024

12

Virtuelle Veranstaltung

Abwahl von Vizepräsident Müller: Die KSC-Mitgliederversammlung in Bildern

01. März 2024

13

Nach jahrzehntelanger Fahndung

Festnahme der Karlsruher RAF-Terroristin Daniela Klette: das Geschehen in Bildern

von Julius Sandmann

01. März 2024

Portale

Jobportal

Trauerportal

Ticketshop

Lesershop

Leserreisen

Medienhaus

Kontakt

Karriere

Akademie

Geschäftsstellen

Über uns

Impressum

Datenschutzerklärung

AGB

Cookie-Einstellungen

Verträge kündigen

Preisliste

© Badische Neueste Nachrichten Badendruck GmbH

%

nach oben

Zurück zum Seitenanfang

二值神经网络(Binary Neural Network,BNN)-CSDN博客

>

二值神经网络(Binary Neural Network,BNN)-CSDN博客

二值神经网络(Binary Neural Network,BNN)

最新推荐文章于 2024-03-04 10:22:26 发布

edward_zcl

最新推荐文章于 2024-03-04 10:22:26 发布

阅读量2.6k

收藏

16

点赞数

分类专栏:

人工智能-神经网络

机器学习入门必备

Python使用技巧

文章标签:

神经网络

深度学习

人工智能

原文链接:https://blog.csdn.net/stdcoutzyx/article/details/50926174

版权

人工智能-神经网络

同时被 3 个专栏收录

175 篇文章

22 订阅

订阅专栏

Python使用技巧

151 篇文章

18 订阅

订阅专栏

机器学习入门必备

119 篇文章

9 订阅

订阅专栏

在我刚刚过去的研究生毕设中,我在ImageNet数据集上验证了图像特征二值化后仍然具有很强的表达能力,可以在检索中达到较好的效果。而Bengio大神的这篇文章,则不止于将特征二值化,而是要将权重和每层的激活值统统二值化。相比于非二值化的网络,将大量的数学运算变成了位操作。这样就节省了大量的空间而前向传播的时间,使神经网络的应用门槛变得更低。

更多参考:

https://zhuanlan.zhihu.com/p/117285043 https://blog.csdn.net/stdcoutzyx/article/details/50926174 https://baijiahao.baidu.com/s?id=1656234950732358046&wfr=spider&for=pc

本文是阅读Bengio二值化网络文章的笔记,特此声明。

要想使整个神经网络二值化,那么最需要解决的问题就是反向传播时的求导。下面会通过一系列手段使的这个操作可行。

BNN算法

二值化的手段

直觉上看,二值化的手段非常简单啊,整数是1,负数是-1就可以了。但实际上,这只是其中一种,即决定式的二值化。

还有一种是随机式的二值化。

这个样的公式让我想起跟一个大神聊天时谈到的问题,比如,在我之前Google点击率预估那篇博文中提到的一种网络压缩方法,即不适用32bit的浮点数而是使用16bit格式的数字。既然有压缩,那么就会遇到精度问题,比如如果压缩后的数值表示精度能到0.01,而更新的梯度的值没到这个精度,比如0.001,此时该如何更新这个值?

答案就是用一定的概率去更新这个值。

第二种方法虽然看起来比第一种更合理,但是在实现时却有一个问题,那就是每次生成随机数会非常耗时,所以一般使用第一种方法。

梯度计算和累加

虽然BNN的参数和各层的激活值是二值化的,但由于两个原因,导致梯度不得不用较高精度的实数而不是二值进行存储。两个原因如下:

梯度的值的量级很小梯度具有累加效果,即梯度都带有一定的噪音,而噪音一般认为是服从正态分布的,所以,多次累加梯度才能把噪音平均消耗掉。

另一方面,二值化相当于给权重和激活值添加了噪声,而这样的噪声具有正则化作用,可以防止模型过拟合。所以,二值化也可以被看做是Dropout的一种变形,Dropout是将激活值的一般变成0,从而造成一定的稀疏性,而二值化则是将另一半变成1,从而可以看做是进一步的dropout。

在我之前的研究生论文中,在做图像检索时,也将dropout后的特征向量二值化后进行对比过,检索上的Loss不大。

离散化梯度传播

直接对决定式的二值化函数求导的话,那么求导后的值都是0。所以只能采用一种妥协方法,将sign(x)进行宽松。这样,函数就变成可以求导的了。

假设,损失函数是C,二值化操作函数如下:

如果C对q求导已经得到了,那么C对r的求导计算公式如下:

其中1|r|<=1的计算公式就是Htanh。

在具体的算法使用中,对于隐含层单元:

直接使用决定式的二值化函数得到二值化的激活值。对于权重,

在进行参数更新时,要时时刻刻把超出[-1,1]的部分给裁剪了。即权重参数始终是[-1,1]之间的实数。在使用参数是,要将参数进行二值化。

BNN的训练过程

前面的几条技巧,就可以解决求导的问题了。普通卷积神经网络加上BatchNormalization再加上二值化后的模型训练流程如下:

其实基本流程不难理解,不过猜测实现上还是有很多坑。

优化技巧

Shift based Batch Normalization

Batch Normalization,简称BN。所谓的BN是指在数据经过一层进入下一层之前,需要对数据进行归一化,使之均值为0,方差为1。这样可以使得各层的参数量级上没有太大的差别。

有三个优点:

加速训练减小权重的值的尺度的影响归一化所带来的噪声也有模型正则化的作用。

吐槽:貌似所有的带来效果收益的操作都是噪声所带来的正则化的功劳,正则化是个啥概念?我理解从几何上可以这样理解,NN其实就是在一个高维空间上构建了分类面,数据不变的情况下,这个分类面恰好贴合数据,完美fit训练集,而添加噪声后,相当于一些数据的位置不停的在变化,使得分类面发生了可包纳的数据量增加了,从而增加的泛化能力。说来说去好像是Data Augmentation的功劳。

但是,BN有一个缺点,那就是在训练时,因为要对数据进行scale,所以有很多矩阵乘法,导致训练时间过长。

因为二值化这一特殊情况,所以可以对BN进行优化,可以在不进行乘法的情况下近似计算BN,这就是shift-based Batch Normalization。

Shift based AdaMax

Adam是一种学习规则,学习规则中最普通的就是SGD,关于Adam的原始论文我倒是还没有读过,且把shift based Adamax的算法列出来吧。

第一层

尽管所有的层次的激活和参数都是二值化的,但第一层的输入却是连续值的,因为是像素。若要整个网络都是二值化的,只需将输入变化一下即可。

使用8位数字来表示一个像素,那么输入就是一个img_height×img_width×8的向量,而权重参数是一个img_height×img_width的全1向量。

我注意到论文中用的是1024,实在不明白1024是怎么来的,但我注意到实验中使用的数据集cifar和SVNH都是32×32的,所以猜测可能作者写顺手了。

第一层的计算操作如下:

这个函数就把像素值还原回来了,xn的意思我理解是每个数都取第n位。这样累加之后,所有的像素值都被还原了。

这样,各层的计算方法如下:

性能分析

时间复杂度可以降低60%。

疑问,这个60%不知论文是怎么得到的。

内存和计算耗能

内存访问耗时比计算耗时要多相对于32bit的DNN,BNN内存需求量减少为原来的1/32还少,使得能源使用减少31/32。 XNOR-Count

BNN中计算都变成位运算,一个32bit的乘法损耗200个单位,而一个位操作之损耗1个单位。Filter数目

二值化的不同的卷积核的个数由卷积核的大小决定,比如,3×3的卷积核的数目为29=512个。但是这并不能限制每一层feature_map的数目,因为,卷积核参数是用4D矩阵来存储的,即Ml×Ml-1×k×k,相当于第l-1层的每一个feature_map都对应512个不一样的filter,所以Filter数目的上限是2k×k×Ml-1个。对于卷积核来说,完全相反的卷积核也属于同一类,比如[-1,1,-1]和[1,-1,1],因为,不同的卷积核的数目可以降低为原来的42%。

实现优化

对于位操作而言,可以使用SWAR中的SIMD并行化指令来进行加速。即将32个二值化变量存储在一个32位的寄存器中,从而获得32倍的加速。神经网络的传播过程中,可以使用SWAR技术来使用3个指令计算32个Connection,如下,从而原先32个时间单元的事情现在(accumulation,popcount,xnor)=1+4+1=6个单元就可以完成,提升5.3倍

为了验证上述理论,实现了两个GPU计算核,一个是没有优化的乘法(baseline),一个是使用上面公式的SWAR技术实现的(XNOR)。结果如下:

XNOR相对于baseline快23倍XNOR相对于cuBLAS快3.4倍

实验设置及结果

实验结果一言以蔽之,就是比最好的结果要稍差,但差的不会太多。

Mnist

数据集

60K 28×28的训练集

10k 28×28的测试集。

12

Theano设置

3个4096维的隐含层L2-SVM的输出层使用DropoutADAM学习法则指数衰减的步长mini-batch为100的BN训练集的最后10k样本作为验证集来early-stopping和模型选择大概1000次迭代后模型最好,没有在验证集上重新训练。

Torch7设置

与上面设置的区别:

没有dropout隐含层数目变为2048使用shift-based AdaMax和BN每十次迭代步长一次右移位

Cifar0

数据集

50K 32×32的训练集

10K 32×32的测试集

12

Theano设置

没有任何的数据预处理网络结构和Courbariaux 2015的结构一样,除了增加了binarizationADAM学习法则步长指数损失参数初始化来自Glorot & Bengio的工作mini-batch为50的BN5000个样本作为验证集500次迭代后得到最好效果,没有在验证集上重新训练

Torch7设置

与上面设置的不同:

使用shift-based AdaMax和BN(mini-batch大小200)每50次迭代,学习率右移一位。

SVHN

数据集

604K 32×32的训练集

26K 32×32的测试集

12

设置

基本与cifar10的设置相同,区别如下:

卷积层只使用一半的单元。训练200次迭代就停了,因为太大。

实验结果

总结

缺点:BNN在训练过程中仍然需要保存实数的参数,这是整个计算的瓶颈。

个人直观感受:

BNN虽然需要保存实数的参数,但是实数范围是[-1,1],所以可以做压缩,即使用16bit或者更少的位数来表示浮点数。模型尺寸变小,正向传播计算速度变快,意味着可以将正向传播层放到客户端去做了,虽然随着网络带宽的增大,给服务器传个图片也么啥。将图像的特征学习和哈希码学习可以无缝整合到一起,因为都是二值化。

暂时就这些!

参考文献

[1]. Hubara I, Soudry D, Yaniv R E. Binarized Neural Networks[J]. arXiv preprint arXiv:1602.02505, 2016.

[2]. 代码链接:https://github.com/MatthieuCourbariaux/BinaryNet

优惠劵

edward_zcl

关注

关注

0

点赞

16

收藏

觉得还不错?

一键收藏

知道了

0

评论

二值神经网络(Binary Neural Network,BNN)

缺点:BNN在训练过程中仍然需要保存实数的参数,这是整个计算的瓶颈。BNN虽然需要保存实数的参数,但是实数范围是[-1,1],所以可以做压缩,即使用16bit或者更少的位数来表示浮点数。模型尺寸变小,正向传播计算速度变快,意味着可以将正向传播层放到客户端去做了,虽然随着网络带宽的增大,给服务器传个图片也么啥。将图像的特征学习和哈希码学习可以无缝整合到一起,因为都是二值化。暂时就这些!...

复制链接

扫一扫

专栏目录

利用三状态Hopfield模型优化神经网络双极二值化互连

02-11

针对光互连精度较低的弱点,提出了以正交化算法为目标函数的三值(±1,0)互连权重的神经网络优化方法。计算机模拟和光学实验结果表明该方法能显著地提高三值互连神经网络模型的性能。

【深度学习——BNN】:二值神经网络BNN——学习与总结

热门推荐

Lily_9的博客

08-04

3万+

最近一直在做深度学习的FPGA布署,偶然研读到Bengio大神的著作《Binarized Neural Networks: Training Neural Networks with Weights and Activations Constrained to +1 or −1》:

链接:https://arxiv.org/abs/1602.02830

关于BNN,已经有不少前辈做了mark,...

参与评论

您还未登录,请先

登录

后发表或查看评论

二值神经网络(Binary Neural Networks)最新综述

Paper weekly

03-12

7204

作者|秦浩桐、龚睿昊、张祥国单位|北京航空航天大学研究方向|网络量化压缩本文介绍了来自北京航空航天大学刘祥龙副教授研究团队的最新综述文章 Binary ...

二值神经网络(BNN)

m0_52889836的博客

12-28

429

二值神经网络不是一种新的网络模型,实际上它是一种极致的量化方法——将神经网络的权重和激活量化为1bit。随着神经网络的发展,神经网络的性能越来越高,但是同时,模型的大小也越来越大。对于资源有限,功耗又有要求的边沿设备,多数神经网络模型不适合进行部署,这限制了深度学习的发展。因此出现了许多模型压缩的方法,比如知识蒸馏、剪枝、量化等等。二值神经网络(BNN)的前身可以追溯到BWN,他只是将神经网络的权值进行二值量化,激活还是浮点的形式,实现了不错的性能。

二值神经网络综述(Binary Neural Networks: A Survey)【北航】.pdf

04-10

在本文中,我们对这些算法进行了全面的概述,主要分为直接进行二值化的本机解决方案,以及使用使量化误差最小化,改善网络损耗函数和减小梯度误差等技术进行优化的解决方案。我们还将研究二进制神经网络的其他实用方面,例如硬件友好的设计和训练技巧。然后,我们对不同的任务进行了评估和讨论,包括图像分类,对象检测和语义分割。最后,展望了未来研究可能面临的挑战。

numpy_neural_network:用Numpy构造神经网络框架

05-28

本项目的CSDN博客链接:

1. 概览

本项目主要用于神经网络的学习,通过基于numpy的实现,了解神经网络底层前向传播、反向传播以及各类优化器的原理。

该项目目前已实现的功能:

自定义多层的全连接层,并可定义多种激活函数

sigmoid

tanh

relu

softmax

定义dropout

支持多分类任务

支持多种优化器

SGD

BSGD

SGD with Momentum

AdaGrad

AdaDelta

RMSProp

Adam

AdaMax

2. Todo list

加入validation

支持多分类任务

加入卷积层(CNN)

加入池化层

加入循环网络(RNN)

3. 运行

直接执行main_binary_classification.py,即可执行二分类问题的训练和预测

执行main_multi_classification.py,即可执行多分类问题的训练和预测

p

二值神经网络的原理、代码实现、训练测试等相关学习笔记

m0_49663564的博客

07-21

2372

二值神经网络的原理、代码实现、训练测试等相关学习笔记

二值二值神经网络(Binary Neural Networks)

dn_us的博客

09-13

375

二值化权重和激活传播:重复步骤2和步骤4,将隐藏层1的二值化激活值与隐藏层2之间的权重进行点乘运算,得到隐藏层2的输入。假设我们的隐藏层2与隐藏层1之间的权重被二值化为{-1, +1},表示为W2,隐藏层2的输入为H2,大小为128。假设我们的输出层与隐藏层2之间的权重被二值化为{-1, +1},表示为W3,输出层的输入为O,大小为10。二值化激活函数:将隐藏层1的加权和输入到二值化的激活函数中,如硬件阈值函数。二值化激活函数:将隐藏层2的加权和输入到二值化的激活函数中,得到隐藏层2的二值化激活值。

深度学习算法优化系列十 | 二值神经网络(Binary Neural Network,BNN)

I good vegetable a!

02-13

1371

前言

昨天介绍的BinaryConnect提出将浮点权重量化到1bit,提出了完整的量化权重训练/测试流程,并且从带噪声权重的角度来解释了量化权重。但这种方法还有一个缺点,即并没有对激活函数进行量化,所以Bengio大神在2016年发表了这篇Binary Neural Network,论文原文和代码链接见附录。

BNN算法

二值化的方法

二值化方法主要有两种,确定式二值化和随机式二值化。二值化将f...

二值化神经网络

xiangpijiao的博客

04-17

3323

 什么是二值化网络二值化神经网络,是指在浮点型神经网络的基础上,将其权重矩阵中权重值和各个激活函数值同时进行二值化得到的神经网络。二值化神经网络具有很好的特性,具体体现在:通过将权重矩阵二值化,一个权重值只占用一个比特,相比于单精度浮点型权重矩阵,网络模型的内存消耗理论上能减少32倍,因此二值化神经网络在模型压缩上具有很大的优势。当权重值和激活函数值同时进行二值化之后,原来32个浮点型数的乘加运算...

Training-Tricks-for-Binarized-Neural-Networks:二值神经网络训练技巧的集合

05-16

双向神经网络的训练技巧

二进制神经网络的训练技巧的集合,该训练技巧来自以前发布的/预印制的二进制网络。 进一步提供了一个开源深度学习库,用于训练具有极低精度权重和激活的神经网络,例如Binarized Neural Networks(BNN)。

1.修改后的ResNet块结构

class BinActiveF ( torch . autograd . Function ):

def forward ( self , input ):

self . save_for_backward ( input )

input = input . sign ()

return input

def backward ( self , grad_output ):

input , = self . saved_tensors

combinational-bnn:系统Verilog代码,描述了完全组合的二值神经网络

05-08

组合二值化神经网络(BNN)

该存储库包含描述硬件完全组合的BNN模型的System-Verilog源文件。

文件夹内容

src\包含基本BNN构建块(空间卷积层和完全连接层)的HDL描述

test\包含网络模型的多个示例

src\包含特定于网络的HDL描述。 其中weights.sv包含网络参数。

tb\包含用于运行模拟的测试台文件。

sim\用于ModelSim的仿真目的(已通过版本10.6b测试)

尝试代码

只需导航到所需网络示例的sim\文件夹并输入

make clean build run

用于合成和仿真。 刺激在tb/data.sv定义。

结果

报道了用GF22 SOI技术进行的腐霉属结果。 如果您使用我们的代码,请确认。

Rusci, Manuele, Lukas Cavigelli, and Luca Benini.

"Design Automation for

神经网络模式识别系统互连权重二值化研究

02-11

在增量算法的基础上,利用截断(Clipping)方法和蒙塔卡罗(Monte Carlo)算法,对以四类飞行目标平面旋转投影作为学习样本的级联神经网络互连权重进行了二值优化处理,并用非学习样本进行了容错性检验,计算机模拟得到了满意的结果。

二值神经网络(Binary Neural Networks)最新综述.md

04-02

知乎转引的此文介绍了来自北京航空航天大学刘祥龙副教授研究团队的最新综述文章 **Binary Neural Networks: A Survey**,合作者包括中国电子科技大学的宋井宽教授和意大利特伦托大学计算机系主任 Nicu Sebe 教授。在阅读基础上,做了.md的笔记。

摘要如下:

神经网络二值化能够**最大程度地降低模型的存储占用和模型的计算量**,将神经网络中**原本 32 位浮点数参数量化至 1 位定点数**,**降低了模型部署的存储资源消耗,同时极大加速了神经网络的推断过程**。但二值化会不可避免地导致**严重的信息损失**,其**量化函数不连续性也给深度网络的优化带来了困难**。

近年来许多算法被提出致力于解决上述问题,并取得了令人满意的进展。在本文中,我们对这些方法进行了全面的总结和概括,主要分为**直接量化的朴素二值化方法**,以及使用**最小化量化误差**、**改善网络损失函数和减小梯度误差**等技术的**改进二值化方法**。

本文还调研了二值神经网络的**其他实用方面**,例如**硬件友好的设计和训练技巧**。然后,我们对**图像分类,目标检测和语义分割**等不同任务进行了**评估和讨论**。最后,本文展望了**未来研究可能面临的挑战**。

pytorch_神经网络构建6

lidashent的博客

03-03

1090

神经网络则提出了一种新的方式,不必知道所有的环境状态,只需要让神经网络学习曾经经历过的有益的状态就可以了,就像人类一样,形成经验,我们可以把当前围棋环境参数输入神经网络,让神经网络自主学习如何走出下一步,估计下一步得分,只要对局足够多,神经网络就会学习的足够多,它就会根据有益的下棋经历,形成一套自己的经验价值奖励表,至于其从对局中学习到了什么,我们是无从得知的,但是从实际结果上看,从aphaGO击败柯洁后,几乎围棋领域已经无人敢称尊了。比如走迷宫问题,每上下左右,或者静止走一步都距离出口进入了不同的状态。

李沐动手学习深度学习——4.1练习

weixin_45496725的博客

03-02

1214

多层感知机

RMSNorm 类中引入一些参数

最新发布

weixin_43013480的博客

03-04

929

引入可学习的参数可以增加模型的复杂性,但同时也可能提高模型的泛化能力和性能。在设计模型时,需要权衡模型的复杂度和训练的难度。,可以为每个维度引入一个可学习的缩放参数。这可以通过创建一个与输入维度相同的权重矩阵来实现,而不是一个向量。可以设计一个自定义的归一化函数,其中包含可学习的参数。在归一化之后,可以引入一个可学习的激活函数,其参数也可以是可训练的。类中,引入可学习的参数,以增强模型的表达能力和适应性。除了缩放,还可以为每个维度引入一个可学习的偏移参数。中的激活函数,并将可学习参数作为激活函数的输入。

卷积神经网络增强数据

LIjin_1006的博客

03-04

822

卷积神经网络增强数据

二值神经网络实现二进制转十进制

08-14

二值神经网络是一种特殊的神经网络,其中的神经元只能取两个值,通常是-1和+1。实现二进制转十进制的二值神经网络可以通过以下步骤进行:

1. 输入层:将二进制数作为输入向量传递给神经网络。每个输入神经元对应一个二进制位。

2. 隐藏层:隐藏层由若干个神经元组成,每个神经元连接到所有输入神经元。使用适当的激活函数(例如sign函数),确保神经元的输出只能是-1或+1。

3. 输出层:输出层的神经元数量取决于十进制数的位数。每个输出神经元对应一个十进制位。

4. 训练:使用适当的训练算法(例如反向传播)对神经网络进行训练。目标是使网络能够正确地将二进制数映射为对应的十进制数。

5. 推理:在训练完成后,可以使用已训练好的神经网络进行推理。将待转换的二进制数作为输入传递给网络,并获取输出层的激活值。通过将输出层的激活值转换为对应的十进制位,即可得到十进制数。

需要注意的是,二值神经网络在实现二进制转十进制时可能存在一定的精度损失。因此,对于需要高精度的计算,可能需要使用其他方法来实现。

“相关推荐”对你有帮助么?

非常没帮助

没帮助

一般

有帮助

非常有帮助

提交

edward_zcl

CSDN认证博客专家

CSDN认证企业博客

码龄7年

暂无认证

149

原创

12万+

周排名

160万+

总排名

232万+

访问

等级

1万+

积分

597

粉丝

1598

获赞

340

评论

7210

收藏

私信

关注

分类专栏

行业研究

4篇

论文分享

18篇

系统集成芯片

5篇

人工智能-神经网络

175篇

机器学习入门必备

119篇

Python使用技巧

151篇

科研工具

113篇

数字电路

13篇

C/C++

20篇

Matlab

24篇

计算机基础知识

90篇

Java

2篇

Verilog

10篇

前端JavaScript/HTML/CSS

3篇

最新评论

Windows 下 VSCode 使用 SSH 连接报 Bad owner or permissions on C:\\Users\\Administrator/.ssh/config 错误问题解决

不逢杨意:

nb,我按这个弄成了

Windows 下 VSCode 使用 SSH 连接报 Bad owner or permissions on C:\\Users\\Administrator/.ssh/config 错误问题解决

impandachen:

vscode 左下角设置, 搜索 " @ext:ms-vscode-remote.remote-ssh,ms-vscode-remote.remote-ssh-edit,ms-vscode.remote-explorer config file ", (ps: 去除引号); 找到配置项 => RemoteSSH: Config File 并在输入框中输入: C:\Users\你的用户名\.ssh\config, 也可以解决此问题, 无须上面更改文件夹权限的步骤.

Anaconda(4.2.0)和Tensorflow(2.9.1)安装教程(使用中科大镜像,清华镜像没有tensorflow了)

March6666:

怎么安装的呀,我是用anaconda里面安装tensorflow,但是一直失败

Anaconda(4.2.0)和Tensorflow(2.9.1)安装教程(使用中科大镜像,清华镜像没有tensorflow了)

LJFsama:

终于装好了,谢谢

C/C++语言中的int a; int* a; int** a; int (*a)[]; int (*a)(int),重点介绍指针数组与数组指针

LY_YXA:

太有用了,谢谢!

您愿意向朋友推荐“博客详情页”吗?

强烈不推荐

不推荐

一般般

推荐

强烈推荐

提交

最新文章

Internet Explorer下载与使用

Numpy 使用numpy.take进行更快的高级索引

matlab函数设置默认参数,及设置可变个数的返回值

2024年10篇

2023年16篇

2022年98篇

2021年84篇

2020年29篇

2019年167篇

2018年15篇

目录

目录

分类专栏

行业研究

4篇

论文分享

18篇

系统集成芯片

5篇

人工智能-神经网络

175篇

机器学习入门必备

119篇

Python使用技巧

151篇

科研工具

113篇

数字电路

13篇

C/C++

20篇

Matlab

24篇

计算机基础知识

90篇

Java

2篇

Verilog

10篇

前端JavaScript/HTML/CSS

3篇

目录

评论

被折叠的  条评论

为什么被折叠?

到【灌水乐园】发言

查看更多评论

添加红包

祝福语

请填写红包祝福语或标题

红包数量

红包个数最小为10个

红包总金额

红包金额最低5元

余额支付

当前余额3.43元

前往充值 >

需支付:10.00元

取消

确定

下一步

知道了

成就一亿技术人!

领取后你会自动成为博主和红包主的粉丝

规则

hope_wisdom 发出的红包

实付元

使用余额支付

点击重新获取

扫码支付

钱包余额

0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

贝叶斯神经网络(BNN, Bayesian Neural Networks)浅入快出理解 - 知乎

贝叶斯神经网络(BNN, Bayesian Neural Networks)浅入快出理解 - 知乎首发于数理切换模式写文章登录/注册贝叶斯神经网络(BNN, Bayesian Neural Networks)浅入快出理解冯卡门迪所爱隔山海,山海不可平,海有舟可渡,山有路可行背景经典全链接的网络结构可以实现对任意函数的拟合映射,但在训练和使用过程中多数情况下都依赖于数据集的采样、特征的清洗、模型的结构、超参的设置等,模型一旦训练结束,各个维度上的权重就固定不变,神经网络给定一个输入,就会生成一个固定的输出。这会导致模型对于训练中常见数据集的预测十分准确,在没有出现的数据上表现欠佳,可能是过拟合,也可能是鲁棒性较差。reference[5]以上图为例,黑色点代表训练数据集,紫色是样本的真实分布,蓝色是取四分位后的分布,红色是预测均值。传统的标准神经网络为右图,在左侧完全跑偏,右侧的预测区间也越来越窄。可以看到,对于此情景,左侧是更加贴近真实情况的。可能上述问题在NLP和CV领域不会特别突出,随着智能设备和媒体的发达,数据的增长是非常恐怖的,通常在训练时我们的主要工作是获取到更加干净更加有说明性的数据集,也就是对现有庞杂数据做减法,随之产生了诸多经典数据集,训练任务更多的也偏向于“得到和人类一样的语言表达能力”“生成更加贴近真实环境的图像”等。但当数据生产非常昂贵且相对稀少时,比如分子生物学和医疗诊断领域,更希望网络能够帮助我们完成“对未知的探索”,节约成本。因此,贝叶斯神经网络(BNN, Bayesian Neural Networks)的提出主要用于防止过拟合,提升模型的预测灵活性,提供不确定性的估计能力等方面。思想传统神经网络,服从最大似然估计(MLE),即权重在不同取值之间具有相同的可能性:MLE从贝叶斯的角度:Bayes Rule如果权重 w 具有先验分布,考虑最大后验估计(MAP),寻找最优先验:MAP结构神经网络的基本组成就是全链接+激活,因此我们可以将先验假设施加在权重w(下图c)和激活函数的参数(下图b)上:随机网络具体作用过程, \theta 代表先验假设的分布参数,作用在w or 激活上,便是基本的BNN结构:BNN-structure先验函数上一部分的MAP中,如果 w 的先验符合高斯分布,那么便可以看作是L2正则化;如果符合拉普拉斯分布,则可以看作是L1正则。可以参考[6][7]:高斯分布- L2正则把L2正则写作如下形式:L2-Norm我们假设每个参数 \beta_i 都服从均值为0,方差为 \tau^2 的高斯分布,此时MAP于L2形同:MAP-L2拉普拉斯先验- L1正则把L1正则写作如下形式:L1-Norm拉普拉斯分布:拉普拉斯分布以均值 \mu=0 的拉普拉斯分布为例,此时MAP和L1正则相同:MAP- L1损失及训练通过KL散度计算w的先验分布和在D上的后验分布之间的相似程度,最小化KL散度,便可以得到关于 \theta 的最优化问题:最小化KL散度训练过程如下(1)对w做均匀高斯采样;(2)用先验高斯分布的均值 \mu 和方差 \rho 对w做调整;(3)先验高斯分布的均值 \mu 和方差 \rho用 \theta 代表;(4)BNN计算各个元素作为损失函数;(5、6)计算均值和方差的梯度;(7)对先验分布的均值和方差进行更新:训练过程代码BNN:import math

import torch

import torch.nn as nn

import torch.nn.functional as F

from torch.nn import Parameter

class BNNLinear(nn.Model):

def __init__(self, in_features, out_features, bias=True, priors=None):

super(BNNLinear, self).__init__()

self.in_features = in_features

self.out_features = out_features

self.use_bias = bias

self.device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")

if priors is None:

# 高斯先验分布定义

# posterior_mu_initial: (mean, standard_deviation)

# posterior_rho_initial: (mean, standard_deviation)

priors = {

'prior_mu': 0,

'prior_sigma': 0.1,

'posterior_mu_initial': (0, 0.1),

'posterior_rho_initial': (-3, 0.1),

}

self.prior_mu = priors['prior_mu']

self.prior_sigma = priors['prior_sigma']

self.posterior_mu_initial = priors['posterior_mu_initial']

self.posterior_rho_initial = priors['posterior_rho_initial']

self.W_mu = Parameter(torch.empty((out_features, in_features), device=self.device))

self.W_rho = Parameter(torch.empty((out_features, in_features), device=self.device))

if self.use_bias:

self.bias_mu = Parameter(torch.empty((out_features), device=self.device))

self.bias_rho = Parameter(torch.empty((out_features), device=self.device))

else:

self.register_parameter('bias_mu', None)

self.register_parameter('bias_rho', None)

self.reset_parameters()

def reset_parameters(self):

self.W_mu.data.normal_(*self.posterior_mu_initial)

self.W_rho.data.normal_(*self.posterior_rho_initial)

if self.use_bias:

self.bias_mu.data.normal_(*self.posterior_mu_initial)

self.bias_rho.data.normal_(*self.posterior_rho_initial)

def forward(self, input, sample=True):

if self.training or sample:

# 对应 w = mu + log(1 + exp(rho))*epsilon

W_eps = torch.empty(self.W_mu.size()).normal_(0, 1).to(self.device)

self.W_sigma = torch.log1p(torch.exp(self.W_rho))

weight = self.W_mu + W_eps * self.W_sigma

if self.use_bias:

bias_eps = torch.empty(self.bias_mu.size()).normal_(0, 1).to(self.device)

self.bias_sigma = torch.log1p(torch.exp(self.bias_rho))

bias = self.bias_mu + bias_eps * self.bias_sigma

else:

bias = None

else:

weight = self.W_mu

bias = self.bias_mu if self.use_bias else None

return F.linear(input, weight, bias)

def kl_loss(self):

kl = KL_DIV(self.prior_mu, self.prior_sigma, self.W_mu, self.W_sigma)

if self.use_bias:

kl += KL_DIV(self.prior_mu, self.prior_sigma, self.bias_mu, self.bias_sigma)

return klKL散度计算:import torch

def calculate_kl(mu_q, sig_q, mu_p, sig_p):

kl = 0.5 * (2 * torch.log(sig_p / sig_q) - 1 + (sig_q / sig_p).pow(2) + ((mu_p - mu_q) / sig_p).pow(2)).sum()

return klReferences[1]The very Basics of Bayesian Neural Networks[2]Bayesian Neural Networks—Implementing, Training, Inference With the JAX Framework[3]Why and What Bayesian Neural Network[4]Hands-on Bayesian Neural Networks – A Tutorial for Deep Learning Users[5]Weight Uncertainty in Neural Networks[6]CPSC 340: Data Mining Machine Learning[7]A Probabilistic Interpretation of Regularization[8]PyTorch-BayesianCNN编辑于 2024-01-30 14:49・IP 属地北京贝叶斯网络深度学习(Deep Learning)神经网络​赞同 8​​添加评论​分享​喜欢​收藏​申请转载​文章被以下专栏收录数理高级的