📜  ANN和BNN的区别(1)

📅  最后修改于: 2023-12-03 14:59:19.365000             🧑  作者: Mango

ANN和BNN的区别

简介

深度学习中常见的神经网络有两类,分别是全连接神经网络(ANN,Artificial Neural Network)和二值连接神经网络(BNN,Binary Neural Network)。在这篇文章中,我们将探讨它们之间的不同点。

ANN

全连接神经网络是一种从输入(特征)到输出(标签)的映射。例如,在图像分类任务中,全连接神经网络从原始像素中提取特征并输出一个预测结果。在全连接网络中,每个神经元都和前一层的所有神经元相连,也就是说每个输入特征的每个像素都和每一个神经元相连。

在训练神经网络时,通过反向传播算法确定网络中每个单元的权重,以最小化损失函数并提高预测的准确性。因此,在训练期间,神经网络的权重将根据提供的训练数据进行自适应更新。

全连接神经网络由于模型的复杂性,训练昂贵,但在一些图像、语音和自然语言处理等领域具有良好的性能。

BNN

二值连接神经网络与全连接神经网络在原理上相似。不同之处在于神经元之间的连接权重不再是浮点数,而是二值(+1或-1),权重的符号和它的强度有关。

这种二值化的方法可以大幅减小神经网络的大小和计算复杂度。它将全连接的浮点权重替换为二进制量,以此实现高效的计算和显著的内存节省。

在BNN中,每个神经元都只有两个输出值:+1或-1,并且每一个神经元的输出值只由它的输入决定。这些二元数据可以有效地用于计算和内存存储。

区别
  • 精度不同

在ANN中,所有的连接权重都是根据实际值进行调整的,因此它的精度相对较高。然而,在BNN中,权重是二进制的,因此模型的精度受到了一定的限制。

  • 二值连接

在ANN中,权重是实数,可以取任何值;而在BNN中,权重只能是+1或-1。这种二值化方法可以大幅度减少内存使用和计算开销,并且通常表现良好。

  • 训练方式

在训练网络时,BNN采用的是扰动驱动的方法,其训练过程在随机样本上进行,并使用一种稳定的梯度求解器。而在ANN中,我们通常使用反向传播算法进行训练。

  • 内存使用

在内存使用方面,BNN的优势更加突出。在BNN中,由于连接权重已经二值化,因此存储空间大大减少。这意味着在存储和处理BNN时,所需的内存更少。

结论

ANN和BNN的主要区别在于权重二值化,训练方法和精度。BNN是一种高效的神经网络架构,可以在资源受限的环境中工作,并且是一种快速和低功耗的算法。它在一些场景中有着优于ANN的表现,如一些边缘计算场景,但在一些领域ANN仍然是更好的选择。

参考文献:

[1] 冯会红. 深入理解二值神经网络(BNN) [J]. 微软技术, 2018.

[2] Rastegari M, Ordonez V, Redmon J, et al. XNOR-Net: ImageNet Classification Using Binary Convolutional Neural Networks[J]. Computer Vision-ECCV 2016, 2016:525-542.