CN106575379B - 用于神经网络的改进的定点整型实现方式 - Google Patents
用于神经网络的改进的定点整型实现方式 Download PDFInfo
- Publication number
- CN106575379B CN106575379B CN201480081073.6A CN201480081073A CN106575379B CN 106575379 B CN106575379 B CN 106575379B CN 201480081073 A CN201480081073 A CN 201480081073A CN 106575379 B CN106575379 B CN 106575379B
- Authority
- CN
- China
- Prior art keywords
- node
- score
- weight
- neural network
- correction
- 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.)
- Active
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 231
- 238000012937 correction Methods 0.000 claims abstract description 162
- 238000012545 processing Methods 0.000 claims description 85
- 230000001537 neural effect Effects 0.000 claims description 83
- 239000013598 vector Substances 0.000 claims description 78
- 230000004913 activation Effects 0.000 claims description 57
- 238000000034 method Methods 0.000 claims description 46
- 230000006870 function Effects 0.000 claims description 32
- 238000003860 storage Methods 0.000 claims description 20
- 238000013179 statistical model Methods 0.000 claims description 18
- 239000000284 extract Substances 0.000 claims description 7
- 230000004048 modification Effects 0.000 claims description 6
- 238000012986 modification Methods 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 6
- 230000005611 electricity Effects 0.000 claims description 5
- 238000005516 engineering process Methods 0.000 abstract description 22
- 230000008569 process Effects 0.000 description 15
- 238000004891 communication Methods 0.000 description 14
- YBJHBAHKTGYVGT-ZKWXMUAHSA-N (+)-Biotin Chemical compound N1C(=O)N[C@@H]2[C@H](CCCCC(=O)O)SC[C@@H]21 YBJHBAHKTGYVGT-ZKWXMUAHSA-N 0.000 description 9
- FEPMHVLSLDOMQC-UHFFFAOYSA-N virginiamycin-S1 Natural products CC1OC(=O)C(C=2C=CC=CC=2)NC(=O)C2CC(=O)CCN2C(=O)C(CC=2C=CC=CC=2)N(C)C(=O)C2CCCN2C(=O)C(CC)NC(=O)C1NC(=O)C1=NC=CC=C1O FEPMHVLSLDOMQC-UHFFFAOYSA-N 0.000 description 9
- 238000012549 training Methods 0.000 description 8
- 238000006243 chemical reaction Methods 0.000 description 7
- 230000014509 gene expression Effects 0.000 description 6
- 230000001413 cellular effect Effects 0.000 description 5
- 238000007667 floating Methods 0.000 description 5
- 238000012958 reprocessing Methods 0.000 description 5
- 230000003213 activating effect Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 210000004218 nerve net Anatomy 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 238000013527 convolutional neural network Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 210000002569 neuron Anatomy 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000001228 spectrum Methods 0.000 description 3
- 238000010183 spectrum analysis Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 239000011521 glass Substances 0.000 description 2
- 230000001965 increasing effect Effects 0.000 description 2
- 230000002045 lasting effect Effects 0.000 description 2
- 238000012886 linear function Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000011514 reflex Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 241000208340 Araliaceae Species 0.000 description 1
- 102000001690 Factor VIII Human genes 0.000 description 1
- 108010054218 Factor VIII Proteins 0.000 description 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 1
- 235000003140 Panax quinquefolius Nutrition 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- -1 coaxial cable Substances 0.000 description 1
- 230000019771 cognition Effects 0.000 description 1
- 230000001149 cognitive effect Effects 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000013210 evaluation model Methods 0.000 description 1
- 235000008434 ginseng Nutrition 0.000 description 1
- 210000003127 knee Anatomy 0.000 description 1
- WABPQHHGFIMREM-UHFFFAOYSA-N lead(0) Chemical compound [Pb] WABPQHHGFIMREM-UHFFFAOYSA-N 0.000 description 1
- 208000020442 loss of weight Diseases 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 210000005036 nerve Anatomy 0.000 description 1
- 238000012015 optical character recognition Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000011282 treatment Methods 0.000 description 1
- 210000000707 wrist Anatomy 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/02—Feature extraction for speech recognition; Selection of recognition unit
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/08—Speech classification or search
- G10L15/16—Speech classification or search using artificial neural networks
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Molecular Biology (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Neurology (AREA)
- Multimedia (AREA)
- Nonlinear Science (AREA)
- Acoustics & Sound (AREA)
- Human Computer Interaction (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Image Analysis (AREA)
Abstract
讨论与实现用于语音识别系统的神经网络有关的技术。这些技术可以包括:通过以下步骤来处理神经网络的节点:将节点的分数确定为权重与输入的乘积,使得权重是定点整型值;基于与至少一个权重关联的校正值来将校正应用于分数;以及基于校正后的分数来生成节点的输出。
Description
背景技术
包括深度神经网络和卷积神经网络在内的神经网络可以用于机器学习以及感知和认知系统。这些神经网络可以用在各种实现方式中,例如语音识别、图像处理、光学字符识别等。例如,神经网络可以包括神经元或节点的互连层。每层的输入值包括(例如在输入层)对系统的输入或来自神经网络中的前一层的输出。来自神经网络的输出层的输出值可以包括分类值等,使得对神经网络的输入可以经由神经网络和/或附加处理进行分类。这些神经网络处理和分类可以用于执行用更标准的基于规则的处理系统可能是难以执行或不可能执行的分类或其它任务。
关于实时应用中的当前的神经网络的问题是,评估神经网络所需的计算量大。为了解决该问题,一些当前实现方式将神经网络计算从设备的中央处理单元(CPU)卸载到设备的图形处理单元(GPU)。然而,这种卸载可能导致与其它GPU密集型应用(例如正运行在设备或设备的相机等上的游戏)冲突。此外,密集地使用设备的GPU会增加功率使用率,由此限制移动设备的电池寿命。在其它实现方式中,可以使用单指令多数据(SIMD)平台和/或优化,例如批量惰性求值模型(其可以将计算推迟,直到需要时)。然而,这些实现方式可能使分类精度降低。
因此,现有技术并没有提供实时、高效且精确的神经网络实现方式。随着在例如语音识别、图像处理、光学字符识别等中对利用经由神经网络进行的分类的期望变得更广泛,这些问题可能变得关键。
附图说明
在附图中通过示例的方式而非通过限制的方式示出在此所描述的内容。为了说明的简明性和清楚性,附图所示的要素不一定按比例绘制。例如,为了清楚,一些要素的尺寸可能相对于其它要素被夸大。此外,在认为适当的情况下,在附图之间重复了标号,以指示对应的或类似的要素。在附图中:
图1是用于提供语音识别的示例设置的说明性示图;
图2是用于提供语音识别的示例系统的说明性示图;
图3是示例神经网络的说明性示图;
图4是示出用于确定神经网络层的缩放因子(scaling factor)的示例处理的流程图;
图5是示出用于基于缩放因子来将神经网络层的权重转换为定点整型值并且为一个或多个权重生成校正值的示例处理的流程图;
图6是示例隐藏层节点的说明性示图;
图7是示例输出层节点的说明性示图;
图8是示例输入层节点的说明性示图;
图9是用于从特征矢量生成分类分数的示例系统的说明性示图;
图10是示出用于处理神经网络的节点的示例处理的流程图;
图11是用于提供语音识别的示例系统的说明性示图;
图12是示例系统的说明性示图;以及
图13示出全部根据本公开的至少一些实现方式所布置的示例设备。
具体实施方式
现在参照附图描述一个或多个实施例。虽然讨论特定配置和布置,但是应理解,这仅是为了说明性目的而进行的。本领域技术人员应理解,在不脱离说明书的精神和范围的情况下,可以采用其它配置和布置。对本领域技术人员显而易见的是,也可以在除了在此所描述之外的各种其它系统和应用中采用在此所描述的技术和/或布置。
虽然以下描述阐述了可以在诸如片上系统(SoC)架构的架构中展现的各种实现方式,但是在此所描述的技术和/或布置的实现方式不限于特定架构和/或计算系统,并且可以通过用于类似目的的任何架构和/或计算系统来实现。例如,采用例如多个集成电路(IC)芯片和/或封装的各种架构,和/或各种计算设备和/或消费者电子(CE)设备(例如机顶盒、智能电话等),可以实现在此所描述的技术和/或布置。此外,虽然以下描述可能阐述了大量具体细节,例如系统组件的逻辑实现方式、类型和相互关系、逻辑分区/集成选取等,但是可以在没有这些具体细节的情况下实施所要求的主题。在其它实例中,为了不掩盖在此所公开的内容,可能没有详细示出某些内容,例如控制结构和全软件指令序列。
可以在硬件、固件、软件或其任何组合中实现在此所公开的内容。在此所公开的内容也可以实现为机器可读介质上所存储的指令,这些指令可以由一个或多个处理器读取并执行。计算机可读介质可以包括用于存储或发送机器(例如计算设备)可读形式的信息的任何介质和/或机构。例如,机器可读介质可以包括只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储介质;光存储介质;闪存设备;电、光、声或其它形式的传播信号(例如载波、红外信号、数字信号等),以及其它介质。
说明书中对“一个实现方式”、“实现方式”、“示例实现方式”等的引用指示,所描述的实现方式可以包括特定特征、结构或特性,但是每一实施例可以不一定包括该特定特征、结构或特性。此外,这些短语不一定指代同一实现方式。此外,当结合一个实施例描述特定特征、结构或特性时,应当指出,在本领域技术人员的知识内,可以结合其它实现方式实现这种特征、结构或特征,无论是否在此明确地描述。
在此描述的方法、设备、装置、计算平台和制造品与神经网络有关,并且在一些示例中,与实现用于语音识别的神经网络有关。
如上所述,实时实现神经网络对于用户而言可以是有利的,但是由于计算资源有限以及密集地使用电池资源,上述实现可能是困难的。此外,尝试减少这些资源使用率可能会使分类结果不精确。此外,优化神经网络与经由数据中心主管的服务中的总拥有成本和经由移动设备所实现的应用中的电池寿命可能具有直接相关性。
于在此所讨论的一些实施例中,神经网络权重(例如参数)可以表示为定点整型值,例如8位定点整型值。与浮点型神经网络权重或较大定点整型值神经网络权重(例如16位定点整型值)相比,8位定点整型值可以使所需的存储器传送较少(例如,与16位定点整型值实现方式相比,存储器传送降低一半,并且与32位浮点型表示相比,存储器占区(footprint)可以缩减达大约三分之一至四分之一)以及计算成本降低。例如,由于(例如对于一些或所有神经网络层)可以使用8位定点整型值权重和8位定点整型值输入,而不是16位定点整型值,因此可以降低计算成本。为了使用这些权重和输入值来提供分类精度,可以在神经网络的节点处,对具有对应校正值的权重进行校正,如在此进一步讨论的那样。
在一些示例中,可以通过以下步骤来处理神经网络的节点:将该节点的分数(score)确定为对该节点的输入与关联于该节点的权重的乘积之和,使得权重是定点整型值。在一些示例中,对于包含该节点的神经网络层,权重可以是具有关联的缩放因子的8位有符号定点整型值。此外,在一些示例中,对节点的输入可以是8位无符号定点整型值。节点的分数可以被修改达与该节点关联的偏置,和/或可以基于具有关联的校正值的一个或多个权重来校正。校正值可以存储在校正列表中,并且校正值可以是在实现神经网络之前已经确定的。
例如,可以用关联的缩放因子将神经网络的权重从浮点型值转换为8位有符号定点整型值。可以基于用于特定神经网络层的校正计数的预定限制来确定缩放因子。例如,预定限制可以是该层中的节点数量增加某因子(例如3、4或5等的因子)。于是,缩放因子可以被确定为对神经网络层提供刚好在预定限制以下的最大数量的校正权重的最大缩放因子值。对于那些小于或等于基于比特预算可获得的最大权重值(例如,对于8位有符号定点整型值,缩放因子乘以27)的权重,可以无需校正值。对于那些大于最大权重值的权重(例如,使得它们在最终比特预算中的比特数量多一的位置处(例如,对于8位有符号定点整型值,在第八位处)具有非零的最高有效位),可以将校正值添加到校正列表。例如,如果权重的最高有效位是非零的,则可以将该最高有效位添加在校正列表中作为校正值。此外,出于识别目的,校正列表可以包含节点的索引和用于每个校正值的权重的索引。
如所讨论的那样,可以基于可应用的校正值(例如通过索引关联到节点的那些校正值)来校正分数,以生成该节点的校正后的偏置分数。然后,可以基于校正后的偏置分数来生成节点的输出。例如,对于神经网络的隐藏层,可以将激活函数应用于校正后的偏置分数,以生成输出。例如,激活函数可以是S形(sigmoid)激活函数,并且输出可以是具有8比特用于小数部分(fraction part)的8位无符号定点整型值,小数部分传递到神经网络的下一层的节点。对于神经网络的输出层,例如,节点的输出可以是校正后的偏置分数本身。
所讨论的神经网络可以是任何合适的神经网络,例如人工神经网络、深度神经网络、卷积神经网络等。此外,可以在任何合适的实现方式(例如语音识别、图像处理、光学字符识别等)中提供在此所描述的神经网络。在此所讨论的示例典型地与语音识别实现方式有关,然而,如所讨论的那样,可以在任何合适的系统中提供所描述的神经网络。在语音识别示例中,对神经网络的输入可以包括从语音记录的时间窗口获得的一组特征矢量,并且来自神经网络的输出可以包括分类分数,或者可以输出分类(例如声学分类值),其可以用于识别语音记录的文本式元素。
图1是根据本公开的至少一些实现方式所布置的用于提供语音识别的示例设置100的说明性示图。如图1所示,设置100可以包括用户101,其提供语音103,以便由设备102进行评估。例如,设备102可以提供语音识别,使得语音103可以转译为文本或文本式元素(例如单词、句子、n元语法等)。如图所示,在一些示例中,可以经由设备(例如设备102)实现语音识别系统。如图所示,在一些示例中,设备102可以是智能电话。然而,设备102可以是任何合适的设备(例如计算机、膝上型设备、超级本、平板等)。在一些示例中,设备102可以是可穿戴设备(例如智能手表或智能眼镜等)。在其它示例中,可以经由在设备102远端的系统(例如云语音识别系统中的一个或多个服务器)提供语音识别。在一些示例中,可以经由(设备102的底部上所示的)设备102的麦克风104接收语音103。在其它示例中,可以作为对语音的预先记录等而接收语音103。此外,在一些示例中,文本式元素可以经由设备102的显示器105提供给用户101。在其它示例中,文本式元素可以被保存到设备102的存储器或远程云存储器等。在一些示例中,设备102可以被描述为在此所使用的计算设备。
图2是根据本公开的至少一些实现方式所布置的用于提供语音识别的示例系统200的说明性示图。如图2所示,系统200可以包括麦克风104、特征提取模块202、神经网络204、文本式元素搜索模块206以及统计模型207。如图所示,麦克风104可以从用户101接收语音103。语音103可以由用户103发出,并且麦克风104可以接收语音103(例如,作为空气中的声波)并将语音103转换为电信号(例如数字信号),以生成语音记录201。例如,语音记录201可以存储在存储器(图2中未示出)中。在其它示例中,可以预先记录语音记录201,并且系统200可以经由另一设备接收语音记录201。
特征提取模块202可以从麦克风104或从系统200的存储器接收语音记录201,并且特征提取模块202可以生成与语音103关联的特征矢量203。特征矢量203可以包括表示语音103的任何合适的特征。例如,特征矢量203可以是表示接收到的语音的功率谱的系数,或者其它频谱分析系数或参数。在一些示例中,特征矢量203可以是Mel频率倒谱系数(MFCC)。特征矢量203中的每个特征矢量可以基于语音103(和语音记录201)的时间窗口。例如,时间窗口可以是语音记录201的、滑过语音记录201的某个时间实例(time instance)或记录持续时间(例如10或20毫秒等)。可以由此基于对关联的时间窗口的评估(例如功率谱分析等)来确定特征矢量203中的每个特征矢量。每个特征矢量可以包括任何数量的特征。例如,特征矢量203可以包括10至20个特征、15至30个特征、或者30至50个特征等。在实施例中,每个特征矢量包括23个特征。特征矢量203可以包括任何合适的值。在一些示例中,特征矢量203可以具有从大约-32到大约+32的动态范围(例如,以用于MFCC提取)。其它谱分析方法可以提供不同的动态范围。在一些示例中,特征矢量203的特征是16位定点整型值,如在此进一步讨论的那样。特征提取模块202可以将特征矢量203传送到神经网络204和/或系统200的存储器。
神经网络204可以从特征提取模块202或从存储器接收特征矢量203。神经网络204可以把一特征矢量或一组特征矢量203看作对神经网络204的输入(例如经由预处理器(未示出)或者经由神经网络204本身)。例如,特征矢量组可以包括当前的特征矢量以及该当前的特征矢量之前和/或之后的预定数量的特征矢量。在实施例中,特征矢量组203包括当前的特征矢量、5个在前的特征矢量以及5个在后的特征矢量,共一组11个特征矢量。如所讨论的那样,在一些示例中,每个特征矢量包括23个特征。在一组特征矢量包括均具有23个特征的11个特征矢量的示例中,对神经网络204的输入的数量可以是253个输入(例如23x11个输入)。在这些示例中,神经网络204可以具有包括253个节点或神经元的输入层(例如,输入层节点的数量等于对神经网络204的输入的数量)。该组特征矢量可以在每个时间实例(例如,对于以上所讨论的每个时间窗口)提供给神经网络204。对于每个时间实例,神经网络204可以确定分类分数205。例如,分类分数205可以包括用于语音103(以及语音记录201)的所评估的每个时间实例的分类分数,使得分类分数包括来自神经网络204的输出层的输出。分类分数205可以包括任何合适数量的用于每个时间实例的值,并且分类分数205可以与任何解码或搜索模型关联。在实施例中,分类分数205包括大约5,000个值。在实施例中,分类分数205与统计模型207的状态关联。例如,统计模型207可以包括隐式马尔可夫模型(HMM),与每个时间实例关联的分类分数205均可以与HMM有效状态关联(例如,用在特定系统中的所有HMM模型可以具有总共大约5,000个状态)。在其它示例中,分类分数205可以包括用于关联的HMM模型的所有状态(例如,并非仅有效状态)的分数。例如,有效状态可以包括达到它们的成本小于预定阈值的状态。神经网络204的输出层可以包括与所实现的统计模型的状态(例如HMM状态)一样多的输出。如图所示,神经网络204可以将分类分数205传送到文本式元素搜索模块206和/或系统200的存储器。
如所讨论的那样,在一些示例中,神经网络204可以生成与语音记录201的每个时间实例关联的分类分数。在其它示例中,神经网络204可以仅评估网络在每个时间实例处的一部分。例如,当文本式元素搜索模块206正执行主动搜索时,可以仅评估神经网络204的输出层(并且可以仅提供分类分数205)。在这些示例中,最可能地是,文本式元素搜索模块206可以将活跃/不活跃信号(未示出)提供给神经网络204。在活跃信号期间,神经网络204可以从输出层生成输出,而在不活跃信号期间,神经网络204可以不从输出层生成输出,并且可选地,可以不从神经网络204的其它层生成输出。
继续于图2,文本式元素搜索模块206可以从神经网络204或从存储器接收分类分数205。文本式元素搜索模块206可以对分类分数205进行解码,并且搜索最可能的文本式元素和/或所识别的单词序列匹配。如图所示,在一些示例中,文本式元素搜索模块206可以提供所识别的单词序列208作为输出。所识别的单词序列208可以被存储到系统200的存储器和/或经由显示器105等显示给用户101。在一些示例中,所识别的单词序列208可以被提供给另一模块或软件应用等,以便由模块或软件应用使用。在此所使用的所识别的单词序列208或文本式元素可以包括任何合适的单词、部分单词单元、n元语法、音节、字母等的序列。如图所示,文本式元素搜索模块206可以基于分类分数205(例如声学分数)和统计模型207来生成所识别的单词序列208,分类分数205和统计模型207可以存储在系统200的存储器中,并且可以提供给图2所示的文本式元素搜索模块206。统计模型207可以包括用于单词序列或文本式元素(例如单词、部分单词单元、n元语法、音节、字母等)的任何合适的模型。在实施例中,统计模型207是隐式马尔可夫模型。
如所讨论的那样,文本式元素搜索模块206可以使用分类分数205来确定所识别的单词序列208。例如,文本式元素搜索模块206可以以持续进行的方式使用来自(所讨论的)语音记录201的时间实例的分类分数205来确定所识别的单词序列208。文本式元素搜索模块206可以由此将分类分数205置于时间上下文中,使得可以基于来自随时间正评估的多个时间实例的分类分数205,按各种组合随时间确定所识别的单词序列208,以确定最可能的所识别的单词序列208。
如图2所示,在一些示例中,神经网络204可以实现为语音识别系统的一部分。然而,神经网络204可以实现在任何合适的系统中,例如感知计算系统、机器学习系统、认知计算系统、图像处理系统、或光学字符识别系统等。此外,神经网络204和/或统计模型207可以在经由系统200实现之前,基于训练集等进行预先训练,以确定神经网络的权重和/或偏置。在一些示例中,可以经由系统200本身实现预先训练。此外,如在此进一步讨论的那样,在一些示例中,神经网络204的权重可以转换为具有关联的缩放因子的定点整型值,并且可以在经由系统200实现之前,为一些转换后的权重确定校正值。在一些示例中,可以经由系统200本身执行权重转换和校正值确定。在其它示例中,可以通过单独的系统来执行预先训练、权重转换或校正值确定中的任一个,使得系统200实现所确定的权重、偏置和校正值。
神经网络204的实现方式和文本式元素搜索模块206的实现方式在计算上可能都是密集的。如在此所讨论的那样,可以经由实现定点整型值权重和对应的校正值来减少神经网络204的计算负担。此外,这些技术可以降低系统200的存储器传送负担,节省电池寿命,这在移动设备实现方式中可以是特别有利的。
图3是根据本公开的至少一些实现方式所布置的示例神经网络204的说明性示图。神经网络204可以包括任何合适的神经网络,例如人工神经网络、深度神经网络、卷积神经网络等。如图3所示,神经网络204可以包括输入层301、隐藏层302-305和输出层306。为了清楚地呈现,神经网络204被示为具有三个输入节点、均具有四个节点的隐藏层、以及六个输出节点。如所讨论的那样,输入层301可以包括多个节点。例如,输入层301可以包括数量等于时间窗口的特征矢量中的元素数量乘以为了神经网络进行评估而堆叠的特征矢量数量的节点。在实施例中,特征矢量具有23个元素,并且堆叠11个特征矢量,使得输入层301具有253个节点。在其它示例中,特征矢量可以具有更少或更多的元素,并且可以堆叠更少或更多的特征矢量。例如,输入层301可以具有200至300个节点、300至400个节点、或更多节点。
此外,如在所示示例中那样,神经网络204可以包括四个隐藏层302-305。然而,在其它示例中,神经网络可以包括三个、五个、六个或更多个隐藏层。隐藏层302-305可以包括任何数量的节点。例如,隐藏层302-305可以包括1,500至2,000个节点、2,000至2,500个节点等。在实施例中,神经网络204包括均具有2,048个节点的六个隐藏层。在一些示例中,隐藏层302-305具有相同数量的节点,而在其它示例中,一个或多个层可以具有不同数量的节点。输出层306可以包括任何合适数量的节点,使得分类分数205包括用于比较和/或搜索以确定文本式元素或所识别的单词序列等的值。如所讨论的那样,在一些示例中,可应用的统计模型(例如统计模型207)可以包括隐式马尔可夫模型(HMM),并且分类分数205可以具有数量(对于每个时间实例)等于HMM有效状态数量或可用HMM状态数量的分数。在一些示例中,输出层306可以包括数量等于可用HMM状态数量的节点。例如,输出层306可以包括3,500至4,500个节点、4,500至5,500个节点、或5,500至6,500个节点,或者更多。在实施例中,输出层306包括5,000个节点。在所示示例中,数据如所示地从左到右流动,从输入层301流过隐藏层302-305并且流过输出层306,使得输入层301的输出被输入到隐藏层302,隐藏层302的输出被输入到隐藏层303,依此类推,并且使得输出层305的输出是神经网络204的输出(例如分类分数205)。在一些示例中,例如所示的示例,层中的每一节点可以连接到相邻层中的每一节点(例如,各层可以是完全连接的)。例如,输入层的每一节点可以连接到隐藏层302的每一节点,隐藏层302的每一层可以连接到隐藏层303的每一节点,依此类推。在其它示例中,可以不进行各节点之间的一些连接。
如所讨论的那样,特征矢量203可以被提供给神经网络204,并且神经网络204可以提供分类分数205。此外,分类分数205可以由神经网络204的输出层306来提供。在此进一步讨论与在神经网络204的节点处进行的确定关联的示例性细节(以及用于这种确定的数据类型)。在一些示例中,在已经在训练阶段中训练了神经网络204之后,可以在测试或实现阶段中为语音识别实现神经网络204。这种训练阶段可以确定神经网络204的节点的权重、神经网络204的节点的偏置等。在一些示例中,在神经网络204的交叉熵训练期间(例如,在训练阶段期间),输出层306可以具有柔性化最大值(softmax)激活函数,在实现或测试阶段期间可以省略该softmax激活函数。在一些示例中,在实现期间,来自输出层306的输出在被提供作为分类分数205之前,可以基于类别概率进行缩放。
如所讨论的那样,在训练阶段期间,可以为神经网络204确定权重和/或偏置等。神经网络204的节点的权重可以被确定为任何合适的数字格式或表示(例如32位浮点型表示)。然而,如所讨论的那样,使用这种32位浮点型权重(或具有类似数字表示的权重)来实现神经网络204在计算上可能是密集的,并且可能导致与性能或电池寿命等有关的问题。于在此所讨论的技术中,可以将权重转换为具有关联的缩放因子的定点整型值,并且可以为一些权重确定对应的校正值。
图4是示出根据本公开的至少一些实现方式所布置的用于确定用于神经网络层的缩放因子的示例处理400的流程图。处理400可以包括图4所示的一个或多个操作401-407。处理400可以在实现神经网络204之前由设备(例如设备102)本身来执行,或者处理400可以在经由设备102实现之前被执行(例如,处理400可以于在设备102处实现之前由另一设备来执行)。处理400可以用于确定用于神经网络204的权重的定点整型表示的缩放因子。例如,定点整型值可以具有数据类型,使得定点整型值按缩放因子进行缩放,其中,该缩放因子对于类型或分类的所有定点整型值是相同的。在一些示例中,可以根据需要,为神经网络204的每个层(例如输入层301、隐藏层302-305或输出层306)确定缩放因子,使得用于神经网络204的一个层的缩放因子可以不同于其它层的缩放因子。例如,可以针对神经网络204的、其权重要被表示为定点整型值的每个层重复处理400。在一些示例中,可以为隐藏层302-305和输出层306确定缩放因子,但是可以不为输入层301确定缩放因子。
如图所示,处理400可以开始于开始操作401,并且处理400可以继续于操作402,“为层设定校正限制L和缩放因子S”,在这里,可以为神经网络(例如神经网络204)的层设定校正限制L和缩放因子S。校正限制L可以是对用于将要或可以受校正的层的权重的数量的任何合适的限制(如以下在此进一步讨论的那样)。例如,可以基于经由处理400所确定的缩放因子和权重的定点整型值来表示的权重(例如,权重小于或等于缩放因子乘以权重的定点整型值)可以无需受校正。然而,无法基于经由处理400所确定的缩放因子和权重的定点整型值来表示的权重(例如,权重大于缩放因子乘以权重的定点整型值)可能需要经由校正值来校正。例如,在转换期间具有非零的最高有效位的权重可能需要受校正。校正限制L可以是对于神经网络的当前层可以受校正的权重的最大数量。例如,较大的校正限制可以提供更大的权重粒度,但代价是更大的计算要求,而较低的校正限制可以使计算要求较少,但代价是权重粒度损失。在一些示例中,可以通过将层中的节点的数量乘以3至5之间(含3和5)(例如<3…5>)的因子来确定校正限制L。此外,在操作402,可以设定初始缩放因子。初始缩放因子可以被设定为任何合适的值。在实施例中,初始缩放因子S可以被设定为1。
处理400可以继续于操作403,“将校正计数C确定为当乘以S时不适合定点整型表示的权重的数量”,在这里,校正计数C可以被确定为当乘以S时不适合定点整型表示的、用于层的权重的数量。例如,如所讨论的那样,可以将用于层的权重从32位浮点型值转换为定点整型值。在一些示例中,权重可以被转换为(例如具有缩放因子S的)8位有符号定点整型值。在这些示例中,可以分配7比特来存储定点整型值,使得该值的范围可以是从-127到128。此外,如所讨论的那样,当前的缩放因子S可以被设定为1。在这些示例中,当乘以缩放因子时一定小于或等于128的权重无需校正,而当乘以缩放因子时大于128的任何权重都将需要校正,并在校正计数C中被计数。
处理400可以继续于判断操作404,“C≤L?”,在这里,可以确定校正计数C是否小于或等于校正限制L。如图所示,如果校正计数C并不小于或等于校正限制L,则处理400可以继续于操作405,“增加S”,在这里,缩放因子S可以增加达任何合适的量。例如,缩放因子S可以增加到2倍,使得S=Sx2。在这些示例中,处理400可以继续于操作403,在这里,如所讨论的那样,可以确定校正计数C(继续于以上示例,当乘以缩放因子(现在是2)时一定小于128的权重无需校正)。校正计数C可以根据需要而经由持续的迭代来增加,直到校正计数C大于校正限制L,如关于判断操作404所讨论的那样,并且处理400可以继续于操作406,“降低S”,在这里,缩放因子S可以降低达缩放因子在操作405增加的量。例如,缩放因子S可以在操作406降低一半,使得S=S/2。如图所示,在操作406之后,处理可以结束于结束操作407。
如所讨论的那样,处理400可以提供用于神经网络204的层的缩放因子。此外,处理400可以提供用于神经网络204的层的校正计数C。可以针对可能期望将权重转换为定点整型值的神经网络204的任何层重复处理400。在一些示例中,可以针对神经网络204的所有层重复处理400。在一些示例中,可以针对所有隐藏层302-305并且针对输出层306重复处理400。在这些示例中,可以不将输入层301的权重转换为定点整型值。此外,处理400可以将缩放因子产生为向神经网络层提供刚好小于预定校正限制(例如校正限制L)的校正计数的最大缩放因子值。
图5是示出根据本公开的至少一些实现方式所布置的用于基于缩放因子来将神经网络层的权重转换为定点整型值并且为一个或多个权重生成校正值的示例处理500的流程图。处理500可以包括图5所示的一个或多个操作501-507。如关于处理400所讨论的那样,处理500可以在实现神经网络204之前由设备(例如设备102)本身执行,或者处理500可以在经由设备102实现之前被执行(例如,处理500可以于在设备102处实现之前由另一设备来执行)。处理500可以用于基于缩放因子(例如基于处理400所确定的缩放因子)来确定神经网络204的权重的定点整型值。此外,处理500可以用于生成当乘以缩放因子时不适合定点整型表示的权重的校正值,如关于图4所讨论的。在一些示例中,可以经由校正列表来实现校正值,校正列表可以基于处理500来生成。
在一些示例中,可以根据需要,基于与神经网络204的层(例如输入层301、隐藏层302-305或输出层306之一)关联的缩放因子,使用处理500来确定权重,使得用于神经网络204的一个层的缩放因子可以不同于其它层的缩放因子。例如,可以针对神经网络204的、权重要被表示为定点整型值的每个层重复处理500。此外,处理500所生成的校正列表可以具有数量等于经由处理400所确定的用于层的校正计数的条目。
如图所示,处理500可以开始于开始操作501,并且处理500可以继续于操作502,“基于缩放因子来将权重转换为定点整型值”,在这里,可以将权重(例如神经网络层的第一权重)转换为定点整型值。例如,表示为32位浮点型值的权重可以被转换为8位有符号整型值。此外,处理500可以连同判断操作503“MSB为非零?”一起执行操作502,在操作503,可以关于权重的最高有效位是否为非零的进行确定。在实施例中,可以通过将32位浮点型值乘以缩放因子并且将乘法的结果取整为16位有符号整型值,来首先将32位浮点型值转换为16位有符号整型值。然后,16位有符号整型值可以用于将8位有符号整型值确定为16位有符号整型值以128求模。此外,16位有符号整型值可以用于确定权重的最高有效位是否为非零。例如,如果通过将16位有符号整型值除以128所确定的8位整型值的最高有效位为非零,则最高有效位可以为非零。如果最高有效位为非零,则处理500可以继续于操作504,“确定校正值并且将其添加到校正列表”,在这里,可以为权重确定校正值,并且可以将校正值添加到校正列表。例如,校正值可以是与最高有效位(例如在判断操作503所确定的非零最高有效位)关联的值。此外,可以将用于权重的校正值连同指示校正值与神经网络层中的哪个权重关联的权重索引一起添加到校正列表。例如,索引可以指示当前层的节点和用于权重的对节点的输入(例如,如果节点是层的第i节点并且权重与对第i节点的第j输入关联,则对于校正值,索引可以是i和j)。
处理500可以继续于判断操作505,“所有权重完成?”,在这里,可以关于是否已经转换当前层中的每一权重进行确定。如果否,则处理500可以继续于操作506,“下一权重”,在这里,可以转换下一权重,并且如果需要,则经由操作502和503向下一权重提供校正值,如所讨论的那样。返回操作505,如果已经转换了所有权重,则处理500可以结束于结束操作507。如所讨论的那样,处理500可以将用于神经网络层的权重转换为定点整型值(例如8位有符号定点整型值),并且处理500可以生成用于需要校正值的权重的校正列表。可以针对神经网络(例如神经网络204)的所有层重复处理500。此外,如下的伪码(1)提供用于将权重转换为定点整型值以及用于生成校正值的示例处理。
伪码(1):
如所讨论的那样,可以将权重转换为具有用于一个或多个神经网络层的关联的缩放因子的定点整型值(例如8位有符号定点整型值)。这些权重可以为实现神经网络的系统降低计算复杂度和存储器存取要求。此外,如所讨论的那样,可以在神经网络的节点处实现这些权重。
图6是根据本公开的至少一些实现方式所布置的示例隐藏层节点600的说明性示图。例如,隐藏层节点600可以是神经网络204的隐藏层302-305中的任何节点。如图6所示,隐藏层节点600可以接收输入601(例如x1、x2、x3、……xn)和权重602(例如w1j、w2j、w3j、……wnj),并且隐藏层节点600可以提供输出608(例如oj)。例如,可以从隐藏层节点600的层之前的层中的每一个节点接收相应一个输入601。例如,如果隐藏层节点600是隐藏层303的节点,则可以从隐藏层302的每个节点接收输入601,使得输入xi来自隐藏层302的第i节点。如图所示,可以提供n个输入601,使得前一层(例如,在示例中为隐藏层302)包括n个节点。此外,可以提供权重602,使得每个权重与隐藏层节点600和输入601关联。例如,可以(例如从存储器)接收权重602,使得权重wij与节点j(例如隐藏层节点600)和前一层的第i节点关联。例如,如果隐藏层节点600是隐藏层303的节点,则隐藏层303可以包括m个节点,使得隐藏层节点600是隐藏层303的第j节点,并且m个节点中的每一个节点接收n个输入(例如,隐藏层302具有n个节点)。
此外,如图6所示,隐藏层节点600可以接收偏置604(例如bias(j))。继续于以上示例,偏置604可以是用于隐藏层303的节点j(例如隐藏层节点600)的偏置,使得隐藏层303的每个隐藏层节点被提供有偏置(例如偏置1、2、……j、……m)。此外,隐藏层节点600可以接收一个或多个校正值605(例如校正(c(1...n)j))。校正值605可以与权重602关联,使得校正值605为那些需要校正的权重提供校正值,如在此所讨论的那样。例如,一些权重602可以具有校正值605,而一些权重602可以没有校正值。例如,可以通过评估或访问校正列表来确定校正值605。例如,可以按照关于处理500所讨论的那样生成校正列表。在实施例中,可以由处理器(例如中央处理单元等)访问校正列表。如所讨论的那样,校正列表可以包括索引(例如节点索引和输入索引),使得校正值605可以基于索引来确定并应用。例如,可以为隐藏层节点600获得校正值605,使得具有j的节点索引的所有校正值均被获得,并且可以应用校正值605,使得具有输入索引(例如1、2、……i、……n中的一个或多个)的校正值605可以被应用于适当的输入601。
继续参照图6,隐藏层节点600可以基于输入601和权重602来生成分数603。例如,分数603可以被确定为输入601与权重602的乘积之和,使得分数603可以是输入601的加权和。例如,权重602可以包括具有关联的缩放因子的8位有符号整型值,如在此所讨论的那样,并且输入601可以是具有8比特用于小数部分的8位无符号整型值。例如,前一神经网络层的节点所应用的激活函数(例如,与激活607类似,如以下进一步讨论的)可以将输入601(例如来自前一层的输出)归一化为范围在0至1(含0和1)中的值(例如<0……1>),使得无符号8位无符号整型值的所有位都可以被分配给小数部分。如所讨论的那样,分数603可以被确定为输入601与权重602的乘积之和。在实施例中,分数603可以被确定为或转换为具有224的缩放因子的32位整型值。在一些示例中,可以如公式(1)所示确定分数603:
这里,netj可以是分数(例如分数603),x可以是输入,w可以是权重,i可以是用于对节点的输入的计数器变量,j可以是用于神经网络层的节点的计数器变量。
如图所示,可以基于偏置604来修改分数603。此外,可以将一个或多个校正值605应用于分数603。如图所示,在一些示例中,可以通过偏置604来修改分数603,并且可以应用校正值605。在其它示例中,可以仅应用偏置604或校正值605。此外,可以按任何顺序应用偏置604和校正值605。可以使用任何合适的一种或多种技术将偏置604应用于分数603。例如,偏置604可以与分数603相加,分数603可以乘以偏置604,或者分数603可以基于加偏置函数、阈值化等而被修改达偏置604。在实施例中,偏置604是具有224的缩放因子的32位整型值。例如,具有224的缩放因子的32位整型值可以等效于具有24位小数部分的32位定点整型表示。在一些示例中,偏置604可以被表征为阈值。在一些示例中,可以经由激活函数607来应用偏置604,如以下进一步讨论的那样。可以使用任何合适的一种或多种技术将校正值605应用于分数603。在一些示例中,可以通过将校正值乘以与校正值关联的输入并且将结果与分数603相加,来将校正值605应用于分数603。例如,可以针对校正值605中的每个校正值应用这种技术。如图所示,分数603可以被偏置并校正,以生成校正后的偏置分数606。在一些示例中,校正后的偏置分数606可以是具有24位小数部分的32位定点整型值。如所讨论的那样,在一些示例中,可能尚未应用偏置,并且在这些示例中,校正后的偏置分数660可以被表征为校正后的分数。
如图所示,可以将激活函数607应用于校正后的偏置分数606,以生成输出608。激活函数607可以包括任何合适的激活函数,例如sigmoid函数、阶跃函数、线性函数、柔性化最大值函数等,其中,sigmoid函数是特别有利的。如图所示,输出608可以被提供给神经网络的后一层。如所讨论的那样,在一些示例中,输出608可以被提供给神经网络的后一层的每一节点。如所讨论的那样,在一些示例中,激活函数607可以包括sigmoid函数。在一些示例中,可以如公式(2)所示应用激活函数607:
这里,mnetj可以是修改后的分数(例如校正后的偏置分数606或校正后的分数),可以是sigmoid函数的输出。在一些示例中,sigmoid函数可以提供归一化为范围在0至1(含0和1)(例如<0……1>)的输出(例如输出608)。例如,可以提供归一化的输出608。这种经由sigmoid激活函数的归一化可以使动态范围缩减为所描述的0至1(含0和1)的范围。此外,输出608可以表示为具有8比特用于小数部分的8位无符号整型值,如关于输入601所讨论的那样。这种表示可以允许对8位操作数高效地执行关于公式(1)所描述的乘法(例如,输入601和权重602都可以是8位整型值)。
在一些示例中,可以如下关于公式(3)如所示那样确定输出608:
这里,oj可以是输出(例如输出608),可以是激活函数,mnetj可以是如所讨论的修改后的分数(例如没有应用偏置的校正后的分数),θj可以是偏置(例如偏置604)。如公式(3)所示,输出608可以是修改后的分数(例如校正后的偏置分数606)的函数。
图7是根据本公开的至少一些实现方式所布置的示例输出层节点700的说明性示图。例如,输出层节点700可以是神经网络204的输出层306中的任何节点。如图7所示,输出层节点700可以接收输入701(例如x1、x2、x3、……xn)和权重702(例如w1j、w2j、w3j、……wnj),并且输出层节点700可以提供输出707(例如oj)。例如,可以从隐藏层305(例如输出层306之前的层,请参照图3)中的每个节点接收输入701。例如,可以从隐藏层305的每个节点接收输入701,使得输入xi来自隐藏层305的第i节点,并且隐藏层305包括n个节点。此外,可以提供权重702,使得每个权重与输出层节点700和输入701关联。例如,可以(例如从存储器)接收权重702,使得权重wij与输出层306的节点j(例如输出层节点700)和隐藏层305的第i节点(例如来自隐藏层305的第i输入)关联。
此外,如图所示,输出层节点700可以接收偏置704(例如bias(j))。继续于以上示例,偏置704可以是用于输出层306的节点j(例如输出层节点700)的偏置,使得隐藏层的每个隐藏层节点被提供有偏置(例如偏置1、2、……j、……m)。此外,输出层节点700可以接收一个或多个校正值705(例如校正(c(1...n)j))。校正值705可以与权重702关联,使得校正值705为那些需要校正的权重提供校正值,如在此所讨论的那样。例如,一些权重702可以具有校正值705,而一些权重702可以没有校正值。例如,可以通过评估或访问按照关于处理500所讨论的那样所生成的校正列表来确定校正值705。在实施例中,处理器(例如中央处理单元等)可以访问校正列表,并且校正列表可以包括索引(例如节点索引和输入索引),使得可以基于索引来确定校正值705,如在此所讨论的那样。
如图7所示,输出层节点700可以基于输入701和权重702来生成分数703。例如,分数703可以被确定为输入701与权重702的乘积之和。例如,权重702可以包括具有在此所讨论的关联的缩放因子的8位有符号整型值,并且输入701可以是具有8比特用于小数部分的8位无符号整型值。例如,输入701可以是隐藏层305的节点(例如在此所讨论的隐藏层节点600)所应用的激活函数的输出。例如,输入701可以归一化为范围在0至1(含0和1)中的值(例如<0……1>),使得无符号8位无符号整型值的所有位都可以被分配给小数部分。在实施例中,分数703可以被确定为或转换为具有224的缩放因子的32位整型值。在一些示例中,可以按以上公式(1)所示地确定分数703。
继续于图7,可以基于偏置704来修改分数703。此外,可以将一个或多个校正值705应用于分数703。在一些示例中,可以修改分数703达偏置704并可以应用校正值705,而在其它示例中,可以仅应用偏置704或校正值705。此外,可以按任何顺序应用偏置704和校正值705。可以使用任何合适的一种或多种技术(例如关于隐藏层节点600的偏置604所讨论的技术)将偏置704应用于分数703。在实施例中,偏置704是具有224的缩放因子的32位整型值,并且偏置704与分数703相加。可以使用任何合适的一种或多种技术将校正值705应用于分数703。在一些示例中,可以通过将校正值乘以与校正值关联的输入并且将结果与分数703相加,来将校正值705应用于分数703。例如,可以针对校正值705中的每个校正值应用这种技术。如图所示,分数703可以被偏置并校正,以生成校正后的偏置分数706。在一些示例中,校正后的偏置分数706可以是具有24位小数部分的32位定点整型值。如图所示,校正后的偏置分数706可以被提供作为输出层节点700的输出。例如,可以不将激活函数应用于校正后的偏置分数706。如关于图3所示,输出707可以是分类分数205的一部分。如所讨论的那样,在一些示例中,输出707可以与统计模型的状态(例如HMM状态)关联。
图8是根据本公开的至少一些实现方式所布置的示例输入层节点800的说明性示图。例如,输入层节点800可以是神经网络204的输入层301中的任何节点。如图8所示,输入层节点800可以接收输入801(例如x1、x2、x3、……xn)和权重802(例如w1j、w2j、w3j、……wnj),并且输入层节点800可以提供输出805(例如oj)。例如,输入801可以接收自特征提取模块202(请参照图2),并且可以包括在此所讨论的堆叠式特征矢量的特征。例如,输入xj可以是堆叠式特征矢量的第i特征。此外,可以提供权重802,使得每个权重与输入层节点800和输入801关联。例如,可以(例如从存储器)接收权重802,使得权重wij与输入层301的节点j(例如输入层节点800)和堆叠式特征矢量的第i输入(例如特征)关联。
如图8所示,在一些示例中,在输入层节点800处可以不应用校正值或偏置。例如,输入801可以是16位有符号或无符号整型值,并且权重802也可以是16位有符号或无符号整型值。在其它示例中,类似于关于图6和图7所描述地应用偏置和/或校正值。如图所示,输入层节点800可以基于输入801和权重802来生成分数803。例如,分数803可以被确定为输入801与权重802的乘积之和。在实施例中,分数803可以被确定为或转换为具有224的缩放因子的32位整型值。在一些示例中,可以按以上公式(1)所示地确定分数803。如图所示,可以将激活函数804应用于分数803,以生成输出805。激活函数804可以包括在此所描述的任何合适的激活函数,例如sigmoid函数、阶跃函数、线性函数、柔性化最大值函数等,其中sigmoid函数是特别有利的。如图所示,输出805可以被提供给神经网络的后一层(例如第一隐藏层(例如隐藏层302))。如所讨论的那样,在一些示例中,输出805可以被提供给神经网络的后一层的每一节点。如所讨论的那样,在一些示例中,激活函数804可以包括sigmoid函数,可以按以上公式(2)所示地应用sigmoid函数。如所讨论的那样,在一些示例中,sigmoid函数可以提供归一化到0至1的范围(含0和1)(例如<0……1>)的输出(例如输出805),其可以被表示为具有8比特用于小数部分的8位无符号整型值。例如,这种表示可以允许对在隐藏层302处的8位操作数高效地执行关于公式(1)所描述的乘法。
如在此所讨论的那样,神经网络可以从特征矢量(例如输入)生成分类分数(例如输出)。可以经由任何合适的计算系统(例如手持设备或(例如经由远程服务器的)云环境)来实现在此所讨论的神经网络。此外,可以经由同一处理设备(例如中央处理单元、图形处理单元、信号处理器等)来实现整个神经网络,或者可以经由不同处理设备来实现神经网络的各个部分。
图9是根据本公开的至少一些实现方式所布置的用于从特征矢量203生成分类分数205的示例系统900的说明性示图。如图9所示,系统900可以包括具有节点评分模块902、分数偏置模块903、分数校正模块904、输出/激活函数模块905的神经网络模块901、以及神经网络权重、偏置和校正906。在一些示例中,可以经由中央处理单元或其它处理器来实现神经网络模块901,如在此进一步讨论的那样。如所讨论的那样,在一些示例中,可以经由不同的处理器来实现神经网络模块901的一些或所有模块。
如图所示,神经网络模块901可以(例如经由特征提取模块203)接收特征矢量203以及可以存储在系统900的存储器中的神经网络权重、偏置和校正906。例如,一组特征矢量203可以向经由神经网络模块901所实现的神经网络的输入层提供输入。此外,经由神经网络模块901所实现的神经网络可以包括任何数量的隐藏层和输出层,如在此所讨论的那样。节点评分模块902可以确定用于神经网络的层的节点分数。例如,节点评分模块902可以确定分数603、703和803以及用于神经网络的其余节点的分数。在一些示例中,节点评分模块902可以使用单指令多数据(SIMD)指令来确定分数。在一些示例中,节点评分模块902所生成的分数可以是如所讨论的具有224的缩放因子的32位整型值。在其它示例中,分数可以经由转换模块(未示出)转换为具有224的缩放因子的32位整型值。
分数偏置模块903和/或分数校正模块904可以从节点评分模块902接收分数。分数偏置模块903可以将偏置(例如偏置604、704)应用于经由节点评分模块902所生成的分数。例如,分数偏置模块903可以经由神经网络权重、偏置和校正906获得用于节点的偏置,并且分数偏置模块903可以使用在此所讨论的任何技术来应用偏置。类似地,分数校正模块904可以经由神经网络权重、偏置和校正906获得校正列表,分数校正模块904可以基于校正列表的索引来确定用于节点的校正值,并且应用校正值以确定校正后的偏置分数,例如校正后的偏置分数606和706以及用于神经网络的其它节点的校正后的偏置分数。
输出/激活函数模块905可以接收(例如用于隐藏层节点和输出层节点的)校正后的偏置分数或(例如用于输入层节点的)一组特征矢量,并且输出/激活函数模块905可以基于接收到的校正后的偏置分数或分数来生成输出。例如,对于隐藏层节点和输入层节点,输出/激活函数模块905可以实现在此所讨论的激活函数,以生成输出(例如8位无符号整型值)。在实施例中,可以对用于隐藏层节点(例如隐藏层节点600)的校正后的偏置分数(例如校正后的偏置分数606)应用激活函数(例如激活函数607),并且可以对用于输入层节点(例如输入层节点800)的分数(例如分数803)应用激活函数(例如激活函数804)。此外,对于输出层节点(例如输出层节点700),输出/激活函数模块905可以提供校正后的偏置分数(例如校正后的偏置分数706)作为节点输出(例如,而不应用激活函数)。
如图所示,神经网络901可以(例如基于输出节点的输出来)提供分类分数205。在一些示例中,分类分数可以在提供以进一步处理之前经由归一化模块(未示出)进行归一化。如所讨论的那样,节点评分模块902可以为神经网络的所有层提供节点评分。类似地,对于神经网络的所有层,分数偏置模块903可以提供偏置,分数校正模块904可以(例如经由校正值)提供校正,并且输出/激活函数模块905可以提供输出。可以并行和/或串行地执行这种处理,以提供神经网络的高效实现方式。
图10是示出根据本公开的至少一些实现方式所布置的用于处理神经网络的节点的示例处理1000的流程图。处理1000可以包括图10所示的一个或多个操作1001-1004。处理1000可以形成神经网络处理(例如语音识别处理)的至少一部分。作为非限定性示例,处理1000可以形成对所获得的语音记录(例如在此所讨论的系统100、200或900所承担的语音记录201)进行的自动语音识别处理的至少一部分。此外,在此将参照图11的系统1100描述处理1000。
图11是根据本公开的至少一些实现方式所布置的用于提供语音识别的示例系统1100的说明性示图。如图11所示,系统1100可以包括一个或多个中央处理单元(CPU)1101、图形处理单元(GPU)1102、系统存储器1103和麦克风104。同样如图所示,CPU 1101可以包括特征提取模块202、神经网络模块901和文本式元素搜索模块206。此外,神经网络模块901可以包括节点评分模块902、分数偏置模块903、分数校正模块904和输出/激活函数模块905。如图所示,在系统1100的示例中,系统存储器1103可以存储神经网络权重、偏置和校正906、以及统计模型207。此外,系统存储器1103可以存储在此所讨论的任何其它数据(例如语音记录、特征矢量、分类分数、所识别的单词序列等)。麦克风104可以包括可以接收语音103(例如,作为空气中的声波,请参照图1)并且将语音103转换为电信号(例如数字信号)的任何合适的一个或多个设备。在实施例中,麦克风将语音103转换为语音记录201。在实施例中,语音记录201可以存储在系统存储器中,以便由所讨论的CPU 1101访问。
CPU 1101和图形处理单元1102可以包括可以提供在此所讨论的操作的任何数量和类型的处理单元。可以经由软件或硬件或其组合来实现这些操作。例如,图形处理单元1102可以包括专用于操控从系统存储器1103或专用图形存储器(未示出)获得的数据的电路。此外,中央处理单元1101可以包括可以提供用于系统1100的控制和其它高级功能以及在此所讨论的操作的任何数量和类型的处理单元或模块。系统存储器1103可以是任何类型的存储器,例如易失性存储器(例如静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)等)或者非易失性存储器(例如闪存等)等。在非限定性示例中,可以通过缓存存储器实现系统存储器1103。如图所示,在实施例中,可以经由CPU 1101实现特征提取模块202、神经网络模块901和文本式元素搜索模块206。在一些示例中,可以通过经由CPU 1101实现的软件提供特征提取模块202、神经网络模块901和文本式元素搜索模块206。在其它示例中,可以经由数字信号处理器等实现特征提取模块202、神经网络模块901、文本式元素搜索模块206、或神经网络模块901的一个或多个模块。在另一实施例中,可以经由图形处理单元1102的执行单元(EU)实现特征提取模块202、神经网络模块901、文本式元素搜索模块206、或神经网络模块901的一个或多个模块。EU可以包括例如可编程逻辑或电路(例如可以提供广泛的可编程逻辑功能的一个或多个逻辑内核)。
返回讨论图10,处理1000可以开始于操作1001,“将用于神经网络的节点的分数确定为节点输入与节点权重的乘积之和”,在这里,用于神经网络的节点的分数可以被确定为对节点的输入与关联于节点的权重的乘积之和。例如,可以通过经由CPU 1101实现的节点评分模块902分别为隐藏层节点600或输出层节点700确定分数603或分数703。在一些示例中,权重是定点整型值。例如,权重可以是具有关联的缩放因子的8位有符号定点整型值。在一些示例中,输入是8位无符号定点整型值。
例如,用于神经网络层的缩放因子可以是为神经网络层提供小于预定校正限制的校正计数的最大缩放因子值。在一些示例中,可以经由通过CPU 1101实现的缩放因子确定模块(未示出)确定缩放因子。此外,可以通过将浮点型值神经网络层权重转换为权重(例如8位有符号定点整型值)来确定权重。例如,可以经由通过CPU 1101实现的权重转换模块(未示出)确定权重。在一些示例中,与转换权重结合地,可以为与8位无符号定点整型神经网络层权重关联的、具有非零最高有效位的权重生成校正列表,校正列表包含用于权重的校正值以及用于校正值的关联节点和权重索引。例如,可以经由通过CPU 1101实现的校正列表生成模块(未示出)生成校正列表。
处理1000可以继续于操作1002,“基于节点偏置来修改分数”,在这里,可以基于节点偏置来修改分数。例如,可以通过经由CPU 1101实现的分数偏置模块903分别基于节点偏置604或偏置704来修改分数603或分数703。例如,节点偏置可以是具有224的缩放因子的32位整型值,其可以修改也是具有224的缩放因子的32位整型值的分数。
处理1000可以继续于操作1003,“基于与节点权重关联的校正值来将一个或多个校正应用于分数”,在这里,可以基于具有关联的校正值的(例如节点的权重中的)至少一个权重来对分数进行至少一个校正。例如,可以通过经由CPU 1101实现的分数校正模块904分别基于校正值605或校正值705来校正分数603或分数703。例如,可以评估与包括节点的神经网络层关联的校正列表,以确定校正值。例如,校正列表可以具有用于神经网络层的神经网络层权重的校正值(和索引)。在一些示例中,校正列表可以包括用于一个神经网络层的神经网络层权重,并且在其它示例中,校正列表可以包括用于具有校正值的所有神经网络层(例如隐藏层和输出层)的神经网络层权重。
如图所示,在一些示例中,可以将偏置应用于分数,然后,可以应用一个或多个校正。在其它示例中,可以在偏置之前应用一个或多个校正,在另外其它示例中,可以一起应用一个或多个校正和偏置。在任一情况下,都可以生成校正后的偏置分数。例如,校正后的偏置分数可以是32位定点整型值。
处理1000可以继续于操作1004,“基于校正后的偏置分数来生成节点输出”,在这里,可以基于校正后的偏置分数来生成节点输出。例如,可以通过经由CPU 1101实现的输出/激活函数模块905分别基于校正后的偏置分数606或校正后的偏置分数706来生成输出608或输出707。例如,输出/激活函数模块905可以通过将激活函数607应用于校正后的偏置分数606来生成隐藏层节点600的输出608。例如,激活函数可以是sigmoid函数,并且输出可以是8位无符号定点整型值。在另一示例中,输出/激活函数模块905可以通过提供校正后的偏置分数706作为输出707,来生成输出层节点700的输出707。
可以针对神经网络的任何数量的节点和/或针对任何数量的对神经网络的输入,串行地或并行地重复处理1000任何次数。处理1000可以提供经由设备(例如在此所讨论的设备102)或经由作为云计算平台等的一部分的服务器在神经网络的节点处的处理。此外,如在此所讨论的那样,在这种实时的节点处理之前,在一些示例中,经由单独的系统,可以预先训练神经网络的各个组件,可以确定偏置和/或权重,可以将权重转换为定点整型值,可以确定校正列表和/或校正值等。如所讨论的那样,在一些示例中,可以经由CPU 1101实现处理1000。在其它示例中,可以经由专用处理器(例如协处理器等)实现处理1000(以及关联模块)。
此外,如所讨论的那样,处理1000可以实现为语音识别系统的一部分。例如,可以经由系统1100的麦克风104和/或有关电路将语音103转换为语音记录201。可以通过经由CPU 1101实现的特征提取模块202,基于语音记录201来确定或提取特征矢量203。在一些示例中,可以经由系统1100的数字信号处理器(未示出)实现特征提取模块202。例如,特征矢量203均可以与语音记录201的时间窗口关联。特征矢量203(或一组特征矢量)可以被提供作为对神经网络模块901的输入,并且神经网络模块901可以实现神经网络204等,以生成在此所讨论的分类分数205或输出分类,使得分类分数基于来自节点的输出(例如输出608或输出707等)。基于分类分数205,可以确定文本式元素序列(例如所识别的单词序列208)。例如,经由CPU 1101实现的文本式元素搜索模块206可以通过将分类分数205与经由系统存储器1103所获得的统计模型207进行比较,来确定所识别的单词序列208。
虽然在此所讨论的示例处理的实现方式可以包括按所示的顺序进行所示的所有操作,但是本公开不限于此,并且在各个示例中,在此的示例处理的实现方式可以包括仅所示操作的子集、按与所示的不同顺序执行的操作、或附加操作。
此外,可以响应于一个或多个计算机程序产品所提供的指令而进行在此所讨论的一个或多个操作。这些程序产品可以包括提供指令的信号承载介质,所述指令当由例如处理器执行时可以提供在此所描述的功能。可以通过任何形式的一个或多个机器可读介质来提供计算机程序产品。因此,例如,包括一个或多个图形处理单元或处理器内核的处理器可以响应于由一个或多个机器可读介质传送到处理器的程序代码和/或指令或指令集而进行在此的示例处理的一个或多个方框。通常,机器可读介质可以通过程序代码和/或指令或指令集的形式来传送软件,这些程序代码和/或指令或指令集可以使在此所描述的任何设备和/或系统实现在此所讨论的系统100、200、900或1100或任何其它模块或组件的至少一部分。
如在此所描述的任何实现方式中所使用的那样,术语“模块”指代被配置为提供在此所描述的功能的软件逻辑、固件逻辑、硬件逻辑和/或电路的任何组合。软件可以体现为软件封装、代码和/或指令集或指令,并且在此所描述的任何实现方式中所使用的“硬件”可以单独地或组合地包括例如硬布线电路、可编程电路、状态机电路、固定功能电路、执行单元电路、和/或存储由可编程电路执行的指令的固件。模块可以共同地或单独地体现为形成更大系统(例如集成电路(IC)、片上系统(SoC)等)的一部分的电路。
如所讨论的那样,经由语音识别系统所实现的在此所讨论的技术可以提供在计算上不太密集并且需要较少存储器移动的技术。例如,神经网络中计算量最显著部分可能是将神经网络参数传送到计算引擎以及对每个节点或神经元的加权输入求和。在此所讨论的技术提供8位整型值(例如8位有符号整型值)加权参数,其需要较少的存储器存储。例如,8位有符号整型值加权参数可以被存储为相对小的矩阵,并且使用SIMD指令进行高效地计算。此外,数量有限的具有非零最高有效位的神经网络权重参数可以被存储为校正值或参数的列表,这些校正值或参数可以使用标量指令来独立地确定。这些校正值或参数可以确保分类精度高。
如下的伪码(2)提供用于确定在此所讨论的校正后的偏置分数的示例处理。
例如,在此所讨论的技术可以组合以下优点:8位表示(例如小存储大小、小存储器带宽、用SIMD指令进行高效计算);以及分类精度高,其可能原本需要更多位的表示来实现。例如,在语音识别中,单词错误率(WER)是常用的评估度量。它表示语音识别器所犯的错误的数量相对于测试数据库中所说出的单词的数量。较小的WER对应于较高的语音识别精度。
在示例实现方式中,对一组包含具有200,000个单词的词汇和三元语法语言模型的短文本消息听写的849个话语进行单词错误率(例如,越低越好)比较。表1示出关于各个系统的单词错误率的结果。如图所示,表1包含关于示例系统的WER。
表1:示例结果神经网络
如表1所示,具有在此所描述的带校正值的8位整型权重的神经网络得到了可与使用表示为16位整型或32位浮点型的权重相比的语音识别精度等级。可以甚至使用数量相对少的校正参数来获得这些结果。在一些实现方式中,与8位整型值权重表示相比,在此所讨论的参数表示可能(例如对于给定的神经网络)在总大小上增加少于4%,但分类精度显著更好。
图12是根据本公开的至少一些实现方式所布置的示例系统1200的说明性示图。在各个实现方式中,系统1200可以是移动系统,但是系统1200不限于该上下文。例如,系统1200可以合并到个人计算机(PC)、膝上型计算机、超级膝上型计算机、手写板、触摸板、便携式计算机、手持计算机、掌上型计算机、个人数字助理(PDA)、蜂窝电话、组合蜂窝电话/PDA、电视、智能设备(例如智能电话、智能手写板、智能手表、智能眼镜或智能电视)、移动互联网设备(MID)、传信设备、数据通信设备、相机(例如傻瓜相机、超级变焦相机、数字单反(DSLR)相机)等中。
在各个实现方式中,系统1200包括平台1202,其耦合到显示器1220。平台1202可以从内容设备(例如内容服务设备1230或内容传送设备1240或其它类似内容源)接收内容。如图所示,在一些示例中,系统1200可以包括经由平台1202实现的麦克风104。平台1202可以经由麦克风104接收语音(例如语音103),如在此所讨论的那样。包括一个或多个导航特征的导航控制器1250可以用于与例如平台1202和/或显示器1220进行交互。以下更详细描述这些组件中的每一个。
在各个实现方式中,平台1202可以包括芯片组1205、处理器1210、存储器1212、天线1213、存储1214、图形子系统1215、应用1216和/或无线电装置1218的任何组合。芯片组1205可以提供处理器1210、存储器1212、存储1214、图形子系统1215、应用1216和/或无线电装置1218之间的相互通信。例如,芯片组1205可以包括能够提供与存储1214的相互通信的存储适配器(未描绘)。
处理器1210可以实现为复杂指令集计算机(CISC)或精简指令集计算机(RISC)处理器、x86指令集兼容处理器、多核或任何其它微处理器,或者中央处理单元(CPU)。在各个实现方式中,处理器1210可以是双核处理器、双核移动处理器等。
存储器1212可以实现为易失性存储器设备,例如但不限于随机存取存储器(RAM)、动态随机存取存储器(DRAM)或静态RAM(SRAM)。
存储1214可以实现为非易失性存储设备,例如但不限于磁盘驱动器、光盘驱动器、磁带驱动器、内部存储设备、附连存储设备、闪存、电池备份SDRAM(同步DRAM)和/或网络可存取存储设备。在各个实现方式中,例如,存储1214可以包括用于当包括多个硬盘驱动器时针对有价值的数字媒体增加存储性能增强保护的技术。
图形子系统1215可以执行对图像(例如静止图像或视频)的处理,以便进行显示。例如,图形子系统1215可以是图形处理单元(GPU)或视觉处理单元(VPU)。模拟或数字接口可以用于以通信方式耦合图形子系统1215和显示器1220。例如,接口可以是高清晰度多媒体接口、显示端口、无线HDMI和/或无线HD顺应技术中的任一种。图形子系统1215可以集成到处理器1210或芯片组1205中。在一些实现方式中,图形子系统1215可以是以通信方式耦合到芯片组1205的单机设备。
在此所描述的图形和/或视频处理技术可以实现于各种硬件架构中。例如,图形和/或视频功能可以集成在芯片组内。替代地,可以使用分立式图形和/或视频处理器。作为又一实现方式,可以通过通用处理器(包括多核处理器)提供图形和/或视频功能。在其它实施例中,可以在消费者电子设备中实现这些功能。
无线电装置1218可以包括能够使用各种合适的无线通信技术来发送和接收信号的一个或多个无线电装置。这些技术可以涉及跨一个或多个无线网络的通信。示例无线网络包括(但不限于)无线局域网(WLAN)、无线个域网(WPAN)、无线城域网(WMAN)、蜂窝网络和卫星网络。在跨这些网络的通信中,无线电装置1218可以根据任何版本的一个或多个适用标准来操作。
在各个实现方式中,显示器1220可以包括任何电视类型的监视器或显示器。显示器1220可以包括例如计算机显示屏、触摸屏显示器、视频监视器、类电视的设备、和/或电视。显示器1220可以是数字的和/或模拟的。在各个实现方式中,显示器1220可以是全息显示器。此外,显示器1220可以是可以接收视觉投影的透明表面。这些投影可以传送各种形式的信息、图像和/或对象。例如,这些投影可以是用于移动增强现实(MAR)应用的视觉覆盖。在一个或多个软件应用1216的控制下,平台1202可以在显示器1220上显示用户界面1222。
在各个实现方式中,例如,内容服务设备1230可以由任何国家的、国际的和/或独立的服务来主管,并且因此可经由互联网对平台1202进行访问。内容服务设备1230可以耦合到平台1202和/或显示器1220。平台1202和/或内容服务设备1230可以耦合到网络1260,以将媒体信息传递(例如,发送和/或接收)出入网络1260。内容传送设备1240也可以耦合到平台1202和/或显示器1220。
在各个实现方式中,内容服务设备1230可以包括有线电视盒、个人计算机、网络、电话、启用互联网的设备或能够传送数字信息和/或内容的电器、以及能够经由网络1260或以直接方式在内容提供商与平台1202和/显示器1220之间单向地或双向地传递内容的任何其它类似设备。应理解,内容可以经由网络1260单向地和/或双向地传递出入系统1200中的任何一个组件以及内容提供商。内容的示例可以包括任何媒体信息,包括例如视频信息、音乐信息、医疗信息和游戏信息等。
内容服务设备1230可以接收内容,例如包含媒体信息、数字信息和/或其它内容的有线电视节目。内容提供商的示例可以包括任何有线或卫星电视内容提供商,或无线电内容提供商,或互联网内容提供商。所提供的示例并非意图以任何方式来限制根据本公开的实现方式。
在各个实现方式中,平台1202可以从具有一个或多个导航特征的导航控制器1250接收控制信号。例如,控制器1250的导航特征可以用于与用户界面1222进行交互。在各个实施例中,导航控制器1250可以是定点设备,其可以是允许用户将空间(例如连续和多维)数据输入到计算机中的计算机硬件组件(具体地说,人机接口设备)。很多系统(例如图形用户界面(GUI)以及电视和监视器)允许用户使用物理手势来控制数据并将其提供给计算机或电视。
控制器1250的导航特征的移动可以通过显示器上所显示的指针、光标、聚焦环或其它视觉指示符的移动而得以在显示器(例如显示器1220)上复制。例如,在软件应用1216的控制下,位于导航控制器1250上的导航特征可以被映射为用户界面1222上所显示的虚拟导航特征。在各个实施例中,控制器1250可以不是单独的组件,而是可以集成到平台1202和/或显示器1220中。然而,本公开不限于在此所示或所描述的要素或情形。
在各个实现方式中,例如,驱动器(未示出)可以包括用于当启用时使用户能够在初始引导之后通过触摸按钮即刻打开和关闭平台1202(比如电视)的技术。程序逻辑可以允许平台1202即使在平台“关闭”时,也将内容流送到媒体适配器或其它内容服务设备1230或内容传送设备1240。此外,例如,芯片组1205可以包括关于5.1环绕声音音频和/或高清晰度7.1环绕声音音频的硬件和/或软件支持。驱动器可以包括用于集成图形平台的图形驱动器。在各个实施例中,图形驱动器可以包括外设组件互连(PCI)高速图形卡。
在各个实现方式中,系统1200中所示的任何一个或多个组件可以是集成的。例如,平台1202和内容服务设备1230可以是集成的,或者平台1202和内容传送设备1240可以是集成的,或者平台1202、内容服务设备1230和内容传送设备1240可以是集成的。在各个实施例中,平台1202和显示器1220可以是集成单元。例如,显示器1220和内容服务设备1230可以是集成的,或者显示器1220和内容传送设备1240可以是集成的。这些示例并非意味着限制本公开。
在各个实施例中,系统1200可以实现为无线系统、有线系统或二者的组合。当实现为无线系统时,系统1200可以包括适合于通过无线共享介质进行通信的组件和接口,例如一个或多个天线、发射机、接收机、收发机、放大器、滤波器、控制逻辑等。无线共享介质的示例可以包括无线频谱的各部分,例如RF频谱等。当实现为有线系统时,系统1200可以包括适合于通过有线通信介质进行通信的组件和接口,例如输入/输出(I/O)适配器、用于将I/O适配器与对应有线通信介质连接的物理连接器、网络接口卡(NIC)、磁盘控制器、视频控制器、音频控制器等。有线通信介质的示例可以包括导线、线缆、金属引线、印制电路板(PCB)、背板、开关构造、半导体材料、双绞线导线、同轴线缆、光纤等。
平台1202可以建立一个或多个逻辑或物理信道,以传递信息。信息可以包括媒体信息和控制信息。媒体信息可以指代表示意图用于用户的内容的任何数据。内容的示例可以包括例如来自语音会话、视频会议、流送视频、电子邮件(“email”)消息、语音邮件消息、字母数字符号、图形、图像、视频、文本等的数据。来自语音会话的数据可以是例如语音信息、静默时段、背景噪声、舒适噪声、音调等。控制信息可以指代表示意图用于自动化系统的命令、指令或控制字的任何数据。例如,控制信息可以用于将媒体信息路由通过系统,或者吩咐节点以预定方式处理媒体信息。然而,实施例不限于图12中所示或所描述的元件或上下文。
如上所述,可以按变化的物理风格或形数来体现系统1200。图13示出可以体现系统1300的小形数设备1300的实现方式。在各个实施例中,例如,设备1300可以实现为具有无线能力的移动计算设备。移动计算设备可以指代具有处理系统和移动功率源或电源(例如,一个或多个电池)的任何设备。在一些示例中,设备1300可以包括麦克风(例如麦克风104),和/或接收语音(例如语音103),以用于经由在此所讨论的神经网络的实现方式进行实时语音识别。
如上所述,移动计算设备的示例可以包括个人计算机(PC)、膝上型计算机、超级膝上型计算机、手写板、触摸板、便携式计算机、手持计算机、掌上型计算机、个人数字助理(PDA)、蜂窝电话、组合蜂窝电话/PDA、电视、智能设备(例如智能电话、智能手写板或智能电视)、移动互联网设备(MID)、传信设备、数据通信设备、相机(例如傻瓜相机、超级变焦相机、数字单反(DSLR)相机)等。
移动计算设备的示例也可以包括被布置为人所穿戴的计算机,例如腕部计算机、手指计算机、耳环计算机、眼镜计算机、带夹计算机、臂带计算机、鞋计算机、衣物计算机以及其它可穿戴计算机。在各个实施例中,例如,移动计算设备可以实现为能够执行计算机应用以及语音通信和/或数据通信的智能电话。虽然可以通过示例的方式以实现为智能电话的移动计算设备来描述一些实施例,但是应理解,同样可以使用其它无线移动计算设备来实现其它实施例。实施例并非限于该上下文中。
如图13所示,设备1300可以包括外壳1302、显示器1304、输入/输出(I/O)设备1306以及天线1308。设备1300也可以包括导航特征1312。显示器1304可以包括用于显示对于移动计算设备适当的信息的任何合适的显示单元。显示器1304可以包括触摸屏区域1310,以用于接收I/O命令。在一些示例中,触摸屏区域1310可以基本上与显示器1304是相同大小的。I/O设备1306可以包括任何合适的I/O设备,以用于将信息输入移动计算设备中。用于I/O设备1306的示例可以包括字母数字键盘、数字键区、触摸板、输入键、按钮、开关、摇臂开关、麦克风、扬声器、语音识别设备和软件等。信息也可以通过麦克风(未示出)的方式输入到设备1300中。这种信息可以由语音识别设备(未示出)进行数字化。实施例并非限于该上下文中。
可以使用硬件元件、软件元件或二者的组合来实现各个实施例。硬件元件的示例可以包括处理器、微处理器、电路、电路元件(例如晶体管、电阻器、电容器、电感器等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等。软件的示例可以包括软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或其任何组合。确定是否使用硬件元件和/或软件元件实现实施例可以根据任何数量的因素(例如期望的计算速率、功率等级、热量容限、处理周期预算、输入数据率、存储器资源、数据总线速度以及其它设计或性能约束)而变化。
可以通过机器可读介质上所存储的代表性指令来实现至少一个实施例的一个或多个方面,这些指令表示处理器内的各个逻辑,并且当由机器读取时使机器产生执行在此所描述的技术的逻辑。这些称为“IP核”的表示可以被存储在有形机器可读介质上,并且被提供给各个消费者或制造场所,以加载到实际上制作逻辑或处理器的制造机器中。
虽然已经参照各个实现方式描述了在此所阐述的特定特征,但是这个描述并非意图理解为限制性的意义。因此,在此所描述的实现方式的各种修改以及对于本公开所属领域的技术人员显而易见的其它实现方式看作处于本公开的精神和范围内。
在一个或多个第一实施例中,一种计算机实现的用于处理神经网络的节点的方法,包括:确定所述神经网络的节点的分数,其中,所述分数包括对所述节点的输入与关联于所述节点的权重的乘积之和,并且其中,所述权重包括定点整型值;基于与所述节点关联的偏置,来修改所述分数;基于所述权重中具有关联的校正值的至少一个权重,来将至少一个校正应用于所述分数;以及基于校正后的偏置分数,来生成所述节点的输出。
进一步对于第一实施例,所述权重包括具有关联的缩放因子的8位有符号定点整型值。
进一步对于第一实施例,所述权重包括具有关联的缩放因子的8位有符号定点整型值,其中,所述神经网络包括包含所述节点的神经网络层,并且所述方法还包括:评估与所述神经网络层关联的校正列表,以确定所述校正值,其中,所述校正列表包含用于所述神经网络层的一个或多个神经网络层权重的校正值。
进一步对于第一实施例,所述权重包括具有关联的缩放因子的8位有符号定点整型值,其中,所述神经网络包括包含所述节点的神经网络层,并且所述方法还包括:评估与所述神经网络层关联的校正列表,以确定所述校正值,其中,所述校正列表包含用于所述神经网络层的一个或多个神经网络层权重的校正值;以及将用于所述神经网络层的神经网络层权重的缩放因子确定为对所述神经网络层提供小于预定校正限制的校正计数的最大缩放因子值,其中,所述神经网络层权重包括与所述节点关联的权重。
进一步对于第一实施例,所述权重包括具有关联的缩放因子的8位有符号定点整型值,其中,所述神经网络包括包含所述节点的神经网络层,并且所述方法还包括:评估与所述神经网络层关联的校正列表,以确定所述校正值,其中,所述校正列表包含用于所述神经网络层的一个或多个神经网络层权重的校正值;将浮点型值神经网络层权重转换为所述神经层网络层权重,其中,所述神经网络层权重包括8位有符号定点整型值;以及生成包含用于所述一个或多个神经网络层权重的校正值以及用于所述校正值的关联的节点和权重索引的校正列表,其中,所述校正值与具有非零最高有效位的8位无符号定点整型神经网络层权重关联。
进一步对于第一实施例,所述权重包括具有关联的缩放因子的8位有符号定点整型值,其中,所述神经网络包括包含所述节点的神经网络层,并且所述方法还包括:评估与所述神经网络层关联的校正列表,以确定所述校正值,其中,所述校正列表包含用于所述神经网络层的一个或多个神经网络层权重的校正值;将用于所述神经网络层的神经网络层权重的缩放因子确定为对所述神经网络层提供小于预定校正限制的校正计数的最大缩放因子值,其中,所述神经网络层权重包括与所述节点关联的权重;和/或将浮点型值神经网络层权重转换为所述神经层网络层权重,其中,所述神经网络层权重包括8位有符号定点整型值;以及生成包含用于所述一个或多个神经网络层权重的校正值以及用于所述校正值的关联的节点和权重索引的校正列表,其中,所述校正值与具有非零最高有效位的8位无符号定点整型神经网络层权重关联。
进一步对于第一实施例,所述节点包括隐藏层节点,并且其中,基于校正后的偏置分数来生成所述节点的输出包括:将激活函数应用于所述校正后的偏置分数,以生成所述输出。
进一步对于第一实施例,所述节点包括隐藏层节点,并且其中,基于校正后的偏置分数来生成所述节点的输出包括:将激活函数应用于所述校正后的偏置分数,以生成所述输出,其中,所述激活函数包括sigmoid函数,并且其中,所述输出包括8位无符号定点整型值。
进一步对于第一实施例,所述节点包括隐藏层节点,并且其中,基于校正后的偏置分数来生成所述节点的输出包括:将激活函数应用于所述校正后的偏置分数,以生成所述输出,和/或其中,所述激活函数包括sigmoid函数,并且所述输出包括8位无符号定点整型值。
进一步对于第一实施例,所述节点包括输出节点,并且其中,基于所述校正后的偏置分数来生成所述节点的输出包括:提供所述校正后的偏置分数作为所述输出。
进一步对于第一实施例,所述校正后的偏置分数包括32位定点整型值。
进一步对于第一实施例,在将所述至少一个校正应用于所述分数之前,将所述分数修改达所述偏置。
进一步对于第一实施例,所述神经网络包括语音识别神经网络,并且所述方法还包括:将接收到的语音转换为语音记录;提取与所述语音记录的时间窗口关联的特征矢量;将所述特征矢量提供作为对所述神经网络的输入;至少部分地基于来自所述节点的输出,从所述语音识别神经网络生成分类分数;以及基于所述分类分数来确定文本式元素序列。
进一步对于第一实施例,所述神经网络包括语音识别神经网络,并且所述方法还包括:将接收到的语音转换为语音记录;提取与所述语音记录的时间窗口关联的特征矢量;将所述特征矢量提供作为对所述神经网络的输入;至少部分地基于来自所述节点的输出,从所述语音识别神经网络生成分类分数;以及基于所述分类分数来确定文本式元素序列,其中,所述权重包括具有关联的缩放因子的8位有符号定点整型值,其中,所述输入包括8位无符号定点整型值,其中,所述校正后的偏置分数包括32位定点整型值,其中,所述节点包括隐藏层节点,其中,基于所述校正后的偏置分数来生成所述节点的输出包括:将sigmoid激活函数应用于所述校正后的偏置分数,以生成所述输出,并且其中,所述输出包括8位无符号定点整型值。
进一步对于第一实施例,所述神经网络包括语音识别神经网络,并且所述方法还包括:将接收到的语音转换为语音记录;提取与所述语音记录的时间窗口关联的特征矢量;将所述特征矢量提供作为对所述神经网络的输入;至少部分地基于来自所述节点的输出,从所述语音识别神经网络生成分类分数;以及基于所述分类分数来确定文本式元素序列,其中,对所述神经网络的输入包括一组特征矢量,并且其中,确定所述文本式元素序列包括:将所述分类分数与统计模型进行比较。
进一步对于第一实施例,所述神经网络包括语音识别神经网络,并且所述方法还包括:将接收到的语音转换为语音记录;提取与所述语音记录的时间窗口关联的特征矢量;将所述特征矢量提供作为对所述神经网络的输入;至少部分地基于来自所述节点的输出,从所述语音识别神经网络生成分类分数;以及基于所述分类分数来确定文本式元素序列,其中,所述权重包括具有关联的缩放因子的8位有符号定点整型值,所述输入包括8位无符号定点整型值,所述校正后的偏置分数包括32位定点整型值,所述节点包括隐藏层节点,基于所述校正后的偏置分数来生成所述节点的输出包括:将sigmoid激活函数应用于所述校正后的偏置分数,以生成所述输出,并且所述输出包括8位无符号定点整型值,和/或其中,对所述神经网络的输入包括一组特征矢量,并且其中,确定所述文本式元素序列包括:将所述分类分数与统计模型进行比较。
在一个或多个第二实施例中,一种用于提供神经网络的系统,包括:存储器,被配置为:存储与所述神经网络的节点关联的权重,其中,所述权重包括定点整型值;以及中央处理单元,耦合到所述存储器,其中,所述中央处理单元包括:节点评分电路,被配置为:确定所述神经网络的节点的分数,其中,所述分数包括对所述节点的输入与关联于所述节点的权重的乘积之和;分数偏置电路,被配置为:基于与所述节点关联的偏置来修改所述分数;分数校正电路,被配置为:基于所述权重中具有关联的校正值的至少一个权重来将至少一个校正应用于所述分数;以及激活函数电路,被配置为:将激活函数应用于所述校正后的偏置分数,以生成所述节点的输出。
进一步对于第二实施例,所述权重包括具有关联的缩放因子的8位有符号定点整型值。
进一步对于第二实施例,所述权重包括具有关联的缩放因子的8位有符号定点整型值,其中,所述神经网络包括包含所述节点的神经网络层,并且其中,所述分数校正电路进一步被配置为:评估与所述神经网络层关联的校正列表,以确定所述校正值,其中,所述校正列表包含用于所述神经网络层的一个或多个神经网络层权重的校正值。
进一步对于第二实施例,所述权重包括具有关联的缩放因子的8位有符号定点整型值,其中,所述神经网络包括包含所述节点的神经网络层,并且其中,所述分数校正电路进一步被配置为:评估与所述神经网络层关联的校正列表,以确定所述校正值,其中,所述校正列表包含用于所述神经网络层的一个或多个神经网络层权重的校正值。
进一步对于第二实施例,所述激活函数包括sigmoid函数,并且其中,所述输出包括8位无符号定点整型值。
进一步对于第二实施例,所述权重包括具有关联的缩放因子的8位有符号定点整型值,其中,所述输入包括8位无符号定点整型值,其中,所述校正后的偏置分数包括32位定点整型值,其中,所述节点包括隐藏层节点,其中,所述激活函数包括sigmoid激活函数,并且其中,所述输出包括8位无符号定点整型值。
进一步对于第二实施例,所述校正后的偏置分数包括32位定点整型值。
进一步对于第二实施例,所述分数偏置电路和所述分数校正电路被配置为:在所述分数校正电路将所述至少一个校正应用于所述分数之前,经由所述分数偏置电路基于所述偏置来修改所述分数。
进一步对于第二实施例,所述系统还包括:特征提取电路,被配置为:提取与语音记录的时间窗口关联的特征矢量,并且提供所述特征矢量作为对所述神经网络的输入;以及文本式元素搜索电路,被配置为:从所述神经网络接收分类分数,并且基于所述分类分数来确定文本式元素序列,其中,所述分类分数至少部分地基于来自所述节点的输出。
进一步对于第二实施例,所述系统还包括:特征提取电路,被配置为:提取与语音记录的时间窗口关联的特征矢量,并且提供所述特征矢量作为对所述神经网络的输入;以及文本式元素搜索电路,被配置为:从所述神经网络接收分类分数,并且基于所述分类分数来确定文本式元素序列,其中,所述分类分数至少部分地基于来自所述节点的输出,其中,对所述神经网络的输入包括一组特征矢量,并且其中,所述文本式元素搜索电路被配置为:基于所述分类分数与统计模型的比较来确定所述文本式元素序列。
在一个或多个第三实施例中,一种用于提供神经网络的系统,包括:用于确定所述神经网络的节点的分数的单元,其中,所述分数包括对所述节点的输入与关联于所述节点的权重的乘积之和,并且其中,所述权重包括定点整型值;用于基于与所述节点关联的偏置来修改所述分数的单元;用于基于所述权重中具有关联的校正值的至少一个权重来将至少一个校正应用于所述分数的单元;以及用于基于校正后的偏置分数来生成所述节点的输出的单元。
进一步对于第三实施例,所述权重包括具有关联的缩放因子的8位有符号定点整型值,并且其中,所述神经网络包括包含所述节点的神经网络层,并且所述系统还包括:用于评估与所述神经网络层关联的校正列表以确定所述校正值的单元,其中,所述校正列表包含用于所述神经网络层的一个或多个神经网络层权重的校正值。
进一步对于第三实施例,所述节点包括隐藏层节点,其中,基于校正后的偏置分数来生成所述节点的输出包括:将sigmoid激活函数应用于所述校正后的偏置分数,以生成所述输出,并且其中,所述输出包括8位无符号定点整型值。
进一步对于第三实施例,所述系统还包括:用于将接收到的语音转换为语音记录的单元;用于提取与所述语音记录的时间窗口关联的特征矢量的单元;用于将所述特征矢量提供作为对所述神经网络的输入的单元;用于至少部分地基于来自所述节点的输出而从所述语音识别神经网络生成分类分数的单元;以及用于基于所述分类分数来确定文本式元素序列的单元。
在一个或多个第四实施例中,至少一种机器可读介质,包括多条指令,所述指令响应于在计算设备上执行而使所述计算设备通过以下步骤来处理神经网络的节点:确定所述神经网络的节点的分数,其中,所述分数包括对所述节点的输入与关联于所述节点的权重的乘积之和,并且其中,所述权重包括定点整型值;基于与所述节点关联的偏置来修改所述分数;基于所述权重中具有关联的校正值的至少一个权重来将至少一个校正应用于所述分数;以及基于校正后的偏置分数来生成所述节点的输出。
进一步对于第四实施例,所述权重包括具有关联的缩放因子的8位有符号定点整型值,其中,所述神经网络包括包含所述节点的神经网络层,并且所述机器可读介质还包括如下指令,所述指令响应于在所述计算设备上执行而使所述计算设备通过以下步骤来处理神经网络的节点:评估与所述神经网络层关联的校正列表,以确定所述校正值,其中,所述校正列表包含用于所述神经网络层的一个或多个神经网络层权重的校正值。
进一步对于第四实施例,所述节点包括隐藏层节点,其中,基于校正后的偏置分数来生成所述节点的输出包括:将sigmoid激活函数应用于所述校正后的偏置分数,以生成所述输出,并且其中,所述输出包括8位无符号定点整型值。
进一步对于第四实施例,所述校正后的偏置分数包括32位定点整型值。
进一步对于第四实施例,所述神经网络包括语音识别神经网络,并且所述机器可读介质还包括如下指令,所述指令响应于在所述计算设备上执行而使所述计算设备通过以下步骤来执行语音识别:将接收到的语音转换为语音记录;提取与所述语音记录的时间窗口关联的特征矢量;将所述特征矢量提供作为对所述神经网络的输入;至少部分地基于来自所述节点的输出而从所述语音识别神经网络生成分类分数;以及基于所述分类分数来确定文本式元素序列。
进一步对于第四实施例,所述权重包括具有关联的缩放因子的8位有符号定点整型值,其中,所述输入包括8位无符号定点整型值,其中,所述校正后的偏置分数包括32位定点整型值,其中,所述节点包括隐藏层节点,其中,基于所述校正后的偏置分数来生成所述节点的输出包括:将sigmoid激活函数应用于所述校正后的偏置分数,以生成所述输出,并且其中,所述输出包括8位无符号定点整型值。
在一个或多个第五实施例中,至少一种机器可读介质可以包括多条指令,所述指令响应于在计算设备上执行而使所述计算设备执行以上实施例中任一项所述的方法。
在一个或多个第六实施例中,一种装置可以包括用于执行以上实施例中任一项所述的方法的单元。
应理解,实施例不限于如此所描述的实施例,而是可以在不脱离所附权利要求的范围的情况下通过修改和改动进行实施。例如,以上示例可以包括特征的特定组合。然而,以上实施例不限于此,并且在各个实现方式中,以上实施例可以包括仅承担这些特征的子集,承担这些特征的不同顺序,承担这些特征的不同组合,和/或承担除了明确列出的那些特征之外的附加特征。因此,应当参照附图连同这些权利要求被赋予的等同物的完全范围一起来确定实施例的范围。
Claims (19)
1.一种计算机实现的用于处理神经网络的节点的方法,包括:
确定所述神经网络的节点的分数,其中,所述分数包括对所述节点的输入与关联于所述节点的权重的乘积之和,并且其中,所述权重包括定点整型值;
基于与所述节点关联的偏置,来修改所述分数;
基于所述权重中具有关联的校正值的至少一个权重,来将至少一个校正应用于所述分数;以及
基于校正后的偏置分数,来生成所述节点的输出,
其中,所述权重包括具有关联的缩放因子的8位有符号定点整型值,
其中,所述神经网络包括包含所述节点的神经网络层,所述方法还包括:
评估与所述神经网络层关联的校正列表,以确定所述校正值,其中,所述校正列表包括用于所述神经网络层的一个或多个神经网络层权重的校正值;以及
将用于所述神经网络层的神经网络层权重的缩放因子确定为对所述神经网络层提供小于预定校正限制的校正计数的最大缩放因子值,其中,所述神经网络层权重包括与所述节点关联的权重。
2.如权利要求1所述的方法,还包括:
将浮点型值神经网络层权重转换为所述神经层网络层权重,其中,所述神经网络层权重包括8位有符号定点整型值;以及
生成包含用于所述一个或多个神经网络层权重的校正值以及用于所述校正值的关联的节点和权重索引的校正列表,其中,所述校正值与具有非零最高有效位的8位无符号定点整型神经网络层权重关联。
3.如权利要求1所述的方法,其中,所述节点包括隐藏层节点,并且其中,基于校正后的偏置分数来生成所述节点的输出包括:将激活函数应用于所述校正后的偏置分数,以生成所述输出。
4.如权利要求3所述的方法,其中,所述激活函数包括sigmoid函数,并且其中,所述输出包括8位无符号定点整型值。
5.如权利要求1所述的方法,其中,所述节点包括输出节点,并且其中,基于所述校正后的偏置分数来生成所述节点的输出包括:提供所述校正后的偏置分数作为所述输出。
6.如权利要求1所述的方法,其中,所述校正后的偏置分数包括32位定点整型值。
7.如权利要求1所述的方法,其中,在将所述至少一个校正应用于所述分数之前,将所述分数修改达所述偏置。
8.如权利要求1所述的方法,其中,所述神经网络包括语音识别神经网络,所述方法还包括:
将接收到的语音转换为语音记录;
提取与所述语音记录的时间窗口关联的特征矢量;
将所述特征矢量提供作为对所述神经网络的输入;
至少部分地基于来自所述节点的输出,从所述语音识别神经网络生成分类分数;以及
基于所述分类分数来确定文本式元素序列。
9.如权利要求8所述的方法,其中,所述权重包括具有关联的缩放因子的8位有符号定点整型值,其中,所述输入包括8位无符号定点整型值,其中,所述校正后的偏置分数包括32位定点整型值,其中,所述节点包括隐藏层节点,其中,基于所述校正后的偏置分数来生成所述节点的输出包括:将sigmoid激活函数应用于所述校正后的偏置分数,以生成所述输出,并且其中,所述输出包括8位无符号定点整型值。
10.如权利要求8所述的方法,其中,对所述神经网络的输入包括一组特征矢量,并且其中,确定所述文本式元素序列包括:将所述分类分数与统计模型进行比较。
11.一种用于提供神经网络的系统,包括:
存储器,被配置为:存储与所述神经网络的节点关联的权重,其中,所述权重包括定点整型值;以及
中央处理单元,耦合到所述存储器,其中,所述中央处理单元包括:
节点评分电路,被配置为:确定所述神经网络的节点的分数,其中,所述分数包括对所述节点的输入与关联于所述节点的权重的乘积之和;
分数偏置电路,被配置为:基于与所述节点关联的偏置来修改所述分数;
分数校正电路,被配置为:基于所述权重中具有关联的校正值的至少一个权重来将至少一个校正应用于所述分数;以及
激活函数电路,被配置为:将激活函数应用于校正后的偏置分数,以生成所述节点的输出,
其中,所述权重包括具有关联的缩放因子的8位有符号定点整型值,
其中,所述神经网络包括包含所述节点的神经网络层,并且其中,所述分数校正电路进一步被配置为:
评估与所述神经网络层关联的校正列表,以确定所述校正值,其中,所述校正列表包含用于所述神经网络层的一个或多个神经网络层权重的校正值;以及
将用于所述神经网络层的神经网络层权重的缩放因子确定为对所述神经网络层提供小于预定校正限制的校正计数的最大缩放因子值,其中,所述神经网络层权重包括与所述节点关联的权重。
12.如权利要求11所述的系统,其中,所述激活函数包括sigmoid函数,并且其中,所述输出包括8位无符号定点整型值。
13.如权利要求11所述的系统,其中,所述校正后的偏置分数包括32位定点整型值。
14.如权利要求11所述的系统,其中,所述分数偏置电路和所述分数校正电路被配置为:在所述分数校正电路将所述至少一个校正应用于所述分数之前,经由所述分数偏置电路基于所述偏置来修改所述分数。
15.如权利要求11所述的系统,其中,所述权重包括具有关联的缩放因子的8位有符号定点整型值,其中,所述输入包括8位无符号定点整型值,其中,所述校正后的偏置分数包括32位定点整型值,其中,所述节点包括隐藏层节点,其中,所述激活函数包括sigmoid激活函数,并且其中,所述输出包括8位无符号定点整型值。
16.如权利要求11所述的系统,还包括:
特征提取电路,被配置为:提取与语音记录的时间窗口关联的特征矢量,并且提供所述特征矢量作为对所述神经网络的输入;以及
文本式元素搜索电路,被配置为:从所述神经网络接收分类分数,并且基于所述分类分数来确定文本式元素序列,其中,所述分类分数至少部分地基于来自所述节点的输出。
17.如权利要求16所述的系统,其中,对所述神经网络的输入包括一组特征矢量,并且其中,所述文本式元素搜索电路被配置为:基于所述分类分数与统计模型的比较,来确定所述文本式元素序列。
18.至少一种机器可读介质,包括:
多条指令,所述指令响应于在计算设备上执行而使所述计算设备执行如权利要求1-10中任一项所述的方法。
19.一种装置,包括:
用于执行如权利要求1-10中任一项所述的方法的单元。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/PL2014/050053 WO2016039651A1 (en) | 2014-09-09 | 2014-09-09 | Improved fixed point integer implementations for neural networks |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106575379A CN106575379A (zh) | 2017-04-19 |
CN106575379B true CN106575379B (zh) | 2019-07-23 |
Family
ID=51663419
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480081073.6A Active CN106575379B (zh) | 2014-09-09 | 2014-09-09 | 用于神经网络的改进的定点整型实现方式 |
Country Status (4)
Country | Link |
---|---|
US (2) | US10803381B2 (zh) |
EP (1) | EP3192015A1 (zh) |
CN (1) | CN106575379B (zh) |
WO (1) | WO2016039651A1 (zh) |
Families Citing this family (70)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8515052B2 (en) | 2007-12-17 | 2013-08-20 | Wai Wu | Parallel signal processing system and method |
JP6430305B2 (ja) * | 2015-03-18 | 2018-11-28 | 株式会社東芝 | データ処理装置、データ処理方法およびプログラム |
US20160328645A1 (en) * | 2015-05-08 | 2016-11-10 | Qualcomm Incorporated | Reduced computational complexity for fixed point neural network |
KR102434604B1 (ko) * | 2016-01-05 | 2022-08-23 | 한국전자통신연구원 | 개인화된 음성 인식을 수행하기 위한 음성 인식 단말, 음성 인식 서버 및 음성 인식 방법 |
WO2018016608A1 (ja) * | 2016-07-21 | 2018-01-25 | 株式会社デンソーアイティーラボラトリ | ニューラルネットワーク装置、車両制御システム、分解処理装置、及びプログラム |
CN107688855B (zh) * | 2016-08-12 | 2021-04-13 | 赛灵思公司 | 针对于复杂神经网络的分层量化方法与装置 |
US10748057B1 (en) * | 2016-09-21 | 2020-08-18 | X Development Llc | Neural network modules |
US11556779B2 (en) * | 2016-09-26 | 2023-01-17 | Arizona Board Of Regents On Behalf Of Arizona State University | Cascaded computing for convolutional neural networks |
JP6926429B2 (ja) * | 2016-09-27 | 2021-08-25 | 日本電気株式会社 | データ処理装置、データ処理方法、およびプログラム |
US10373049B2 (en) * | 2016-12-20 | 2019-08-06 | Google Llc | Generating an output for a neural network output layer |
US10650303B2 (en) * | 2017-02-14 | 2020-05-12 | Google Llc | Implementing neural networks in fixed point arithmetic computing systems |
US10585703B2 (en) * | 2017-06-03 | 2020-03-10 | Apple Inc. | Dynamic operation allocation for neural networks |
CN107515736B (zh) * | 2017-07-01 | 2021-01-15 | 广州深域信息科技有限公司 | 一种在嵌入式设备上加速深度卷积网络计算速度的方法 |
WO2019009897A1 (en) * | 2017-07-06 | 2019-01-10 | Google Llc | SYSTEMS AND METHODS FOR COMPRESSION AND DISTRIBUTION OF MACHINE LEARNING MODELS |
CN107688849B (zh) * | 2017-07-28 | 2021-04-13 | 赛灵思电子科技(北京)有限公司 | 一种动态策略定点化训练方法及装置 |
CN107679618B (zh) * | 2017-07-28 | 2021-06-11 | 赛灵思电子科技(北京)有限公司 | 一种静态策略定点化训练方法及装置 |
KR102601604B1 (ko) * | 2017-08-04 | 2023-11-13 | 삼성전자주식회사 | 뉴럴 네트워크의 파라미터들을 양자화하는 방법 및 장치 |
US11347964B2 (en) * | 2017-08-07 | 2022-05-31 | Renesas Electronics Corporation | Hardware circuit |
KR102564456B1 (ko) * | 2017-10-19 | 2023-08-07 | 삼성전자주식회사 | 뉴럴 네트워크의 파라미터를 양자화하는 장치 및 방법 |
KR102589303B1 (ko) * | 2017-11-02 | 2023-10-24 | 삼성전자주식회사 | 고정 소수점 타입의 뉴럴 네트워크를 생성하는 방법 및 장치 |
GB2568082B (en) * | 2017-11-03 | 2021-06-16 | Imagination Tech Ltd | Hierarchical mantissa bit length selection for hardware implementation of deep neural network |
GB2568084B (en) | 2017-11-03 | 2022-01-12 | Imagination Tech Ltd | Error allocation format selection for hardware implementation of deep neural network |
GB2568083B (en) | 2017-11-03 | 2021-06-02 | Imagination Tech Ltd | Histogram-based per-layer data format selection for hardware implementation of deep neutral network |
GB2568081B (en) * | 2017-11-03 | 2022-01-19 | Imagination Tech Ltd | End-to-end data format selection for hardware implementation of deep neural network |
CN107766939A (zh) * | 2017-11-07 | 2018-03-06 | 维沃移动通信有限公司 | 一种数据处理方法、装置及移动终端 |
KR20190068255A (ko) | 2017-12-08 | 2019-06-18 | 삼성전자주식회사 | 고정 소수점 뉴럴 네트워크를 생성하는 방법 및 장치 |
US11475305B2 (en) * | 2017-12-08 | 2022-10-18 | Advanced Micro Devices, Inc. | Activation function functional block for electronic devices |
WO2019114842A1 (zh) * | 2017-12-14 | 2019-06-20 | 北京中科寒武纪科技有限公司 | 一种集成电路芯片装置 |
CN108053028B (zh) * | 2017-12-21 | 2021-09-14 | 深圳励飞科技有限公司 | 数据定点化处理方法、装置、电子设备及计算机存储介质 |
JP6730740B2 (ja) | 2017-12-25 | 2020-07-29 | 株式会社アクセル | 処理装置、処理方法、処理プログラム、及び暗号処理システム |
CN110062246B (zh) * | 2018-01-19 | 2021-01-05 | 杭州海康威视数字技术股份有限公司 | 对视频帧数据进行处理的方法和装置 |
EP3518152A1 (en) * | 2018-01-29 | 2019-07-31 | Panasonic Intellectual Property Corporation of America | Information processing method and information processing system |
EP3518153A1 (en) * | 2018-01-29 | 2019-07-31 | Panasonic Intellectual Property Corporation of America | Information processing method and information processing system |
CN108875922B (zh) * | 2018-02-02 | 2022-06-10 | 北京旷视科技有限公司 | 存储方法、装置、系统及介质 |
US11630666B2 (en) * | 2018-02-13 | 2023-04-18 | Shanghai Cambricon Information Technology Co., Ltd | Computing device and method |
JP6757349B2 (ja) * | 2018-03-12 | 2020-09-16 | 株式会社東芝 | 固定小数点を用いて認識処理を行う多層の畳み込みニューラルネットワーク回路を実現する演算処理装置 |
KR20190125141A (ko) | 2018-04-27 | 2019-11-06 | 삼성전자주식회사 | 뉴럴 네트워크의 파라미터들을 양자화하는 방법 및 장치 |
US11875251B2 (en) * | 2018-05-03 | 2024-01-16 | Samsung Electronics Co., Ltd. | Neural network method and apparatus |
CN110533175A (zh) * | 2018-05-23 | 2019-12-03 | 富士通株式会社 | 深度学习加速的方法和设备及深度神经网络 |
US10579383B1 (en) * | 2018-05-30 | 2020-03-03 | Facebook, Inc. | Systems and methods for efficient scaling of quantized integers |
US11615300B1 (en) * | 2018-06-13 | 2023-03-28 | Xilinx, Inc. | System and method for implementing neural networks in integrated circuits |
US11501140B2 (en) | 2018-06-19 | 2022-11-15 | International Business Machines Corporation | Runtime reconfigurable neural network processor core |
CN108986797B (zh) * | 2018-08-06 | 2021-07-06 | 中国科学技术大学 | 一种语音主题识别方法及系统 |
KR20200026455A (ko) | 2018-09-03 | 2020-03-11 | 삼성전자주식회사 | 인공 신경망 시스템 및 인공 신경망의 고정 소수점 제어 방법 |
KR20200029661A (ko) | 2018-09-07 | 2020-03-19 | 삼성전자주식회사 | 뉴럴 프로세싱 시스템 |
US11663464B2 (en) * | 2018-09-20 | 2023-05-30 | Kneron (Taiwan) Co., Ltd. | Deep neural network with low-precision dynamic fixed-point in reconfigurable hardware design |
KR20200043169A (ko) * | 2018-10-17 | 2020-04-27 | 삼성전자주식회사 | 뉴럴 네트워크의 파라미터를 양자화하는 방법 및 장치 |
US11201877B2 (en) * | 2018-12-11 | 2021-12-14 | Cisco Technology, Inc. | Detecting encrypted malware with SPLT-based deep networks |
FR3094118A1 (fr) * | 2019-03-20 | 2020-09-25 | Stmicroelectronics (Rousset) Sas | Procédé d’analyse d’un jeu de paramètres d’un réseau de neurones en vue d’un ajustement de zones allouées auxdits paramètres. |
CN110009101B (zh) * | 2019-04-11 | 2020-09-25 | 北京字节跳动网络技术有限公司 | 用于生成量化神经网络的方法和装置 |
CN110070867B (zh) * | 2019-04-26 | 2022-03-11 | 珠海普林芯驰科技有限公司 | 语音指令识别方法、计算机装置及计算机可读存储介质 |
CN110135580B (zh) * | 2019-04-26 | 2021-03-26 | 华中科技大学 | 一种卷积网络全整型量化方法及其应用方法 |
EP3963489A1 (en) * | 2019-04-30 | 2022-03-09 | Cylance Inc. | Machine learning model score obfuscation using step-function, position-dependent noise |
US10963752B2 (en) | 2019-04-30 | 2021-03-30 | Cylance Inc. | Machine learning model score obfuscation using step function, position-dependent noise |
JP6962578B2 (ja) | 2019-05-21 | 2021-11-05 | 株式会社アクセル | 暗号処理システム、暗号処理装置、暗号処理プログラム、及び暗号処理方法 |
CN110211593B (zh) * | 2019-06-03 | 2021-10-22 | 北京达佳互联信息技术有限公司 | 语音识别方法、装置、电子设备及存储介质 |
US11604972B2 (en) | 2019-06-28 | 2023-03-14 | Microsoft Technology Licensing, Llc | Increased precision neural processing element |
KR20210004306A (ko) * | 2019-07-04 | 2021-01-13 | 삼성전자주식회사 | 뉴럴 네트워크 장치 및 뉴럴 네트워크의 파라미터 양자화 방법 |
CN112446461A (zh) * | 2019-08-29 | 2021-03-05 | 杭州海康威视数字技术股份有限公司 | 一种神经网络模型训练方法及装置 |
CN110705264A (zh) * | 2019-09-27 | 2020-01-17 | 上海智臻智能网络科技股份有限公司 | 标点符号的校正方法及设备、介质 |
JP7354736B2 (ja) * | 2019-09-30 | 2023-10-03 | 富士通株式会社 | 情報処理装置、情報処理方法、情報処理プログラム |
US11601134B2 (en) | 2020-01-10 | 2023-03-07 | Robert Bosch Gmbh | Optimized quantization for reduced resolution neural networks |
AU2021231850B2 (en) * | 2020-03-05 | 2023-08-03 | Pindrop Security, Inc. | Systems and methods of speaker-independent embedding for identification and verification from audio |
CN113793601B (zh) * | 2020-05-27 | 2024-04-02 | 北京声智科技有限公司 | 一种语音识别方法及装置 |
WO2022043675A2 (en) * | 2020-08-24 | 2022-03-03 | Unlikely Artificial Intelligence Limited | A computer implemented method for the automated analysis or use of data |
CN112381205A (zh) * | 2020-09-29 | 2021-02-19 | 北京清微智能科技有限公司 | 一种神经网络低比特量化方法 |
US11989507B2 (en) | 2021-08-24 | 2024-05-21 | Unlikely Artificial Intelligence Limited | Computer implemented methods for the automated analysis or use of data, including use of a large language model |
US11977854B2 (en) | 2021-08-24 | 2024-05-07 | Unlikely Artificial Intelligence Limited | Computer implemented methods for the automated analysis or use of data, including use of a large language model |
US11989527B2 (en) | 2021-08-24 | 2024-05-21 | Unlikely Artificial Intelligence Limited | Computer implemented methods for the automated analysis or use of data, including use of a large language model |
CN113593538B (zh) * | 2021-09-02 | 2024-05-03 | 北京声智科技有限公司 | 语音特征的分类方法、相关设备及可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1930575A (zh) * | 2004-03-30 | 2007-03-14 | 英特尔公司 | 分离和评估音频和视频源数据的技术 |
CN102207768A (zh) * | 2010-03-29 | 2011-10-05 | 英特尔公司 | 基于自动工作负荷检测的功率管理 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7359898B1 (en) * | 2004-02-26 | 2008-04-15 | Yahoo! Inc. | Scoring mechanism selection along multiple dimensions |
JP4169038B2 (ja) * | 2006-04-06 | 2008-10-22 | ソニー株式会社 | 情報処理装置および情報処理方法、並びにプログラム |
US20080153423A1 (en) * | 2006-12-20 | 2008-06-26 | Armstrong Brian S R | System and method for assessment of wireless communication performance |
US8832013B1 (en) * | 2009-07-24 | 2014-09-09 | Decision Lens, Inc. | Method and system for analytic network process (ANP) total influence analysis |
US8423500B1 (en) * | 2009-12-23 | 2013-04-16 | Decision Lens, Inc. | Measuring sensitivity of a factor in a decision |
US9092749B2 (en) * | 2012-04-13 | 2015-07-28 | International Business Machines Corporation | Information governance crowd sourcing |
EP2904533A4 (en) * | 2012-10-08 | 2016-06-01 | Spiral Genetics Inc | METHODS AND SYSTEMS FOR IDENTIFYING, FROM READING SYMBOL SEQUENCES, VARIATIONS TO A SEQUENCE OF REFERENCE SYMBOLS |
US9507603B2 (en) * | 2013-03-09 | 2016-11-29 | Gerald George Pechanek | Methods and apparatus for signal flow graph pipelining that reduce storage of temporary variables |
-
2014
- 2014-09-09 WO PCT/PL2014/050053 patent/WO2016039651A1/en active Application Filing
- 2014-09-09 EP EP14781689.6A patent/EP3192015A1/en not_active Withdrawn
- 2014-09-09 CN CN201480081073.6A patent/CN106575379B/zh active Active
- 2014-09-09 US US15/500,405 patent/US10803381B2/en active Active
-
2020
- 2020-09-24 US US17/031,496 patent/US20210004686A1/en active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1930575A (zh) * | 2004-03-30 | 2007-03-14 | 英特尔公司 | 分离和评估音频和视频源数据的技术 |
CN102207768A (zh) * | 2010-03-29 | 2011-10-05 | 英特尔公司 | 基于自动工作负荷检测的功率管理 |
Non-Patent Citations (2)
Title |
---|
Design of a Generic Neural Network FPGA-Implementation;Robert Lange;《CHEMNITZ UNIVERSITY OF TECHNOLOGY》;20051102;第1-143页 |
Learning with Limited Numerical Precision Using the Cascade-CorrelationAlgorithm;Markus Hoehfeld等;《IEEE TRANSACTIONS ON NEURAL NETWORKS》;19920704;第602-611页 |
Also Published As
Publication number | Publication date |
---|---|
CN106575379A (zh) | 2017-04-19 |
US10803381B2 (en) | 2020-10-13 |
EP3192015A1 (en) | 2017-07-19 |
WO2016039651A1 (en) | 2016-03-17 |
US20210004686A1 (en) | 2021-01-07 |
US20170220929A1 (en) | 2017-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106575379B (zh) | 用于神经网络的改进的定点整型实现方式 | |
CN106663425A (zh) | 用于自动语音识别的使用外推的跳帧和按需输出的神经网络 | |
CN111897964B (zh) | 文本分类模型训练方法、装置、设备及存储介质 | |
CN109923608B (zh) | 利用神经网络对混合语音识别结果进行评级的系统和方法 | |
CN111930992B (zh) | 神经网络训练方法、装置及电子设备 | |
CN108846077B (zh) | 问答文本的语义匹配方法、装置、介质及电子设备 | |
CN108885873A (zh) | 使用自适应阈值的说话者识别 | |
CN107221320A (zh) | 训练声学特征提取模型的方法、装置、设备和计算机存储介质 | |
CN108780646A (zh) | 用于改进型关键短语检测的中间评分和拒绝环回 | |
CN111951805A (zh) | 一种文本数据处理方法及装置 | |
CN109887484A (zh) | 一种基于对偶学习的语音识别与语音合成方法及装置 | |
CN113421547B (zh) | 一种语音处理方法及相关设备 | |
CN112837669B (zh) | 语音合成方法、装置及服务器 | |
CN110114765B (zh) | 通过共享话语的上下文执行翻译的电子设备及其操作方法 | |
KR20210052036A (ko) | 복수 의도어 획득을 위한 합성곱 신경망을 가진 장치 및 그 방법 | |
WO2021057884A1 (zh) | 语句复述方法、训练语句复述模型的方法及其装置 | |
Demertzis et al. | A deep spiking machine-hearing system for the case of invasive fish species | |
CN111816162A (zh) | 一种语音变化信息检测方法、模型训练方法以及相关装置 | |
CN110399488A (zh) | 文本分类方法及装置 | |
CN114882862A (zh) | 一种语音处理方法及相关设备 | |
CN117390450A (zh) | 一种大语言模型训练方法、装置及相关设备 | |
CN112989843B (zh) | 意图识别方法、装置、计算设备及存储介质 | |
CN113822125A (zh) | 唇语识别模型的处理方法、装置、计算机设备和存储介质 | |
CN109902273A (zh) | 关键词生成模型的建模方法和装置 | |
Akinpelu et al. | Lightweight Deep Learning Framework for Speech Emotion 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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |