CN111033530A - 用于压缩神经网络参数的系统和设备 - Google Patents

用于压缩神经网络参数的系统和设备 Download PDF

Info

Publication number
CN111033530A
CN111033530A CN201880039752.5A CN201880039752A CN111033530A CN 111033530 A CN111033530 A CN 111033530A CN 201880039752 A CN201880039752 A CN 201880039752A CN 111033530 A CN111033530 A CN 111033530A
Authority
CN
China
Prior art keywords
neural network
network model
parameters representing
nodes
parameters
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201880039752.5A
Other languages
English (en)
Inventor
于杰曹
安德鲁·鲁克法尔
大卫·帕尔弗拉曼
加内什·达西卡
雷塔潘达·达斯
斯科特·马科
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ARM Ltd
University of Michigan
Original Assignee
ARM Ltd
University of Michigan
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ARM Ltd, University of Michigan filed Critical ARM Ltd
Publication of CN111033530A publication Critical patent/CN111033530A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/10Interfaces, programming languages or software development kits, e.g. for simulating neural networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Image Analysis (AREA)

Abstract

本技术一般涉及表示计算设备中的神经网络参数的信号和/或状态的存储和/或处理,并且更具体地,可以涉及表示计算设备中的神经网络节点的信号和/或状态的压缩。

Description

用于压缩神经网络参数的系统和设备
技术领域
本技术通常涉及表示计算设备中的神经网络参数的信号和/或状态的存储和/或处理,并且可以更具体地涉及表示计算设备中的神经网络节点的信号和/或状态的压缩。
背景技术
例如,诸如处理器的集成电路设备可以在各种电子设备类型中找到。例如,一个或多个处理器可以被用在诸如蜂窝电话之类的移动设备中,以及用在计算机、数码相机、平板设备、个人数字助理、可穿戴设备等中。例如,移动设备和/或其他计算设备可以包括集成电路设备(例如,处理器),以出于各种目的对表示各种内容类型的信号和/或状态进行处理。随着各种不同的内容的可访问性,信号和/或状态处理技术不断发展。然而,有时,对表示相对大量内容的信号和/或状态进行处理可能证明是相对资源需求较高的,这可能会带来许多挑战,包括诸如增加的处理时间、存储需求、复杂性、成本等。
附图说明
在说明书的结论部分中特别指出并清楚地要求了所要求保护的主题。然而,关于操作的组织和/或方法,连同其对象、特征和/或优点,在结合附图阅读的情况下,通过参考以下详细描述可以最好地理解,在附图中:
图1是根据实施例的示例移动设备的图示;
图2是根据实施例的用于格式化神经网络权重参数集的示例处理的图示;
图3a是根据实施例的描绘神经网络模型的示例部分的图示;
图3b是根据实施例的描绘包括示例掩模层的神经网络模型的示例部分的图示;
图3c是根据实施例的描绘包括示例掩模层的神经网络模型的示例部分的图示;
图3d是根据实施例的描绘经压缩的神经网络模型的示例部分的图示;
图4是根据实施例的示出用于压缩表示神经网络模型的参数集的示例处理的示意性框图;
图5是根据实施例的用于压缩表示神经网络模型的参数集的示例处理的图示;以及
图6是根据实施例的示例计算设备的示意性框图。
具体实施方式
在以下详细描述中参考了构成其一部分的附图,其中相同的标号可表示相同的部分,自始至终它们是对应的和/或类似的。应当理解,附图不一定按比例绘制,例如为了说明的简单和/或清楚。例如,一些方面的尺寸可能相对于其他方面被夸大。此外,应当理解,可以利用其他实施例。此外,在不脱离所要求保护的主题的情况下,可以进行结构和/或其他改变。本说明书通篇对“所要求保护的主题”的引用是指旨在被一个或多个权利要求或其任何部分覆盖的主题,并且不一定旨在指代完整的权利要求集合、权利要求集合的特定组合(例如,方法权利要求、装置权利要求等)或特定权利要求。例如,还应注意,诸如上方、下方、顶部、底部等之类的方向和/或参考可用于促进对附图的论述,且不希望限制所要求保护的主题的应用。因此,以下详细描述不应被理解为限制所要求保护的主题和/或等同物。
在整个说明书中对一个实施方式、实施方式、一个实施例、实施例等的引用意味着关于特定实施方式和/或实施例描述的特定特征、结构、特性等被包括在所要求保护的主题的至少一个实施方式和/或实施例中。因此,例如在本说明书中各处出现的此类短语不一定旨在指代相同的实施方式和/或实施例或者指代任何一个特定的实施方式和/或实施例。此外,应当理解,所描述的特定特征、结构、特性等能够以各种方式组合在一个或多个实施方式和/或实施例中,并且因此在预期的权利要求范围内。当然,通常,如专利申请的说明书总是出现的情况,这些和其它问题在特定的使用环境中具有变化可能性。换句话说,在整个专利申请中,描述和/或使用的特定上下文提供了关于待得出的合理推断的有用指导;然而,同样,“在该上下文中”通常在没有进一步限定的情况下是指本专利申请的上下文。
如上所述,例如,诸如处理器的集成电路设备可以在各种电子设备类型中找到。例如,一个或多个处理器可以被用在诸如蜂窝电话的移动设备中,例如以及用在计算机、数码相机、平板设备、个人数字助理、可穿戴设备等中。例如,移动设备和/或其他计算设备可以包括集成电路设备(例如,处理器),以出于各种目的对表示各种内容类型的信号和/或状态进行处理。随着各种不同的内容的可访问性,信号和/或状态处理技术不断发展。然而,有时,对表示相对大量内容的信号和/或状态进行处理可能证明是相对资源需求较高的,这可能会带来许多挑战,包括诸如增加的处理时间增加、存储需求、复杂性、成本等等。
例如,神经网络模型可以在包括语音识别、计算设备视觉应用(例如,面部识别、手写识别等)和/或自然语言处理(仅举几个示例)的应用范围中找到越来越多的实用性。例如,相对大的神经网络模型(例如,深度神经网络(DNN)模型)例如可以利用相当大的存储器存储空间、存储器接口带宽和/或处理资源。计算资源的这种利用可能对例如移动设备、嵌入式系统和/或其他资源受限的计算设备提出挑战。
图1是根据实施例的示例移动设备的实施例100的图示。在实施例中,诸如100的移动设备可以包括一个或多个处理器(诸如处理器110),和/或可以包括一个或多个通信接口(诸如通信接口120)。在实施例中,诸如通信接口120之类的一个或多个通信接口可以实现诸如移动设备100之类的移动设备与一个或多个其他计算设备之间的无线通信。在实施例中,例如,无线通信可以基本上根据各种通信协议中的任何协议(例如本文所提到的那些协议)来发生。
在实施例中,诸如移动设备100之类的移动设备可以包括诸如存储器130之类的存储器。在实施例中,存储器130可以包括例如非易失性存储器。此外,在实施例中,例如,诸如存储器130之类的存储器可以具有存储在其中的可执行指令,诸如用于一个或多个操作系统、通信协议和/或应用的可执行指令。此外,在实施例中,例如,诸如移动设备100之类的移动设备可以包括显示器(诸如显示器140)、一个或多个传感器(诸如一个或多个传感器150)、一个或多个相机(诸如一个或多个相机160)、和/或一个或多个麦克风(诸如麦克风170)。在实施例中,诸如150之类的一个或多个传感器可以包括一个或多个加速度计、陀螺仪、温度计、磁力计、气压计、光传感器或接近传感器或其组合。当然,这些仅是可以被包括在移动设备中的组件的示例类型,并且所要求保护的主题在范围上不限于这些特定示例。
如上所述,例如,相对大的神经网络模型(例如,深度神经网络(DNN)模型)可以利用相当大的存储器存储空间、存储器接口带宽和/或处理资源。例如,计算资源的这种利用可能对诸如移动设备100之类的移动设备和/或其他资源受限的计算设备提出挑战。在一些情况下,例如,神经网络模型(例如,深度神经网络(DNN)模型)可以包括相对显著的冗余,诸如关于可以至少部分地构成表示神经网络模型的各种输入、输出、连接和/或节点的向量和/或多维矩阵的参数。例如,减少冗余(诸如包括表示神经网络节点的参数集的关于神经网络参数),例如,可以导致计算资源的高效利用的改进和/或要被分配用于神经网络操作的计算资源的量的减少。例如,神经网络的计算资源的高效利用的改进和/或要被分配用于神经网络操作的计算资源的量的减少可以导致诸如移动设备100之类的移动设备中和/或其他资源受限的计算设备中的神经网络的利用增加。
在一些情况下,神经网络权重参数修剪(pruning)操作可被用于移除神经网络内的冗余连接。如本文所使用的,与神经网络权重参数、连接、节点、神经元等有关的术语“冗余”是指可以从神经网络模型中移除的权重参数、连接、节点、神经元等,同时维持指定的准确度水平,诸如重新训练操作之后。在一些情况下,可以为各个权重参数和/或权重参数组确定重要性参数。在一些情况下,可以移除重要性参数低于指定的阈值的权重参数和/或权重参数组。
在一些情况下,通过去除被认为不重要和/或冗余的权重参数和/或权重参数组,包括用于神经网络模型的各种输入、输出、连接、节点等的权重参数的矩阵可以变得稀疏。在某些情况下,例如,神经网络权重参数集诸如可以以稀疏矩阵格式(例如经压缩的稀疏行(CSR)格式)存储,如下文更全面地讨论。
图2是根据实施例的用于格式化神经网络权重参数集的示例过程的实施例200的图示。在诸如示例实施例200之类的实施例中,诸如矩阵210之类的相对密集的矩阵可以包括权重参数,例如可以与诸如神经网络模型的一个或多个节点、连接和/或层相关联的权重参数。如上所述,可以利用神经网络权重参数修剪操作来去除神经网络内的冗余连接。在诸如实施例200之类的实施例中,可以从神经网络权重修剪操作中得到相对稀疏的矩阵,例如矩阵220。
在某些情况下,为了将相对稀疏的矩阵(例如220)存储在至少一个计算设备的至少一个存储器中,例如,相对稀疏的矩阵(例如220)可以以CSR格式被存储。例如,相对稀疏的m×n矩阵W(例如220)可以被存储为表示三个一维阵列(例如,实施例200的阵列A、JA和/或IA)的信号和/或状态。例如,阵列A可以包括神经网络权重参数,例如被确定为具有满足和/或超过指定的阈值参数的重要性参数的权重参数。例如,阵列A可以包括来自相对神经网络权重参数集的神经网络权重参数,例如相对稀疏的矩阵W(例如,矩阵220)。例如,阵列IA可以将索引(indice)记录到矩阵W的各个行的第一参数的阵列A中。在实施例中,阵列JA可以存储阵列A的各个参数的列索引。例如,值“5”的权重参数(例如,在示例矩阵220的第0行,第1列(从第0行到第5行和从第0列到第5列计数)处所示)可以通过将值“5”存储在阵列A中(在此示例中表示为阵列A的第0个元素)和/或通过将值“1”存储在阵列JA中(在此示例中表示为阵列JA的第0个元素)以CSR格式被存储,指示该示例中的值“5”的权重参数表示来自矩阵220的第一列的值。此外,例如,值“0”可以被存储在阵列IA中,指示对于示例矩阵220的第0行,第一参数可以位于阵列A的第0位置处。
为了执行诸如涉及矩阵(例如,示例矩阵220)和输入向量(例如输入向量240)的乘法运算,例如处理器(例如,处理器110)可以访问阵列A、JA、和/或IA来确定适当的权重参数以应用于输入向量(例如输入向量240),例如,诸如至少部分地由图2中所示的箭头所示。
在某些情况下,将CSR格式用于神经网络权重参数集可能会带来一些挑战。例如,以CSR格式存储神经网络权重参数集可能涉及的开销量可能相对低效,例如可能是由于诸如阵列JA之类的阵列与诸如阵列A之类的阵列具有相同的大小,存储了实际的权重参数。即,使用CSR格式存储的内容的一半以上可以被专用于指示用于神经权重参数集的格式,而存储的内容的不到一半可以包括神经网络权重参数本身。因此,相对于存储器和/或存储资源,将CSR格式用于神经网络权重参数集可能相对低效。
此外,在某些情况下,将CSR格式用于神经网络权重参数集可能会导致处理资源利用效率相对低效。例如,为了执行乘法运算(例如,诸如示例矩阵220之类的矩阵与诸如输入向量240之类的输入向量、诸如处理器110之类的处理器之间的稀疏矩阵向量乘法)可以加载来自诸如阵列A之类的阵列的权重参数,可以加载来自诸如阵列JA之类的阵列的索引值,和/或可以利用诸如来自阵列JA的索引值来加载来自诸如输入向量240之类的输入向量的适当值。例如,如至少部分地由图2中所描绘的箭头所示出的,诸如处理器110之类的处理器可以加载来自阵列A的值“5”的权重参数,可以加载来自阵列JA的值“1”的索引,并且可以利用从阵列JA获取的“1”的索引值来加载值“9”作为输入向量240的第一元素。例如,输入值的这种索引可能涉及额外的计算和/或存储器访问,从而潜在地负面影响系统性能和/或计算资源利用效率。此外,至少部分地由于诸如矩阵220之类的相对稀疏的矩阵的不规则结构,处理性能的改进和/或计算资源利用效率的改进(否则这些改进可用于诸如矩阵210之类的相对密集的矩阵)可能不能用于诸如矩阵220之类的相对稀疏的矩阵。
因此,在某些情况下,利用CSR格式可能不足以解决由神经网络模型内的冗余所带来的挑战。例如,利用权重参数修剪和/或利用CSR格式来存储经修剪的权重参数可能不会导致计算资源的充分有效利用。为了至少部分地解决由神经网络模型内的冗余所带来的挑战,根据所要求保护的主题的实施例可以包括:从至少一个计算设备的至少一个存储器中检索表示神经网络模型的参数集中的一个或多个参数,并且还可以包括至少部分地通过从神经网络模型的一层或多层中识别和/或去除表示一个或多个冗余节点的一个或多个参数来压缩表示神经网络模型的参数集。如本文所利用的,与神经网络模型、神经网络参数等相关联的术语“经压缩的”是指在维持足够的准确性以至少显著地实现神经网络和/或神经网络模型等的一个或多个指定的目标的同时去除神经网络和/或神经网络模型等的一个或多个参数。在实施例中,例如,可以指定准确性的量,例如结合训练操作。
在实施例中,识别和/或去除表示一个或多个冗余节点的一个或多个参数可以包括将表示一个或多个掩模层的一个或多个参数添加到表示神经网络模型的参数集。掩模层可以诸如作为识别和/或去除冗余节点的过程的一部分而被训练,如下面更全面地解释的。此外,如下面还要更全面地解释的,作为处理的一部分,可以去除掩模层,以生成表示神经网络模型的经压缩的参数集。在实施例中,通过去除神经网络模型的一层或多层内的冗余节点,可以减少冗余,从而导致对计算资源的有效利用的改善和/或导致分配给操作神经网络模型的计算资源的减少。此外,在实施例中,通过在逐个节点的基础上而不是在逐个权重参数的基础上确定冗余,和/或通过移除冗余节点而不是移除冗余权重参数,例如,可以减少与稀疏的矩阵运算相关联的计算和/或存储开销。
如本文所利用的,术语“神经网络模型”是指表示各种输入阵列和/或矩阵、输出阵列和/或矩阵、神经网络的权重值、连接、节点和/或层的参数和/或参数集。在实施例中,例如,神经网络可以旨在至少部分地对生物神经元之间和/或之内的动作和/或交互进行建模。如所提及的,神经网络模型和/或系统中的“权重参数”可能旨在至少部分地对生物神经元之间的突触进行建模。例如,表示神经网络模型中的神经网络“节点”的参数集可以旨在对生物神经元进行建模。当然,神经网络模型可以在广泛的应用中使用,并且不限于对生物系统进行建模。
如本文中所使用的,与神经网络和/或神经网络模型等相关联的术语“神经元”是指应用于输入参数的组合的一个或多个激活函数。例如,在实施例中,可以将一个或多个激活函数应用于输入参数的线性组合和/或输入参数的加权总和。在一些实施例中,术语“神经元”可以旨在对生物神经元进行建模。然而,在其他实施例中,神经网络(即,人工的)“神经元”可能不旨在对生物神经元等进行建模。此外,如本文所利用的,术语“节点”是指神经网络模型中的神经元和/或神经元组等等。同样,如本文所使用的,术语“特征图”是指神经元组。此外,在实施例中,例如,特征图可以包括单个节点。
图3a是描绘神经网络模型的示例部分的实施例300的图示。对于图3a至图3d中所示的神经网络的示例部分,描绘了两层,层A和层B。尽管描绘了两层,并且尽管描绘了相对较少的节点和/或连接,但是所要求保护的主题在这些方面不受范围的限制。例如,在图3a至图3d中所描述的示例可以被简化以促进相对容易的讨论和/或解释,但是所要求保护的主题的范围不限于本文所讨论的经简化示例。
在实施例中,诸如层A之类的层可以包括一个或多个节点,例如节点310、311和/或312。此外,在实施例中,层的各个节点(例如层A的节点310、311和/或312)可以与另一层(例如,层B)的各个节点互连,如图3a所示。根据所要求保护的主题的实施例可以与神经网络模型一起使用,该神经网络模型包括诸如完全连接的层和/或卷积层。对于示例实施例300,描绘了完全连接的层。然而,所要求保护的主题在这方面不受范围限制。同样,在实施例中,节点之间的连接(例如图3a至图3d中的箭头所描绘的),可以包括表示输出值的参数和/或参数集。同样,在实施例中,节点之间的连接可以包括权重参数。例如,在实施例中,一个或多个权重参数可以以指定的方式对表示一个或多个输出值的一个或多个参数进行操作,以产生连接,例如在第一层的节点与第二层的节点之间。
图3b是描绘包括诸如掩模层A’之类的示例掩模层的神经网络模型的示例部分的实施例300的图示。在实施例中,可以为神经网络模型的一层或多层添加掩模层。在实施例中,例如,可以为不包括输入和/或输出层的层添加掩模层。对于本示例,可以将掩模层A’插入到层A和层B之间的神经网络模型300中。
在实施例中,表示诸如来自层A的输出值的参数可以在被传播到诸如层B之类的下一层之前经过诸如A’之类的掩模层。在实施例中,掩模层中的各个节点(例如掩模层A’的节点320、321和/或322)可以包括一个或多个参数。例如,在实施例中,掩模层中的各个节点(例如掩模层A’的节点320、321和/或322)可以包括表示布尔变量α(α∈{0,1})的参数,和/或可以包括表示浮点变量β(0≤β≤1)的参数。
例如,阵列Y可以表示诸如层A’之类的层的输出激活阵列,并且阵列Y’可以表示诸如掩模层A’的掩模层的输出激活阵列。在实施例中,对于y′i∈Y′和yi∈Y,y′i可以通过示例关系来提供:
y′i=αi·yi (1)
因此,例如,在αi设置为“0”的情况下,至少部分是由于对于该示例而言输出y′i被固定为“0”,可以认为相应节点是从神经网络模型中去除的。
图3c是描绘包括诸如掩模层A’之类的示例掩模层的神经网络模型的示例部分的实施例300的图示。在实施例中,诸如掩模层A’之类的掩模层可以包括节点320、321和/或322,节点320、321和/或322分别包括表示布尔变量α的参数和/或包括表示浮点变量β的参数,如上所述。对于图3c所示的示例,节点320和321可以包括用于各个变量α的值“1”的参数,另一方面,可以包括变量α的值“0”的参数。此外,对于本示例,变量β可以被初始化为值“1.0”。如图3c中的虚线所示,例如,层A的节点312被描述为被指定为至少部分地由于与相应的掩模层节点322相关联的变量α的值“0”而被移除。当然,所要求保护的主题不限于本文讨论的特定示例。
图3d是描绘神经网络模型的示例部分的实施例300的图示,其中,诸如节点312之类的节点被描绘为已被移除。也如图3d所示,诸如掩模层A’之类的掩模层也被描绘为已被移除。类似地,例如,节点312和层B的节点之间的连接也已经从示例神经网络300中移除。虽然神经网络模型的部分的示例实施例300可以包括相对较少的节点和/或层,但是根据所要求保护的主题的其他神经网络模型可以包括更多的节点和/或层。例如,移除冗余节点和/或移除此类冗余节点与其他节点之间的连接,尤其是在相对较大的神经网络模型中,可能导致经压缩的神经网络模型可以更有效地利用计算资源和/或可能需要较少的计算资源进行操作。
图4是示出用于压缩诸如表示深度神经网络(DNN)模型的诸如参数410之类的参数集的示例过程的实施例400的示意性框图。例如,在实施例中,可以从至少一个计算设备的至少一个存储器中检索诸如参数410之类的神经网络模型参数集。根据所要求保护的主题的实施例可以包括所有框410-430,少于框410-430,或多于框410-430。而且,框410-430的顺序仅是示例顺序,并且所要求保护的主题在这些方面不受范围的限制。
在实施例中,表示神经网络参数集(例如神经网络参数集410)的信号和/或状态可以被处理以识别和/或去除神经网络模型(例如由参数410表示的神经网络模型)的一层或多层内的一个或多个冗余节点,如框420所示。如上所述,可以将一个或多个掩模层添加到神经网络模型。例如,如框421所示,可以将诸如掩模层A’之类的一个或多个掩模层添加到神经网络模型,例如DNN 410。在实施例中,对于神经网络模型的卷积层,特定第i个节点的激活可以被引导通过掩模层的特定节点。在实施例中,将卷积层的特定节点的激活引导通过掩模层的特定节点可以产生相同大小和/或尺寸的经掩模的特征图。例如,在实施例中,可以以特征图粒度(granularity)来识别和/或移除特定卷积层中的冗余。如上所述,在实施例中,对于卷积层,节点可以包括特征图。
如框422所示,可以例如经由机器学习技术来训练诸如掩模层A’之类的掩模层。所要求保护的主题的范围不限于任何特定的机器学习技术。在实施例中,对于掩模层中的单个第i个节点,可以将αi和βi初始化为值“1”:
αi|0=1,βi|0=1.0 (2)
在实施例中,可以根据示例关系式来提供训练迭代k≥1,αi
Figure BDA0002317413830000101
其中T(0<T<1)可以包括可以在一个或多个掩模层之间共享的阈值。在实施例中,阈值(例如T),可以在所有掩模层之间共享,但所要求保护的主题在范围上不限于此方面。此外,在实施例中,ε可以表示被选择用于至少部分地稳定训练操作的相对小的值。例如,ε可以被选择以便防止αi在“0”和“1”之间反弹。此外,在实施例中,βi可以通过反向传播来更新,和/或可以被截断为[0,1]之间的值。
在实施例中,例如,诸如L1正则化参数之类的正则化参数可以被用来控制要从神经网络模型中移除的节点的数量。例如,正则化参数可以被用于惩罚(penalize)参数的量级。在实施例中,对于各个掩模层,可以根据示例关系来提供参数βi的惩罚:
Ri,L1=λ|βi|=λβi (4)
其中λ可以表示权重衰减参数(例如,正则化强度)。在实施例中,诸如λ之类的权重衰减参数可以趋向于迫使βi朝向“0”。例如,至少部分地响应于确定对应于特定βi的特定节点不是相对重要的,βi可以被减小到低于阈值,例如阈值T,并且特定节点可以被至少暂时地移除。在一些情况下,在实施例中,经由训练操作可以发现被移除的节点是重要的,并且可以替换这样的节点。此外,在实施例中,诸如T之类的阈值可以是固定的,以用于节点修剪(例如,冗余节点识别和移除)。对于固定阈值T,权重衰减参数λ的增加可以增加βi的惩罚,并且结果,用于掩模层的更多节点的更多参数βi可以变得小于阈值T,和/或可以移除更多节点。例如,在实施例400的框423处,可以描绘权重参数的增加。
在实施例中,可以以迭代方式执行用于训练掩模层的操作,例如在框422处所描述的,和/或用于增加权重衰减参数的操作,例如在框423处所描述的。在实施例中,可以执行掩模层训练和权重衰减参数的增加的迭代,直到不能维持指定和/或期望量的神经网络模型准确度。在实施例中,可以在掩模层训练迭代期间动态地更新丢失比(dropout ratio)。例如,在迭代k中,可以根据示例关系式来提供丢失比:
Figure BDA0002317413830000111
其中Dropout|0可以表示初始丢失率,其中N|0可以表示初始节点数量,和/或其中N|k可以表示迭代k中的剩余节点数量。在实施例中,在掩模层的训练操作期间,其他层的参数可能不固定。例如,可以训练其他层的权重参数、偏置(bias)等,以在训练掩膜层时拟合变化的神经网络模型。
在实施例中,例如,在框424处,可以移除掩模层和/或掩模节点(例如,被标识为冗余的节点),如所描绘的。如上所述,在实施例中,可以移除具有值为“0”的相应布尔参数α的节点和/或特征图。此外,例如,在移除掩模层时,剩余节点的输出激活可以被传播到下一层,例如图3d中所描绘的。此外,在实施例中,可以重新训练神经网络模型,例如在已经经历了压缩处理(例如,冗余节点识别和/或移除)之后的DNN 410,如在框425处所描绘的,从而产生经压缩的神经网络模型,例如经压缩的DNN430。
如上所述,经由冗余节点的标识和/或移除来压缩神经网络模型可以导致存储器存储利用率的降低,和/或还可以导致计算资源的更有效使用和/或操作神经网络模型所需的计算资源的降低,这至少部分地是由于特定神经网络模型的期望目标是用更少的节点和/或更少的相应连接来实现。例如,可以避免利用经压缩的稀疏行技术的系统所面临的挑战中的至少一些,并且可以维持非稀疏神经网络模型的计算优势。
图5是用于压缩表示神经网络模型的信号和/或状态的过程的实施例500的图示。根据所要求保护的主题的实施例可以包括所有的框510-520,少于框510-520,或多于框510-520。此外,框510-520的顺序仅是示例顺序,并且所要求保护的主题的范围在这些方面不受限制。
如框510处所描绘的,可以使用至少一个计算设备的至少一个处理器来压缩表示神经网络模型的参数集,这至少部分地是通过从神经网络模型的一层或多层中识别和/或移除表示一个或多个冗余节点的一个或多个参数来进行的,包括从至少一个计算设备的至少一个存储器中检索表示神经网络模型的参数集中的一个或多个参数。此外,如在框520处所描绘的,在实施例中,表示神经网络模型的经压缩的参数集可以被存储在至少一个计算设备的至少一个存储器中。此外,在实施例中,表示神经网络模型的参数集可以包括表示神经网络模型的一个或多个卷积层的一个或多个参数。
在诸如示例实施例500的实施例中,从神经网络模型的一层或多层中识别和/或移除表示一个或多个冗余节点的一个或多个参数可以包括将表示一个或多个掩模层的一个或多个参数添加到表示神经网络模型的参数集中。此外,在实施例中,从神经网络模型的一层或多层中识别和/或移除表示一个或多个冗余节点的一个或多个参数可以包括对表示一个或多个掩模层的一个或多个参数进行训练。
在诸如示例实施例500之类的实施例中,一个或多个掩模层可以分别包括一个或多个节点,所述一个或多个节点分别包括表示布尔变量的参数和/或表示浮点值的参数。在实施例中,对表示一个或多个掩模层的一个或多个参数进行训练可以包括至少部分地根据表示一个或多个掩模层的一个或多个节点的浮点值的参数来迭代地向一个或多个掩模层的一个或多个节点的布尔变量分配值。此外,在实施例中,迭代地向一个或多个掩模层的一个或多个节点的布尔变量分配值还可以包括至少部分地根据指定的阈值参数来分配值。
在诸如示例实施例500之类的实施例中,对表示一个或多个掩模层的一个或多个参数进行训练还可以包括迭代地将权重衰减参数应用于一个或多个掩模层的一个或多个节点的浮点值,其中权重衰减参数可以针对连续迭代而增加。
此外,在实施例中,迭代地向一个或多个掩模层的一个或多个节点的布尔变量分配值和/或迭代地应用权重衰减参数可以继续,直到确定对表示一个或多个掩模层的一个或多个参数进行训练不足以维持神经网络模型的准确性。
在实施例中,从神经网络模型的一层或多层中识别和/或移除表示一个或多个冗余节点的一个或多个参数可以包括从表示神经网络模型的参数集中移除表示一个或多个掩模层的一个或多个参数。此外,诸如示例实施例500之类的实施例可以包括对表示神经网络模型的经压缩的参数集进行重新训练。
在本专利申请的上下文中,术语“连接”、术语“组件”和/或类似术语可以旨在是物理的,但不一定总是有形的。因此,这些术语是否指代有形主题可以在特定的使用上下文中变化。作为示例,可以例如通过能够在两个有形组件之间传导电流的有形电连接(例如包括金属或其他导体的导电路径),来形成有形连接和/或有形连接路径。同样地,有形连接路径可以至少部分地受到影响和/或控制,使得,如典型的,有形连接路径有时可以由于一个或多个外部导出的信号(例如,诸如用于电开关的外部电流和/或电压)的影响而被断开或闭合。电开关的非限制性说明包括晶体管、二极管等。然而,在特定的使用环境中,“连接”和/或“组件”,同样地,尽管是物理的,也可以是非有形的,诸如客户端和服务器之间通过网络的连接,其通常是指客户端和服务器发送、接收和/或交换通信的能力,如稍后更详细地讨论的。此外,如上所述,术语“连接”可以在神经网络模型的上下文中使用,并且可以指代节点之间的连接,所述节点之间的连接可以包括例如表示输出值的参数和/或参数集。此外,在实施例中,节点之间的连接可以包括权重参数。例如,在实施例中,一个或多个权重参数可以以指定的方式对表示一个或多个输出值的一个或多个参数进行操作,以产生诸如第一层的节点和第二层的节点之间的连接。
因此,在使用的特定上下文中,例如正在讨论有形组件的特定上下文中,术语“耦合”和“连接”被以某种方式使用,使得这些术语不是同义的。类似的术语也可以以表现出类似意图的方式使用。因此,“连接”用于指示例如两个或更多个有形组件等等有形地直接物理接触。因此,如先前所讨论的,使用先前示例,两个电连接的有形组件经由有形的电连接而物理连接。然而,“耦合”用于意味着潜在的两个或更多个有形组件有形地直接物理接触。但是,例如,还用于意味着两个或更多个有形组件等等不一定有形地直接物理接触,但是能够例如通过“光电耦合”来相互协作、联络和/或交互。同样地,术语“耦合”也应理解为意味着间接连接。还应注意,在本专利申请的上下文中,由于存储器(例如存储器组件和/或存储器状态)旨在为非暂时性的,所以术语物理(至少如果相对于存储器使用)必然暗示着此类存储器组件和/或存储器状态(继续该实例)是有形的。
此外,在本专利申请中,在使用的特定上下文中,例如在讨论有形组件(和/或类似地,有形材料)的情况下,在“在...上”和“在...上方”之间存在区别。作为示例,在该后一示例中,在衬底“上”的物质的沉积是指涉及直接物理和有形接触的沉积,而在沉积的物质和衬底之间没有中间物,例如中间物质。尽管如此,在衬底“上方”的沉积虽然被理解为可能包括在衬底“上”的沉积(因为“在...上”也可以准确地描述为“在...上方”),但是应理解为包括一种或多种中间物的情况,例如在沉积的物质与衬底之间存在一种或多种中间物(例如一种或多种中间物质),使得沉积的物质不必与衬底直接物理和有形接触。
在使用的适当特定上下文中,例如在讨论有形材料和/或有形组件时,在“在…下方(beneath)”和“在…之下(under)”之间做出相似的区分。在使用的此类特定上下文中,尽管“在…下方”旨在必然暗示着物理和有形的接触(类似于刚刚描述的“在...上”),“在...之下”可能包括其中存在直接的物理和有形的接触,但不一定暗示直接的物理和有形的接触的情况,例如存在一个或多个中间物(例如一种或多种中间物质)的情况。因此,“在...上”应理解为意味着“紧邻上方”,并且“在...下方”应理解为意味着“紧邻之下”。
同样应当理解,诸如“在…上方”和“在…之下”之类的术语以与前述的术语“上方”、“下方”、“顶部”、“底部”等类似的方式被理解。这些术语可用于促进讨论,但不旨在必然限制所要求保护的主题的范围。例如,作为示例,术语“在...上方”,并不意味着暗示权利要求范围仅限于例如其中实施例正面朝上(right side up)的情形,例如与颠倒的实施例相比。作为一个示例,示例包括倒装芯片,其中,例如,在各个时间(例如,在制造期间)的取向可能不一定与最终产品的取向相对应。因此,作为示例,如果对象在特定取向(例如颠倒)上在可适用的权利要求范围内,作为一个示例,同样地,旨在后者也应被解释为在另一取向(例如,正面朝上)上被包括在适用的权利要求范围内,再次,作为示例,反之亦然,即使适用的字面权利要求语言有可能被以其他方式解释。当然,同样,与专利申请的说明书中的情况一样,描述和/或使用的特定上下文提供了关于要得出的合理推断的有用指导。
除非另有说明,否则在本专利申请的上下文中,术语“或”如果被用于关联列表,例如A、B或C,旨在表示A、B和C,这里以包含的意义使用,以及A、B或C,这里以排他的意义使用。在这种理解下,“和”以包含的意义使用,并且旨在表示A、B和C;而“和/或”可以以足够谨慎的方式使用,以清楚地表明所有前述含义是预期的,尽管这种使用不是必需的。此外,术语“一个或多个”和/或类似术语用于以单数形式描述任何特征、结构、特性等等,“和/或”还用于描述特征、结构、特性等等的多个和/或一些其他组合。同样,术语“基于”和/或类似术语应理解为不一定旨在传达因素的详尽列表,而是允许存在不一定明确描述的附加因素。
此外,旨在以以下方式来理解与所要求保护的主题的实施方式有关并且经受有关程度的测试、测量和/或规格的情况。作为示例,在给定的情况下,假设要测量物理性质的值。如果可选地本领域的普通技术人员合理地可能想到一种用于有关程度的测试、测量和/或规格的合理的方法,至少相对于特性,继续该示例,至少出于实现的目的,除非另有明确说明,否则所要求保护的主题旨在涵盖那些可选的合理方法。作为示例,如果产生了一个区域上方的测量图并且所要求保护的主题的实施方式是指对该区域上方的斜率进行测量,但是存在各种合理且可选的技术来评估该区域上方的斜率,除非另有明确说明,否则所要求保护的主题旨在涵盖那些合理的可选技术。
在某种程度上所要求保护的主题涉及一种或多种特定测量,例如关于能够进行物理测量的物理表现,例如但不限于温度、压力、电压、电流、电磁辐射等,应相信所要求保护的主题不属于法定主题的抽象概念司法例外。相反,可以断言,物理测量不是精神步骤,并且同样也不是抽象概念。
然而,应注意,所采用的典型测量模型是一个或多个测量可分别包括至少两个分量(component)的总和。因此,例如,对于给定的测量,一个分量可以包括确定性分量,该确定性分量在理想的意义上可以包括物理值(例如,经由一个或多个测量而求得),通常以一个或多个信号、信号样本和/或状态的形式,并且一个分量可以包括随机分量,该随机分量可以具有可能难以量化的各种源。有时,例如,缺乏测量精度可能会影响给定的测量。因此,对于所要求保护的主题,除了确定性模型之外,还可以使用统计或随机模型作为关于可能涉及所要求保护的主题的一个或多个测量值的识别和/或预测的方法。
例如,可以收集相对大量的测量以更好地评估确定性分量。同样,如果测量变化(其通常可能发生),则可能是方差的某些部分可以解释为确定性分量,而变化的某些部分可以解释为随机分量。通常,如果可行的话,期望与测量相关的随机变化相对较小。也就是说,通常最好能够以确定性的方式考虑测量变化的合理部分,而不是随机性事件,以帮助识别和/或可预测性。
沿着这些思路,已经使用了多种技术,以便可以处理一个或多个测量以更好地评估根本的确定性分量,以及评估潜在的随机分量。当然,这些技术可能会因特定情况而有所不同。然而,通常,更复杂的问题可能涉及使用更复杂的技术。就这一点而言,如上所述,可以确定性地和/或随机性地对身体表现的一个或多个测量进行建模。采用模型允许潜在地识别和/或处理所收集的测量,和/或潜在地允许例如相对于随后要进行的测量而对根本的确定性分量进行评估和/或预测。给定的评估可能不是完美的评估;然而,通常,期望平均一个或多个评估可以更好地反映根本的确定性分量,例如,如果考虑了可能包含在一个或多个获得的测量中的随机分量。当然,从实践上来说,期望能够例如通过评估方法来生成影响要进行的测量的过程的物理上有意义的模型。
然而,如所指出的,在某些情况下,潜在的影响可能是复杂的。因此,试图了解要考虑的适当因素可能特别具有挑战性。因此,在这种情况下,相对于生成一个或多个评估,采用启发式(heuristic)并不罕见。例如,启发式是指使用与经验相关的方法,这些方法可以反映已实现的过程和/或已实现的结果,例如关于历史测量的使用。例如,启发式可用于其中更多的分析方法可能过于复杂和/或难以处理的情况。因此,例如,关于所要求保护的主题,在示例实施例中,创新特征可以包括启发式,所述启发式可以被采用以评估和/或预测一个或多个测量。
还应注意,如果术语“类型”和/或“类似”例如与特征、结构、特性等一起使用,使用“光学”或“电学”作为简单示例,则意味着至少部分地和/或与特征、结构、特性等相关,使得存在微小变化,甚至可能以其他方式不被认为与特征、结构、特性等完全一致的变化,如果微小变化足够小使得特征、结构、特性等仍将被认为基本上与也存在的这种变化一起存在,则一般不阻止特征、结构、特性等是“类型”和/或“类似”(例如是诸如“光学类型”或“光学类似”)。因此,继续该示例,术语光学类型和/或类似光学的性质必然旨在包括光学性质。同样,作为另一示例,术语电学类型和/或类似电学的性质必然旨在包括电学性质。应当注意,本专利申请的说明书仅提供了一个或多个说明性示例,并且所要求保护的主题旨在不限于一个或多个说明性示例;然而,再次,如关于专利申请的说明书的情况一样,描述和/或使用的特定上下文提供了关于要得出的合理推断的有用指导。
随着技术的进步,例如,采用分布式计算和/或通信方法已经变得更加典型,在分布式计算和/或通信方法中,过程的部分(例如信号样本的信号处理)例如可以经由计算和/或通信网络在各种设备(包括一个或多个客户端设备和/或一个或多个服务器设备)之间分配。网络可以包括两个或更多个设备(例如网络设备和/或计算设备),和/或可以耦合设备(例如网络设备和/或计算设备),使得信号通信(例如以信号分组和/或信号帧(例如包括一个或多个信号样本)的形式)例如可以在诸如服务器设备和/或客户端设备以及其他类型的设备之间(包括例如在经由有线和/或无线网络耦合的有线和/或有线设备之间)被交换。分布式计算系统的示例包括所谓的Hadoop分布式计算系统,该系统采用了映射减少(map-reduce)型架构。在本专利申请的上下文中,术语映射减少架构和/或类似术语旨在指代分布式计算系统实施方式和/或实施例,用于使用映射来处理和/或用于生成更大的信号样本集,和/或减少用于通过设备网络执行的并行、分布式过程的操作。映射操作和/或类似术语是指对信号(例如,信号样本)的处理,以生成一个或多个密钥值对,并将一个或多个对分配给系统(例如,网络)的一个或多个设备。减少操作和/或类似术语是指经由总结操作(例如,诸如对队列中的学生的数量进行计数,产生名字频率等)对信号(例如,信号样本)的处理。在实施例中,系统可以采用这样的架构,例如通过封送(marshaling)分布式服务器设备,并行执行各种任务,和/或管理系统(例如,网络)的各个部分之间的通信,例如信号传输。如上所述,一个非限制性但众所周知的示例包括Hadoop分布式计算系统。它指的是映射减少型架构(可从Apache软件基金会、1901Munsey Drive、Forrest Hill、MD、21050-2747获得)的开源实施方式和/或实施例,但可能包括其他方面,例如Hadoop分布式文件系统(HDFS)(可从Apache软件基金会、1901Munsey Drive、Forrest Hill、MD、21050-2747获得)。因此,通常,“Hadoop”和/或类似术语(例如,“Hadoop型”等)是指调度程序的实施方式和/或实施例,用于在分布式系统上使用映射减少架构来执行较大的处理作业。此外,在本专利申请的上下文中,术语“Hadoop”的使用旨在包括当前已知的和/或将在以后开发的版本。
在本专利申请的上下文中,术语网络设备是指能够经由网络和/或作为网络的一部分进行通信的任何设备,并且可以包括计算设备。尽管网络设备可能能够例如经由有线和/或无线网络来传送信号(例如,信号分组和/或帧),但是它们也可能能够执行与计算设备相关联的操作,例如算术和/或逻辑操作,处理和/或存储操作(例如,存储信号样本),例如在存储器中作为有形的、物理的存储器状态,和/或例如可以在各种实施例中作为服务器设备和/客户端设备进行操作。作为示例,能够作为服务器设备、客户端设备和/或其他设备进行操作的网络设备可以包括专用机架式服务器、台式计算机、膝上型计算机、机顶盒、平板电脑、上网本、智能手机、可穿戴设备、组合了前述设备的两个或更多个特征的集成设备等等,或其任何组合。如上所述,信号分组和/或帧例如可以在诸如服务器设备和/或客户端设备以及其他类型的设备之间(包括例如在经由有线和/或无线网络或其任何组合而耦合的有线和/或有线设备之间)被交换。注意,术语,服务器、服务器设备、服务器计算设备、服务器计算平台和/或类似术语可互换使用。类似地,术语客户端、客户端设备、客户端计算设备、客户端计算平台和/或类似术语也可以互换使用。尽管在某些实例中,为了便于描述,这些术语可以以单数形式使用,例如通过对“客户端设备”或“服务器设备”的引用,但该描述旨在涵盖一个或多个客户端设备和/或一个或多个服务器设备(视情况而定)。同样,对“数据库”的引用被理解为意味着一个或多个数据库和/或其部分(视情况而定)。
应该理解,为了便于描述,可以根据计算设备来体现和/或描述网络设备(也称为联网设备),反之亦然。然而,还应该理解,该描述绝不应该被解释为使得所要求保护的主题限于一个实施例,诸如仅计算设备和/或仅网络设备,而是可选地,可以被体现为包括诸如一个或多个说明性示例的各种设备或其组合。
例如,网络还可以包括现在已知的和/或将在以后开发的布置、派生和/或改进,包括例如过去、现在和/或将来的大容量存储,例如网络附属存储(NAS)、存储区域网络(SAN)和/或其他形式的设备可读介质。网络可以包括互联网的一部分、一个或多个局域网(LAN)、一个或多个广域网(WAN)、有线类型的连接、无线类型的连接、其他连接或其任何组合。因此,网络在范围和/或程度上可以是全球性的。同样,诸如可以采用不同架构和/或可以与诸如网络计算和/或通信协议(例如,网络协议)之类的不同协议基本适用和/或基本兼容的子网可以在更大的网络内互操作。
在本专利申请的上下文中,术语子网和/或类似术语,在例如相对于网络被使用时,是指网络和/或其一部分。子网也可以包括链路,例如物理链路、连接和/或耦合节点,以便能够在特定节点的设备之间传递信号分组和/或帧,包括经由有线链路、无线链路或其组合。可以使诸如网络设备和/或计算设备之类的各种类型的设备可用,以使得设备互操作性被使能和/或在至少某些实例中可以是透明的。在本专利申请的上下文中,术语“透明的”,在相对于网络的设备被使用时,是指经由网络进行通信的设备,其中该设备能够经由诸如一个或多个中间节点之类的一个或多个中间设备进行通信,但通信设备不必指定一个或多个中间节点和/或一个或多个中间节点的一个或多个中间设备,和/或因此可以在网络内包括如下设备:经由一个或多个中间节点和/或一个或多个中间节点的一个或多个中间设备进行通信,但是可以参与信号通信,好像不一定要涉及这些中间节点和/或中间设备。例如,路由器可以在原本分开的和/或独立的LAN之间提供链路和/或连接。
例如,在本专利申请的上下文中,“专用网络”是指能够诸如经由信号分组和/或信号帧通信与其他设备(例如,特定有限的集中的网络设备和/或计算设备)进行通信的特定有限的设备集(例如网络设备和/或计算设备),而无需重新路由和/或重新定向信号通信。专用网络可以包括独立网络;然而,例如,专用网络也可以包括较大网络的子集,例如但不限于互联网的全部或一部分。因此,例如,“在云中”的专用网络可以指代包括互联网的子集的专用网络。例如,尽管信号分组和/或帧通信(例如,信号通信)可以使用中间节点的中间设备来交换信号分组和/或信号帧,但是那些中间设备不一定是针对一个或多个信号分组和/或信号帧的源或指定目的地,因此不一定被包含在专用网络中。在本专利申请的上下文中,应理解,专用网络可以将流出信号通信定向到不在专用网络中的设备,但是专用网络外部的设备可能不一定能够将流入信号通信定向到包括在专用网络中的设备。
互联网是指符合互联网协议(IP)的可互操作网络的分散式全球网络。注意,存在多种版本的互联网协议。术语互联网协议、IP和/或类似术语旨在表示现在已知和/或以后开发的任何版本。互联网包括局域网(LAN)、广域网(WAN)、无线网络和/或长途公共网络,其例如可以允许信号分组和/或帧在LAN之间通信。术语万维网(WWW或Web)和/或类似术语也可以被使用,尽管它表示符合超文本传输协议(HTTP)的互联网的一部分。例如,网络设备可以通过交换适当的基本适用和/或基本兼容的信号分组和/或帧来参与HTTP会话。注意,存在多种版本的超文本传输协议。术语超文本传输协议、HTTP和/或类似术语旨在表示现在已知和/或以后开发的任何版本。同样要注意的是,在本文档中的不同地方,在意义没有明确偏离的情况下,并且因此,也可以通过这种方式理解,在使用这样的替换而语句将保持正确时,可以用术语万维网(“Web”)替换术语互联网。
尽管所要求保护的主题的范围不特别限于互联网和/或Web;尽管如此,至少出于说明的目的,互联网和/或Web可以但不限于提供实施例的有用示例。如所指出的,互联网和/或Web可以包括可互操作网络的全球系统,包括那些网络内的可互操作设备。互联网和/或Web已经发展成为一种全世界有数十亿甚至更多的人可以访问的公共的、自我维持的设施。而且,在实施例中,并且如上所述,术语“WWW”和/或“Web”是指符合超文本传输协议的互联网的一部分。因此,在本专利申请的上下文中,互联网和/或Web可以包括如下服务:例如通过使用诸如超媒体来组织所存储的数字内容(例如文本、图像、视频等)的服务。注意,可以采用诸如互联网和/或Web之类的网络来存储电子文件和/或电子文档。
术语电子文件和/或术语电子文档在该文档中用于表示以某种方式关联的所存储的存储器状态集和/或物理信号集,从而至少在逻辑上形成文件(例如,电子)和/或电子文档。即,这并不意味着隐含地参考例如关于关联的存储器状态集和/或关联的物理信号集使用的特定语法、格式和/或方法。例如,如果打算使用特定类型的文件存储格式和/或语法,则应明确地引用。还应注意的是,例如,存储器状态的关联可以是逻辑上的意义,并且不必是有形的物理上的意义。因此,在实施例中,尽管文件和/或电子文档的信号和/或状态分量例如将在逻辑上相关联,但是其存储例如可以驻留在有形的物理存储器中的一个或多个不同位置中。
例如,超文本标记语言(“HTML”)诸如可以用于指定数字内容和/或指定其格式,例如以电子文件和/或电子文档的形式,例如网页、网站等。在实施例中,可扩展标记语言(“XML”)也可以用于指定数字内容和/或指定其格式,例如以电子文件和/或电子文档的形式,例如网页、网站等。当然,HTML和/或XML仅是“标记”语言的示例,该示例被作为非限制性示例提供。此外,HTML和/或XML旨在表示这些语言的现在已知的和/或以后开发的任何版本。同样,所要求保护的主题当然也不旨在限于作为示例提供的示例。
在本专利申请的上下文中,术语“网站”和/或类似术语是指电子地关联以形成其特定集合的网页。此外,在一个示例实施例中,在本专利申请的上下文中,“网页”和/或类似术语是指经由网络可访问的电子文件和/或电子文档,包括通过经由Web指定可访问的统一资源定位符(URL)。如上所述,在一个或多个实施例中,例如,网页可包括使用一种或多种语言(例如包括HTML和/或XML的标记语言)编码(例如,经由计算机指令)的数字内容,尽管所要求保护的主题在这方面不受范围限制。此外,在一个或多个实施例中,例如,应用开发人员可以以JavaScript(或其他编程语言)的形式编写代码(例如计算机指令),例如可由计算设备执行该代码以提供数字内容从而填充适当格式(例如用于特定应用)的电子文档和/或电子文件。术语“JavaScript”和/或旨在表示一种或多种特定编程语言的类似术语的使用旨在表示已识别、现在已知和/或将在以后开发的一种或多种编程语言的任何版本。因此,JavaScript仅仅是示例编程语言。如上所述,所要求保护的主题并不旨在限于示例和/或说明。
在本专利申请的上下文中,术语“条目”、“电子条目”、“文档”、“电子文档”、“内容”、“数字内容”、“项目(item)”和/或类似术语旨在表示物理格式(例如数字信号和/或数字状态格式)的信号和/或状态,例如,如果由诸如数字设备(包括例如计算设备)之类的设备显示、播放、触觉生成等和/或以其他方式执行,则用户可以感知到该信号和/或状态,但是以其他方式可能不一定是人类容易感知的(例如,如果是数字格式的)。同样,在本专利申请的上下文中,以某种形式向用户提供数字内容,以便相对于用户,使得用户能够容易地感知根本的内容本身(例如,以人类可消费的形式呈现的内容,例如听见音频、感知触觉和/或看到图像等)是指“消费”数字内容、数字内容的“消费”、“可消费的”数字内容和/或类似术语。对于一个或多个实施例,例如,电子文档和/或电子文件可以包括由计算和/或联网设备执行或将要执行的标记语言形式的代码(例如计算机指令)的网页。在另一实施例中,电子文档和/或电子文件可以包括网页的部分和/或区域。然而,所要求保护的主题并不旨在这些方面受到限制。
同样,对于一个或多个实施例,电子文档和/或电子文件可以包括多个组件。如前所述,在本专利申请的上下文中,组件是物理的,但不一定是有形的。作为示例,在一个或多个实施例中,参考电子文档和/或电子文件的组件可以包括诸如以物理信号和/或物理状态(例如,能够被物理地显示)的形式的文本。典型地,例如,存储器状态包括有形组件,而物理信号不一定是有形的,尽管信号可能变得(例如,被做成)有形的,例如如果出现在诸如有形的显示器上,这是不常见的。而且,对于一个或多个实施例,例如,参考电子文档和/或电子文件的组件可以包括图形对象,例如图像(例如数字图像)和/或子对象(包括其属性),其同样包括物理信号和/或物理状态(例如,能够被有形地显示)。在实施例中,数字内容可以包括例如文本、图像、音频、视频和/或其他类型的电子文档和/或电子文件,例如包括其部分。
此外,在本专利申请的上下文中,术语参数(例如,一个或多个参数)是指信号样本集的材料描述,例如一个或多个电子文档和/或电子文件,并且以物理信号和/或物理状态(例如存储器状态)的形式而存在。例如,作为示例,一个或多个参数(例如,引用包含图像的电子文档和/或电子文件)可以包括例如图像被捕获的时间,图像捕获设备(例如,相机等)的纬度和经度。在另一示例中,例如,作为示例,与数字内容有关的一个或多个参数(例如包括技术文章(article)的数字内容)可以包括一个或多个作者。所要求保护的主题旨在包含任何格式的有意义的、描述性参数,只要一个或多个参数包括物理信号和/或状态,作为参数示例,其可包括集名称(例如,电子文件和/或电子文档标识符名称)、创建技术、创建目的、创建时间和日期、逻辑路径(如果被存储的话)、编码格式(例如,计算机指令的类型,诸如标记语言)和/或用于一个或多个用途的协议兼容(例如,意味着基本适用和/或基本兼容)的标准和/或规范等。
信号分组通信和/或信号帧通信,也称为信号分组传输和/或信号帧传输(或仅称为“信号分组”或“信号帧”),可以在网络的节点之间进行通信,其中例如,节点可以包括一个或多个网络设备和/或一个或多个计算设备。作为说明性示例,但不限于,节点可以包括一个或多个采用本地网络地址的站点,例如在本地网络地址空间中。同样,诸如网络设备和/或计算设备之类的设备可以与该节点相关联。还应注意,在本专利申请的上下文中,术语“传输”旨在作为可能在多种情况中的任何一种情况下发生的信号通信类型的另一术语。因此,不旨在暗示通信的特定方向性和/或用于“传输”通信的通信路径的特定起始端。例如,在本专利申请的上下文中,仅仅使用术语“中”和“其本身”并不意味着具有关于正在进行通信的一个或多个信号的特定含义,例如,诸如信号是否正在“向”特定设备通信,信号是否正在“从”特定设备通信,和/或关于通信路径的哪一端可以发起通信,例如,诸如以信号传输的“推送型”或以信号传输的“拉取型”方式。在本专利申请的上下文中,通过通信路径的哪一端发起信号传输来区分推送型和/或拉取型信号传输。
因此,作为示例,信号分组和/或帧可以经由通信信道和/或通信路径(例如包括互联网和/或Web的一部分)从站点经由耦合到互联网的访问节点来通信,反之亦然。同样,例如,信号分组和/或帧可以经由网络节点转发到耦合到本地网络的目标站点。例如,经由互联网和/或Web通信的信号分组和/或帧可以经由诸如被“推送”或“拉取”之类的路径进行路由,例如,该路径包括一个或多个网关、服务器等,例如,其可以诸如基本上根据目标和/或目的地地址以及网络节点到目标和/或目的地地址的网络路径的可用性来路由信号分组和/或帧。尽管互联网和/或Web包含可互操作网络的网络,但并非所有这些可互操作网络都必须是公众可用的和/或可访问的。
在特定专利申请的上下文中,诸如用于在网络的设备之间通信的网络协议可以至少部分地基本上根据分层(layered)描述(例如所谓的开放式系统互连(OSI)七层类型的方法和/或描述)来表征。网络计算和/或通信协议(也称为网络协议)是指诸如在网络中的设备之间和/或之中发生的诸如用于通信传输的信令约定集。在本专利申请的上下文中,如果适合于特定用途,则术语“在...之间”和/或类似术语应理解为包括“在...之中”,反之亦然。同样,在本专利申请的上下文中,术语“与…兼容”、“符合…”和/或类似术语应理解为分别包括实质性兼容和/或实质性符合。
网络协议(例如基本上根据上述OSI描述而表征的协议)具有多个层。这些层称为网络堆栈。诸如网络通信之类的各种类型的通信(例如,传输)可以跨各个层发生。网络堆栈中的最低级别层(例如所谓的物理层)可以表征如何经由物理介质(例如双绞铜线、同轴电缆、光纤电缆、无线空中接口、其组合等等)将符号(例如,位和/或字节)作为一个或多个信号(和/或信号样本)进行通信。前进到网络协议堆栈中的较高级别层,附加的操作和/或特征可以经由参与与这些较高级别层处的特定网络协议基本适用和/或基本兼容的通信来获得。例如,网络协议的较高级别层可能会诸如影响设备权限、用户权限等。
在实施例中,网络和/或子网络可以经由信号分组和/或信号帧(例如经由参与的数字设备)进行通信,并且可以与但不限于以下网络协议堆栈中的任何堆栈的现在已知和/或将要开发的版本基本适用和/或基本兼容:ARCNET、可路由协议组(AppleTalk)、ATM、蓝牙、DECnet、以太网、FDDI、帧中继、HIPPI、IEEE 1394、IEEE 802.11、IEEE-488、互联网协议套件、IPX、Myrinet、OSI协议套件、QsNet、RS-232、SPX、系统网络架构、令牌环、USB和/或X.25。网络和/或子网络可以采用例如以下各项的现在已知和/或以后要开发的版本:TCP/IP、UDP、DECnet、NetBEUI、IPX、可路由协议组等等。互联网协议(IP)的版本可以包括IPv4、IPv6和/或其他稍后要开发的版本。
关于与包括通信和/或计算网络的网络有关的方面,无线网络可以将包括客户端设备的设备与网络耦合。无线网络可以采用独立的自组织网络、网状网络、无线LAN(WLAN)网络、蜂窝网络等等。无线网络还可以包括由无线无线电链路等等耦合的终端、网关、路由器等等的系统,其可以自由地、随机地移动和/或任意地组织它们自己,使得网络拓扑有时甚至可以快速地改变。无线网络还可以采用多种网络访问技术,包括长期演进(LTE),WLAN,无线路由器(WR)网状,第二代、第三代或第四代(2G、3G或4G)蜂窝技术等等的版本,无论当前是否已知和/或将在以后开发。网络访问技术可以实现对具有不同程度的移动性的设备(例如计算设备和/或网络设备)的广域覆盖。
网络可以经由无线网络访问技术和/或空中接口(例如,全球移动通信系统(GSM)、通用移动电信系统(UMTS)、通用分组无线电服务(GPRS)、增强型数据GSM环境(EDGE)、3GPP长期演进(LTE)、LTE高级宽带码分多址(WCDMA)、蓝牙、超宽带(UWB)、802.11b/g/n等等)来实现射频和/或其他无线类型的通信。无线网络实际上可以包括任何类型的现在已知和/或将要开发的无线通信机制和/或无线通信协议,通过这些机制和协议可以在设备之间、网络之间、网络内等等之间进行通信,当然包括前述内容。
在一个示例实施例中,如图6所示,系统实施例可以包括局域网(例如,设备604和介质640)和/或另一类型的网络(例如计算和/或通信网络)。因此,出于说明的目的,图6示出了可用于实现一种类型或两种类型的网络的系统的实施例600。网络608可以包括一个或多个网络连接、链路、过程、服务、应用和/或资源,以促进和/或支持通信,例如,诸如在诸如602之类的计算设备与诸如606之类的另一计算设备之间的通信信号的交换,其可以例如包括一个或多个客户端计算设备和/或一个或多个服务器计算设备。通过示例而非限制的方式,网络608可以包括无线和/或有线通信链路、电话和/或电信系统、Wi-Fi网络、Wi-MAX网络、互联网、局域网(LAN)、广域网(WAN)或其任何组合。
在实施例中,图6中的示例设备可以包括例如客户端计算设备和/或服务器计算设备的特征。还应注意的是,术语计算设备通常无论是用作客户端和/或服务器,还是其他方式,至少是指通过通信总线连接的处理器和存储器。
根据所要求保护的主题的实施例可以包括一种在无需进一步的人为干预的情况下在至少一个计算设备上执行计算机指令的方法,其中,至少一个计算设备包括至少一个处理器和至少一个存储器。实施例可以包括:从至少一个计算设备的至少一个存储器获取计算机指令,以在至少一个计算设备的至少一个处理器上执行,在至少一个计算设备的至少一个处理器上执行所获取的计算机指令,并且在至少一个计算设备的至少一个存储器中存储在至少一个计算设备的至少一个处理器上执行所获取的计算机指令的任何结果。在实施例中,要执行的计算机指令可以包括用于压缩神经网络参数的指令,其中执行所获取的指令包括至少部分地通过从神经网络模型的一层或多层中识别和移除表示一个或多个冗余节点的一个或多个参数来对表示神经网络模型的参数集进行压缩,包括从至少一个计算设备的至少一个存储器中检索表示神经网络模型的参数集的一个或多个参数。在实施例中,要执行的计算机指令可以包括用于将表示神经网络模型的经压缩的参数集存储在至少一个计算设备的至少一个存储器中的指令。
在实施例中,一种装置可以包括至少一个计算设备,至少一个计算设备包括至少一个处理器和至少一个存储器,至少一个计算设备在无需进一步的人为干预的情况下在至少一个处理器上执行计算机指令。在实施例中,可以从至少一个存储器中获取要执行的计算机指令以在至少一个处理器上执行,并且至少一个计算设备可以在至少一个计算设备的至少一个存储器中存储将由在至少一个处理器上执行要执行的计算机指令而生成的任何结果。在实施例中,要执行的计算机指令可以包括用于压缩表示神经网络模型的参数集的指令,其中,作为执行结果而要执行的指令可以包括用于从至少一个计算设备的至少一个存储器检索表示神经网络模型的参数集的一个或多个参数的指令,并且对表示神经网络模型的参数集进行处理以从神经网络模型的一层或多层中识别和移除表示一个或多个冗余节点的一个或多个参数。要执行的指令还可以包括用于将表示神经网络模型的经压缩的参数集存储在至少一个计算设备的至少一个存储器中的指令。
在实施例中,表示神经网络模型的参数集可以包括表示神经网络模型的一个或多个卷积层的一个或多个参数。
此外,在实施例中,为了从神经网络模型的一层或多层中识别和移除表示一个或多个冗余节点的一个或多个参数,要执行的指令可以包括用于将表示一个或多个掩模层的一个或多个参数添加到表示神经网络模型的参数集的指令。此外,在实施例中,为了从神经网络模型的一层或多层中识别和移除表示一个或多个冗余节点的一个或多个参数,要执行的指令可以包括用于对表示一个或多个掩模层的一个或多个参数进行训练的指令。
此外,在实施例中,一个或多个掩模层可以单独地包括一个或多个节点,该一个或多个节点单独地包括表示布尔变量的参数和/或表示浮点值的参数。此外,为了对表示一个或多个掩模层的一个或多个参数进行训练,要执行的指令可以包括以下指令:用于至少部分地根据表示一个或多个掩模层的一个或多个节点的浮点值的参数,将值迭代地分配给一个或多个掩模层的一个或多个节点的布尔变量的指令。在实施例中,为了将值迭代地分配给一个或多个掩模层的一个或多个节点的布尔变量,要执行的指令可以包括用于至少部分地根据指定的阈值参数来分配值的指令。此外,在实施例中,为了对表示一个或多个掩模层的一个或多个参数进行训练,要执行的指令还可以包括用于将权重衰减参数迭代地应用于一个或多个掩模层的一个或多个节点的浮点值的指令,其中可以针对连续迭代增加权重衰减参数。
在实施例中,要执行的指令可以包括如下指令:用于将值迭代地分配给一个或多个掩模层的一个或多个节点的布尔变量,并且迭代地应用权重衰减参数,直到对表示一个或多个掩模层的一个或多个参数进行训练将被确定为不足以维持神经网络模型的准确性。
在实施例中,为了从神经网络模型的一层或多层中识别和移除表示一个或多个冗余节点的一个或多个参数,要执行的指令可以包括用于从表示神经网络模型的参数集中移除表示一个或多个掩模层的一个或多个参数的指令。此外,在实施例中,要执行的指令可以包括用于对表示神经网络模型的经压缩的参数集进行重新训练的指令。
现在参考图6,在实施例中,例如,第一设备602和第三设备606能够渲染用于网络设备和/或计算设备的图形用户界面(GUI),使得用户操作者可以参与系统使用。在该图示中,设备604可能潜在地起到类似的功能。同样,在图6中,在实施例中,计算设备602(图中的“第一设备”)可以与计算设备604(图中的“第二设备”)接口,该计算设备例如还可以包括客户端计算设备和/或服务器计算设备的特征。处理器(例如,处理设备)620和存储器622(其可以包括主存储器624和副存储器626)可以例如通过通信总线615的方式进行通信。在本专利申请的上下文中,术语“计算设备”是指具有处理(例如,执行计算)和/或存储数字内容(例如信号和/或状态形式的电子文件、电子文档、测量、文本、图像、视频、音频等等)的能力的系统和/或设备,例如计算装置。因此,在本专利申请的上下文中,计算设备可以包括硬件、软件、固件或其任何组合(除了软件本身)。如图6所示,计算设备604仅是一个示例,并且所要求保护的主题的范围不限于该特定示例。
对于一个或多个实施例,计算设备可以包括例如各种数字电子设备中的任何一种数字电子设备,包括但不限于台式和/或笔记本计算机、高清电视、数字多功能光盘(DVD)和/或其他光盘播放器和/或记录器、游戏机、卫星电视接收器、蜂窝电话、平板设备、可穿戴设备、个人数字助理、移动音频和/或视频播放和/或记录设备、或其任何组合。此外,除非另有明确的说明,否则诸如参考流程图和/或以其他方式描述的过程也可以全部或部分地由计算设备和/或网络设备执行和/或影响。诸如计算设备和/或网络设备之类的设备可以在能力和/或特征方面变化。所要求保护的主题旨在涵盖各种潜在的变化。例如,设备可以包括数字小键盘和/或功能受限的其他显示器,例如用于显示诸如文本的单色液晶显示器(LCD)。然而,与此相反,作为另一示例,例如,支持Web的设备可以包括物理和/或虚拟键盘、大容量存储、一个或多个加速度计、一个或多个陀螺仪、全球定位系统(GPS)和/或其他位置识别类型能力、和/或具有更高功能等级的显示器,例如触敏彩色2D或3D显示器。
如先前所建议的,计算设备和/或网络设备与无线网络之间的通信可以是根据已知和/或要开发的网络协议(包括例如全球移动通信系统(GSM)、增强型数据速率的GSM演进(EDGE)、802.11b/g/n/h等等、和/或全球微波接入互操作性(WiMAX))的。计算设备和/或网络设备还可以具有订户身份模块(SIM)卡,例如,该卡可以包括可存储用户的订购内容和/或还能够存储联系人列表的可拆卸或嵌入式智能卡。例如,用户可以拥有计算设备和/或网络设备,或者可以是用户,例如主要用户。无线网络运营商、有线网络运营商和/或互联网服务提供商(ISP)可以为设备分配地址。例如,地址可以包括国内或国际电话号码,互联网协议(IP)地址和/或一个或多个其他标识符。在其他实施例中,计算和/或通信网络可以体现为有线网络、无线网络或其任何组合。
计算和/或网络设备可以包括和/或可以执行各种现在已知和/或将要开发的操作系统、其派生和/或版本,包括计算机操作系统(例如Windows、iOS、Linux)、移动操作系统(例如iOS、Android、Windows Mobile等等)。计算设备和/或网络设备可以包括和/或可以执行各种可能的应用,例如使得能够与其他设备进行通信的客户端软件应用。例如,一个或多个消息(例如,内容)可以诸如经由现在已知和/或以后要开发的适合于电子邮件、短消息服务(SMS)和/或多媒体消息服务(MMS)的通信的一个或多个协议来通信,包括经由诸如社交网络之类的网络,该网络至少部分地由计算和/或通信网络(包括但不限于Facebook、LinkedIn、Twitter、Flickr和/或Google+,以仅提供一些示例)的一部分形成。例如,计算和/或网络设备还可以包括可执行的计算机指令,以处理和/或传送数字内容,例如文本内容、数字多媒体内容等。计算和/或网络设备还可以包括可执行的计算机指令,以执行各种可能的任务,例如浏览、搜索、播放各种形式的数字内容,包括本地存储和/或流传输的视频、和/或游戏,例如但不限于幻想体育联盟。提供前述内容仅是为了说明所要求保护的主题旨在包括多种可能的特征和/或能力。
在图6中,例如,计算设备602可以以物理状态和/或信号(例如,存储为存储器状态)的形式来提供可执行计算机指令的一个或多个源。例如,计算设备602可以通过网络连接的方式(例如经由网络608)与计算设备604通信。如前所述,连接虽然是物理的,但不一定是有形的。尽管图6的计算设备604示出了各种有形的、物理的组件,但是所要求保护的主题不限于仅具有这些有形的组件的计算设备,因为其他实施方式和/或实施例可以包括可选布置,所述可选布置可以包括附加的有形的组件或更少的有形的组件,例如,该功能在达到相似结果的同时有所不同。相反,仅提供示例作为说明。不旨在将所要求保护的主题的范围限制于说明性示例。
存储器622可以包括任何非暂态存储机制。存储器622可以包括例如主存储器624和副存储器626,可以使用附加的存储器电路、机制或其组合。例如,存储器622可以包括例如随机存取存储器、只读存储器等,例如以一个或多个存储设备和/或系统的形式,例如包括光盘驱动器、磁带驱动器、固态存储器驱动器等的盘驱动器,这里仅举几个示例。
存储器622可用于存储可执行计算机指令的程序。例如,处理器620可以从存储器获取可执行指令,并且继续执行所获取的指令。例如,存储器622还可以包括用于访问可以携带数字内容和/或使数字内容可访问的设备可读介质640的存储器控制器,所述数字内容可以包括例如可由处理器620和/或一些其他设备(作为一个示例,例如能够执行计算机指令的控制器)执行的代码和/或指令。在处理器620的指导下,非暂态存储器(例如存储物理状态(例如,存储器状态)的存储器单元),包括例如可执行计算机指令的程序,可以由处理器620执行该程序并且能够生成将经由网络传送的信号,例如,如先前所描述的。所生成的信号也可以存储在存储器中,这也是先前建议的。
例如,存储器622可以存储诸如与一个或多个用户有关的电子文件和/或电子文档,并且还可以包括计算机可读介质,该计算机可读介质可以携带内容和/或使内容可访问(包括可由处理器620和/或一些其他设备(作为一个示例,例如能够执行计算机指令的控制器)执行的代码和/或指令)。如前所述,术语电子文件和/或术语电子文档在整个文档中用来表示以某种方式关联的所存储的存储器状态集和/或物理信号集,以便由此形成电子文件和/或电子文档。也就是说,其并不意味着隐含地参考例如关于关联的存储器状态集和/或关联的物理信号集而使用的特定语法、格式和/或方法。还应注意,存储器状态的关联例如可以是逻辑意义的,并且不必是有形的物理意义的。因此,在实施例中,尽管电子文件和/或电子文档的信号和/或状态分量将在逻辑上相关联,但是其存储例如可以驻留在有形的物理存储器中的一个或多个不同位置中。
算法描述和/或符号表示是信号处理和/或相关领域的普通技术人员用来向本领域其他技术人员传达其工作实质的技术的示例。在本专利申请的上下文中,算法通常被认为是导致期望结果的操作和/或类似信号处理的自洽序列。在本专利申请的上下文中,操作和/或处理涉及物理量的物理操纵。通常,尽管不是必须的,但是这样的量可以采取能够被存储、传输、组合、比较、处理和/或以其他方式操纵的电和/或磁信号和/或状态的形式,例如,作为构成各种形式的数字内容(例如信号测量、文本、图像、视频、音频等等)的分量的电子信号和/或状态。
主要出于通用的目的,有时已证明方便的是,将这样的物理信号和/或物理状态称为位、值、元素、参数、符号、字符、项、数字、数值、测量、内容等。然而,应当理解,所有这些和/或类似术语均应与适当的物理量相关联,并且仅仅是方便的标签。除非另有明确的说明,否则从前面的讨论中可以明显看出,应当理解,在整个说明书的讨论中,使用诸如“处理”、“计算”、“运算”、“确定”、“建立”、“获得”、“识别”、“选择”、“生成”等之类的术语可以表示诸如专用计算机和/或类似的专用计算和/或网络设备之类的特定装置的动作和/或处理。因此,在本说明书的上下文中,专用计算机和/或类似的专用计算和/或网络设备能够处理、操纵和/或转换信号和/或状态,通常以物理电子和/或磁量的形式,在专用计算机和/或类似的专用计算和/或网络设备的存储器、寄存器和/或其他存储设备、处理设备和/或显示设备内。如上所述,在该特定专利申请的上下文中,因此,术语“特定装置”包括诸如通用计算机之类的通用计算和/或网络设备,一旦其被编程以执行特定功能,例如根据程序软件指令。
在某些情况下,例如,存储器设备的操作(诸如从二进制1到二进制0或反之亦然的状态改变)可以包括诸如物理转换之类的转换。对于特定类型的存储器设备,这种物理转换可以包括将文章物理转换为不同的状态或事物。例如但不限于,对于某些类型的存储器设备,状态的变化可以涉及电荷的累积和/或存储或者所存储的电荷的释放。同样,在其他存储器设备中,状态的变化可以包括物理变化,例如磁取向的转换。同样,物理变化可以包括分子结构的转换,例如从结晶形式到非晶形式或反之亦然。在其他存储器设备中,物理状态的变化可能涉及量子力学现象,例如叠加、纠缠等等,其例如可能涉及量子位(qubit)。前述内容并非旨在详尽列出所有示例,其中在存储器设备中从二进制1到二进制0或反之亦然的状态变化均可包括转换,例如物理但非暂态的转换。相反,前述内容旨在作为说明性示例。
再次参考图6,处理器620可以包括一个或多个电路(例如数字电路),以执行计算步骤和/或处理的至少一部分。通过示例而非限制的方式,处理器620可以包括一个或多个处理器,例如控制器、微处理器、微控制器、专用集成电路、数字信号处理器、可编程逻辑设备、现场可编程门阵列等、或其任何组合。在各种实施方式和/或实施例中,处理器620通常可以基本上根据所获取的可执行计算机指令来执行信号处理,例如以便利用以例如被传送和/或存储在存储器中的方式而生成的信号和/或状态来操纵信号和/或状态、构造信号和/或状态等。
图6还将设备604示为包括可与例如输入/输出设备一起操作的组件632,使得信号和/或状态可在设备(例如,设备604和输入设备和/或设备604和输出设备)之间适当地通信。用户可以利用输入设备,例如计算机鼠标、触控笔、轨迹球、键盘和/或能够接收用户动作和/或运动作为输入信号的任何其他类似设备。同样,用户可以使用输出设备,例如显示器、打印机等,和/或能够为用户提供信号和/或对用户产生刺激(例如视觉刺激、音频刺激和/或其他类似的刺激)的任何其他设备。
在前面的描述中,已经描述了所要求保护的主题的各个方面。出于说明的目的,举例说明了诸如数量、系统和/或配置之类的细节。在其他实例中,省略和/或简化了众所周知的特征,以免模糊所要求保护的主题。尽管已经在本文中示出和/或描述了某些特征,但是本领域技术人员现在将想到许多修改、替换、改变和/或等同物。因此,应理解,所附权利要求旨在涵盖落入所要求保护的主题内的所有修改和/或改变。

