0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

二值神经网络的介绍说明

姚小熊27 来源:人工智能实验室 作者:人工智能实验室 2021-01-31 09:48 次阅读

每年都会开发出更深的模型来执行各种任务,例如对象检测,图像分割等,这些任务始终能够击败最新模型。但是,人们越来越关注使模型更轻便,更高效,以便它们可以在边缘设备和移动设备上运行。这对于弥合机器学习的研究和生产价值之间的差距非常重要。

减少深度神经网络的内存和计算成本的一种方法是二值神经网络的概念。二值神经网络的概念非常简单,其中权重和激活张量的每个值都使用+1和-1表示,以便它们可以以1字节而不是全精度存储(在1-中表示为0 位整数)。使用以下所示的符号函数将浮点值转换为二进制值-

现在,使用阈值函数作为上述函数的一个主要问题是该函数的梯度趋于为零。一种解决方案是使用直通估算器。直通估算器是一种在梯度传递过程中完全照原样通过渐变而不会发生任何变化的估计器。这简化了二值神经网络中阈值函数的反向传播机制,并显示出很好的效果。

在梯度累积阶段,将使用二进制权重和激活来累积每一层的梯度。但是权重更新是对实值原始权重进行的。为什么会这样呢?让我举例说明。

我们在神经网络中有一个值为0.05的节点(原始参数)。

通过阈值函数传递此值后,我们获得的值为1(二进制参数)。

让我们假设在二进制参数处累积的梯度为3。我们使用直通估计器的概念将其照原样传递给原始参数。

现在,一旦累积了渐变,我们就可以更新值。

如果我们使用二进制值获得新的参数值,则参数的新值将为10.1 * 3(其中0.1是学习率),即0.7。

如果我们使用原始参数值来获取新参数,则新值将为0.050.1 * 3,即-0.25。

这是可以注意到差异的地方。当我们执行下一个迭代时,我们将再次通过二进制阈值函数传递新的参数值,它们将给出不同的结果。如果我们继续使用参数的二进制值,则可能永远无法更改该位,因为始终会根据1或-1计算损耗。

当更新参数值时,这些值将被裁剪为介于-1和1之间。主要原因是这些值只会增加/减少,否则对网络没有任何影响。需要注意的一件事是,最后一个激活层中的值未进行二值化,而是按原样用于分类/回归。这些是二值神经网络的基本概念。

可以添加到权重和激活层二值化的另一个改进是使用缩放因子来表示权重和激活。在这里,比例因子只是权重向量中所有值的平均值的绝对值。如果我们有一个2 * 2矩阵,其值[[0.2,0.2],[-0.6,-0.6]],则比例因子α将为0.2,二进制矩阵表示为[[1,1],[-1,- 1]]。

因此,一旦权重和激活连同它们各自的缩放因子一起以二进制形式表示,就可以使用以下公式表示。在此,I和W分别表示激活层和权重层,而激活和权重的缩放因子分别使用κ和α表示。

现在,作为卷积运算基础的乘积(MAC)函数是非常昂贵的运算。现在,可以将其替换为XNOR + 弹出计数操作。 几乎每个CPU都固有地执行按位运算,并且这些运算的执行速度明显更快且成本更低。弹出计数操作只不过是检查设置的位。下面的示例显示了MAC操作可以由XNOR + 弹出计数操作代替。

但是二值神经网络的主要缺点在于,它们无法实现与完全精度的深层网络一样高的精度。但这一直在缓慢地变化,并且每年(与每月发表论文的数量越来越相似),随着差距的缩小,已经有了很多进步。由于人们越来越关注在具有有限计算资源的设备上实施机器学习模型,因此在未来几年中,将会在该领域进行更多的研究。
责任编辑:YYX

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 神经网络
    +关注

    关注

    42

    文章

    4539

    浏览量

    98442
