CN110574050A - 用于基于四元数的机器学习系统的基于梯度的训练引擎 - Google Patents

用于基于四元数的机器学习系统的基于梯度的训练引擎 Download PDF

Info

Publication number
CN110574050A
CN110574050A CN201880028671.5A CN201880028671A CN110574050A CN 110574050 A CN110574050 A CN 110574050A CN 201880028671 A CN201880028671 A CN 201880028671A CN 110574050 A CN110574050 A CN 110574050A
Authority
CN
China
Prior art keywords
layer
quaternion
partial derivative
respect
conjugate
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
CN201880028671.5A
Other languages
English (en)
Inventor
M·L·马丁内兹-卡纳莱斯
S·K·辛格
V·沙尔玛
M·K·布汉达鲁
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN110574050A publication Critical patent/CN110574050A/zh
Pending legal-status Critical Current

Links

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/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/217Validation; Performance evaluation; Active pattern learning techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/10Machine learning using kernel methods, e.g. support vector machines [SVM]
    • 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/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • 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
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • G06N5/046Forward inferencing; Production systems
    • 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
    • G06N3/048Activation functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computational Linguistics (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Medical Informatics (AREA)
  • Image Analysis (AREA)
  • Image Processing (AREA)

Abstract

深度神经网络(DNN)包括沿输入层与输出层之间的前向传播路径布置的隐藏层。输入层接受包括四元数值的训练数据,沿前向路径将四元数值信号输出到隐藏层中的至少一个隐藏层。隐藏层中的至少一些包括四元数层,用于基于一个或多个变量参数执行一致的四元数(QT)前向操作。损失函数引擎产生表示DNN结果与预期结果之间的误差的损失函数。基于QT反向传播的训练操作包括:计算损失函数相对于一个或多个变量参数的QT共轭以及四元数层的各个输入的QT共轭的与四元数空间的正交基一致的逐层QT偏导数。

Description

用于基于四元数的机器学习系统的基于梯度的训练引擎
相关申请
本申请要求2017年5月31日提交的美国临时申请第62/513,390号的权益,该申请的公开内容通过引用结合到本说明书中。本申请涉及在同一天提交的共同待决的国际专利申请“计算高效的基于四元数的机器学习系统(COMPUTATIONALLY-EFFICIENT QUATERNION-BASED MACHINE-LEARNING SYSTEM)”(代理案号:AA2412-PCT/1884.301WO1)和“用于四元数操作的基于张量的计算系统(TENSOR-BASED COMPUTING SYSTEM FOR QUATERNIONOPERATIONS)”(代理案号:AA2409-PCT/1884.302WO1),这两者都与本申请相对应地被提交。
技术领域
本文描述的实施例一般涉及用于具有许多实际应用的机器学习系统的信息处理性能的改善,这些机器学习系统诸如图像处理系统、复杂数据中心、自动驾驶车辆、安全系统、医疗系统、交易系统,等等。某些实施例特别涉及人工神经网络(ANN)。
背景技术
机器学习,特别是深度学习,由于其成功应用于自动感知(诸如,机器视觉、语音识别、运动理解、和自动控制(例如,自主机动车辆、无人机和机器人))正受到研究人员和系统开发人员的更多关注。现代的多层式神经网络已成为深度学习的首选框架。传统的神经网络主要基于实数微积分的计算操作。
由于相比于一维实数代数或二维复数代数的在参数和操作上的显著减少以及更准确的物理表示(无奇点旋转),基于多维复数表示的四元数代数已引起跨多种数字信号处理应用(运动跟踪、图像处理和控制)的注意。因为到目前为止四元数(QT)操作需要跨几何、微积分、内插和代数的协调,所以四元数还未能很好地适于深度多层式神经网络。特别是,训练神经网络需要经由反向传播来优化成本(或损失)函数—计算关于层的参数的误差的梯度(偏导数),并将复合梯度传播到先前层以用信号通知对输入参数的修改的过程。
已经尝试将四元数结合到机器学习应用中以利用它们的令人满意的特性。然而,那些方法执行按坐标的基于实值梯度的学习,或完全放弃隐藏层的训练。应用于四元数的常规按坐标的实数微积分不能满足四元数的微积分的标准乘积或链规则,并且倾向于分离四元数的非标量分量之间的关系。因此,生成伪梯度来代替四元数差分以用于在反向传播算法中对误差的编码。
附图说明
在附图中(这些附图不一定是按比例绘制的),同样的数字可描述不同视图中的类似组件。具有不同的字母后缀的同样的数字可表示类似组件的不同实例。在附图中的各图中通过示例而非限制地图示一些实施例。
图1是图示出根据各实施例的用于自主车辆的分布式控制系统的系统框图,作为在其中可以实现本主题的各方面的应用之一的说明性示例。
图2是图示出通用机器的示例形式的计算机系统的框图。在某些实施例中,根据一个或多个特定算法对计算机系统200进行编程在执行该编程时产生专用机器,从而形成机器学习引擎,诸如,人工神经网络、以及其他子系统。
图3是图示出计算设备(诸如,图2中描绘的计算设备)的示例性硬件和软件架构的示图,其中硬件组件与软件组件之间的各种接口被示出。
图4是图示出根据一些实施例的处理设备的框图。
图5是图示出根据各种实施例的CPU的示例组件的框图。
图6是图示出实施例的各方面可与其一起被利用的四元数深度神经网络架构的示例结构的高级示图。
图7是图示出根据各种实施例的隐藏层以及多种类型的子层的的结构的示例的框图。
图8是图示出作为卷积引擎的说明性示例的四元数(QT)卷积子层的示图。
图9是图示出2D空间中的示例池化操作的示图。
图10是图示出作为QT内积引擎的说明性示例的QT内积子层的示图。
图11是图示出示例标量值QT损失函数引擎的示图。
图12是图示出用于实现用于将图像分类为对象类的四元数深度神经网络(QTDNN)的示例实施例的示图。
图13是图示出示例2层式深度四元数神经网络中的前向传递和反向传播操作的示图。
图14是图示出根据示例的用于产生和训练QT深度神经网络的过程的高级流程图。
图15A-15C图示出作为说明性示例的各种维数的四元数值的张量表示。
具体实施方式
实施例的各方面涉及自动机器学习系统、其组件以及其操作方法。在当前上下文中,机器学习系统是被构造、被编程或以其他方式被配置成用于基于输入数据来执行预测和与机器学习相关的操作的设备、或设备或更大的计算机系统的有形组件。决策系统的示例包括但不限于关联规则系统、人工神经网络、深度神经网络、聚类系统、支持向量机、分类系统等。
输入数据可以是表示系统的一种或多种状态、事件的一次或多次发生、传感器输出、成像、遥测信令、一个或多个随机变量等的情景数据。在一些实施例中,该情境数据可以包括由传感器系统(诸如,在自动驾驶车辆中)监测的感测数据。在其他实施例中,感测数据可以包括来自数据处理系统(诸如,数据中心、入侵检测系统等)的监测数据。
实施例的一些方面涉及通过使每个神经元适应以存储输入、输出、加权、偏置、和基础事实、作为n维四元数的值并执行激活和相关操作(例如,卷积、修正线性单元(ReLU)池化和内积)的改善的神经网络操作和训练,以及使用四元数特定的计算的机器学习操作(例如,基于梯度的训练)。本文描述的特定实施例包括在计算上和表示上高效的结构和方法,以实现QT梯度的计算以及用于训练QTDNN的反相传播中的实现。
四元数是数据的四元组复数表示,具有优良的属性,诸如,无奇点并且在表示性方面是高效的,使其对数字信号处理(DSP)具有吸引力。更正式地说,四元数q可以定义为q=q01+q1i+q2j+q3k,其中四元数基{1,i,j,k}。与基元1相关联的系数q0是四元数的标量分量,而其余系数包括四元数的虚部。在计算上,四元数可以表示为4元组,QT:A+i.B+j.C+k.D,该4元组中的三个为虚数,其中系数A、B、C和D是实数。在各种示例实现中,系数可以是单精度或双精度实数。出于机器学习的目的,较低的精度可能是足够的,从而提供计算效率同时仍提供实践准确度。而且,在一些实施例中,系数可以是整数、定点或浮点小数或复数。
值得注意的是,根据实施例的各方面的四元数微积分不仅是沿四个维度的按坐标的实数微积分的应用。一致的四元数(QT)计算,如以下将详细地所描述,使得能够训练利用四元数的更丰富几何属性(诸如,空间和颜色域中的旋转不变性)的模型。具有训练的QT计算进一步提供了令人满意的属性,诸如,快速收敛,经训练的模型的更好的泛化(generalization)能力、以及数据效率。
这些属性促进以更好的准确度、计算效率、更好的泛化能力和令人满意的不变性(诸如,旋转不变性)训练数字信号处理系统(诸如,图像识别、语音识别、以及许多其他应用)。实施例的各方面可以被应用在多种实现方式中,这些实现方式包括在诸如自主车辆控制等等领域中的感知、测绘、规划以及端到端策略学习。
图1是图示出根据各实施例的用于自主车辆的分布式控制系统110的系统框图,作为在其中可以实现本主题的各方面的应用之一的说明性示例。值得注意的是,分布式控制系统110利用基于四元数的深度神经网络(QTDNN)技术。实施例的各方面可以应用真实的、一致的QT计算技术。
如图所示,系统110由一组子系统、组件、电路、模块或引擎组成,为了简洁和一致性,上述各项都被称为引擎,但将理解这些术语可互换地使用。能以硬件、或者以由软件或固件控制的硬件来实现引擎。由此,引擎是专用于执行指定操作的有形实体,并且可按特定方式来配置或布置。
在示例中,能以指定方式(例如,在内部或者相对于诸如其他电路之类的外部实体)将电路布置为引擎。在示例中,一个或多个硬件处理器的全部或部分可由固件或软件(例如,指令、应用部分、或者应用)配置为操作以执行所指定操作的引擎。在示例中,软件可驻留在机器可读介质上。在示例中,软件在由引擎的底层硬件执行时,使此硬件执行所指定的操作。因此,引擎在物理上被构建成、专门被配置(例如,硬连线)成、或者临时地(例如,瞬态地)被配置(例如,编程)成以指定方式操作或者执行本文中所描述的任何操作的部分或全部。
考虑在其中临时配置引擎的示例,在任何时刻无需对这些引擎中的每一个实例化。例如,在引擎包括使用软件而配置的通用硬件处理核器的情况下,通用硬件处理器核可在不同时间被配置为相应的不同引擎。软件可相应地配置硬件处理器核,例如以在一个时间实例处构成特定引擎,并且在不同的时间实例处构成不同的引擎。
系统110分布在自主驾驶汽车112与云服务114之间。自主驾驶汽车112包括各种类型的传感器116的阵列,这些传感器116诸如相机、全球定位系统(GPS)、雷达和光检测和测距(LiDAR)传感器。来自这些传感器的数据由一个或多个数据收集器118收集(为了清楚起见,仅示出通信连接中的一些)。数据收集器118可以进一步从其他车辆120(例如,将破坏或变道的附近车辆)获取相关数据,并经由云应用获取外部情境数据122,诸如,天气、拥堵、施工区等。所收集的数据120、122被传递到计算引擎124、126。计算引擎124是执行如各种输入信号的时间同步、传感器数据的预处理或融合等之类的基本操作的标准计算引擎。计算引擎126是人工智能(AI)计算引擎,其基于传感器数据和外部数据执行机器学习和控制操作,以解释汽车的环境并确定要采取的动作,诸如,控制油门、制动、转向、发信号等。
例如,AI计算引擎126使用QTDNN来执行感知任务,诸如,车道检测、行人检测和识别、可行驶路径分割、利用2D或3D包围盒和多面体的一般障碍物和对象检测和识别、场景识别、跟踪和轨迹估计。由AI计算引擎126执行的QTDNN操作包括可以经由应用以下详细描述的反向传播技术来实现的机器学习操作。例如,来自汽车的相机的图像数据由AI计算引擎126实现的基于四元数的深度卷积神经网络处理,以检测汽车、卡车、行人、交通信号灯和摩托车等,以及它们的包围盒。
标准计算引擎124和AI计算引擎126可以交换数据,诸如,将预处理或聚合的传感器数据从标准计算引擎124传递到AI计算引擎126,以及将对象检测输出数据从AI计算引擎126传递到标准计算引擎124以用于存储、输出聚合、统计数据收集等。来自标准计算引擎124和AI计算引擎126的输出被传递到致动和控制引擎128,以生成到自主驾驶汽车112的机电系统的输出信令,以便相应地进行导航并避免碰撞。
由自主驾驶汽车112的数据收集器118、标准计算引擎124和AI计算引擎126中的一个或多个收集的全部数据或数据的子集可以被传递到云114以用于存储或进一步分析。数据摄取引擎130被配置成用于接收来自自主驾驶汽车112(或来自多辆自主驾驶汽车)的各种数据,诸如来自数据收集器118、标准计算引擎124和AI计算引擎126的数据。云AI计算引擎132驻留在云114中,并且操作以创建可用于索引、搜索和检索的智能元数据。例如,相机数据(即,图像、视频)可以由云AI计算132引擎处理,以检测和识别相关对象(例如,汽车、卡车、行人、自行车、道路标志、交通灯、树木等)。这些确定可以通过标准计算引擎134而与其他数据(诸如,位置、时间、天气、环境条件等)相关联,并且可以被存储为经索引的数据136,该经索引的数据136可以包括智能元数据。
云计算引擎132被配置成用于实现QTDNN,该QTDNN经由下面描述的QT反向传播技术来训练。
值得注意的是,由自主驾驶汽车112中的AI计算引擎126执行的车载QTDNN算法可以与由云114的AI计算引擎132执行的算法显著不同。例如,凭借构成云114的服务器上的更大计算功率的可用性,云114的算法可以是更加计算密集的(例如,更多的神经网络层、更频繁的训练等)。此外,这些差异也可归因于对移动的自主驾驶汽车112中的实时或近实时计算的需要。
在一些实施例中,AI计算引擎126和云AI计算引擎132各自实现使用下面详述的基于四元数的反向传播方法来训练的QTDNN。在一些示例中,由AI训练引擎138在云114中执行QTDNN训练。在一些实施例中,AI训练引擎138基于经标记的数据使用一个或多个训练QT-DNN算法,该经标记的数据进而基于基础事实,其中通常手动或半手动执行训练数据的选择和标记。训练数据准备引擎140取得从自主驾驶汽车112中的传感器和相机收集的原始数据142的子集,并且操作以利用各种标签(诸如,对象、场景、分段等)来获得(例如,由人类作出的)用于数据项的标签。在相关实施例中,训练数据准备引擎140可以取得由标记算法自动索引、并由人类验证和管理的数据。
由训练数据准备引擎140产生的训练数据由AI训练引擎138用于训练AI计算引擎126和132。一般而言,训练涉及:使每个QTDNN处理连续的训练数据项,并且对于每个项,将由相应的QTDNN产生的输出与同训练数据的该项相关联的标签进行比较。标签值与处理结果之间的差异被存储为损失函数(其也可以称为成本函数)的一部分。由AI训练引擎138执行反向传播操作以调整QTDNN的每层的参数以减少损失函数。
实施例的相关方面促进高效地实现下面详述的QT操作。使用QT操作的梯度和反向传播操作的计算提供了QTDNN的快速执行和在训练期间这些QTDNN的参数的更新以及超参数调整。进而,如由本公开中详述的技术促进的更快地训练全QTDNN的能力允许对具有更大数量的模型参数的大数据集执行更多训练实验,从而能够开发具有更好的泛化和不变性属性的更准确的模型。此外,根据实施例的各个方面的经学习的模型的更快执行使得这些模型能够部署在时间关键或强制性实时的应用(诸如,自主驾驶)中。
应当理解,可以实现合适的各种实现方式,在这些实现方式中,机器学习系统被提供为一个或多个专用单元,诸如,一个或多个专用集成电路(ASIC)、一个或多个现场可编程门阵列(FPGA)等。其他实现方式可以包括通过执行程序指令来配置计算平台。值得注意的是,计算平台可以是一个物理机器,或者可分布于多个物理机器之中,诸如,按照角色或功能,或者在云计算分布式模型的情形中按照进程线程)。在各种实施例中,某些操作可以在虚拟机中运行,这些虚拟机进而在一个或多个物理机器上执行。本领域技术人员将理解,实施例的特征可以通过各种不同的合适的机器实现方式来实现。
图2是图示出通用机器的示例形式的计算机系统的框图。在某些实施例中,根据一个或多个特定算法对计算机系统200进行编程在执行该编程时产生专用机器,以形成机器学习引擎,诸如,人工神经网络,以及其他子系统。在联网的部署中,计算机系统可在服务器-客户机网络环境中作为服务器或客户机来进行操作,或者可在对等(或分布式)网络环境中担当对等机器。
示例计算机系统200包括至少一个处理器202(例如,中央处理单元(CPU)、图形处理单元(GPU)或这两者、处理器核、计算节点等)、主存储器204和静态存储器206,这些组件经由链路208(例如,总线)彼此通信。计算机系统200可进一步包括视频显示单元210、字母数字输入设备212(例如,键盘)、以及用户界面(UI)导航设备214(例如,鼠标)。在一个实施例中,视频显示单元210、输入设备212和UI导航设备214被并入到触屏显示器中。计算机系统200可附加地包括存储设备216(例如,驱动单元)、信号生成设备218(例如,扬声器)、网络接口设备(NID)220以及一个或多个传感器(未示出),诸如,全球定位系统(GPS)传感器、罗盘、加速度计或其他传感器。
存储设备216包括机器可读介质222,在该机器可读介质222上存储有一组或多组数据结构和指令224(例如,软件),这些数据结构和指令224具体化本文中所描述的方法或功能中的任何一者或多者,或者由本文中所描述的方法或功能中的任何一者或多者利用。这些指令224也可完全地或至少部分地驻留在主存储器204、静态存储器206内,和/或在由计算机系统200执行指令224期间驻留在处理器202内,其中,主存储器204、静态存储器206和处理器202也构成机器可读介质。
虽然机器可读介质222在示例实施例中被图示为单个介质,但术语“机器可读介质”可包括存储一条或多条指令224的单个介质或多个介质(例如,集中式或分布式数据库和/或相关联的高速缓存和服务器)。术语“机器可读介质”也应当被认为包括任何有形介质,该有形介质能够存储、编码或携带供由机器执行并且使机器执行本公开的方法中的任何一种或多种方法的指令,或者该有形介质能够储存、编码或携带由此类指令利用或与此类指令相关联的数据结构。术语“机器可读介质”应当相应地被认为包括但不限于固态存储器以及光和磁介质。机器可读介质的特定示例包括非易失性存储器,作为示例,包括但不限于:半导体存储器设备(例如,电可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)和闪存设备;诸如内部硬盘及可移除盘之类的磁盘;磁光盘;以及CD-ROM和DVD-ROM盘。
根据各种实施例的NID 220可采用任何合适的形状因子。在一个此类实施例中,NID 220是经由链路208与处理器202对接的网络接口卡(NIC)的形式。在一个示例中,链路208包括PCI Express(PCIe)总线,包括NIC形状因子可以可移除地接合到其中的插槽。在另一实施例中,NID 220是网络接口电路,该网络接口电路与本地链路电路系统、处理器接口电路系统、其他输入/输出电路系统、存储器电路系统、存储设备和外围控制器电路系统等一起布置于主板上。在另一实施例中,NID 220是经由外围输入/输出端口(诸如,通用串行总线(USB)端口)与链路208对接的外围设备。NID 220通过传输介质226传送和接收数据,该传输介质可以是有线或无线的(例如,射频、红外或可见光谱等)、光纤等。
图3是图示出计算设备(诸如图2中描绘的计算设备)的示例性硬件和软件架构的示图,其中硬件组件与软件组件之间的各种接口被示出。如由HW所指示,硬件组件在分隔线下方被表示,而由SW表示的软件组件驻留在分隔线上方。在硬件侧,处理设备302(其可包括一个或多个微处理器、数字信号处理器等,每一个都具有一个或多个处理器核)与存储器管理设备304和系统互连306对接。存储器管理设备304提供由正被执行的进程使用的虚拟存储器与物理存储器之间的映射。存储器管理设备304可以是中央处理单元的集成部分,该中央处理单元还包括处理设备302。
互连306包括背板(诸如,存储器线、数据线和控制线)以及与输入/输出设备的接口(例如,PCI、USB等)。存储器308(例如,动态随机存取存储器——DRAM)和诸如闪存(例如,电可擦除只读存储器——EEPROM、NAND闪存、NOR闪存等)之类的非易失性存储器309经由存储器控制器310与存储器管理设备304和互连306对接。在一些实施例中,此架构可支持由外围设备进行的直接存储器访问(DMA)。I/O设备(包括视频和音频适配器、非易失性存储、外部外围链路(诸如,USB、蓝牙等))以及网络接口设备(诸如,经由Wi-Fi或LTE系列接口进行通信的那些)被共同表示为I/O设备和联网312,该I/O设备和联网312经由对应的I/O控制器314与互连306对接。
在软件侧,预操作系统(pre-OS)环境316在初始系统启动时被执行并且负责启动操作系统的引导。Pre-OS环境316的一个传统示例是系统基本输入/输出系统(BIOS)。在当今的系统中,实现统一可扩展固件接口(UEFI)。Pre-OS环境316负责发起操作系统的启动,但根据本发明的某些方面,其也为嵌入式应用提供执行环境。
操作系统(OS)318提供内核,该内核控制硬件设备,管理对存储器中的程序的存储器访问,协调任务并促进多任务,组织要存储的数据,分配存储器空间和其他资源,将程序二进制代码加载到存储器中,启动应用程序(该应用程序随后与用户和硬件设备进行交互)的执行,并且检测并响应于各种所定义的中断。同样,操作系统318提供设备驱动程序以及各种公共服务,诸如,促进与外围设备和联网的对接、提供对应用程序的抽象使得应用不需要负责处理此类公共操作的细节的那些公共服务。操作系统318附加地提供图形用户界面(GUI),该图形用户界面(GUI)经由外围设备(诸如,监视器、键盘、鼠标、麦克风、视频相机、触摸屏等)来促进与用户的交互。
运行时系统320实现执行模型的多个部分,包括诸如在函数调用之前将参数放置到栈上的操作、盘输入/输出(I/O)的行为以及并行执行相关的行为。运行时系统320还可执行支持服务,诸如,类型检查、调试、或者代码生成和优化。
库322包括提供对应用程序的进一步抽象的程序函数的集合。例如,这些包括共享库、动态链接库(DLL)。库322可集成至操作系统318、运行时系统320,或者可以是插件式特征,或者甚至是远程托管的。库322定义应用程序接口(API),通过该API可由应用程序324进行各种函数调用以调用由操作系统318提供的服务。应用程序324是执行对用户有用的任务的那些程序,这些任务超出由协调计算设备本身的基础可操作性的较低级系统程序执行的任务。
图4是图示出根据一些实施例的处理设备302的框图。在一个实施例中,所描绘的处理设备302中的两个或更多个形成于共同的半导体衬底上。根据处理器的特定架构,CPU410可包含一个或多个处理核412,这一个或多个处理核412中的每一个具有一个或多个算术逻辑单元(ALU)、指令取出单元、指令解码单元、控制单元、寄存器、数据栈指针、程序计数器、以及其他必要组件。作为说明性示例,CPU 410可以是x86型处理器。处理设备302还可包括图形处理单元(GPU)414。在这些实施例中,GPU 414可以是从CPU 410转移某些计算密集型操作,尤其是与图形渲染相关联的那些操作的专业的协处理器。值得注意的是,CPU 410和GPU 414一般协同工作,共享对存储器资源、I/O通道等的访问。
在一些实施例中,处理设备302还可包括看守(caretaker)处理器416。看守处理器416一般不像CPU 410和GPU 414那样参与处理工作以执行软件代码。在一些实施例中,看守处理器416不与CPU 410和GPU 414共享存储器空间,并且因此不被布置成执行操作系统或应用程序。替代地,看守处理器416可执行支持CPU 410、GPU 414以及计算机系统的其他组件的技术工作的专用固件。在一些实施例中,看守处理器被实现为微控制器设备,其可与CPU 410存在于同一集成电路管芯上,或者可存在于不同的集成电路管芯上。看守处理器416还可包括专用的I/O设施集合以使该看守处理器346能够与外部实体通信。在一种类型的实施例中,使用可管理性引擎(ME)或平台安全处理器(PSP)来实现看守处理器416。输入/输出(I/O)控制器418协调各种处理设备410、414、416之间,以及与外部电路系统(诸如,系统互连)的信息流。
图5是图示出根据各种实施例的CPU 410的示例组件的框图。如所描绘,CPU 410包括一个或多个核502、高速缓存504和CPU控制器506,该CPU控制器506协调(多个)核502的互操作和任务执行,并且提供接口以促进CPU 410的各种内部组件之间、以及与外部组件(诸如,存储器总线或系统互连)的数据流。在一个实施例中,CPU 410的所有示例组件形成在共同的半导体衬底上。
CPU 410包括非易失性存储器508(例如,闪存、EEPROM等),用于存储基本代码的特定部分(诸如,初始化引擎)和微代码。同样,CPU 410可与外部(例如,形成在分开的IC上的)非易失性存储器设备510对接,该外部非易失性存储器设备510存储由初始化引擎启动的基本代码,诸如,系统BIOS或UEFI代码。
图6是图示出实施例的各方面可与其一起被利用的深度神经网络架构的示例结构的高级示图。深度神经网络600是包含输入层602、输出层612、和多个隐藏层的QTDNN,这些隐藏层包括在604处指示的QT隐藏层1、在606处指示的QT隐藏层2、以及可选地,如608处所指示的附加的QT隐藏层(直到L)。输入层602接受使用四元数值表示的输入信号。输入信号的示例是图像数据(例如,对于每个像素具有红/绿/蓝(RGB)通道的位图)。例如,输入层602可以通过将权重应用于输入信号的部分来处理输入信号。由输入层602执行的操作可以是QT操作(例如,QT加法和非可交换QT乘法)。
隐藏层604-608可以在结构上彼此不同。通常,每个隐藏层可以包括子层的集合以执行分区和选择操作以及QT操作,诸如,QT卷积操作、QT内积操作、QT非线性激活操作、和QT采样操作。
为了执行分类,深度神经网络600促进前向传播信号622从输入层602通过层传播到输出层612,从而由各个层和子层执行QT操作。深度神经网络600由反向传播算法训练,该反向传播算法在向后传播方向632上进行,从而由各个层和子层执行QT梯度操作。
图7是图示出根据各种实施例的隐藏层(诸如,隐藏层604-608)以及多种类型的子层的结构的示例的框图。如所描绘,模块化的隐藏层700接收输入702,该输入702可以是来自先前层的图像或输出信号,并且使该输入702在如由向下箭头所示的前向方向730上传播,通过子层。前向传播信号可以是具有由各种子层的处理产生的不同尺寸和维数的特征图的集合。
在一些示例中,如图所示,模块化的隐藏层700包括分区和选择操作(PSOP)子层704A、704B、704C,这些POSP子层704A、704B、704C中的每一个用于将前向传播信号引导至下一子层的所选择的计算引擎。例如,作为至QT通用矩阵乘法(QT-GEMM)子层706的输入,可以由PSOP子层704A将前向传播信号引导至QT卷积引擎712、QT内积引擎714或引导至这些引擎的组合。类似地,PSOP子层704B可以将前向传播信号引导至来自QT非线性激活子层708中的那些非线性激活引擎(即,恒等(例如,通过)块716、QT分段/修正线性单元718、QT sigmoid引擎720、或QT双曲正切引擎722)之中的非线性激活引擎。PSOP子层704C可类似地将前向传播信号引导至QT采样子层710,并选择QT最大池化引擎724、QT平均池化引擎726、或者恒等(例如,通过)块728中的一个或多个。
在相关方面,每个PSOP子层704接受值的集合,并准备将其用于下一操作,该值的集合是直接输入信号或来自前一操作的输出。准备涉及数据的分区以及下一操作集的选择。此分区和选择不必是互斥的,并且也可以是空选择。例如,如果图像将仅通过第一隐藏层中的QT卷积引擎712而不通过QT内积引擎714,则PSOP 704A选择整个数据作为第一分区以通过QT卷积引擎712,并选择空数据作为第二分区以通过QT内积引擎714。
在相关的示例中,PSOP 704A将数据分区或复制成要引导至给定QT计算操作的不同核的部分。例如,输入信号可以被复制到QT卷积引擎的不同核,其中不同的核具有不同的变量参数值或不同的过滤器内容。在相关示例中,输入信号可以被分成第一部分和第二部分,并且不同部分被引导至不同的核以用于QT卷积处理。
在另一相关的实施例中,可动态地调整每个PSOP子层以改变数据分区操作、QT计算引擎选择操作、或这两者。例如,可以通过QTDNN训练引擎作出调整,该QTDNN训练引擎诸如执行机器学习过程(诸如,下面参考图14描述的过程)的AI训练引擎138(图1)。
因此,各种隐藏层604-608可以由卷积引擎712、内积引擎714、子层708的非线性激活操作框或旁路、以及子层710的采样操作框或旁路组成。给定隐藏层内的每个引擎或操作块可以具有与不同隐藏层的类似类型的引擎相同或不同的尺寸或结构。例如,QT卷积引擎712可以具有层特定数量的核(例如,卷积矩阵)、维数、加权、偏置或其他变量参数。
在示例中,QT-GEMM子层706选择性地对整个输入或输入的子集应用线性操作。它可包括四元数域中的卷积操作和内积操作的集合。值得注意的是,由QT卷积引擎712执行的QT卷积操作可以确保空间平移不变性。来自QT-GEMM子层706的输出通过PSOP子层704B进行,以为下一操作集做好准备。
在相关示例中,通过使用矩阵乘法结果中的每个输出条目是行向量与列向量之间的内积的结果这一事实,利用QT内积来构建用于广义矩阵乘法的QT操作。这些操作在附录1中提供的代码部分中,即在例程qtmatmul、qtvec2matmult、qtdotprod以及加法和乘法的基本QT操作中例示。
QT非线性激活子层708允许网络潜在地对输入的任何函数或变换进行近似。如所描绘,根据各种实施例,存在各种非线性激活的选择,并且QT非线性激活子层708可以应用这些非线性激活中的一个或多个及其合成。
在实施例中,QT-ReLU 718执行修正线性单元、特别是四元数的操作。通常,对于给定的四元数,只要实数和虚数单位中的每一个都是正实数,QT-ReLU 718的输出就是四元数值本身;其他情况下,QT-ReLU 718都返回零四元数值。在相关实施例中,sigmoid函数和双曲正切函数直接应用于输入四元数而不是经由按坐标的操作。来自QT非线性激活子层708的输出进一步通过PSOP子层704C,以为QT采样子层710中的下一操作集做好准备,这取决于采样过程的类型。
根据实施例的各方面的QTDNN以各种粒度级别提供各种抽象级别,并且QT采样子层710专门适配成使其实现。在各种示例中,采样涉及在输入中的每个点周围的给定窗口中由QT最大池化引擎724、QT平均池化引擎726或其组合执行的池化操作。
如这些示例所展示,QT隐藏层主要执行线性QT操作集,随后是非线性QT操作集,随后是QT采样操作,所有操作都利用一致的四元数代数,对于对每个子层的四元数值输入的专门选择的分区执行。
根据实施例,复制图7的示例中描绘的QT隐藏层的结构(其中在层的数量、输入和输出格式、以及在每个子层的PSOP路由的选择方面具有架构上的变化)促进各种QTDNN的构造和实现。
再次参考图6中描绘的示例深度神经网络架构,隐藏层608的输出可以可选地传播到优化层610。优化引擎的示例包括规范化引擎、均衡引擎等。例如,规范化引擎可以扩展对比度的动态范围。示例均衡引擎可以操作以调整图像以在每个强度级别包含相等或相当数量的像素。优化层610将信号传播到输出层612,该输出层612可以例如是全连接层。取决于应用,最终输出或QTDNN结果可以是各种输出格式(例如,四元数值或实值的)。此类格式可以包括例如:对象或场景类标签和相应的置信度分数的集合、检测到的对象的包围盒、用于图像中每个像素的语义标签、以及由该网络合成的图像的集合。
在训练深度神经网络架构时,损失函数614(其也可称为成本函数,并且表示输出与基础事实之间的误差)用于计算通过层的下降梯度以使损失函数最小化。相应地在QT卷积和QT内积子层706、QT非线性激活子层708和QT采样子层710处执行一致的四元数计算以产生损失函数614相对于各个层的变量参数的QT偏导数。
可以周期性地或偶尔执行训练。通常,训练涉及:提供QT训练模式作为输入702,并且在前向方向730和后向方向732上通过QT深度神经网络传播训练模式,以及调整子层的各个参数的操作。根据实施例的各方面,训练操作实现保留和利用四元数值的属性的QT计算。
在每个训练时期中,对于每个训练模式,前向路径730从输入702开始逐子层地遍历,并且从QT采样子层710前进到输出。可以存在一个或多个附加的模块化的隐藏层700,通过这些附加的模块化的隐藏层700,前向路径730将例如作为前向路径622的一部分延伸以产生输出612和损失函数614。随后,使损失函数614向后逐层地传播通过网络600,从而传播误差并调整权重。在模块化的隐藏层700中,反向传播被示为向后流向732,该向后流向732可被视为向后流向632的一部分。
在模块化的隐藏层700中,作为反向传播操作的一部分,PSOP子层704A、704B、704C操作以对相应的QT偏导数重新赋值。例如,如果输入变量xi被PSOP层704C映射到xi1,则任何函数相对于xi的QT偏导数等于该函数相对于xi1的QT偏导数。如果输入被PSOP 704C丢弃,则任何函数相对于该输入的QT偏导数被赋予值零。如果输入xi被复制到K个值xi1,xi2,…,xiK,则任何函数相对于xi的QT偏导数是该函数相对于xi1,xi2,…,xiK的QT偏导数的和。
值得注意的是,在根据实施例的各方面的用于计算QT梯度和偏导数的QT计算中,对于每个变量,存在四个偏导数。这四个偏导数对应于四元数的正交基(诸如,反对合)。
再次参考图6,在执行反向传播时,计算损失函数614相对于变量参数的QT偏导数。随后,使这些QT偏导数在向后方向632上传播通过每个隐藏层。注意,在每一层处,QT偏导数计算也将输入值用于在其中正在执行反向传播的操作。在通过整个网络的QT反向传播的结束时,该过程将已经计算了在网络中的每个操作处损失函数614相对于模型的所有参数的QT梯度。这些梯度用于在训练阶段期间调整变量参数中的一个或多个。
为了促进QTDNN架构和操作的高效实现,实施例的各方面涉及高效的QT表示。例如,所有输入、输出和模型参数(例如,传播信号值、或例如图像)被编码为四元数。这些量可以在计算上被表示,并被存储为四元数空间中的各种形状的张量。根据各种实施例,构想了用于提供高效的四元数表示和操作的多种不同方法。
根据一个此类实施例,构造用于四元数值的原生数据类型以及QT操作(诸如,加法、乘法、取幂等)的库。此类操作可以在硬件平台上运行的软件中高效地执行,该硬件平台诸如如上参考图2至图5所描述的合适的硬件平台。在相关实施例中,部署优化的编译器以将QT软件库转换为高效的硬件指令。
根据另一实施例,可以在可编程硬件中,诸如,在现场可编程门阵列(FPGA)电路中,或在例如具有分别针对四元数值和操作的存储和处理而优化的电路的专用集成电路(ASIC)中表示和处理QT数据类型和QT操作。
参考图7的示例模块化的隐藏层700,子层704A-710的布置可以在软件控制的硬件中被实例化,或者被实例化为硬件电路,其中该布置按顺序被重复和互连,以产生QTDNN的一系列隐藏层。模块化的隐藏层700的各个实例的PSOP子层704可以通过启用、禁用或组合各种不同的操作框或引擎来选择性地配置它们各自的子层。在相关的实施例中,如下面更详细地所描述,子层的配置可以响应于QTDNN的训练而变化。
在各个实施例中,可以使用基于实数的数据类型来对四元数值编码。例如,可以使用实值4元组(q0,q1,q2,q3)、实值1x4数组[q0 q1 q2 q3]、实值4x1数组[q0 q1 q2 q3]T,或者具有形状[,4]或[4,]的1维实值张量。另外,可以采用使用“qfloat”数据类型的原生编码。
在其中四元数值被表示为实分量的张量的实施例中,QT操作可以被有效地实现为实值张量操作。
如上所述,根据各个方面,使用一致的QT操作来执行深度神经网络600的训练。一旦训练了神经网络600,就可以将其应用于新的测试数据集(例如,图像)以生成输出集合(例如,新图像、语义标签、类标签和置信度分数、包围盒等)。
作为说明性示例,对于四元数q(定义为q=q01+q1i+q2j+q3k,具有四元数基{1,i,j,k}),与基元素1相关联的系数q0是该四元数的标量分量,而其余系数包括该四元数的虚部。对于四元数q和μ,其中μ≠0,Im(q)以角度2θ绕Im(μ)的三维旋转被定义为qμ:=μqμ-1,其中这里,Im(q)返回四元数q的虚部,它对应于向q的数据寄存器中的查询。Sc(q)返回四元数q的标量分量(有时称为实部),它对应于向q的数据寄存器的查询。
四元数q的范数是‖q‖2=qq*=q*q=q0 2+q1 2+q2 2+q3 2。应当注意,操作Sc(q)和‖q‖2返回标量(实数)值。
当μ是纯单位四元数时,qμ是具有qμ:=-μqμ的(反)对合。并且,特别地,qi,qj,qk都是(反)对合,使得qi=-iqi,qj=-jqj,qk=-kqk。
四元数q=q01+q1i+q2j+q3k的QT共轭是q*=q01-q1i-q2j-q3k。值得注意的是,所有虚数值都被取反,这对应于对四元数据寄存器中的虚部的简单的符号位改变或对Im(q)操作应用取反。在本公开中,除非另外明确地说明,否则所有操作(乘法、加法等)都是QT操作。符号时不时地被冗余地用作强制提醒,以明确分别执行一致的四元数代数加法和非可交换四元数代数乘法操作。
一些实施例利用广义Hamilton实(GHR)微积分。f(q)相对于qμ和qμ*的左GHR导数定义如下,其中q=q01+q1i+q2j+q3k:
以及
其中μ是非零四元数,并且等式右侧的f的四个偏导数:
·相对于q的分量(即分别为q0,q1,q2,q3)来取;以及
·是四元数值;
其中集合{1,iμ,jμ,kμ}是四元数空间的通用正交基。
注意,左手侧GHR导数不仅被定义为按坐标的实值导数,而且是四元数域中沿正交基的偏导数的丰富组成。通常,对于四元数的每个函数,存在四个偏导数,每个偏导数与正交基的分量相关联。
利用上述定义,微积分的常用规则(诸如,积规则和链规则)被扩展到四元数域。具体地,QT链规则可以写成:
通常,可以相对于四元数空间的任何正交基来应用QT链规则。这里,为了标记简单,可以选择基{1,i,j,k}。值得注意的是,根据实施例的链规则的QT应用涉及相对于QT共轭q*使用偏导数,并且考虑除了1之外的ν的值。
实施例的一些方面认识到,在四元数优化中,相对于QT共轭的导数可能比相应的四元数本身更重要。GHR微积分的一个特征是实值标量函数f相对于四元数向量(张量)q的梯度等于:
因此,使用相对于变量的QT共轭的偏导数而不是四元数变量本身来计算f的梯度。
具体地,在应用反向传播算法时,使用沿四元数空间的正交基的QT共轭偏导数来计算要使用的偏导数。
通过本上下文中的操作的反向传播意味着给定损失函数相对于操作的输出的偏导数,计算相对于操作的输入和参数的偏导数。
图8是图示出作为卷积引擎712的说明性示例的QT卷积子层802的示图。输入信号(其可以是图像、特征图、时间序列等)和过滤器分别被表示为N维和S维四元数向量。如果这些输入基于非四元数值,则首先将它们变换为四元数值。在尺寸为S的滑动窗口上将过滤器的1D卷积计算为过滤器的每个坐标x乘以输入的相应的经移位坐标x+sx的QT乘法的QT和。
对于作为分别具有尺寸N和S的四元数值向量的输入信号和过滤器对右过滤器的无偏置一维(1D)QT卷积可以如等式4A表示如下:
其中分别是QT加法和QT乘法,并且表示QT卷积之后的输出中的第x项
因为QT乘法不是可交换的,所以在等式4A中交换乘数和被乘数的顺序提供了具有左过滤器的卷积,如在等式4B所示:
在下文中,为了简洁起见,描述基于右过滤器的操作。然而,将理解各种其他实施例构想了基于左过滤器的QT操作。以下伪代码体现了用于生成一般无偏置1D QT卷积的示例算法:
(给定:
四元数值信号四元数值过滤器或核
表示信号的维数的整数N;
表示过滤器的维数的整数S;
并且,使用QT加法和QT乘法
返回:)
可以将四元数值偏置项加到等式4A以获得顺应在神经网络中使用的有偏置1D QT卷积:
其中分别是QT加法和QT乘法,并且表示QT卷积之后的输出的第x个坐标(索引)。
以下伪代码体现了用于生成通用有偏置1D QT卷积的示例算法:
(给定:
四元数值信号四元数值过滤器四元数值偏置
整数N,信号的维数;
整数S,过滤器的维数;
使用QT加法和QT乘法
返回:)
类似地,灰度输入图像(具有高度H、宽度W)与(具有窗口尺寸S的)过滤器/核和附加的偏置的2D卷积被计算为:
其中索引(y,x)对应于输入H像素乘W像素图像的像素索引。等式4D适合于输入灰度图像的一个原因在于,图像仅具有一个通道来表示从白色到黑色的范围。
在相关实施例中,QT乘法由QT几何积代替。
以下伪代码体现了用于产生用于灰度图像的通用有偏置2D QT卷积示例算法:
(给定:
灰度图像的四元数值信号四元数值过滤器四元数值偏置
整数W=Nx,信号的x维;
整数H=Ny,信号的y维;
整数S,过滤器的尺寸(它将具有尺寸S*S);
使用QT加法和QT乘法
返回:)
在其他类型的图像中,通常有附加的通道。例如,红-绿-蓝(RGB)彩色图像具有3个通道。一个特定像素可以在其通道中的每个通道中具有不同的值。因此,等式4A可以一般化为如下方式处理这些类型的图像。
值得注意的是,使用具有四元数值的单个通道不一定限于表示灰度图像。在一些实施例中,可以使用具有四元数值的单个通道(例如,R、G、B分别作为四元数的三个虚部)来对RGB图像编码。在QT卷积的上下文中,可以使用多于一个通道来促进在其中QTDNN的隐藏层具有多于一个通道的操作结构。
(具有高度H、宽度W、和C通道的)输入图像与具有(窗口尺寸S的)过滤器/核和附加偏置的的2D卷积可以被计算为:
其中索引(y,x)对应于输入H像素乘W像素图像的像素索引。这里,像素(y,x)对于其C通道中的每个通道可以具有不同的值。因此,在等式4E中,将跨C个通道进行卷积求和。在相关实施例中,QT乘法由QT几何积代替。
以下伪代码体现了用于产生通用有偏置2D QT卷积的示例算法:
(给定:
四元数值信号四元数值过滤器四元数值偏置
整数C,输入信号的通道数;
整数W=Nx,信号的x维;
整数H=Ny,信号的y维;
整数S,过滤器的尺寸(它将具有尺寸S*S);
使用QT加法和QT乘法
返回:)
在相关示例中,改变for循环的顺序以产生一种类型的实施例,在其中可以针对计算机架构中的读取/加载和计算效率来优化排序。
在相关实施例中,2D图像被表示为具有尺寸H*W*C的3D四元数张量。例如,32像素乘32像素的RGB图像具有H=32、W=32、C=3;32像素×32像素的灰度图像具有H=32、W=32、C=1。2D图像中的每个像素具有坐标或索引(y,x)。维数S=3的规则(方形)滑动窗口可以被表示为具有尺寸S*S*C的四元数3D张量。
在上面的示例中,描述了1D和2D卷积操作;然而,将理解,卷积操作可以扩展到任何实际尺寸的更高维的四元数张量。
此外,该QT卷积操作可以用于通过组合如图8所描绘的一个或多个核或过滤器(例如,权重和偏置)来形成神经网络卷积层。在可适用于机器视觉应用的该示例中,具有高度H、宽度W和C个通道的输入图像(来自深度神经网络的先前层的我们的输出)的2D卷积与具有窗口尺寸S的过滤器/核卷积。
为了计算QT卷积块的输出,使l表示层数,使得给定输入权重和偏置输出计算如下:
在等式4F中,是层l中的第k个输出,是层l中的第k个偏置。在实践中,可以针对小批次的图像计算所有量,但是为了标记方便,用于小批次的索引被丢弃。等式4F表示在具有窗口尺寸S*S的神经网络的层l中与K个核的QT卷积操作,这K个核用于在图像或中间特征图上定义2D卷积层。因此,输入信号对应于由深度神经网络中的先前神经层输出的输入图像或特征图。此外,请注意,K个核通常可以具有不同的窗口尺寸以及不同的高度和宽度。例如,为了便于簿记(bookkeeping),对于规则的(方形)窗口尺寸,可以由Sk表示窗口尺寸,或者对于每个核或张量实现方式内,窗口尺寸可表示为具有不同的(H,W)的查找表或矩阵。
与图8相关联的相应的卷积操作,计算输入信号(来自前一层的输出)与K个过滤器(与作出贡献的信号相对应的权重)的卷积,以及将偏置加到K个所得到的特征图中的每个特征图产生了卷积输出,如在等式4F中由描述。
以下伪代码体现了用于在神经网络中产生通用2D QT卷积的示例算法。
(给定:
来自前一层l-1的四元数值信号
四元数值过滤器其将应用在当前层l;
四元数值偏置其将在当前层l处应用于来自第k个过滤器的最终结果;
整数Kl,层l中的核的总数;
整数Nl-1x,来自前一层l-1的输入信号的(宽度)x维度;
整数Nl-1,y,来自前一层l-1的输入信号的(高度)y维度;
整数Sl,k,层l中第k个过滤器的维数;
整数C,通道的数量;
使用QT加法和QT乘法
返回:)
如前所述,注意到QT乘法是非可交换的,在乘法中将输入切换到右侧并过滤器切换到左侧给出了另一种类型的QT卷积,如下面的等式4G所表示:
其中指的是由第k个过滤器产生的层l中的像素的y、x坐标。
对于通过卷积层的反向传播,给定损失函数相对于的的梯度,的偏导数是相对于来计算的。具体而言,相对于这些变量的QT共轭计算QT偏导数。根据示例实施例,等式5A-5C已经被开发来计算这些偏导数:
给定损失函数相对于层l的第k个输出对所有y,x元素(像素索引)的QT偏导数,等式5A表示损失函数相对于层l中的第k个偏置的QT偏导数。
给定损失函数C相对于层l的输出的所有QT偏导数,等式5B表示损失函数相对于前一层l-1中的所有激活的QT偏导数。
给定相对于层l的输出的QT偏导数,等式5C表示损失函数相对于层l中的第k个权重对所有y,x元素(像素索引)的QT偏导数,。
在相关方面,在真四元数域中提供非线性激活函数(例如,不仅仅是按坐标的实域)。根据实施例的QT修正线性单元(QT ReLU)是四元数空间中的分段线性函数,其计算如下:对于四元数q=q0 1+q1 i+q2j+q3 k,只要实部和虚部中的每一个都是正实数(即,q0>0,q1>0,q2>0,q3>0),QT-ReLU在q处的值就是q本身,,并且在其他情况下QT-ReLU是零四元数,即当标量或虚部中的任一者为零或负时,QT-ReLU输出零:
另外,sigmoid函数和双曲正切函数可以直接应用于输入四元数(不是按坐标)并且也用作非线性激活函数。
根据示例实施例,如在下面的等式7中,相应地计算通过QT-ReLU的反向传播:通常,对于非零输出,所有导数都传播到输入,并且在其他情况下所有导数为零。具体地,对于分段线性函数的每个非零线性部分,相对于输出的导数直接传播到输入。在其他情况下导数为零
在实施例的相关方面,提供了QT池化操作。给定四元数1D、2D或任何维数的张量(例如,对应于时间序列、图像或更高维度的信号,或其组合),QT池化操作分别将信号下采样至更低维数的信号,或将信号上采样至更高维数的信号,并基于坐标/像素的邻域中的输入信号的值来计算那个坐标或像素处的输出值。该基于邻域的池化可以是各种类型(诸如,例如,基于最大值、平均值等)中的一种。下采样或上采样由跨度参数T来表征,并且邻域由具有尺寸S的窗口来表征。
图9是图示出2D空间中的示例池化操作的示图。池化操作将输入902映射到输出904。在输入902的给定邻域906中,池化操作选择或确定用于被映射的输出像素908的值。用于选择或确定输出像素908的值的一种技术是从具有最高的QT范数值的邻域906选择像素,并且该最大范数像素的实际四元数值变成输出像素908的值。在所描绘的示例中,当邻域906是具有尺寸S=3的窗口时,具有最大QT范数的3×3=9个像素值中的一个变成输出908。如所描绘,跨度T具有2个像素的尺寸。因此,输入902的H维度和W维度映射到H/2和W/2输出908。
下面的等式8A表示经由QT范数的QT最大池化:
其中:
ym=T*y+jm
xm=T*x+im
并且其中‖·‖2是QT范数,其计算值是标量并且可以被排序。
这种方法与实值(或整数)最大池化形成对照,在实值(或整数)最大池化中,最大值容易地从自然排序的值的集合中提取。在四元数值的像素集合中,不存在从最低到最高(例如,最大)的此类排序,因此根据各种实施例施加排序。在所描绘的示例中,通过将QT范数应用于四元数值像素(其评估为实值)来施加排序。
在另一实施例中,使用四元数像素的标量分量或实部而不是使用QT范数来对四元数值像素施加排序,如等式8B所表示。
其中
ym=T*y+jm
xm=T*x+im
在四元数值平均池化操作中,输出值实际上是具有尺寸S的邻域中所有像素的四元数值的平均值,并且使用一致的QT加法和一致的QT乘法/除法来计算平均值。
在根据实施例的通过QT池化操作(QT池化)的QT反向传播中,从后向传递的角度来看,最大池化消除了该池化层的除对输出作出贡献的输入之外的所有输入。因此,仅相对于那些贡献性的输入的偏导数才存活。因此,在该池化层中,所有偏导数的和取自输入对其作出贡献的所有输出变量。因此,反向传播涉及在池化期间维持每个跨度的argmax。
在平均池化情况下,池化窗口中的每个输入都对相应的输出作出贡献,因此相对于所有输入的偏导数存活。根据一些实施例,池化结果被计算为所有输出变量的所有偏导数的和。
图10是图示出作为QT内积引擎714的说明性示例的QT内积子层1002的示图。通常,具有尺寸N的四元数过滤器与具有尺寸N的输入四元数的内积是输入与过滤器的相应坐标的QT乘法的QT和:
值得注意的是,操作是一致的QT加法和QT乘法,而不仅仅是按坐标的实值操作。此外,在另一实施例中,QT乘法由QT几何积代替。
以下伪代码体现了用于产生QT内积的示例算法
(给定:
具有维数N的四元数值信号
具有维数N的四元数值过滤器
具有维数N的经初始化的输出
对于:x=0,…,N-1
返回:)
可以通过加上偏置项来获得全连接的四元数神经网络层:
对于实现k个内核的QT深度神经网络中的层,QT内积操作如等式11中所示地定义:
其中项是权重,是偏置,是用于计算输出的输入。
对于通过内积操作的反向传播,给定相对于输出的梯度,将计算相对于权重偏置和输入的梯度。在一些示例中,通过QT内积(例如,点积)操作的反向传播与通过QT卷积操作的反向传播非常类似,例外在于所有输入参与所有输出的计算,并且相应地考虑来自输出的偏导数贡献。等式求解如下:
图11是图示出示例标量值QT损失函数引擎1102的示图。当训练深度神经网络时,基于训练集经由基于梯度的迭代算法来优化成本函数或损失函数。在根据一些实施例的QT深度学习中,损失函数是四元数输入的实值函数。一般而言,只要维持四元数空间上的总顺序或部分顺序,该函数就可以是四元数值函数。根据实施例,实值损失函数的梯度是损失函数相对于神经网络的最终层的输出的共轭的偏导数的向量。
对于被公式化为均方误差的误差或损失函数,等式13提供:
其中,是最终层L中输出的第k个分量,是基础事实目标的第k个分量。注意,等式13中的被加数是QT范数,该QT范数的最终值是实值的;因此,损失函数是实值的,但损失函数的偏导数不是实值的。
应当注意,损失函数的偏导数基于输出的共轭。如等式14所示计算这些偏导数:
附录1包含详述各种QT特定操作的计算实现方式的附加的示例实施例,QT特定操作包括QT共轭、QT乘法、QT对合、QT内积、QT左向量-矩阵乘法、QT矩阵-矩阵乘法、QT前向馈送、通过内积层的QT梯度传播、通过卷积层的QT梯度传播、以及相对于前向传递中的当前层的输入的梯度损失函数。在各种实施例中,每个子例程示例可以被实现为硬件块或被实现为基于处理器的计算平台,该硬件块被构造成用于使用顺序逻辑电路和组合逻辑电路执行相应的计算,该基于处理器的计算平台当以用于执行QT计算和相关操作的机器可执行指令配置时转换为专用机器。
图12是图示出用于实现用于将图像分类为10个对象类的5层式QTDNN的示例实施例的示图。层1是QT卷积层。被编码为四元数张量的输入图像被输入到该层。首先,应用与具有窗口尺寸5*5的K1过滤器的集合的QT卷积,并且加上偏置,随后是由QT-ReLU进行的QT非线性激活。随后使用具有邻域尺寸3*3和跨度2的QT最大池化对来自QT-ReLU的输出进行下采样。在一个实现方式中,层1的输入被编码为具有形状[H,W,1]的3D四元数张量的图像;因此输出是具有形状[H/2,W/2,K1]的3D四元数张量,因子2是由于最大池化中的跨度2,并且因子K1是因为核的数量。每个核本身都是具有形状[5,5,1]的四元数3D张量;核形成具有形状[K1,5,5,1]的4D四元数张量。
层2也是类似于层1的卷积层;然而,该层的输入不直接是图像,而是1层的输出。存在各自都具有形状[5,5,K1]的四元数3D张量的K2数量的核,K1来自在层1的输出中有K1个通道这一事实。当在该层中应用QT卷积、QT-ReLU和QT最大池化之后,产生具有形状[H/4,W/4,K2]的输出。
层3是全连接层。来自层2的输出首先被重新成形为1D张量,例如从具有形状[H/4,W/4,K2]的3D四元数张量到具有尺寸H/4*W/4*K2的1D四元数。在该层中具有K3个核,其中的每个核都是具有尺寸H/4*W/4*K2的1D四元数张量。K3核中的每一个用于对输入(例如,层2的重新成形的输出)应用QT内积操作以及偏置加法,随后是非线性激活QT-ReLU以获得单个四元数输出,从而导致总共K3尺寸的输出。
层4也是全连接层。在该层中距有K4个核,其中的每个核都是具有尺寸K3的1D四元数张量。层3的输出通过与K4核中的每个核的内积,随后是QT-ReLU以产生K4尺寸的四元数1D张量输出。
层5是全连接层或线性层(例如,没有ReLU的内积)。由于这是本示例中的最后一层,因此核的数量取决于图像要被装箱到其中的类的数量,在这种情况下为10。这10个核中的每一个核都是具有尺寸K4的1D四元数张量并通过与层4的输出进行的QT内积操作,并且可选的QT-ReLU跟随其后并产生具有尺寸10的1D张量输出。该尺寸为10的四元数输出用于基于某些标准(诸如,相对于四元数均方误差的至预定义值集的接近程度)来决定给定输入属于哪个类。
附录2包含用于实现图12中所示的示例5层式QT神经网络以及除经由随机梯度下降来更新模型参数之外还具有通过网络的反向传播过程的代码。
图13是图示出示例2层式深度四元数神经网络1300中的前向传递和反向传播操作的示图。网络接受输入1302,该输入1302可以是具有4个像素的高度和4个像素的宽度的图像或特征图。输入1302通过QT卷积层1304,该QT卷积层1304具有窗口尺寸为2*2的两个核。每个核都具有可调整参数。这里,权重向量和偏置向量,即(W1,B1)对和(W2,B2)对构成可调整参数。在该示例中,参数W1和W2是具有尺寸2*2的四元数张量。QT卷积操作产生两个卷积特征图C1和C2。这些卷积特征图通过QT ReLU操作1306以获得特征图D1和D2,该特征图D1和D2进而通过具有跨度2的子采样的QT最大池化操作1308,以产生各自具有尺寸2*2的特征图E1和E2。
卷积特征图E1和E2被提供作为PSOP子层1310的输入以用于重新成形。作为重新成形的结果,将特征图E1和E2展平为具有尺寸2*2*2=8的单个特征图F。将重新成形的特征图F作为输入传递到QT内积操作框1312。QT内积操作1312具有应用权重和偏置(W3,B3)、(W4,B4)、(W5,B5)的3个内核,其中权重W3、W4、W5各自都是8维四元数值向量。QT内积操作1312执行QT-Dot计算以产生3维四元数特征图G。特征图G通过QT ReLU激活操作1314以产生特征图H,该特征图H为三维高级特征图。在给定训练数据(例如,基础事实数据)的情况下,在操作1316处,使用特征图H来计算损失函数L。
在训练网络1300中,可以使用等式10计算损失函数L相对于特征图H的QT梯度。如在1320处所指示,相对于特征图H的三个坐标中的每一个坐标的共轭来计算L的QT偏导数。对于每个坐标的共轭,有四个偏导数:每个偏导数用于对合1、i、j和k中的每一个。
在1322处,通过QT-ReLU操作1314反向传播损失函数L相对于特征图H的QT梯度。在1324处,通过QT内积操作1312反向传播损失函数L相对于特征图G的QT梯度。另外,在通过QT内积操作1312的反向传播期间,如1326处所指示,相对于变量参数权重W3、W4、W5和偏置B1、B2、B3计算QT梯度。相对于变量参数的这些QT梯度不被传播;而是将它们用于在训练迭代期间调整QT内积子层1312的性能。在1326处相对于变量参数计算QT梯度时,仅计算一个QT偏导数而不是计算四个(不计算与i、j、k的对合对应的梯度)。由于存在3个核权重,每个核权重具有维数8,并且仅计算一个偏导数,因此偏导数计算1326如图12所指示产生3*8*1的值。
在1328处,计算损失函数L相对于特征图F的QT梯度以产生8*4的值,以通过PSOP子层1310被传播。在1330处,计算损失函数L相对于特征图E1和E2的共轭以产生2*2*2*4的值,这些值通过QT最大池化操作1308被反向传播。在1332处,计算损失函数L相对于特征图D1和D2的共轭的QT梯度以产生2*4*4*4的值,这些值通过QT ReLU操作1306被反向传播。
在1334处,计算损失函数L相对于特征图C1和C2的共轭的QT梯度以产生2*4*4*4的值,这些值通过QT卷积操作1304被反向传播。另外,如1336处所指示,计算损失函数L相对于权重W1和W2以及偏置B1和B2的共轭的QT梯度。损失函数L相对于权重W1和W2的共轭的QT梯度为2*2*2*1四元数值,而损失函数L相对于偏置B1和B2的共轭的QT梯度为2*1*1四元数值,因为对于偏置值中的每个偏置值仅采用一个偏导数(例如,从计算中省略了对合i、j和k)。
图14是图示出根据示例的用于产生和训练QT深度神经网络的过程1400的高级流程图。在1402处,将输入提供给过程1400。该输入包括神经网络架构的表示(例如,层、子层、固定参数值和变量参数值)等。固定变量的示例是操作框中的核的数量。变量参数包括权重或偏置。输入进一步包括学习率(例如,发起训练操作的频率)、训练模式或训练数据、时期限制以及训练操作要满足的准确度标准(例如,可接受的误差)。
在1404处,初始化变量参数被并且实例化QTDNN。实例化可涉及编译定义QTDNN的源代码。对于QTDNN表示中的每个节点,编译其前向操作符链和后向操作符链。因此,在实施例中,前向操作符和后向操作符的内部表示可以指向一个或多个元素的链,这一个或多个元素是主PSOP元素、经编译的操作函数、或这两者的混合。
例如,考虑下列操作符链:{partition:(3x3 pixel sub-image),operation:average,operation:scalar}({分区:(3x3像素子图像),操作:平均值,操作:标量})。当编译时,这将转换为跨分区中九个元素仅对实部“A”运行平均计算(请注意,每个四元数可以表示为A+i.B+j.C+k.D,A分量为实部)。
在相关实施例中,为了进一步取得实现效率,对可交换的操作(例如,对于实数加法是可交换的)重新排序,当这么做时可以产生速度改善。在上面的示例中,取平均值随后提取实部与提取实部随后取平均值相同,节省了9*3加法操作。
决策1406控制QT深度神经网络的训练迭代的数量。迭代计数器可以递增,并与最大迭代的限值进行比较。在未达到最大限值的情况下,过程进行到框1408,该框1408表示针对每个训练模式要执行的一系列操作。例如,这些操作包括:在前向方向(前向传递)上传播训练模式,通过将输出与同训练模式相关联的基础事实进行比较来计算误差或损失函数,执行反向传播,以及更新变量参数。结果,QT深度神经网络的层在一定程度上被更好的调整。
在1410处,使用一组测试数据作为网络的输入来测试QT深度神经网络的调整。因此,将处理完测试数据之后的网络输出与与测试数据相关联的基础事实进行比较,并对误差进行量化。在判定1412处,将经量化的误差与准确度标准进行比较。如果经量化的误差大于误差阈值(作为示例,该误差阈值构成准确度标准),则过程循环返回至1406以执行另一次框1408处的训练迭代。
如果决策1412判定了经量化的误差满足准确度标准,或者如果达到了决策1406处的最大迭代限值,则过程进行到操作1414,以作为过程1400的输出产生QT深度神经网络架构、经调整的变量参数值以及所实现的准确度测量。
决策1416判定是否由于已经满足准确度标准或由于已经达到迭代限值而执行了操作1414。因此,决策1416询问经量化的误差是否满足准确度标准(例如,在误差阈值以下)。在肯定的情况下,过程1400在1420处结束。如果不满足准确度标准,则过程继续进行到1418,在1418处可以对QT深度神经网络作出更加根本性的改变。例如,可以将神经网络架构修改为具有不同数量或布置的层,可以改变子层核、可以改变子层操作、或者可以建立这些改变中的一些或全部的任何组合。附加地或替代地,可以利用新的或不同的训练数据执行进一步的训练。可以在1402处提供新的QT深度神经网络或训练数据作为新的输入,并且因此可以将过程1400作为新的迭代来执行。
在本公开中详述的一些示例中,使用张量数据结构来表示四元数。在张量表示中,条目的数量以编程方式定义了张量的维数。每个条目中的值对应于该维度中相应条目的对象的尺寸。为了说明,[A_size]用于初始化具有尺寸A_size的一维张量A;[B_size,A_size]是具有用于A尺寸A_size、用于B的尺寸B_size的二维张量,[C_size,B_size,A_size]是具有用于A的尺寸A_size、用于B的尺寸B_size、用于C的尺寸C_size的三维张量。通过将一维张量称为具有形状[A]、将二维张量称为具有形状[B,A]、将三维张量称为具有形状[C,B,A]等,该术语可以被更进一步被压缩。
例如,图15A图示出具有其四个实值分量的一维Hamilton四元数作为具有形状[,4]的1维实值张量。等效地,此数据结构表示具有形状[1]的一维四元数张量。图15B是图示出被表示为Nx1四元数数组的N维Hamilton四元数向量的示图。使用实空间编码,它可以被表示为具有形状[N,4]的2维实值张量,如所描绘。等效地,此数据结构表示具有形状[N]的1维四元数张量。图15C是图示出被表示为N×M数组的四元数值的“矩阵”的示图。使用实空间编码,将其表示为具有形状M,N,4]的3维实值张量。等效地,此数据结构表示具有形状[M,N]的2维四元数张量。更一般地,对于每个更高维的四元数张量,将具有尺寸4的附加维度添加到实张量编码中。例如,任何N维四元数值张量都可以表示为(N+1)维实张量,其中最后一个维度具有尺寸4。
相对于N维四元数张量的梯度被表示为(N+2)维实值张量,其中最后两个维度各自都具有尺寸4,前4个用于相对于使用{1,i,j,k}的四个对合中的每个对合的偏导数,并且后四个作为四元数的编码。参考图15C,可以用维数M=4来可视化在这种情况下,四元数将具有维数N*4,2维四元数张量将具有形状[N,4],并且,等效地,实值3维张量将具有形状[N,4,4]。
对于一些QT操作,不需要计算所有四个偏导数,而仅需要计算一个偏导数。在这些情况下,梯度具有维数(N+1)。
根据一些方面,在计算上将输入图像数据和特征图表示为四元数涉及:取得每个图像像素的RGB值并将其编码为纯四元数(即,具有零标量值为零以及分别作为三个虚值的R、G和B),以创建具有形状[H,W,1,4]的四维张量,其中最右边的条目对应于四元数编码。
在相关方面,当批量处理N个图像时,该图像批次的表示变成具有形状[N,H,W,1、4]的五维张量。对于具有C个通道的输入的具有窗口尺寸S*T的卷积核被表示为具有形状[S,T,C,4]的四维张量。如果在特定的卷积层中具有K个此类卷积核,则该表示变成具有形状[K,S,T,C,4]的五维张量。
在一些QT计算中,仅需要相对于权重的共轭的导数;因此,对于每个图像,相对于核的梯度简单地是[K,S,T,C,4]。处理N个图像将需要具有形状[N,K,S,T,C,4]的6维的张量。如果针对批次对梯度求平均,则具有形状[N,K,S,T,C,4]的6维张量往回变换为具有形状[K,S,T,C,4]的5D实张量。但是,如果此卷积层的输入具有形状[N,H,W,C,4],则相对于输入的梯度将是具有形状[N,H,W,C,4、4]的6维张量。
在各个实施例中,通过高效地合成实值张量操纵来计算QT张量操作中的每个QT张量操作。例如,为了对具有形状[N,4]的四元数张量X计算与虚四元数i的对合,对张量X[:,1]应用负操作,从而使其他所有内容保持不变。为了应用共轭,将后三个分量取反。因此,在一些实施例中,提供了用于高效的4-D、5-D、和6-D张量操纵的软件/硬件库。这些库经由反向传播或其他梯度方法促进了QTDNN及其训练的高效实现。
示例:
示例1是机器学习系统,包括:处理硬件,包括计算电路和数据存储电路,该处理硬件被配置成用于形成深度神经网络(DNN),该DNN包括:输入层、输出层和多个隐藏层,这些隐藏层沿输入层与输出层之间的前向传播路径布置;其中,输入层用于接受包括四元数值的训练数据,并用于将四元数值信号沿前向传播路径输出到多个隐藏层中的至少一个隐藏层;其中隐藏层中的至少一些包括四元数层,这些四元数层用于基于一个或多个变量参数来执行一致的四元数(QT)前向操作,以沿前向传播路径产生相应的至少一个特征图输出;其中输出层产生基于QT前向操作的DNN结果;DNN进一步包括损失函数引擎,用于产生表示DNN结果与预期结果之间的误差的损失函数;其中,四元数层用于执行基于QT反向传播的训练操作,这些基于QT反向传播的训练操作包括:计算损失函数相对于一个或多个变量参数的QT共轭以及四元数层的各个输入的QT共轭的与四元数空间的正交基一致的逐层QT偏导数,这些QT偏导数是依次通过多个隐藏层、沿与前向传播路径相反的后向传播路径而取得的;以及基于QT偏导数来更新变量参数以减少归因于每个相应的隐藏层的误差。
在示例2中,示例1的主题包括,其中训练数据表示图像。
在示例3中,示例1-2的主题包括,其中输入层用于执行至少一个QT操作。
在示例4中,示例3的主题包括,其中,至少一个QT操作包括非可交换QT乘法。
在示例5中,示例3-4的主题包括,其中,至少一个QT操作包括QT几何积。
在示例6中,示例1-5的主题包括,其中,QT前向操作包括QT激活和QT池化操作。
在示例7中,示例1–6的主题包括,其中,QT前向操作包括从由以下各项组成的组中选出的QT激活操作:QT修正线性单元操作、QT sigmoid操作或QT双曲线切线操作,其中QT激活操作被直接应用于传递到QT激活操作的输入信号。
在示例8中,示例1-7的主题包括,其中QT前向操作包括QT修正线性单元操作,该QT修正线性单元操作接受包含具有实部和虚部的四元数值的输入,并产生以下任一项作为输出:(a)当实部和虚部各自都是正实数时,四元数值本身;或(b)当实部或虚部中的任何一个不是正实数时,零四元数值。
在示例9中,示例1-8的主题包括,其中,QT前向操作包括QT卷积操作。
在示例10中,示例9的主题包括,其中QT卷积操作维持空间平移不变性。
在示例11中,示例1-10的主题包括,其中,QT前向操作包括QT内积操作。
在示例12中,示例1-11的主题包括,其中,计算损失函数的逐层QT偏导数包括执行QT链规则操作。
在示例13中,示例1-12的主题包括,其中,一个或多个变量参数是四元数值的。
在示例14中,示例1-13的主题包括,其中,一个或多个变量参数包括权重参数。
在示例15中,示例1-14的主题包括:其中,权重参数是多维四元数值。
在示例16中,示例1-15的主题包括,其中,一个或多个变量参数包括偏置参数。
在示例17中,示例1-16的主题包括:其中,权重参数是多维四元数值。
在示例18中,示例1-17的主题包括,其中,计算逐层QT偏导数产生损失函数相对于隐藏层的所有变量参数的QT梯度。
在示例19中,示例1-18的主题包括:其中,QT前向操作包括在第一层处的QT卷积操作,并且其中一个或多个变量参数包括四元数值偏置参数;并且其中计算逐层QT偏导数包括计算损失函数相对于偏置参数的QT共轭的偏导数。
在示例20中,示例19的主题包括:其中,基于损失函数相对于QT卷积操作的输出的QT共轭的偏导数的计算来实现损失函数相对于偏置参数的QT共轭的偏导数的计算。
在示例21中,示例19-20的主题包括:其中,训练数据包括具有像素索引x和y的图像,并且其中基于损失函数相对于在第一层处的QT卷积操作的输出的QT偏导数的的、对像素索引x和y的QT求和来计算损失函数相对于偏置参数的QT共轭的偏导数。
在示例22中,示例1-21的主题包括:其中,QT前向操作包括在第一层处的QT卷积操作,并且其中一个或多个变量参数包括四元数值权重参数;并且其中计算逐层QT偏导数包括计算损失函数相对于权重参数的QT共轭的偏导数。
在示例23中,示例22的主题包括:其中,基于损失函数相对于QT卷积操作的输出的QT共轭的偏导数的计算来实现损失函数相对于权重参数的QT共轭的偏导数的计算。
在示例24中,示例22-23的主题包括:其中,训练数据包括具有像素索引x和y的图像,并且其中基于损失函数相对于在第一层处的QT卷积操作的输出的QT偏导数的、对像素索引x和y的QT求和来计算损失函数相对于权重参数的QT共轭的偏导数。
在示例25中,示例1-24的主题包括:其中,QT前向操作包括在第一层处的QT卷积操作,其中QT卷积操作接受来自先前层的第一四元数值特征图作为输入;并且其中计算逐层QT偏导数包括计算损失函数相对于第一四元数值特征图的QT共轭的偏导数。
在示例26中,示例25的主题包括:其中,基于损失函数相对于QT卷积操作的输出的QT共轭的偏导数的计算来实现损失函数相对于第一四元数值特征图的QT共轭的偏导数的计算。
在示例27中,示例1-26的主题包括:其中,QT前向操作包括在第一层处的QT修正线性单元操作,该QT修正线性单元操作产生第一四元数值激活输出;并且其中计算逐层QT偏导数包括计算损失函数相对于第一四元数值激活输出的QT共轭的偏导数。
在示例28中,示例1–27的主题包括:其中,QT前向操作包括在第一层处的QT池化操作,该QT池化操作基于第一层的四元数值输入来产生四元数值池化输出;并且其中计算逐层QT偏导数包括计算四元数值输入对其作出贡献的四元数值池化输出的偏导数的和。
在示例29中,示例1-28的主题包括:其中,QT前向操作包括在第一层处的QT内积操作,并且其中一个或多个变量参数包括四元数值偏置参数;并且其中计算逐层QT偏导数包括计算损失函数相对于偏置参数的QT共轭的偏导数。
在示例30中,示例29的主题包括:其中,基于损失函数相对于QT内积操作的输出的QT共轭的偏导数的计算来实现损失函数相对于偏置参数的QT共轭的偏导数的计算。
在示例31中,示例1-30的主题包括:其中,QT前向操作包括在第一层处的QT内积操作,并且其中一个或多个变量参数包括四元数值权重参数;并且其中计算逐层QT偏导数包括计算损失函数相对于权重参数的QT共轭的偏导数。
在示例32中,示例31的主题包括:其中,基于损失函数相对于QT内积操作的输出的QT共轭的偏导数的计算来实现损失函数相对于权重参数的QT共轭的偏导数的计算。
在示例33中,示例1-32的主题包括:其中,QT前向操作包括在第一层处的QT内积操作,其中QT内积操作接受来自先前层的第一四元数值特征图作为输入;并且其中计算逐层QT偏导数包括计算损失函数相对于第一四元数值特征图的QT共轭的偏导数。
在示例34中,示例25-33的主题包括:其中,基于损失函数相对于QT内积操作的输出的QT共轭的偏导数的计算来实现损失函数相对于第一四元数值特征图的QT共轭的偏导数的计算。
示例35是至少一种机器可读存储介质,包含指令,该指令当在计算平台上执行时,使得计算平台用于实现深度神经网络(DNN),该DNN包括:输入层、输出层和多个隐藏层,这些隐藏层沿输入层与输出层之间的前向传播路径布置;其中,输入层用于接受包括四元数值的训练数据,并用于沿前向传播路径将四元数值信号输出至多个隐藏层中的至少一个隐藏层;其中隐藏层中的至少一些包括四元数层,这些四元数层用于基于一个或多个变量参数来执行一致的四元数(QT)前向操作,以沿前向传播路径产生相应的至少一个特征图输出;其中输出层用于产生基于QT前向操作的DNN结果;DNN进一步包括损失函数引擎,用于产生表示DNN结果与预期结果之间的误差的损失函数;其中,四元数层用于执行基于QT反向传播的训练操作,这些基于QT反向传播的训练操作包括:计算损失函数相对于一个或多个变量参数的QT共轭以及四元数层的各个输入的QT共轭的与四元数空间的正交基一致的逐层QT偏导数,这QT偏导数是依次通过多个隐藏层、沿与前向传播路径相反的后向传播路径而取得的;并且基于QT偏导数来更新变量参数以减少归因于每个相应隐藏层的误差。
在示例36中,示例35的主题包括:其中,训练数据表示图像。
在示例37中,示例35-36的主题包括:其中,输入层用于执行至少一个QT操作。
在示例38中,示例37的主题包括:其中,至少一个QT操作包括非可交换QT乘法。
在示例39中,示例37-38的主题包括:其中,至少一个QT操作包括QT几何积。
在示例40中,示例35-39的主题包括:其中,QT前向操作包括QT激活和QT池化操作。
在示例41中,示例35-40的主题包括:其中,QT前向操作包括从由以下各项组成的组中选出的QT激活操作:QT修正线性单元操作、QT sigmoid操作或QT双曲线切线操作,其中QT激活操作被直接应用于传递到QT激活操作的输入信号。
在示例42中,示例35-41的主题包括:其中,QT前向操作包括QT修正线性单元操作,该QT修正线性单元操作接受包含具有实部和虚部的四元数值的输入,并产生以下任一项作为输出:(a)当实部和虚部各自都为正实数时,四元数值本身(;或(b)当实部或虚部中的任何一个不是正实数时,零四元数值。
在示例43中,示例35-42的主题包括:其中,QT前向操作包括QT卷积操作。
在示例44中,示例43的主题包括:其中,QT卷积操作维持空间平移不变性。
在示例45中,示例35-44的主题包括:其中,QT前向操作包括QT内积操作。
在示例46中,示例35-45的主题包括:其中,计算损失函数的逐层QT偏导数包括执行QT链规则操作。
在示例47中,示例35-46的主题包括:其中,一个或多个变量参数是四元数值的。
在示例48中,示例35-47的主题包括:其中,一个或多个变量参数包括权重参数。
在示例49中,示例35-48的主题包括:其中,权重参数是多维四元数值。
在示例50中,示例35-49的主题包括:其中,一个或多个变量参数包括偏置参数。
在示例51中,示例35-50的主题包括:其中,权重参数是多维四元数值。
在示例52中,示例35-51的主题包括:其中,计算逐层QT偏导数产生损失函数相对于隐藏层的所有变量参数的QT梯度。
在示例53中,示例35-52的主题包括:其中,QT前向操作包括在第一层处的QT卷积操作,并且其中一个或多个变量参数包括四元数值偏置参数;并且其中计算逐层QT偏导数包括计算损失函数相对于偏置参数的QT共轭的偏导数。
在示例54中,示例53的主题包括:其中,基于损失函数相对于QT卷积操作的输出的QT共轭的偏导数的计算来实现损失函数相对于偏置参数的QT共轭的偏导数的计算。
在示例55中,示例53-54的主题包括:其中,训练数据包括具有像素索引x和y的图像,并且其中基于损失函数相对于在第一层处的QT卷积操作的输出的QT偏导数的、对像素索引x和y的QT求和来计算损失函数相对于偏置参数的QT共轭的偏导数。
在示例56中,示例35-55的主题包括:其中,QT前向操作包括在第一层处的QT卷积操作,并且其中一个或多个变量参数包括四元数值权重参数;并且其中计算逐层QT偏导数包括计算损失函数相对于权重参数的QT共轭的偏导数。
在示例57中,示例56的主题包括:其中,基于损失函数相对于QT卷积操作的输出的QT共轭的偏导数的计算来实现损失函数相对于权重参数的QT共轭的偏导数的计算。
在示例58中,示例56-57的主题包括:其中,训练数据包括具有像素索引x和y的图像,并且其中基于损失函数相对于在第一层处的QT卷积操作的输出的QT偏导数的、对像素索引x和y的QT求和来计算损失函数相对于权重参数的QT共轭的偏导数。
在示例59中,示例35-58的主题包括:其中,QT前向操作包括在第一层处的QT卷积操作,其中QT卷积操作接受来自先前层的第一四元数值特征图作为输入;并且其中计算逐层QT偏导数包括计算损失函数相对于第一四元数值特征图的QT共轭的偏导数。
在示例60中,示例59的主题包括:其中,基于损失函数相对于QT卷积操作的输出的QT共轭的偏导数的计算来实现损失函数相对于第一四元数值特征图的QT共轭的偏导数的计算。
在示例61中,示例35-60的主题包括:其中,QT前向操作包括在第一层处的QT修正线性单元操作,该QT修正线性单元操作产生第一四元数值激活输出;并且其中计算逐层QT偏导数的计算包括计算损失函数相对于第一四元数值激活输出的QT共轭的偏导数。
在示例62中,示例35-61的主题包括:其中,QT前向操作包括在第一层处的QT池化操作,该QT池化操作基于第一层的四元数值输入来产生四元数值池化输出;并且其中计算逐层QT偏导数包括计算四元数值输入对其作出贡献的四元数值池化输出的偏导数的和。
在示例63中,示例35-62的主题包括:其中,QT前向操作包括在第一层处的QT内积操作,并且其中一个或多个变量参数包括四元数值偏置参数;并且其中计算逐层QT偏导数包括计算损失函数相对于偏置参数的QT共轭的偏导数。
在示例64中,示例63的主题包括:其中,基于损失函数相对于QT内积操作的输出的QT共轭的偏导数的计算来实现损失函数相对于偏置参数的QT共轭的偏导数的计算。
在示例65中,示例35-64的主题包括:其中,QT前向操作包括在第一层处的QT内积操作,并且其中一个或多个变量参数包括四元数值权重参数;并且其中计算逐层QT偏导数包括计算损失函数相对于权重参数的QT共轭的偏导数。
在示例66中,示例65的主题包括:其中,基于损失函数相对于QT内积操作的输出的QT共轭的偏导数的计算来实现损失函数相对于权重参数的QT共轭的偏导数的计算。
在示例67中,示例35-66的主题包括:其中,QT前向操作包括在第一层处的QT内积操作,其中QT内积操作接受来自先前层的第一四元数值特征图作为输入;并且其中计算逐层QT偏导数包括计算损失函数相对于第一四元数值特征图的QT共轭的偏导数。
在示例68中,示例59-67的主题包括:其中,基于损失函数相对于QT内积操作的输出的QT共轭的偏导数的计算来实现损失函数相对于第一四元数值特征图的QT共轭的偏导数的计算。
示例69是用于操作深度神经网络(DNN)的方法,该方法包括:提供输入层、输出层和多个隐藏层,这些隐藏层沿输入层与输出层之间的前向传播路径布置;其中,输入层用于接受包括四元数值的训练数据,并用于将四元数值信号沿前向传播路径输出到多个隐藏层中的至少一个隐藏层;其中隐藏层中的至少一些包括四元数层,这些四元数层用于基于一个或多个变量参数来执行一致的四元数(QT)前向操作,以沿前向传播路径产生相应的至少一个特征图输出;其中输出层用于产生基于QT前向操作的DNN结果;提供损失函数引擎以产生表示DNN结果和预期结果之间的误差的损失函数;执行基于QT反向传播的训练操作,这些基于QT反向传播的训练操作包括:计算损失函数相对于一个或多个变量参数的QT共轭以及四元数层的各个输入的QT共轭的与四元数空间的正交基一致的逐层QT偏导数,这些QT偏导数是依次通过多个隐藏层、沿、与前向传播路径相反的后向传播路径而取得的;以及基于QT偏导数来更新变量参数以减少归因于每个相应的隐藏层的误差。
在示例70中,示例69的主题包括:其中,训练数据表示图像。
在示例71中,示例69-70的主题包括:其中,输入层用于执行至少一个QT操作。
在示例72中,示例71的主题包括:其中,至少一个QT操作包括非可交换QT乘法。
在示例73中,示例71-72的主题包括:其中,至少一个QT操作包括QT几何积。
在示例74中,示例69-73的主题包括:其中,QT前向操作包括QT激活和QT池化操作。
在示例75中,示例69-74的主题包括:其中,QT前向操作包括从由以下各项组成的组中选出的QT激活操作:QT修正线性单元操作、QT sigmoid操作或QT双曲线切线操作,其中QT激活操作被直接应用于传递到QT激活操作的输入信号。
在示例76中,示例69-75的主题包括:其中,QT前向操作包括QT修正线性单元操作,该QT修正线性单元操作接受包括具有实部和虚部的四元数值的输入,并产生以下任一项作为输出:(a)当实部和虚部各自都为正实数时,四元数值本身;或(b)当实部或虚部中的任何一个不是正实数时,零四元数值。
在示例77中,示例69-76的主题包括:其中,QT前向操作包括QT卷积操作。
在示例78中,示例77的主题包括:其中,QT卷积操作维持空间平移不变性。
在示例79中,示例69-78的主题包括:其中,QT前向操作包括QT内积操作。
在示例80中,示例69-79的主题包括:其中,计算损失函数的逐层QT偏导数包括执行QT链规则操作。
在示例81中,示例69-80的主题包括:其中,一个或多个变量参数是四元数值的。
在示例82中,示例69-81的主题包括:其中,一个或多个变量参数包括权重参数。
在示例83中,示例69-82的主题包括:其中,权重参数是多维四元数值。
在示例84中,示例69-83的主题包括:其中,一个或多个变量参数包括偏置参数。
在示例85中,示例69-84的主题包括:其中,权重参数是多维四元数值。
在示例86中,示例69-85的主题包括:其中,计算逐层QT偏导数产生损失函数相对于隐藏层的所有变量参数的QT梯度。
在示例87中,示例69-86的主题包括:其中,QT前向操作包括在第一层处的QT卷积操作,并且其中一个或多个变量参数包括四元数值偏置参数;并且其中计算逐层QT偏导数包括计算损失函数相对于偏置参数的QT共轭的偏导数。
在示例88中,示例87的主题包括:其中,基于损失函数相对于QT卷积操作的输出的QT共轭的偏导数的计算来实现损失函数相对于偏置参数的QT共轭的偏导数的计算。
在示例89中,示例87-88的主题包括:其中,训练数据包括具有像素索引x和y的图像,并且其中基于损失函数相对于在第一层处的QT卷积操作的输出的QT偏导数的、对像素索引x和y的QT求和来计算损失函数相对于偏置参数的QT共轭的偏导数。
在示例90中,示例69-89的主题包括:其中,QT前向操作包括在第一层处的QT卷积操作,并且其中一个或多个变量参数包括四元数值权重参数;并且其中计算逐层QT偏导数包括计算损失函数相对于权重参数的QT共轭的偏导数。
在示例91中,示例90的主题包括:其中,基于损失函数相对于QT卷积操作的输出的QT共轭的偏导数的计算来实现损失函数相对于权重参数的QT共轭的偏导数的计算。
在示例92中,示例90-91的主题包括:其中,训练数据包括具有像素索引x和y的图像,并且其中基于损失函数相对于在第一层处的QT卷积操作的输出的QT偏导数的、对像素索引x和y的QT求和来计算损失函数相对于权重参数的QT共轭的偏导数。
在示例93中,示例69-92的主题包括:其中,QT前向操作包括在第一层处的QT卷积操作,其中QT卷积操作接受来自先前层的第一四元数值特征图作为输入;并且其中计算逐层QT偏导数包括计算损失函数相对于第一四元数值特征图的QT共轭的偏导数。
在示例94中,示例93的主题包括:其中,基于损失函数相对于QT卷积操作的输出的QT共轭的偏导数的计算来实现计算损失函数相对于第一四元数值特征图的QT共轭的偏导数。
在示例95中,示例69-94的主题包括:其中,QT前向操作包括在第一层处的QT修正线性单元操作,该QT修正线性单元操作产生第一四元数值激活输出;并且其中计算逐层QT偏导数包括计算损失函数相对于第一四元数值激活输出的QT共轭的偏导数。
在示例96中,示例69-95的主题包括:其中,QT前向操作包括在第一层处的QT池化操作,该QT池化操作基于第一层的四元数值输入来产生四元数值池化输出;并且其中计算逐层QT偏导数包括计算四元数值输入对其作出贡献的四元数值池化输出的偏导数的和。
在示例97中,示例69-96的主题包括:其中,QT前向操作包括在第一层处的QT内积操作,并且其中一个或多个变量参数包括四元数值偏置参数;并且其中计算逐层QT偏导数包括计算损失函数相对于偏置参数的QT共轭的偏导数。
在示例98中,示例97的主题包括:其中,基于损失函数相对于QT内积操作的输出的QT共轭的偏导数的计算来实现计算损失函数相对于偏置参数的QT共轭的偏导数。
在示例99中,示例69-98的主题包括:其中,QT前向操作包括第一层处的QT内积操作,并且其中一个或多个变量参数包括四元数值权重参数;并且其中计算逐层QT偏导数包括计算损失函数相对于权重参数的QT共轭的偏导数。
在示例100中,示例99的主题包括:其中,基于损失函数相对于QT内积操作的输出的QT共轭的偏导数的计算来实现计算损失函数相对于权重参数的QT共轭的偏导数。
在示例101中,示例69-100的主题包括:其中,QT前向操作包括在第一层处的QT内积操作,其中QT内积操作接受来自先前层的第一四元数值特征图作为输入;并且其中计算逐层QT偏导数包括计算损失函数相对于第一四元数值特征图的QT共轭的偏导数。
在示例102中,示例93–101的主题包括:其中,基于损失函数相对于QT内积操作的输出的QT共轭的偏导数的计算来实现计算损失函数相对于第一四元数值特征图的QT共轭的偏导数。
示例103是用于操作深度神经网络(DNN)的系统,该系统包括:用于提供输入层、输出层多个隐藏层的装置,这些隐藏层沿输入层与输出层之间的前向传播路径布置;其中,输入层用于接受包括四元数值的训练数据,并用于将四元数值信号沿前向传播路径输出到多个隐藏层中的至少一个隐藏层;其中隐藏层中的至少一些包括四元数层,这些四元数层用于基于一个或多个变量参数来执行一致的四元数(QT)前向操作,以沿前向传播路径产生相应的至少一个特征图输出;其中输出层用于产生基于QT前向操作的DNN结果;用于产生表示DNN结果与预期结果之间的误差的损失函数的装置;用于执行基于QT反向传播的训练操作的装置,这些基于QT反向传播的训练操作包括:计算损失函数相对于一个或多个变量参数的QT共轭以及四元数层的各个输入的QT共轭的与四元数空间的正交基一致的逐层QT偏导数,这些QT偏导数是依次通过多个隐藏层、沿与前向传播路径相反的后向传播路径而取得的;以及基于QT偏导数来更新变量参数以减少归因于每个相应的隐藏层的误差。
在示例104中,示例103的主题包括:其中,训练数据表示图像。
在示例105中,示例103-104的主题包括:其中,输入层用于执行至少一个QT操作。
在示例106中,示例105的主题包括:其中,至少一个QT操作包括非可交换QT乘法。
在示例107中,示例105-106的主题包括:其中,至少一个QT操作包括QT几何积。
在示例108中,示例103-107的主题包括:其中,QT前向操作包括QT激活和QT池化操作。
在示例109中,示例103-108的主题包括:其中,QT前向操作包括从由以下各项组成的组中选出的QT激活操作:QT修正线性单元操作、QTsigmoid操作或QT双曲线切线操作,其中QT激活操作被直接应用于传递到QT激活操作的输入信号。
在示例110中,示例103-109的主题包括:其中,QT前向操作包括QT修正线性单元操作,该QT修正线性单元操作接受包括具有实部和虚部的四元数值的输入,并产生以下任一项作为输出:(a)当实部和虚部各自都为正实数时,四元数值本身;或(b)当实部或虚部中的任何一个不是正实数时,零四元数值。
在示例111中,示例103-110的主题包括:其中,QT前向操作包括QT卷积操作。
在示例112中,示例111的主题包括:其中,QT卷积操作维持空间平移不变性。
在示例113中,示例103-112的主题包括:其中,QT前向操作包括QT内积操作。
在示例114中,示例103-113的主题包括:其中,计算损失函数的逐层QT偏导数包括执行QT链规则操作。
在示例115中,示例103-114的主题包括:其中,一个或多个变量参数是四元数值的。
在示例116中,示例103-115的主题包括:其中,一个或多个变量参数包括权重参数。
在示例117中,示例103-116的主题包括:其中,权重参数是多维四元数值。
在示例118中,示例103-117的主题包括:其中,一个或多个变量参数包括偏置参数。
在示例119中,示例103-118的主题包括:其中,权重参数是多维四元数值。
在示例120中,示例103-119的主题包括:其中,计算逐层QT偏导数产生损失函数相对于隐藏层的所有变量参数的QT梯度。
在示例121中,示例103-120的主题包括:其中,QT前向操作包括在第一层处的QT卷积操作,并且其中一个或多个变量参数包括四元数值偏置参数;并且其中计算逐层QT偏导数包括计算损失函数相对于偏置参数的QT共轭的偏导数。
在示例122中,示例121的主题包括:其中,基于损失函数相对于QT卷积操作的输出的QT共轭的偏导数的计算来实现损失函数相对于偏置参数的QT共轭的偏导数的计算。
在示例123中,示例121-122的主题包括:其中训练数据包括具有像素索引x和y的图像,并且其中基于损失函数相对于在第一层处的QT卷积操作的输出的QT偏导数的、对像素索引x和y的QT求和来计算损失函数相对于偏置参数的QT共轭的偏导数。
在示例124中,示例103-123的主题包括:其中,QT前向操作包括在第一层处的QT卷积操作,并且其中一个或多个变量参数包括四元数值权重参数;并且其中计算逐层QT偏导数包括计算损失函数相对于权重参数的QT共轭的偏导数。
在示例125中,示例124的主题包括:其中,基于损失函数相对于QT卷积操作的输出的QT共轭的偏导数的计算来实现计算损失函数相对于权重参数的QT共轭的偏导数。
在示例126中,示例124-125的主题包括:其中训练数据包括具有像素索引x和y的图像,并且其中基于损失函数相对于在第一层处的QT卷积操作的输出的QT偏导数的、对像素索引x和y的QT求和来计算损失函数相对于权重参数的QT共轭的偏导数。
在示例127中,示例103-126的主题包括:其中,QT前向操作包括在第一层处的QT卷积操作,其中QT卷积操作接受来自先前层的第一四元数值特征图作为输入;并且其中计算逐层QT偏导数包括计算损失函数相对于第一四元数值特征图的QT共轭的偏导数。
在示例128中,示例127的主题包括:其中,基于损失函数相对于QT卷积操作的输出的QT共轭的偏导数的计算来实现计算损失函数相对于第一四元数值特征图的QT共轭的偏导数。
在示例129中,示例103-128的主题包括:其中,QT前向操作包括在第一层处的QT修正线性单元操作,该QT修正线性单元操作产生第一四元数值激活输出;并且其中计算逐层QT偏导数包括计算损失函数相对于第一四元数值激活输出的QT共轭的偏导数。
在示例130中,示例103-129的主题包括:其中,QT前向操作包括在第一层处的QT池化操作,该QT池化操作基于第一层的四元数值输入来产生四元数值池化输出;并且其中计算逐层QT偏导数包括计算四元数值输入对其作出贡献的四元数值池化输出的偏导数的和。
在示例131中,示例103-130的主题包括:其中,QT前向操作包括在第一层处的QT内积操作,并且其中一个或多个变量参数包括四元数值偏置参数;并且其中计算逐层QT偏导数包括计算损失函数相对于偏置参数的QT共轭的偏导数。
在示例132中,示例131的主题包括:其中,基于损失函数相对于QT内积操作的输出的QT共轭的偏导数的计算来实现计算损失函数相对于偏置参数的QT共轭的偏导数。
在示例133中,示例103-132的主题包括:其中,QT前向操作包括在第一层处的QT内积操作,并且其中一个或多个变量参数包括四元数值权重参数;并且其中计算逐层QT偏导数包括计算损失函数相对于权重参数的QT共轭的偏导数。
在示例134中,示例133的主题包括:其中,基于损失函数相对于QT内积操作的输出的QT共轭的偏导数的计算来实现计算损失函数相对于权重参数的QT共轭的偏导数。
在示例135中,示例103-134的主题包括:其中,QT前向操作包括在第一层处的QT内积操作,其中QT内积操作接受来自先前层的第一四元数值特征图作为输入;并且其中计算逐层QT偏导数包括计算损失函数相对于第一四元数值特征图的QT共轭的偏导数。
在示例136中,示例127-135的主题包括:其中,基于损失函数相对于QT内积操作的输出的QT共轭的偏导数的计算来实现计算损失函数相对于第一四元数值特征图的QT共轭的偏导数。
示例137是机器学习系统,包括:处理硬件,该处理硬件包括计算电路和数据存储电路,该处理硬件被配置成用于形成四元数深度神经网络(QTDNN),该QTDNN包括:多个模块化的隐藏层,每个模块化的隐藏层包括QT计算子层的集合,QT计算子层的集合包括沿前向信号传播路径布置的四元数(QT)通用矩阵乘法子层、QT非线性激活子层和QT采样子层;其中该集合的每个QT计算子层包括:多个QT计算引擎;并且其中每个模块化的隐藏层进一步包括沿前向信号传播路径在QT计算子层中的每一个QT计算子层之前的引导子层,其中,该引导子层用于将前向传播的四元数值信号引导至下一QT计算后续子层的所选择的至少一个QT计算引擎。
在示例138中,示例137的主题包括:其中,QT通用矩阵乘法子层包括QT卷积引擎和QT内积引擎。
在示例139中,示例138的主题包括:其中,QT卷积引擎和QT内积引擎各自包括多个核。
在示例140中,示例139的主题包括:其中,QT卷积引擎用于使用QT通用矩阵乘法执行QT操作,这些QT操作维持空间平移不变性。
在示例141中,示例138-140的主题包括:其中,QT卷积引擎用于执行与QT值过滤器进行QT相乘的、处于依次的移位处的四元数值的输入信号的QT求和,以产生QT卷积输出。
在示例142中,示例141的主题包括:其中,QT卷积引擎用于进一步执行四元数值偏置参数与QT卷积输出的QT加法。
在示例143中,示例141-142的主题包括:其中,QT卷积引擎用于执行多维QT卷积操作。
在示例144中,示例138-143的主题包括:其中QT内积引擎用于在四元数值QT内积输入与四元数值权重的集合之间执行一系列按项的QT乘法操作以产生QT内积输出。
在示例145中,示例144的主题包括:其中,QT内积引擎用于进一步执行四元数值偏置参数与QT内积的QT加法。
在示例146中,示例137-145的主题包括:其中,QT非线性激活子层包括QT修正线性激活单元(ReLU)引擎以及以下至少一项:QT sigmoid激活引擎、或QT双曲正切激活引擎。
在示例147中,示例146的主题包括:其中,QT ReLU引擎用于接受包括实部和虚部的四元数值输入,并当实部和虚部中的每一个都是正实数时产生四元数值输出作为QTReLU输出,并且在其他情况下产生零四元数值作为QT ReLU输出。
在示例148中,示例146-147的主题包括:其中QT非线性激活子层包括通过块,该通过块将QT非线性激活子层的输入信号传递至QT非线性激活子层的输出。
在示例149中,示例146-148的主题包括:其中,QT ReLU引擎用于接受包括具有实部和虚部的四元数值的输入,并产生以下任一项作为输出:(a)当实部和虚部各自都为正实数时,四元数值本身;或(b)当实部或虚部中的任何一个不是正实数时,零四元数值。
在示例150中,示例137-149的主题包括:其中,QT采样子层包括QT最大池化引擎和QT平均池化引擎。
在示例151中,示例150的主题包括:其中,QT采样子层包括通过块,所述通过块将QT采样子层的输入信号传递到QT采样子层的输出。
在示例152中,示例150-151的主题包括:其中,来自QT最大池化引擎或QT平均池化引擎之中的至少一个池化引擎用于计算QT采样子层的输入的四元数值部分的QT范数以产生第一标量值,并用于将该第一标量值与其他QT范数产生的标量值进行比较以产生QT池化操作输出。
示例153中,示例137–152的主题包括:其中,四元数值信号表示图像。
在示例154中,示例137-153的主题包括:其中,QT计算子层的集合中的每个QT计算子层都用于执行包括非可交换QT乘法的QT操作。
在示例155中,示例137-154的主题包括:其中,QT计算子层的集合中的每个QT计算子层都用于执行包括QT几何积的QT操作。
在示例156中,示例137-155的主题包括:其中,第一引导子层用于将输入信号分区成引导至相应的后续QT计算子层的第一QT计算引擎的第一部分和引导至后续QT计算子层的第二QT计算引擎的第二部分。
在示例157中,示例137-156的主题包括,其中,后续QT计算子层包括通过第一引导子层,该通过第一引导子层用于从第一QT计算引擎和第二QT计算引擎之中选择相应的后续QT计算子层的至少一个QT计算引擎以执行QT计算操作。
在示例158中,示例157的主题包括:其中,后续QT计算子层包括通过块,该通过块将QT计算子层的输入信号传递到QT计算子层的输出;并且其中,第一引导子层用于从第一QT计算引擎、第二QT计算引擎和通过块中选择通过块,以执行或绕过QT计算操作。
示例159是用于操作四元数深度神经网络(QTDNN)的方法,该方法包括:提供多个模块化的隐藏层,每个模块化的隐藏层包括QT计算子层的集合,该QT计算子层的集合包括沿前向信号传播路径布置的四元数(QT)通用矩阵乘法子层、QT非线性激活子层和QT采样子层;在该集合的每个QT计算子层中提供多个QT计算引擎;在每个模块化的隐藏层中,沿前向信号传播路径在QT计算子层中的每一个QT计算子层之前提供引导子层;以及由该引导子层将前向传播的四元数值信号引导至下一QT计算后续子层的所选择的至少一个QT计算引擎。
在示例160中,示例159的主题包括,其中,QT通用矩阵乘法子层包括QT卷积引擎和QT内积引擎。
在示例161中,示例160的主题包括,其中,QT卷积引擎和QT内积引擎各自包括多个核。
在示例162中,示例161的主题包括,其中,QT卷积引擎用于使用QT通用矩阵乘法执行QT操作,这些QT操作维持空间平移不变性。
在示例163中,示例160-162的主题包括:其中,QT卷积引擎用于执行与QT值过滤器进行QT相乘的、处于依次的移位处的四元数值的输入信号的QT求和,以产生QT卷积输出。
在示例164中,示例163的主题包括,其中,QT卷积引擎用于进一步执行四元数值偏置参数与QT卷积输出的QT加法。
在示例165中,示例163-164的主题包括,其中,QT卷积引擎用于执行多维QT卷积操作。
在示例166中,示例160-165的主题包括,其中QT内积引擎用于在四元数值QT内积输入与四元数值权重的集合之间执行一系列按项的QT乘法操作以产生QT内积输出。
在示例167中,示例166的主题包括,其中,QT内积引擎用于进一步执行四元数值偏置参数与QT内积的QT相加。
在示例168中,示例159-167的主题包括:其中,QT非线性激活子层包括QT修正线性激活单元(ReLU)引擎以及以下至少一项:QT sigmoid激活引擎、或QT双曲正切激活引擎。
在示例169中,示例168的主题包括,其中,QT ReLU引擎用于接受包括实部和虚部的四元数值输入,并当实部和虚部中的每一个都是正实数时产生四元数值输出作为QTReLU输出,并在其他情况下产生零四元数值作为QT ReLU输出。
在示例170中,示例168-169的主题包括,其中QT非线性激活子层包括通过块,该通过块将QT非线性激活子层的输入信号传递至QT非线性激活子层的输出。
在示例171中,示例168-170的主题包括,其中,QT ReLU引擎用于接受包括具有实部和虚部的四元数值的输入,并产生以下任一项作为输出:(a)当实部和虚部各自都为正实数时,四元数值本身;或(b)当实部或虚部中的任何一个不是正实数时,零四元数值。
在示例172中,示例159-171的主题包括,其中,QT采样子层包括QT最大池化引擎和QT平均池化引擎。
在示例173中,示例172的主题包括,其中,QT采样子层包括通过块,该通过块将QT采样子层的输入信号传递到QT采样子层的输出。
在示例174中,示例172-173的主题包括,其中,来自QT最大池化引擎或QT平均池化引擎之中的至少一个池化引擎用于计算QT采样子层的输入的四元数值部分的QT范数以产生第一标量值,并用于将该第一标量值与其他QT范数产生的标量值进行比较以产生QT池化操作输出。
在示例175中,示例159-174的主题包括:其中,四元数值信号表示图像。
在示例176中,示例159-175的主题包括:其中,QT计算子层的集合中的每个QT计算子层都用于执行包括非可交换QT乘法的QT操作。
在示例177中,示例159-176的主题包括:其中,QT计算子层的集合中的每个QT计算子层都用于执行包括QT几何积的QT操作。
在示例178中,示例159-177的主题包括:其中,第一引导子层用于将输入信号分区成引导至相应的后续QT计算子层的第一QT计算引擎的第一部分和引导至后续QT计算子层的第二QT计算引擎的第二部分。
在示例179中,示例159-178的主题包括,其中,后续QT计算子层包括通过第一引导子层,该通过第一引导子层用于从第一QT计算引擎和第二QT计算引擎之中选择相应的后续QT计算子层的至少一个QT计算引擎以执行QT计算操作。
在示例180中,示例179的主题包括:其中,后续QT计算子层包括通过块,该通过块将QT计算子层的输入信号传递到QT计算子层的输出;并且其中,第一引导子层用于从第一QT计算引擎、第二QT计算引擎和通过块中选择通过块,以执行或绕过QT计算操作。
示例181是至少一种机器可读存储介质,包含指令,该指令当在计算平台上执行时,使得计算平台用于形成四元数深度神经网络(QTDNN),该QTDNN包括:多个模块化的隐藏层,每个模块化的隐藏层包括QT计算子层的集合,该QT计算子层的集合包括沿前向信号传播路径布置的四元数(QT)通用矩阵乘法子层、QT非线性激活子层和QT采样子层;其中该集合的每个QT计算子层包括:多个QT计算引擎;并且其中每个模块化的隐藏层进一步包括沿前向信号传播路径在QT计算子层中的每一个QT计算子层之前的引导子层,其中,该引导子层用于将前向传播的四元数值信号引导至下一QT计算后续子层的所选择的至少一个QT计算引擎。
在示例182中,示例181的主题包括,其中,QT通用矩阵乘法子层包括QT卷积引擎和QT内积引擎。
在示例183中,示例182的主题包括,其中,QT卷积引擎和QT内积引擎各自包括多个核。
在示例184中,示例183的主题包括,其中,QT卷积引擎用于使用QT通用矩阵乘法执行QT操作,这些QT操作维持空间平移不变性。
在示例185中,示例182-184的主题包括:其中,QT卷积引擎用于执行与QT值过滤器进行QT相乘的、处于依次的移位处的四元数值的输入信号的QT求和,以产生QT卷积输出。
在示例186中,示例185的主题包括,其中,QT卷积引擎用于进一步执行四元数值偏置参数与QT卷积输出的QT加法。
在示例187中,示例185-186的主题包括,其中,QT卷积引擎用于执行多维QT卷积操作。
在示例188中,示例182-187的主题包括,其中QT内积引擎用于在四元数值QT内积输入与四元数值权重的集合之间执行一系列按项的QT乘法操作以产生QT内积输出。
在示例189中,示例188的主题包括,其中,QT内积引擎用于进一步执行四元数值偏置参数与QT内积的QT相加。
在示例190中,示例181-189的主题包括:其中,QT非线性激活子层包括QT修正线性激活单元(ReLU)引擎以及以下至少一项:QT sigmoid激活引擎、或QT双曲正切激活引擎。
在示例191中,示例190的主题包括,其中,QT ReLU引擎用于接受包括实部和虚部的四元数值输入,并当实部和虚部中的每一个都是正实数时产生四元数值输出作为QTReLU输出,并在其他情况下产生零四元数值作为QT ReLU输出。
在示例192中,示例190-191的主题包括,其中QT非线性激活子层包括通过块,该通过块将QT非线性激活子层的输入信号传递至QT非线性激活子层的输出。
在示例193中,示例190-192的主题包括,其中,QT ReLU引擎用于接受包括具有实部和虚部的四元数值的输入,并产生以下任一项作为输出:(a)当实部和虚部各自都为正实数时,四元数值本身;或(b)当实部或虚部中的任何一个不是正实数时,零四元数值。
在示例194中,示例181-193的主题包括,其中,QT采样子层包括QT最大池化引擎和QT平均池化引擎。
在示例195中,示例194的主题包括,其中,QT采样子层包括通过块,该通过块将QT采样子层的输入信号传递到QT采样子层的输出。
在示例196中,示例194-195的主题包括,其中,来自QT最大池化引擎或QT平均池化引擎之中的至少一个池化引擎用于计算QT采样子层的输入的四元数值部分的QT范数以产生第一标量值,并用于将该第一标量值与其他QT范数产生的标量值进行比较以产生QT池化操作输出。
在示例197中,示例181-196的主题包括:其中,四元数值信号表示图像。
在示例198中,示例181-197的主题包括:其中,QT计算子层的集合中的每个QT计算子层都用于执行包括非可交换QT乘法的QT操作。
在示例199中,示例181-198的主题包括:其中,QT计算子层的集合中的每个QT计算子层都用于执行包括QT几何积的QT操作。
在示例200中,示例181-199的主题包括:其中,第一引导子层用于将输入信号分区成引导至相应的后续QT计算子层的第一QT计算引擎的第一部分和引导至后续QT计算子层的第二QT计算引擎的第二部分。
在示例201中,示例181-200的主题包括,其中,后续QT计算子层包括通过第一引导子层,该通过第一引导子层用于从第一QT计算引擎和第二QT计算引擎之中选择相应的后续QT计算子层的至少一个QT计算引擎以执行QT计算操作。
在示例202中,示例201的主题包括:其中,后续QT计算子层包括通过块,该通过块将QT计算子层的输入信号传递到QT计算子层的输出;并且其中,第一引导子层用于从第一QT计算引擎、第二QT计算引擎和通过块中选择通过块,以执行或绕过QT计算操作。
示例203是用于实现四元数深度神经网络(QTDNN)的系统,该系统包括:用于提供多个模块化的隐藏层的装置,每个模块化的隐藏层包括QT计算子层的集合,该QT计算子层的集合包括沿前向信号传播路径布置的四元数(QT)通用矩阵乘法子层、QT非线性激活子层和QT采样子层;其中该集合的每个QT计算子层包括:多个QT计算装置;并且其中每个模块化的隐藏层进一步包括沿前向信号传播路径在QT计算子层中的每一个QT计算子层之前的引导装置,其中,该引导装置用于将前向传播的四元数值信号引导至下一QT计算后续子层的所选择的至少一个QT计算装置。
在示例204中,示例203的主题包括,其中,QT通用矩阵乘法子层包括QT卷积装置和QT内积装置。
在示例205中,示例204的主题包括,其中,QT卷积装置和QT内积装置各自包括多个核。
在示例206中,示例205的主题包括,其中,QT卷积装置用于使用QT通用矩阵乘法执行QT操作,这些QT操作维持空间平移不变性。
在示例207中,示例204-206的主题包括:其中,QT卷积装置用于执行与QT值的过滤器进行QT相乘的、在依次的移位处的四元数值输入信号的QT求和,以产生QT卷积输出。
在示例208中,示例207的主题包括,其中,QT卷积装置用于进一步执行四元数值偏置参数与QT卷积输出的QT加法。
在示例209中,示例207-208的主题包括,其中,QT卷积装置用于执行多维QT卷积操作。
在示例210中,示例204-209的主题包括,其中QT内积装置用于在四元数值QT内积输入与四元数值权重的集合之间执行一系列按项的QT乘法操作以产生QT内积输出。
在示例211中,示例210的主题包括,其中,QT内积装置用于进一步执行四元数值偏置参数与QT内积的QT相加。
在示例212中,示例203-211的主题包括:其中,QT非线性激活子层包括QT修正线性激活单元(ReLU)装置以及以下至少一项:QT sigmoid激活装置、或QT双曲正切激活装置。
在示例213中,示例212的主题包括,其中,QT ReLU装置用于接受包括实部和虚部的四元数值输入,并当实部和虚部中的每一个都是正实数时产生四元数值输出作为QTReLU输出,并在其他情况下产生零四元数值作为QT ReLU输出。
在示例214中,示例212-213的主题包括,其中QT非线性激活子层包括通过块,该通过块将QT非线性激活子层的输入信号传递至QT非线性激活子层的输出。
在示例215中,示例212-214的主题包括,其中,QT ReLU装置用于接受包括具有实部和虚部的四元数值的输入,并产生以下任一项作为输出:(a)当实部和虚部各自都为正实数时,四元数值本身;或(b)当实部或虚部中的任何一个不是正实数时,零四元数值。
在示例216中,示例203-215的主题包括,其中,QT采样子层包括QT最大池化装置和QT平均池化装置。
在示例217中,示例216的主题包括,其中,QT采样子层包括通过块,该通过块将QT采样子层的输入信号传递到QT采样子层的输出。
在示例218中,示例216-217的主题包括,其中,来自QT最大池化装置或QT平均池化装置之中的至少一个池化装置用于计算QT采样子层的输入的四元数值部分的QT范数以产生第一标量值,并用于将该第一标量值与其他QT范数产生的标量值进行比较以产生QT池化操作输出。
在示例219中,示例203-218的主题包括:其中,四元数值信号表示图像。
在示例220中,示例203-219的主题包括:其中,QT计算子层的集合中的每个QT计算子层都用于执行包括非可交换QT乘法的QT操作。
在示例221中,示例203-220的主题包括:其中,QT计算子层的集合中的每个QT计算子层都用于执行包括QT几何积的QT操作。
在示例222中,示例203-221的主题包括:其中,第一引导子层用于将输入信号分区成引导至相应的后续QT计算子层的第一QT计算装置的第一部分和引导至后续QT计算子层的第二QT计算装置的第二部分。
在示例223中,示例203-222的主题包括,其中,后续QT计算子层包括通过第一引导子层,该通过第一引导子层用于从第一QT计算装置和第二QT计算装置之中选择相应的后续QT计算子层的至少一个QT计算装置以执行QT计算操作。
在示例224中,示例223的主题包括:其中,后续QT计算子层包括通过块,该通过块将QT计算子层的输入信号传递到QT计算子层的输出;并且其中,第一引导子层用于从第一QT计算装置、第二QT计算装置和通过块中选择通过块,以执行或绕过QT计算操作。
示例225是机器学习系统,包括:处理硬件,该处理硬件包括计算电路和数据存储电路,该处理硬件被配置成用于形成四元数(QT)计算引擎;其中,QT计算引擎的输入数据包括四元数值,每个四元数值包括实部和三个虚部,该实部和三个虚部被表示为实值张量的集合,其中:单个四元数值被表示为具有四个实值分量的一维实值张量,其中第一实值分量表示单个四元数值的实部,并且其中第二、第三、和第四实值分量各自分别表示虚部中的一个;具有尺寸N的四元数值向量被表示为包括N个1维实值张量的2维实值张量;并且具有N xM维的四元数值矩阵被表示为包括M个2维实值张量的3维实值张量,该2维实值张量包括N个1维实值张量。
在示例226中,示例225的主题包括:其中,QT计算引擎是四元数深度神经网络(QTDNN)的一部分,该QTDNN包括:一个或多个隐藏层的集合,每个隐藏层包括QT计算子层的集合,其中该集合的QT计算子层中的一个QT计算子层包括QT计算引擎。
在示例227中,示例225-226的主题包括:其中,输入数据表示具有三个通道的第一图像,这三个通道分别表示红、绿、和蓝强度值,并且其中,该第一图像被编码为多个单个的四元数值的集合,其中1维张量的与实四元数分量相对应的第一实值分量被设置为零,并且其中红、绿、和蓝通道值由1维张量的与虚部对应的第二、第三、和第四实值分量表示。
在示例228中,示例227的主题包括:其中,四元数值的集合进一步被编码为四维张量,该四维张量具有:表示沿第一图像的高度的像素的第一维度、表示沿图像的宽度的像素的第二维度、为1的第三维度、以及为多个单个的四元数值的第四维度。
在示例229中,示例228的主题包括:其中,输入数据包括批量的图像,该批量的图像包括第一图像,并且其中,QT计算引擎用于使用QT计算操作一起处理该批量的图像。
在示例230中,示例229的主题包括:其中,该批量的图像被表示为五维张量,该五维张量具有表示该批次的图像的第一维度以及表示四维张量的其余维度。
在示例231中,示例230的主题包括:其中,QT计算引擎包括QT卷积核,该QT卷积核在具有C个通道的输入图像上具有窗口尺寸S*T,该输入图像被表示为具有第一维度S、第二维度T、第三维度C和第四维度4的四维张量。
在示例232中,示例230–231的主题包括:其中,QT计算引擎包括具有K个核的QT卷积引擎,每个核在具有C个通道的输入图像上具有窗口尺寸S*T,该输入图像被表示为具有第一维度K、第二维度S、第三维度T、第四维度C、以及第五维度4的五维张量。
在示例233中,示例225-232的主题包括:其中,QT计算引擎被配置成用于执行多个QT计算操作,包括对被表示为实值张量的四元数值的非可交换QT乘法。
在示例234中,示例225-233的主题包括:其中,QT计算引擎被配置成用于执行多个QT计算操作,包括对被表示为实值张量的四元数值的QT几何积。
在示例235中,示例225-234的主题包括:其中,QT计算引擎被配置成用于执行多个QT计算操作,包括对被表示为实值张量的四元数值的QT对合。
在示例236中,示例225-235的主题包括:其中,QT计算引擎被预先配置有具有四个维度、五个维度和六个维度的QT操作块。
示例237是用于操作四元数(QT)计算引擎的方法,该方法包括:由QT计算引擎接收输入数据;以及由QT计算引擎存储输入数据,该输入数据包括四元数值,每个四元数值包括实部和三个虚部,该实部和三个虚部被表示为实值张量的集合,其中:单个四元数值被表示为具有四个实值分量的一维实值张量,其中第一实值分量表示单个四元数值的实部,并且其中第二、第三、和第四实值分量各自分别表示虚部中的一个;具有尺寸N的四元数值向量被表示为包括N个1维实值张量的2维实值张量;并且具有N x M维的四元数值矩阵被表示为包括M个2维实值张量的3维实值张量,该2维实值张量包括N个1维实值张量。
在示例238中,示例237的主题包括:其中,QT计算引擎是四元数深度神经网络(QTDNN)的一部分,该QTDNN包括:一个或多个隐藏层的集合,每个隐藏层包括QT计算子层的集合,其中该集合的QT计算子层中的一个QT计算子层包括QT计算引擎。
在示例239中,示例237-238的主题包括:其中,输入数据表示具有三个通道的第一图像,该三个通道表示红、绿、和蓝强度值,并且其中第一图像被编码为多个单个的四元数值的集合,其中1维张量的与实四元数分量相对应的第一实值分量被设置为零,并且其中红、绿、和蓝通道值由1维张量的与虚部对应的第二、第三、和第四实值分量表示。
在示例240中,示例239的主题包括:其中,四元数值的集合进一步被编码为四维张量,该四维张量具有表示沿第一图像的高度的像素的第一维度、表示沿图像的宽度的像素的第二维度、为1的第三维度、以及为多个单个的四元数值的第四维度。
在示例241中,示例240的主题包括:其中,输入数据包括批量的图像,该批量的图像包括第一图像,并且其中,QT计算引擎用于使用QT计算操作一起处理该批量的图像。
在示例242中,示例241的主题包括,其中,该批量的图像被表示为五维张量,该五维张量具有表示该批次的图像的第一维度以及表示四维张量的其余维度。
在示例243中,示例242的主题包括:其中,QT计算引擎包括QT卷积核,该QT卷积核在具有C个通道的输入图像上具有窗口尺寸S*T,该输入图像被表示为具有第一维度S、第二维度T、第三维度C和第四维度4的四维张量。
在示例244中,示例242-243的主题包括:其中,QT计算引擎包括具有K个核的QT卷积引擎,每个核在具有C个通道的输入图像上具有窗口尺寸S*T,该输入图像被表示为具有第一维度K、第二维度S、第三维度T、和第四维度C、以及第五维度4的五维张量。
在示例245中,示例237-244的主题包括:其中,由QT计算引擎执行多个QT计算操作,包括对被表示为实值张量的四元数值的非可交换QT乘法。
在示例246中,示例237-245的主题包括:由QT计算引擎执行多个QT计算操作,包括对被表示为实值张量的四元数值执行QT几何积。
在示例247中,示例237-246的主题包括:由QT计算引擎执行多个QT计算操作,包括对被表示为实值张量的四元数值执行QT对合。
在示例248中,示例237-247的主题包括:利用具有四个维度、五个维度和六个维度的QT操作块来配置QT计算引擎。
示例249是用于操作四元数(QT)计算引擎的系统,该系统包括:用于由QT计算引擎接收输入数据的装置;以及用于由QT计算引擎存储输入数据的装置,该输入数据包括四元数值,每个四元数值包括实部和三个虚部,该实部和三个虚部被表示为实值张量的集合,其中:单个四元数值表示为具有四个实值分量的一维实值张量,其中第一实值分量表示单个四元数值的实部,并且其中第二、第三、和第四实值分量各自分别表示虚部中的一个;具有尺寸为N的四元数值向量被表示为包括N个1维实值张量的2维实值张量;并且具有N x M维的四元数值矩阵被表示为包括M个2维实值张量的3维实值张量,该2维实值张量包括N个1维实值张量。
在示例250中,示例249的主题包括:其中,QT计算引擎是四元数深度神经网络(QTDNN)的一部分,该QTDNN包括:一个或多个隐藏层的集合,每个隐藏层包括QT计算子层的集合,其中该集合的QT计算子层中的一个QT计算子层包括QT计算引擎。
在示例251中,示例249-250的主题包括:其中,输入数据表示具有三个通道的第一图像,该三个通道表示红、绿、和蓝强度值,并且其中第一图像被编码为多个单个的四元数值的集合,其中1维张量的与实四元数分量相对应的第一实值分量被设置为零,并且其中红、绿、和蓝通道值由1维张量的与虚部对应的第二、第三、和第四实值分量表示。
在示例252中,示例251的主题包括:其中,四元数值的集合进一步被编码为四维张量,该四维张量具有表示沿第一图像的高度的像素的第一维度、表示沿图像的宽度的像素的第二维度、为1的第三维度、以及为多个单个的四元数值的第四维度。
在示例253中,示例252的主题包括:其中,输入数据包括批量的图像,该批量的图像包括第一图像,并且其中,QT计算引擎用于使用QT计算操作一起处理该批量的图像。
在示例254中,示例253的主题包括,其中,该批量的图像被表示为五维张量,该五维张量具有表示该批次的图像的第一维度以及表示四维张量的其余维度。
在示例255中,示例254的主题包括:其中,QT计算引擎包括QT卷积核,该QT卷积核在具有C个通道的输入图像上具有窗口尺寸S*T,该输入图像被表示为具有第一维度S、第二维度T、第三维度C和第四维度4的四维张量。
在示例256中,示例254-255的主题包括:其中,QT计算引擎包括具有K个核的QT卷积引擎,每个核在具有C个通道的输入图像上具有窗口尺寸S*T,该输入图像被表示为具有第一维度K、第二维度S、第三维度T、第四维度C、以及第五维度4的五维张量。
在示例257中,示例249-256的主题包括:用于由QT计算引擎执行多个QT计算操作的装置,多个QT计算操作包括对被表示为实值张量的四元数值的非可交换QT乘法。
在示例258中,示例249-257的主题包括:用于由QT计算引擎执行多个QT计算操作的装置,多个QT计算操作包括对被表示为实值张量的四元数值的QT几何积。
在示例259中,示例249-258的主题包括:用于由QT计算引擎执行多个QT计算操作的装置,多个QT计算操作包括对被表示为实值张量的四元数值的QT对合。
在示例260中,示例249-259的主题包括:用于利用具有四个维度、五个维度和六个维度的QT操作块来配置QT计算引擎的装置。
示例261是至少一种机器可读存储介质,包含指令,该指令当由计算平台执行时,使得该计算平台用于实现四元数(QT)计算引擎,该四元数(QT)计算引擎用于:接收输入数据;以及存储并处理该输入数据,该输入数据包括四元数值,每个四元数值包括实部和三个虚部,该实部和三个虚部被表示为实值张量的集合,其中:单个四元数值表示为具有四个实值分量的一维实值张量,其中第一实值分量表示单个四元数值的实部,并且其中第二、第三、和第四实值分量各自分别表示虚部中的一个;具有尺寸N的四元数值向量被表示为包括N个1维实值张量的2维实值张量;并且具有N x M维的四元数值矩阵被表示为包括M个2维实值张量的3维实值张量,该2维实值张量包括N个1维实值张量。
在示例262中,示例261的主题包括:其中,QT计算引擎是四元数深度神经网络(QTDNN)的一部分,该QTDNN包括:一个或多个隐藏层的集合,每个隐藏层包括组QT计算子层的集合,其中该集合的QT计算子层中的一个QT计算子层包括QT计算引擎。
在示例263中,示例261-262的主题包括:其中,输入数据表示具有三个通道的第一图像,该三个通道表示红、绿、和蓝强度值,并且其中第一图像被编码为多个单个的四元数值的集合,其中1维张量的与实四元数分量相对应的第一实值分量被设置为零,并且其中红、绿、和蓝通道值由1维张量的与虚部对应的第二、第三、和第四实值分量表示。
在示例264中,示例263的主题包括:其中,四元数值的集合进一步被编码为四维张量,该四维张量具有表示沿第一图像的高度的像素的第一维度、表示沿图像的宽度的像素的第二维度、为1的第三维度、以及为多个单个的四元数值的第四维度。
在示例265中,示例264的主题包括:其中,输入数据包括批量的图像,该批量的图像包括第一图像,并且其中,QT计算引擎用于使用QT计算操作一起处理该批量的图像。
在示例266中,示例265的主题包括,其中,该批量的图像被表示为五维张量,该五维张量具有表示该批次的图像的第一维度以及表示四维张量的其余维度。
在示例267中,示例266的主题包括:其中,QT计算引擎包括QT卷积核,该QT卷积核在具有C个通道的输入图像上具有窗口尺寸S*T,该输入图像被表示为具有第一维度S、第二维度T、第三维度C和第四维度4的四维张量。
在示例268中,示例266-267的主题包括:其中,QT计算引擎包括具有K个核的QT卷积引擎,每个核在具有C个通道的输入图像上具有窗口尺寸S*T,该输入图像被表示为具有第一维度K、第二维度S、第三维度T、第四维度C、以及第五维度为4的五维张量。
在示例269中,示例261-268的主题包括:其中,该指令用于进一步使得计算平台用于执行多个QT计算操作,包括对被表示为实值张量的四元数值的非可交换QT乘法。
在示例270中,示例261-269的主题包括:其中,该指令用于进一步使得计算平台用于执行多个QT计算操作,包括对被表示为实值张量的四元数值的QT几何积。
在示例271中,示例261-270的主题包括:其中,该指令用于进一步使得计算平台用于执行多个QT计算操作,包括对被表示为实值张量的四元数值的QT对合。
在示例272中,示例261-271的主题包括:其中,该指令用于进一步使得计算平台用于利用具有四个维度、五个维度和六个维度的QT操作块来配置QT计算引擎。
示例273是包括指令的至少一种机器可读介质,这些指令在由处理电路执行时,使该处理电路执行操作以实现示例1-272中的任一项。
示例274是一种包括用于实现示例1-272中的任一项的装置的设备。
示例275是一种用于实现示例1-272中的任一项的系统。
示例276是一种用于实现示例1-272中的任一项的方法。
应当注意,尽管以上详述的说明性实施例的示例和描述在四元数值的上下文中,但是可以利用本文描述的实施例的原理来适配其他类型的复数值或超复数值。
以上具体实施方式包括对附图的引用,附图形成具体实施方式的部分。附图通过说明方式示出可被实施的具体实施例。这些实施例在本文中也被称为“示例”。此类示例可包括除所示出或所描述的那些要素以外的要素。然而,还构想了包括所示出或所描述的元素的示例。而且,还构想了使用所示出或所描述的那些要素(或其一个或多个方面)的任何组合或排列的示例,或参照本文中所示出或所描述的特定示例(或其一个或多个方面)的示例,或参照本文中所示出或所描述的其他示例(或其一个或多个方面)的示例。
在此文档中引用的出版物、专利和专利文档通过引用被整体结合在本文中,就好像通过引用单独地被结合那样。在本文档与通过引用而被结合的那些文档之间不一致的用法的情况下,所结合的(多个)引用中的用法是对此文档的用法的补充;对于不可调和的不一致性,此文档中的用法占主导。
在此文档中,如在专利文档中常见的那样,使用术语“一(a或an)”以包括一个或多于一个,这独立于“至少一个”或“一个或多个”的任何其他实例或用法。在此文档中,使得除非另外指示,否则使用术语“或”来指非排他性的或,使得“A或B”包括“A但非B”、“B但非A”、以及“A和B”。在所附权利要求书中,术语“包括(including)”和“其中(in which)”被用作相应的术语“包括(comprising)”和“其中(wherein)”的普通英语等价词。此外,在所附权利要求书中,术语“包括”和“包含”是开放式的,也就是说,在权利要求中包括除此类术语之后列举的那些元件之外的元件的系统、设备、制品或过程仍被视为落在那项权利要求的范围内。此外,在所附权利要求书中,术语“第一”、“第二”和“第三”等仅被用作标记,并且不旨在表明对它们的对象的数字次序。
以上描述旨在是说明性而非限制性的。例如,可结合其他实施例来使用以上所描述的示例(或者其一个或多个方面)。诸如可由本领域普通技术人员在仔细阅读以上描述之后使用其他实施例。提交该摘要,并且理解该摘要将不用于解释或限制权利要求书的范围或含义。而且,在以上具体实施方式中,各种特征可分组在一起以使本公开精简。然而,权利要求可以不陈述本文中所公开的每一特征,因为实施例的特征可以是所述特征的子集。进一步地,实施例可包括比特定示例中所公开的那些特征更少的特征。因此,所附权利要求书由此被结合到具体实施方式中,一项权利要求作为单独的实施例而独立存在。本文中所公开的实施例的范围应当参照所附权利要求书连同此类权利要求所赋予权利的等价方案的完整范围来确定。
附录1
附录2

Claims (20)

1.一种用于操作深度神经网络(DNN)的方法,所述方法包括:
提供输入层、输出层和多个隐藏层,所述多个隐藏层沿所述输入层与所述输出层之间的前向传播路径布置;
其中所述输入层用于接受包括四元数值的训练数据,并且用于沿所述前向传播路径将四元数值信号输出到所述多个隐藏层中的至少一个隐藏层;
其中所述隐藏层中的至少一些隐藏层包括四元数层,所述四元数层用于基于一个或多个变量参数来执行一致的四元数(QT)前向操作,以沿所述前向传播路径产生对应的至少一个特征图输出;
其中所述输出层用于产生基于所述QT前向操作的DNN结果;
提供损失函数引擎以产生损失函数,所述损失函数表示所述DNN结果与预期结果之间的误差;
执行基于QT反向传播的训练操作,所述基于QT反向传播的训练操作包括:
计算所述损失函数相对于所述一个或多个变量参数的QT共轭以及所述四元数层的各个输入的QT共轭的与四元数空间的正交基一致的逐层QT偏导数,所述QT偏导数是依次通过所述多个隐藏层、沿与所述前向传播路径相反的后向传播路径而取得的;以及
基于所述QT偏导数来更新所述变量参数以减少归因于每个相应的隐藏层的误差。
2.如权利要求1所述的方法,其特征在于,所述逐层QT偏导数的计算产生所述损失函数相对于所述隐藏层的所有变量参数的QT梯度。
3.如权利要求1所述的方法,其特征在于,所述QT前向操作包括在第一层处的QT卷积操作,并且其中,所述一个或多个变量参数包括四元数值偏置参数;并且
其中,计算所述逐层QT偏导数包括:计算所述损失函数相对于所述偏置参数的QT共轭的偏导数。
4.如权利要求3所述的方法,其特征在于,基于所述损失函数相对于所述QT卷积操作的输出的QT共轭的偏导数的计算来实现所述损失函数相对于所述偏置参数的QT共轭的偏导数的计算。
5.如权利要求3所述的方法,其特征在于,所述训练数据包括具有像素索引x和y的图像,并且其中,基于所述损失函数相对于在所述第一层处的所述QT卷积操作的输出的QT偏导数的、对所述像素索引x和y的QT求和来计算所述损失函数相对于所述偏置参数的QT共轭的偏导数。
6.如权利要求1所述的方法,其特征在于,所述QT前向操作包括在第一层处的QT卷积操作,并且其中,所述一个或多个变量参数包括四元数值权重参数;并且
其中,计算逐层QT偏导数包括:计算所述损失函数相对于所述权重参数的QT共轭的偏导数。
7.如权利要求6所述的方法,其特征在于,基于所述损失函数相对于所述QT卷积操作的输出的QT共轭的偏导数的计算来实现计算所述损失函数相对于所述权重参数的QT共轭的偏导数。
8.如权利要求6所述的方法,其特征在于,所述训练数据包括具有像素索引x和y的图像,并且其中,基于所述损失函数相对于在所述第一层处的所述QT卷积操作的输出的QT偏导数的、对所述像素索引x和y的QT求和来计算所述损失函数相对于所述权重参数的QT共轭的偏导数。
9.如权利要求1所述的方法,其特征在于,所述QT前向操作包括在第一层处的QT卷积操作,其中,所述QT卷积操作接受来自先前层的第一四元数值特征图作为输入;并且
其中,计算逐层QT偏导数包括:计算所述损失函数相对于所述第一四元数值特征图的QT共轭的偏导数。
10.如权利要求9所述的方法,其特征在于,基于所述损失函数相对于所述QT卷积操作的输出的QT共轭的偏导数的计算来实现计算所述损失函数相对于所述第一四元数值特征图的QT共轭的偏导数。
11.如权利要求1所述的方法,其特征在于,所述QT前向操作包括在第一层处的QT修正线性单元操作,所述QT修正线性单元操作产生第一四元数值激活输出;并且
其中,计算逐层QT偏导数包括:计算所述损失函数相对于所述第一四元数值激活输出的QT共轭的偏导数。
12.如权利要求1所述的方法,其特征在于,所述QT前向操作包括在第一层处的QT池化操作,所述QT池化操作基于所述第一层的四元数值输入来产生四元数值池化输出;并且
其中,计算逐层QT偏导数包括:计算所述四元数值输入对其作出贡献的四元数值池化输出的偏导数的和。
13.如权利要求1所述的方法,其特征在于,所述QT前向操作包括在第一层处的QT内积操作,并且其中,所述一个或多个变量参数包括四元数值偏置参数;并且
其中,计算逐层QT偏导数包括:计算所述损失函数相对于所述偏置参数的QT共轭的偏导数。
14.如权利要求13所述的方法,其特征在于,基于所述损失函数相对于所述QT内积操作的输出的QT共轭的偏导数的计算来实现计算所述损失函数相对于所述偏置参数的QT共轭的偏导数。
15.如权利要求1所述的方法,其特征在于,所述QT前向操作包括在第一层处的QT内积操作,并且其中,所述一个或多个变量参数包括四元数值权重参数;并且
其中,计算逐层QT偏导数包括:计算所述损失函数相对于所述权重参数的QT共轭的偏导数。
16.如权利要求15所述的方法,其特征在于,基于所述损失函数相对于所述QT内积操作的输出的QT共轭的偏导数的计算来实现计算所述损失函数相对于所述权重参数的QT共轭的偏导数。
17.如权利要求1所述的方法,其特征在于,所述QT前向操作包括在第一层处的QT内积操作,其中,所述QT内积操作接受来自先前层的第一四元数值特征图作为输入;并且
其中,计算逐层QT偏导数包括:计算所述损失函数相对于所述第一四元数值特征图的QT共轭的偏导数。
18.如权利要求9所述的方法,其特征在于,基于所述损失函数相对于所述QT内积操作的输出的QT共轭的偏导数的计算来实现计算所述损失函数相对于所述第一四元数值特征图的QT共轭的偏导数。
19.一种用于操作深度神经网络(DNN)的系统,包括用于执行根据权利要求1-18中的任一项所述的方法的装置。
20.至少一种机器可读存储介质,包括指令,所述指令当在计算平台上被执行时,使得所述计算平台执行根据权利要求1-18中的任一项所述的方法。
CN201880028671.5A 2017-05-31 2018-05-31 用于基于四元数的机器学习系统的基于梯度的训练引擎 Pending CN110574050A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201762513390P 2017-05-31 2017-05-31
US62/513,390 2017-05-31
PCT/US2018/035431 WO2018222896A1 (en) 2017-05-31 2018-05-31 Gradient-based training engine for quaternion-based machine-learning systems

Publications (1)

Publication Number Publication Date
CN110574050A true CN110574050A (zh) 2019-12-13

Family

ID=64455054

Family Applications (3)

Application Number Title Priority Date Filing Date
CN201880028671.5A Pending CN110574050A (zh) 2017-05-31 2018-05-31 用于基于四元数的机器学习系统的基于梯度的训练引擎
CN201880028685.7A Pending CN110574051A (zh) 2017-05-31 2018-05-31 计算高效的基于四元数的机器学习系统
CN201880028672.XA Pending CN110603544A (zh) 2017-05-31 2018-05-31 用于四元数操作的基于张量的计算系统

Family Applications After (2)

Application Number Title Priority Date Filing Date
CN201880028685.7A Pending CN110574051A (zh) 2017-05-31 2018-05-31 计算高效的基于四元数的机器学习系统
CN201880028672.XA Pending CN110603544A (zh) 2017-05-31 2018-05-31 用于四元数操作的基于张量的计算系统

Country Status (4)

Country Link
US (3) US11593643B2 (zh)
EP (3) EP3631692A4 (zh)
CN (3) CN110574050A (zh)
WO (3) WO2018222896A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111523638A (zh) * 2020-03-10 2020-08-11 中移(杭州)信息技术有限公司 深度神经网络的泛化能力的度量方法、装置、终端、存储介质
CN112396123A (zh) * 2020-11-30 2021-02-23 上海交通大学 基于卷积神经网络的图像识别方法、系统、终端和介质
CN113607684A (zh) * 2021-08-18 2021-11-05 燕山大学 基于gaf图像和四元数卷积的光谱定性建模方法
US11263526B2 (en) 2017-05-31 2022-03-01 Intel Corporation Gradient-based training engine for quaternion-based machine-learning systems
CN116167461A (zh) * 2023-04-21 2023-05-26 之江实验室 一种模型训练的方法、装置、存储介质及电子设备

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3605402B1 (en) * 2017-08-31 2022-08-31 Cambricon (Xi'an) Semiconductor Co., Ltd. Chip device and related product
US11243880B1 (en) 2017-09-15 2022-02-08 Groq, Inc. Processor architecture
US11360934B1 (en) 2017-09-15 2022-06-14 Groq, Inc. Tensor streaming processor architecture
US11868804B1 (en) 2019-11-18 2024-01-09 Groq, Inc. Processor instruction dispatch configuration
US11114138B2 (en) 2017-09-15 2021-09-07 Groq, Inc. Data structures with multiple read ports
US11170307B1 (en) 2017-09-21 2021-11-09 Groq, Inc. Predictive model compiler for generating a statically scheduled binary with known resource constraints
CN107798382B (zh) * 2017-11-21 2020-09-01 南京地平线机器人技术有限公司 用于适配卷积神经网络中的特征数据的方法和装置
CN107909148B (zh) 2017-12-12 2020-10-20 南京地平线机器人技术有限公司 用于执行卷积神经网络中的卷积运算的装置
US11995448B1 (en) * 2018-02-08 2024-05-28 Marvell Asia Pte Ltd Method and apparatus for performing machine learning operations in parallel on machine learning hardware
US11875245B1 (en) * 2018-02-22 2024-01-16 United States Of America As Represented By The Secretary Of The Air Force System, apparatus and method for spiking neural network
US10929779B1 (en) 2018-05-22 2021-02-23 Marvell Asia Pte, Ltd. Architecture to support synchronization between core and inference engine for machine learning
US11016801B1 (en) 2018-05-22 2021-05-25 Marvell Asia Pte, Ltd. Architecture to support color scheme-based synchronization for machine learning
US10929778B1 (en) 2018-05-22 2021-02-23 Marvell Asia Pte, Ltd. Address interleaving for machine learning
US10997510B1 (en) 2018-05-22 2021-05-04 Marvell Asia Pte, Ltd. Architecture to support tanh and sigmoid operations for inference acceleration in machine learning
US10839791B2 (en) * 2018-06-27 2020-11-17 International Business Machines Corporation Neural network-based acoustic model with softening target-layer
CN109191512B (zh) * 2018-07-27 2020-10-30 深圳市商汤科技有限公司 双目图像的深度估计方法及装置、设备、程序及介质
EP3864573A1 (en) 2018-10-11 2021-08-18 Tesla, Inc. Systems and methods for training machine models with augmented data
EP3648013A1 (en) * 2018-11-02 2020-05-06 Tata Consultancy Services Limited Method and system for partitioning of deep convolution network for executing on computationally constraint devices
US11301546B2 (en) 2018-11-19 2022-04-12 Groq, Inc. Spatial locality transform of matrices
US10733511B1 (en) * 2019-01-30 2020-08-04 StradVision, Inc. Learning method and learning device for updating HD map by reconstructing 3D space by using depth estimation information and class information on each object, which have been acquired through V2X information integration technique, and testing method and testing device using the same
CN110069985B (zh) * 2019-03-12 2020-08-28 北京三快在线科技有限公司 基于图像的目标点位置检测方法、装置、电子设备
US11567186B2 (en) * 2019-03-19 2023-01-31 Kabushiki Kaisha Toshiba Compensating radio tracking with comparison to image based tracking
US11537939B2 (en) * 2019-05-03 2022-12-27 Google Llc Reshape and broadcast optimizations to avoid unnecessary data movement
EP3742345A1 (en) * 2019-05-20 2020-11-25 Robert Bosch GmbH A neural network with a layer solving a semidefinite program
US11144790B2 (en) * 2019-10-11 2021-10-12 Baidu Usa Llc Deep learning model embodiments and training embodiments for faster training
CN111338635B (zh) * 2020-02-20 2023-09-12 腾讯科技(深圳)有限公司 计算图的图编译方法、装置、设备及存储介质
US20210303758A1 (en) * 2020-03-31 2021-09-30 Ultraleap Limited Accelerated Hardware Using Dual Quaternions
CN111782219B (zh) * 2020-07-16 2024-03-22 矩阵元技术(深圳)有限公司 基于TensorFlow的自定义类型实现方法和装置
US11954611B2 (en) * 2020-08-27 2024-04-09 International Business Machines Corporation Tensor comparison across a distributed machine learning environment
CN112102085B (zh) * 2020-08-31 2023-11-03 深圳市富途网络科技有限公司 期权的推荐方法、装置、设备及存储介质
CN112098358B (zh) * 2020-09-07 2021-12-17 燕山大学 基于四元数卷积神经网络的近红外光谱并行融合定量检测方法
CN112614196B (zh) * 2020-12-16 2022-06-28 湖南科技大学 基于四元数卷积神经网络的图像鲁棒性哈希认证方法
CN113657521B (zh) * 2021-08-23 2023-09-19 天津大学 一种分离图像中两种互斥成分的方法
CN114528101A (zh) * 2022-02-14 2022-05-24 贵州电网有限责任公司 一种应用于电力边缘计算的神经网络的结构化动态量化方法

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006140952A (ja) * 2004-11-15 2006-06-01 Toa Corp 画像処理装置および画像処理方法
US9070039B2 (en) 2013-02-01 2015-06-30 Brian Corporation Temporal winner takes all spiking neuron network sensory processing apparatus and methods
US9129221B2 (en) 2012-05-07 2015-09-08 Brain Corporation Spiking neural network feedback apparatus and methods
WO2015054666A1 (en) * 2013-10-10 2015-04-16 Board Of Regents, The University Of Texas System Systems and methods for quantitative analysis of histopathology images using multi-classifier ensemble schemes
US9767410B1 (en) * 2014-10-03 2017-09-19 Google Inc. Rank-constrained neural networks
JP6567381B2 (ja) 2015-09-30 2019-08-28 株式会社東芝 演算装置、方法及びプログラム
US11120329B2 (en) * 2016-05-07 2021-09-14 Intel Corporation Multicast network and memory transfer optimizations for neural network hardware acceleration
US10354362B2 (en) 2016-09-08 2019-07-16 Carnegie Mellon University Methods and software for detecting objects in images using a multiscale fast region-based convolutional neural network
US11544539B2 (en) 2016-09-29 2023-01-03 Tsinghua University Hardware neural network conversion method, computing device, compiling method and neural network software and hardware collaboration system
US20180121791A1 (en) 2016-11-03 2018-05-03 Qualcomm Incorporated Temporal difference estimation in an artificial neural network
US10262218B2 (en) * 2017-01-03 2019-04-16 Qualcomm Incorporated Simultaneous object detection and rigid transform estimation using neural network
WO2018222896A1 (en) 2017-05-31 2018-12-06 Intel Corporation Gradient-based training engine for quaternion-based machine-learning systems
CN110892723B (zh) 2017-07-06 2024-04-12 三星电子株式会社 用于编码或解码图像的方法和装置
US10692244B2 (en) * 2017-10-06 2020-06-23 Nvidia Corporation Learning based camera pose estimation from images of an environment
US11263525B2 (en) 2017-10-26 2022-03-01 Nvidia Corporation Progressive modification of neural networks
US11586907B2 (en) * 2018-02-27 2023-02-21 Stmicroelectronics S.R.L. Arithmetic unit for deep learning acceleration
US11514325B2 (en) * 2018-03-21 2022-11-29 The Regents Of The University Of California Method and system for phase recovery and holographic image reconstruction using a neural network
US20210027862A1 (en) * 2018-03-30 2021-01-28 Board Of Trustees Of Michigan State University Systems and methods for drug design and discovery comprising applications of machine learning with differential geometric modeling
EP3803265A4 (en) 2018-05-15 2022-01-26 Lightmatter, Inc. PHOTONIC PROCESSING SYSTEMS AND METHODS
US10740693B2 (en) 2018-05-15 2020-08-11 Lightmatter, Inc. Systems and methods for training matrix-based differentiable programs
GB2574372B (en) 2018-05-21 2021-08-11 Imagination Tech Ltd Implementing Traditional Computer Vision Algorithms As Neural Networks
WO2020037121A1 (en) 2018-08-15 2020-02-20 Hyperfine Research, Inc. Deep learning techniques for suppressing artefacts in magnetic resonance images
KR20200072307A (ko) 2018-12-12 2020-06-22 삼성전자주식회사 뉴럴 네트워크에서의 부하 균형을 위한 장치 및 방법
US10891537B2 (en) 2019-03-20 2021-01-12 Huawei Technologies Co., Ltd. Convolutional neural network-based image processing method and image processing apparatus
US11113532B2 (en) 2019-04-16 2021-09-07 Lg Electronics Inc. Artificial intelligence apparatus for recognizing object and method therefor
US11615319B2 (en) 2019-07-15 2023-03-28 Meta Platforms Technologies, Llc System and method for shift-based information mixing across channels for shufflenet-like neural networks
US11568212B2 (en) 2019-08-06 2023-01-31 Disney Enterprises, Inc. Techniques for understanding how trained neural networks operate
KR102287947B1 (ko) * 2019-10-28 2021-08-09 삼성전자주식회사 영상의 ai 부호화 및 ai 복호화 방법, 및 장치

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11263526B2 (en) 2017-05-31 2022-03-01 Intel Corporation Gradient-based training engine for quaternion-based machine-learning systems
US11521060B2 (en) 2017-05-31 2022-12-06 Intel Corporation Tensor-based computing system for quaternion operations
US11593643B2 (en) 2017-05-31 2023-02-28 Intel Corporation Computationally-efficient quaternion-based machine-learning system
CN111523638A (zh) * 2020-03-10 2020-08-11 中移(杭州)信息技术有限公司 深度神经网络的泛化能力的度量方法、装置、终端、存储介质
CN112396123A (zh) * 2020-11-30 2021-02-23 上海交通大学 基于卷积神经网络的图像识别方法、系统、终端和介质
CN113607684A (zh) * 2021-08-18 2021-11-05 燕山大学 基于gaf图像和四元数卷积的光谱定性建模方法
CN116167461A (zh) * 2023-04-21 2023-05-26 之江实验室 一种模型训练的方法、装置、存储介质及电子设备

Also Published As

Publication number Publication date
US20200117993A1 (en) 2020-04-16
US11521060B2 (en) 2022-12-06
EP3631692A1 (en) 2020-04-08
US11263526B2 (en) 2022-03-01
CN110603544A (zh) 2019-12-20
EP3631700A1 (en) 2020-04-08
EP3631700A4 (en) 2021-03-17
WO2018222904A1 (en) 2018-12-06
US11593643B2 (en) 2023-02-28
WO2018222896A1 (en) 2018-12-06
US20200193235A1 (en) 2020-06-18
CN110574051A (zh) 2019-12-13
EP3631692A4 (en) 2021-03-24
WO2018222900A1 (en) 2018-12-06
US20200202216A1 (en) 2020-06-25
EP3631701A1 (en) 2020-04-08
EP3631701A4 (en) 2021-03-31

Similar Documents

Publication Publication Date Title
US11263526B2 (en) Gradient-based training engine for quaternion-based machine-learning systems
US11574097B2 (en) Deep learning based identification of difficult to test nodes
US11360819B2 (en) Systems and methods for data management
TWI775605B (zh) 深度視覺處理器
Güney et al. Deep discrete flow
US20200394459A1 (en) Cell image synthesis using one or more neural networks
US20200151288A1 (en) Deep Learning Testability Analysis with Graph Convolutional Networks
CN114365185A (zh) 使用一个或更多个神经网络生成图像
CN112101083A (zh) 使用一个或更多个神经网络进行弱监督的对象检测
CN108805792A (zh) 具有先进调度的可编程粗粒度化和稀疏矩阵计算硬件
CN110349075A (zh) 低精度机器学习操作的计算优化
CN109993278A (zh) 机器学习环境中的有效卷积
CN107209871A (zh) 具有回调的卷积矩阵相乘以用于深度卷积神经网络的深度瓦片化
WO2022111617A1 (zh) 一种模型训练方法及装置
CN110516803A (zh) 将传统计算机视觉算法实现为神经网络
CN113743417B (zh) 语义分割方法和语义分割装置
US20240232585A1 (en) Channel-guided nested loop transformation and scalar replacement
Minaidis Embedded development of aI-based computer vision: Acceleration on intel myriad X VPU
Yuan et al. Hourglass cascaded recurrent stereo matching network
Djabelkhir Local curvature constrained level set segmentation using minimal weights covered tree on curvature density graph

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