Claims (22)

1.一种方法,包括:
利用至少一个计算设备的至少一个处理器,至少部分地通过从神经网络模型的一层或多层中识别和移除表示一个或多个冗余节点的一个或多个参数,来压缩表示所述神经网络模型的参数集,包括从所述至少一个计算设备的至少一个存储器中检索表示所述神经网络模型的所述参数集中的一个或多个参数;以及
将表示所述神经网络模型的经压缩的参数集存储在所述至少一个计算设备的所述至少一个存储器中。
2.根据权利要求1所述的方法,其中,表示所述神经网络模型的所述参数集包括表示所述神经网络模型的一个或多个卷积层的一个或多个参数。
3.根据权利要求1或权利要求2所述的方法,其中,所述从所述神经网络模型的一层或多层中识别和移除表示所述一个或多个冗余节点的一个或多个参数包括:将表示一个或多个掩模层的一个或多个参数添加到表示所述神经网络模型的所述参数集中。
4.根据权利要求3所述的方法,其中,所述从所述神经网络模型的一层或多层中识别和移除表示所述一个或多个冗余节点的一个或多个参数包括:对表示所述一个或多个掩模层的一个或多个参数进行训练。
5.根据权利要求4所述的方法,其中,所述一个或多个掩模层分别包括一个或多个节点,该一个或多个节点分别包括表示布尔变量的参数和表示浮点值的参数。
6.根据权利要求5所述的方法,其中,所述对表示所述一个或多个掩模层的一个或多个参数进行训练包括:至少部分地根据表示所述一个或多个掩模层的一个或多个节点的浮点值的参数来将值迭代地分配给所述一个或多个掩模层的一个或多个节点的布尔变量。
7.根据权利要求6所述的方法,其中,所述将所述值迭代地分配给所述一个或多个掩模层的一个或多个节点的布尔变量还包括:至少部分地根据指定的阈值参数来分配所述值。
8.根据权利要求7所述的方法,其中,所述对表示所述一个或多个掩模层的一个或多个参数进行训练还包括:将权重衰减参数迭代地应用于所述一个或多个掩模层的一个或多个节点的浮点值,其中,所述权重衰减参数针对连续迭代而增加。
9.根据权利要求8所述的方法,其中,所述将所述值迭代地分配给所述一个或多个掩模层的一个或多个节点的布尔变量并且所述迭代地应用所述权重衰减参数继续,直到确定所述对表示所述一个或多个掩模层的一个或多个参数进行训练不足以维持神经网络模型准确性为止。
10.根据权利要求4至9中任一项所述的方法,其中,所述从所述神经网络模型的一层或多层中识别和移除表示所述一个或多个冗余节点的一个或多个参数包括:从表示所述神经网络模型的所述参数集中移除表示所述一个或多个掩模层的一个或多个参数。
11.根据权利要求10所述的方法,还包括对表示所述神经网络模型的经压缩的参数集进行重新训练。
12.一种装置,包括:
至少一个计算设备的至少一个处理器,其中,用于压缩表示神经网络模型的参数集,所述至少一个处理器用于从所述至少一个计算设备的至少一个存储器中检索表示所述神经网络模型的所述参数集中的一个或多个参数,并且用于处理表示所述神经网络模型的所述参数集以从所述神经网络模型的一层或多层中识别和移除表示一个或多个冗余节点的一个或多个参数,所述处理器还用于将表示所述神经网络模型的经压缩的参数集存储在所述至少一个计算设备的所述至少一个存储器中。
13.根据权利要求12所述的装置,其中,表示所述神经网络模型的所述参数集包括表示所述神经网络模型的一个或多个卷积层的一个或多个参数。
14.根据权利要求12或权利要求13所述的装置,其中,为了从所述神经网络模型的一层或多层中识别和移除表示所述一个或多个冗余节点的一个或多个参数,所述处理器用于将表示一个或多个掩模层的一个或多个参数添加到表示所述神经网络模型的所述参数集中。
15.根据权利要求14所述的装置,其中,为了从所述神经网络模型的一层或多层中识别和移除表示所述一个或多个冗余节点的一个或多个参数,所述处理器用于对表示所述一个或多个掩模层的一个或多个参数进行训练。
16.根据权利要求15所述的装置,其中,所述一个或多个掩模层分别包括一个或多个节点,该一个或多个节点分别包括表示布尔变量的参数和表示浮点值的参数。
17.根据权利要求16所述的装置,其中,为了对表示所述一个或多个掩模层的一个或多个参数进行训练,所述处理器用于至少部分地根据表示所述一个或多个掩模层的一个或多个节点的浮点值的参数来将值迭代地分配给所述一个或多个掩模层的一个或多个节点的布尔变量。
18.根据权利要求17所述的装置,其中,为了将所述值迭代地分配给所述一个或多个掩模层的一个或多个节点的布尔变量,所述处理器还用于至少部分地根据指定的阈值参数来分配所述值。
19.根据权利要求18所述的装置,其中,为了对表示所述一个或多个掩模层的一个或多个参数进行训练,所述处理器还用于将权重衰减参数迭代地应用于所述一个或多个掩模层的一个或多个节点的浮点值,其中,所述权重衰减参数针对连续迭代而增加。
20.根据权利要求19所述的装置,其中,所述处理器用于将所述值迭代地分配给所述一个或多个掩模层的一个或多个节点的布尔变量并且迭代地应用所述权重衰减参数,直到确定对表示所述一个或多个掩模层的一个或多个参数进行训练不足以维持神经网络模型准确性为止。
21.根据权利要求15至20中任一项所述的装置,其中,为了从所述神经网络模型的一层或多层中识别和移除表示所述一个或多个冗余节点的一个或多个参数,所述处理器用于从表示所述神经网络模型的所述参数集中移除表示所述一个或多个掩模层的一个或多个参数。
22.根据权利要求21所述的装置,所述处理器还用于对表示所述神经网络模型的经压缩的参数集进行重新训练。
CN201880039752.5A 2017-06-21 2018-06-20 用于压缩神经网络参数的系统和设备 Pending CN111033530A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/629,560 US11321604B2 (en) 2017-06-21 2017-06-21 Systems and devices for compressing neural network parameters
US15/629,560 2017-06-21
PCT/GB2018/051709 WO2018234789A1 (en) 2017-06-21 2018-06-20 SYSTEMS AND DEVICE FOR COMPRESSING NEURAL NETWORK PARAMETERS