收藏 人收藏

    评论

    相关推荐

    详解深度学习、神经网络与卷积神经网络的应用

    处理技术也可以通过深度学习来获得更优异的效果,比如去噪、超分辨率和跟踪算法等。为了跟上时代的步伐,必须对深度学习与神经网络技术有所学习和研究。本文将介绍深度学习技术、神经网络与卷积神经网络
    的头像 发表于 01-11 10:51 631次阅读
    详解深度学习、<b class='flag-5'>神经网络</b>与卷积<b class='flag-5'>神经网络</b>的应用

    《 AI加速器架构设计与实现》+第一章卷积神经网络观后感

    《 AI加速器架构设计与实现》+第一章卷积神经网络观感    在本书的引言中也提到“一图胜千言”,读完第一章节后,对其进行了一些归纳(如图1),第一章对常见的神经网络结构进行了介绍,举例了一些结构
    发表于 09-11 20:34

    构建神经网络模型的常用方法 神经网络模型的常用算法介绍

    神经网络模型是一种通过模拟生物神经元间相互作用的方式实现信息处理和学习的计算机模型。它能够对输入数据进行分类、回归、预测和聚类等任务,已经广泛应用于计算机视觉、自然语言处理、语音处理等领域。下面将就神经网络模型的概念和工作原理,
    发表于 08-28 18:25 593次阅读

    人工神经网络和bp神经网络的区别

    人工神经网络和bp神经网络的区别  人工神经网络(Artificial Neural Network, ANN)是一种模仿人脑神经元网络结构和功能的计算模型,也被称为
    的头像 发表于 08-22 16:45 3095次阅读

    卷积神经网络模型搭建

    卷积神经网络模型搭建 卷积神经网络模型是一种深度学习算法。它已经成为了计算机视觉和自然语言处理等各种领域的主流算法,具有很大的应用前景。本篇文章将详细介绍卷积神经网络模型的搭建过程,为
    的头像 发表于 08-21 17:11 562次阅读

    卷积神经网络和深度神经网络的优缺点 卷积神经网络和深度神经网络的区别

    深度神经网络是一种基于神经网络的机器学习算法,其主要特点是由多层神经元构成,可以根据数据自动调整神经元之间的权重,从而实现对大规模数据进行预测和分类。卷积
    发表于 08-21 17:07 1963次阅读

    卷积神经网络介绍 什么是卷积神经网络算法

    卷积神经网络介绍 什么是卷积神经网络算法 卷积神经网络涉及的关键技术 卷积神经网络(Convolutional Neural Networ
    的头像 发表于 08-21 16:49 1298次阅读

    卷积神经网络的基本原理 卷积神经网络发展 卷积神经网络三大特点

    卷积神经网络的基本原理 卷积神经网络发展历程 卷积神经网络三大特点  卷积神经网络的基本原理 卷积神经网络(Convolutional Ne
    的头像 发表于 08-21 16:49 1270次阅读

    卷积神经网络的工作原理 卷积神经网络通俗解释

    。CNN可以帮助人们实现许多有趣的任务,如图像分类、物体检测、语音识别、自然语言处理和视频分析等。本文将详细介绍卷积神经网络的工作原理并用通俗易懂的语言解释。 1.概述 卷积神经网络是一个由
    的头像 发表于 08-21 16:49 2300次阅读

    卷积神经网络模型有哪些?卷积神经网络包括哪几层内容?

    、视频等信号数据的处理和分析。卷积神经网络就是一种处理具有类似网格结构的数据的神经网络,其中每个单元只处理与之直接相连的神经元的信息。本文将对卷积神经网络的模型以及包括的层进行详细
    的头像 发表于 08-21 16:41 1338次阅读

    卷积神经网络的应用 卷积神经网络通常用来处理什么

    的前馈神经网络,卷积神经网络广泛用于图像识别、自然语言处理、视频处理等方面。本文将对卷积神经网络的应用进行详尽、详实、细致的介绍,以及卷积神经网络
    的头像 发表于 08-21 16:41 3576次阅读

    卷积神经网络python代码

    的卷积操作,将不同层次的特征进行提取,从而通过反向传播算法不断优化网络权重,最终实现分类和预测等任务。 在本文中,我们将介绍如何使用Python实现卷积神经网络,并详细说明每一个步骤及
    的头像 发表于 08-21 16:41 624次阅读

    卷积神经网络原理:卷积神经网络模型和卷积神经网络算法

    卷积神经网络原理:卷积神经网络模型和卷积神经网络算法 卷积神经网络(Convolutional Neural Network,CNN)是一种基于深度学习的人工
    的头像 发表于 08-17 16:30 843次阅读

    什么是神经网络?为什么说神经网络很重要?神经网络如何工作?

    神经网络是一个具有相连节点层的计算模型,其分层结构与大脑中的神经元网络结构相似。神经网络可通过数据进行学习,因此,可训练其识别模式、对数据分类和预测未来事件。
    的头像 发表于 07-26 18:28 1673次阅读
    什么是<b class='flag-5'>神经网络</b>?为什么说<b class='flag-5'>神经网络</b>很重要?<b class='flag-5'>神经网络</b>如何工作?

    三个最流行神经网络

    在本文中,我们将了解深度神经网络的基础知识和三个最流行神经网络:多层神经网络(MLP),卷积神经网络(CNN)和递归神经网络(RNN)。
    发表于 05-15 14:19 1110次阅读
    三个最流行<b class='flag-5'>神经网络</b>