Publications (1)

Publication Number Publication Date
CN111033530A true CN111033530A (zh) 2020-04-17

Family

ID=62909560

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880039752.5A Pending CN111033530A (zh) 2017-06-21 2018-06-20 用于压缩神经网络参数的系统和设备

Country Status (3)

Country Link
US (1) US11321604B2 (zh)
CN (1) CN111033530A (zh)
WO (1) WO2018234789A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112132062A (zh) * 2020-09-25 2020-12-25 中南大学 一种基于剪枝压缩神经网络的遥感图像分类方法
CN113487020A (zh) * 2021-07-08 2021-10-08 中国科学院半导体研究所 用于神经网络计算的参差存储结构及神经网络计算方法

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10672663B2 (en) 2016-10-07 2020-06-02 Xcelsis Corporation 3D chip sharing power circuit
US10580735B2 (en) 2016-10-07 2020-03-03 Xcelsis Corporation Stacked IC structure with system level wiring on multiple sides of the IC die
US10580757B2 (en) 2016-10-07 2020-03-03 Xcelsis Corporation Face-to-face mounted IC dies with orthogonal top interconnect layers
US10719762B2 (en) 2017-08-03 2020-07-21 Xcelsis Corporation Three dimensional chip structure implementing machine trained network
WO2018067719A2 (en) 2016-10-07 2018-04-12 Invensas Bonding Technologies, Inc. Direct-bonded native interconnects and active base die
US10672745B2 (en) 2016-10-07 2020-06-02 Xcelsis Corporation 3D processor
US10600691B2 (en) 2016-10-07 2020-03-24 Xcelsis Corporation 3D chip sharing power interconnect layer
US11037330B2 (en) 2017-04-08 2021-06-15 Intel Corporation Low rank matrix compression
US11017295B1 (en) 2017-05-01 2021-05-25 Perceive Corporation Device storing ternary weight parameters for machine-trained network
CN110045960B (zh) * 2018-01-16 2022-02-18 腾讯科技(深圳)有限公司 基于芯片的指令集处理方法、装置及存储介质
CN110058936B (zh) * 2018-01-18 2023-04-18 伊姆西Ip控股有限责任公司 用于确定专用处理资源的资源量的方法、设备和计算机程序产品
US11537870B1 (en) 2018-02-07 2022-12-27 Perceive Corporation Training sparse networks with discrete weight values
CA3033014A1 (en) * 2018-02-07 2019-08-07 Royal Bank Of Canada Robust pruned neural networks via adversarial training
US11049013B1 (en) 2018-04-20 2021-06-29 Perceive Corporation Encoding of weight values stored on neural network inference circuit
US10740434B1 (en) 2018-04-20 2020-08-11 Perceive Corporation Reduced dot product computation circuit
US11210586B1 (en) 2018-04-20 2021-12-28 Perceive Corporation Weight value decoder of neural network inference circuit
US11568227B1 (en) 2018-04-20 2023-01-31 Perceive Corporation Neural network inference circuit read controller with multiple operational modes
US11341397B1 (en) 2018-04-20 2022-05-24 Perceive Corporation Computation of neural network node
US11481612B1 (en) 2018-04-20 2022-10-25 Perceive Corporation Storage of input values across multiple cores of neural network inference circuit
WO2019207524A1 (en) * 2018-04-25 2019-10-31 Seesure Single image completion from retrieved image collections
US11995533B1 (en) 2018-12-05 2024-05-28 Perceive Corporation Executing replicated neural network layers on inference circuit
US11847567B1 (en) 2018-12-05 2023-12-19 Perceive Corporation Loss-aware replication of neural network layers
TWI696961B (zh) * 2018-12-12 2020-06-21 財團法人工業技術研究院 深度神經網路硬體加速器與其操作方法
KR20200089588A (ko) * 2019-01-17 2020-07-27 삼성전자주식회사 전자 장치 및 이의 제어 방법
US20200234129A1 (en) * 2019-01-22 2020-07-23 Nvidia Corporation Techniques for removing masks from pruned neural networks
US10346693B1 (en) * 2019-01-22 2019-07-09 StradVision, Inc. Method and device for attention-based lane detection without post-processing by using lane mask and testing method and testing device using the same
CN111523655B (zh) * 2019-02-03 2024-03-29 上海寒武纪信息科技有限公司 处理装置及方法
US10565471B1 (en) * 2019-03-07 2020-02-18 Capital One Services, Llc Systems and methods for transfer learning of neural networks
CN109978142B (zh) * 2019-03-29 2022-11-29 腾讯科技(深圳)有限公司 神经网络模型的压缩方法和装置
US10929755B2 (en) 2019-04-08 2021-02-23 Advanced New Technologies Co., Ltd. Optimization processing for neural network model
CN110163341A (zh) * 2019-04-08 2019-08-23 阿里巴巴集团控股有限公司 神经网络模型的优化处理方法及装置
CN110766131A (zh) * 2019-05-14 2020-02-07 北京嘀嘀无限科技发展有限公司 数据处理装置、方法和电子设备
US11625585B1 (en) 2019-05-21 2023-04-11 Perceive Corporation Compiler for optimizing filter sparsity for neural network implementation configuration
US11487990B2 (en) 2019-06-14 2022-11-01 International Business Machines Corporation Resistive crossbar arrays with reduced numbers of elements
US11847568B2 (en) 2019-07-30 2023-12-19 Perceive Corporation Quantizing neural networks using shifting and scaling
US20210056220A1 (en) * 2019-08-22 2021-02-25 Mediatek Inc. Method for improving confidentiality protection of neural network model
US11599299B2 (en) 2019-11-19 2023-03-07 Invensas Llc 3D memory circuit
US11687778B2 (en) 2020-01-06 2023-06-27 The Research Foundation For The State University Of New York Fakecatcher: detection of synthetic portrait videos using biological signals

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2501989A1 (en) * 2004-03-23 2005-09-23 Harman Becker Automotive Systems-Wavemakers, Inc. Isolating speech signals utilizing neural networks
US20110077484A1 (en) * 2009-09-30 2011-03-31 Nellcor Puritan Bennett Ireland Systems And Methods For Identifying Non-Corrupted Signal Segments For Use In Determining Physiological Parameters
CN103020579A (zh) * 2011-09-22 2013-04-03 上海银晨智能识别科技有限公司 人脸识别方法及系统、人脸图像的眼镜框去除方法与装置
FI20125807A (fi) * 2012-07-18 2014-01-19 Arm Finland Oy Menetelmä, laite ja järjestelmä datapakettien lähettämiseksi ja vastaanottamiseksi
WO2014169034A1 (en) * 2013-04-12 2014-10-16 Qualcomm Incorporated Defining dynamics of multiple neurons
US20160078361A1 (en) * 2014-09-11 2016-03-17 Amazon Technologies, Inc. Optimized training of linear machine learning models
CN106027300A (zh) * 2016-05-23 2016-10-12 深圳市飞仙智能科技有限公司 一种应用神经网络的智能机器人参数优化系统及方法
CN106169961A (zh) * 2016-09-07 2016-11-30 北京百度网讯科技有限公司 基于人工智能的神经网络的网络参数处理方法及装置
US20170039456A1 (en) * 2015-08-07 2017-02-09 Yahoo! Inc. BOOSTED DEEP CONVOLUTIONAL NEURAL NETWORKS (CNNs)
US20170098153A1 (en) * 2015-10-02 2017-04-06 Baidu Usa Llc Intelligent image captioning

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5734797A (en) * 1996-08-23 1998-03-31 The United States Of America As Represented By The Secretary Of The Navy System and method for determining class discrimination features
US6828920B2 (en) 2001-06-04 2004-12-07 Lockheed Martin Orincon Corporation System and method for classifying vehicles
KR100486735B1 (ko) 2003-02-28 2005-05-03 삼성전자주식회사 최적구획 분류신경망 구성방법과 최적구획 분류신경망을이용한 자동 레이블링방법 및 장치
US7567252B2 (en) 2003-12-09 2009-07-28 Microsoft Corporation Optimizing performance of a graphics processing unit for efficient execution of general matrix operations
US8510242B2 (en) 2007-08-31 2013-08-13 Saudi Arabian Oil Company Artificial neural network models for determining relative permeability of hydrocarbon reservoirs
US8700552B2 (en) 2011-11-28 2014-04-15 Microsoft Corporation Exploiting sparseness in training deep neural networks
US9367519B2 (en) 2013-08-30 2016-06-14 Microsoft Technology Licensing, Llc Sparse matrix data structure
US9606921B2 (en) 2013-09-21 2017-03-28 Oracle International Corporation Granular creation and refresh of columnar data
US9477482B2 (en) 2013-09-26 2016-10-25 Nvidia Corporation System, method, and computer program product for implementing multi-cycle register file bypass
US11423311B2 (en) 2015-06-04 2022-08-23 Samsung Electronics Co., Ltd. Automatic tuning of artificial neural networks
US10460230B2 (en) 2015-06-04 2019-10-29 Samsung Electronics Co., Ltd. Reducing computations in a neural network
US20180082181A1 (en) 2016-05-13 2018-03-22 Samsung Electronics, Co. Ltd. Neural Network Reordering, Weight Compression, and Processing
US10528864B2 (en) 2016-08-11 2020-01-07 Nvidia Corporation Sparse convolutional neural network accelerator
CN108009976A (zh) 2016-10-27 2018-05-08 超威半导体公司 用于图形处理单元(gpu)计算的超级单指令多数据(超级simd)
US11934934B2 (en) 2017-04-17 2024-03-19 Intel Corporation Convolutional neural network optimization mechanism

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2501989A1 (en) * 2004-03-23 2005-09-23 Harman Becker Automotive Systems-Wavemakers, Inc. Isolating speech signals utilizing neural networks
US20110077484A1 (en) * 2009-09-30 2011-03-31 Nellcor Puritan Bennett Ireland Systems And Methods For Identifying Non-Corrupted Signal Segments For Use In Determining Physiological Parameters
CN103020579A (zh) * 2011-09-22 2013-04-03 上海银晨智能识别科技有限公司 人脸识别方法及系统、人脸图像的眼镜框去除方法与装置
FI20125807A (fi) * 2012-07-18 2014-01-19 Arm Finland Oy Menetelmä, laite ja järjestelmä datapakettien lähettämiseksi ja vastaanottamiseksi
WO2014169034A1 (en) * 2013-04-12 2014-10-16 Qualcomm Incorporated Defining dynamics of multiple neurons
US20160078361A1 (en) * 2014-09-11 2016-03-17 Amazon Technologies, Inc. Optimized training of linear machine learning models
US20170039456A1 (en) * 2015-08-07 2017-02-09 Yahoo! Inc. BOOSTED DEEP CONVOLUTIONAL NEURAL NETWORKS (CNNs)
US20170098153A1 (en) * 2015-10-02 2017-04-06 Baidu Usa Llc Intelligent image captioning
CN106027300A (zh) * 2016-05-23 2016-10-12 深圳市飞仙智能科技有限公司 一种应用神经网络的智能机器人参数优化系统及方法
CN106169961A (zh) * 2016-09-07 2016-11-30 北京百度网讯科技有限公司 基于人工智能的神经网络的网络参数处理方法及装置

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
LIJUN WANG: "STCT: Sequentially Training Convolutional Networks for Visual Tracking", pages 4 - 5 *
LINJIE YANG: "Object Detection and Viewpoint Estimation with Auto-masking Neural Network", pages 2 - 4 *
SONG HAN: "DEEP COMPRESSION: COMPRESSING DEEP NEURAL NETWORKS WITH PRUNING, TRAINED QUANTIZATION AND HUFFMAN CODING", pages 2 - 7 *
SONG HAN: "Learning both Weights and connections for Efficient Neural Networks", pages 2 - 4 *
刘光中,李晓峰: "人工神经网络BP算法的改进和结构的自调整", no. 01 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112132062A (zh) * 2020-09-25 2020-12-25 中南大学 一种基于剪枝压缩神经网络的遥感图像分类方法
CN113487020A (zh) * 2021-07-08 2021-10-08 中国科学院半导体研究所 用于神经网络计算的参差存储结构及神经网络计算方法
CN113487020B (zh) * 2021-07-08 2023-10-17 中国科学院半导体研究所 用于神经网络计算的参差存储结构及神经网络计算方法

Also Published As

Publication number Publication date
US20180373975A1 (en) 2018-12-27
US11321604B2 (en) 2022-05-03
WO2018234789A1 (en) 2018-12-27

Similar Documents

Publication Publication Date Title
CN111033530A (zh) 用于压缩神经网络参数的系统和设备
CN111033531B (zh) 用于格式化神经网络参数的系统和设备
US9805305B2 (en) Boosted deep convolutional neural networks (CNNs)
US9607217B2 (en) Generating preference indices for image content
US10102227B2 (en) Image-based faceted system and method
US9852492B2 (en) Face detection
US11188780B2 (en) Image cropping
US10922318B2 (en) Systems and methods for caching queries and query results
US20200380556A1 (en) Multitask behavior prediction with content embedding
WO2019116352A1 (en) Scalable parameter encoding of artificial neural networks obtained via an evolutionary process
US10706081B2 (en) Quality of location-related content
US10984189B2 (en) Search engine content switch
WO2022001887A1 (zh) 用于训练物品编码模型的方法和装置
US10931304B1 (en) Sensor content encoding
US11995532B2 (en) Systems and devices for configuring neural network circuitry
US10685066B2 (en) On-line content sampling
CN113168397B (zh) 分布式存储器系统、设备和方法
US11082493B2 (en) Distributed memory system, device and process
US11874793B2 (en) Broadcast hub for multi-processor arrangement
CN111582482B (zh) 用于生成网络模型信息的方法、装置、设备和介质
US20230042271A1 (en) System, devices and/or processes for designing neural network processing devices
US20230004794A1 (en) Training a sensing system to detect real-world entities using digitally stored entities
US11455268B2 (en) Method, system and device for electronic interconnect delay bound determination
US20230315669A1 (en) Multi-processor arrangement with point of serialization for broadcast communications
Cheng et al. MIAM: Motion information aggregation module for action recognition

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination