CN114548359A - 用于使用簇连接神经网络进行训练或预测的方法和系统 - Google Patents
用于使用簇连接神经网络进行训练或预测的方法和系统 Download PDFInfo
- Publication number
- CN114548359A CN114548359A CN202111329910.0A CN202111329910A CN114548359A CN 114548359 A CN114548359 A CN 114548359A CN 202111329910 A CN202111329910 A CN 202111329910A CN 114548359 A CN114548359 A CN 114548359A
- Authority
- CN
- China
- Prior art keywords
- cluster
- neural network
- weights
- inter
- filters
- 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.)
- Granted
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 237
- 238000012549 training Methods 0.000 title claims abstract description 78
- 238000000034 method Methods 0.000 title claims abstract description 46
- 210000002569 neuron Anatomy 0.000 claims abstract description 198
- 230000015654 memory Effects 0.000 claims description 71
- 239000011159 matrix material Substances 0.000 claims description 60
- 238000013138 pruning Methods 0.000 claims description 36
- 230000004913 activation Effects 0.000 claims description 22
- 239000013598 vector Substances 0.000 claims description 15
- 238000012360 testing method Methods 0.000 claims description 10
- 238000004422 calculation algorithm Methods 0.000 claims description 9
- 238000013507 mapping Methods 0.000 claims description 6
- 230000001788 irregular Effects 0.000 claims description 5
- 230000002787 reinforcement Effects 0.000 claims description 4
- 230000008859 change Effects 0.000 claims description 3
- 239000000203 mixture Substances 0.000 claims description 3
- 108091006146 Channels Proteins 0.000 claims 41
- 239000010410 layer Substances 0.000 description 78
- 238000013527 convolutional neural network Methods 0.000 description 35
- 210000000225 synapse Anatomy 0.000 description 17
- 238000013135 deep learning Methods 0.000 description 11
- 238000012545 processing Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 238000003491 array Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 9
- 230000002068 genetic effect Effects 0.000 description 9
- 230000001133 acceleration Effects 0.000 description 8
- 210000000349 chromosome Anatomy 0.000 description 7
- 230000009467 reduction Effects 0.000 description 7
- 238000012937 correction Methods 0.000 description 6
- 238000013479 data entry Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000000946 synaptic effect Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000010606 normalization Methods 0.000 description 3
- 230000002829 reductive effect Effects 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 238000013136 deep learning model Methods 0.000 description 2
- 230000001815 facial effect Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 239000011229 interlayer Substances 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 238000001193 catalytic steam reforming Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000001976 improved effect Effects 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 230000007787 long-term memory Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000035772 mutation Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 108090000623 proteins and genes Proteins 0.000 description 1
- 230000006798 recombination Effects 0.000 description 1
- 238000005215 recombination Methods 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- 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
- 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
- G06N3/045—Combinations of networks
-
- 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
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- 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
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/12—Computing arrangements based on biological models using genetic models
- G06N3/126—Evolutionary algorithms, e.g. genetic algorithms or genetic programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/764—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/77—Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
- G06V10/776—Validation; Performance evaluation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/217—Validation; Performance evaluation; Active pattern learning techniques
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Biomedical Technology (AREA)
- General Engineering & Computer Science (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- Databases & Information Systems (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Physiology (AREA)
- Genetics & Genomics (AREA)
- Neurology (AREA)
- Image Analysis (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Feedback Control In General (AREA)
- Complex Calculations (AREA)
Abstract
提供了用于使用簇连接神经网络进行训练或预测的方法和系统。簇连接神经网络可以被划分为由权重连接的多个人工神经元簇或由卷积滤波器连接的卷积通道。在每个簇内是簇内权重或滤波器的局部密集子网络,其中,大多数对神经元或通道由簇内权重或滤波器连接,该簇内权重或滤波器在训练或预测期间作为激活块共同激活。在每个簇外部是簇间权重或滤波器的全局稀疏网络,其中,由跨不同簇的簇边界间隔开的少数对神经元或通道通过簇间权重或滤波器连接。使用簇连接神经网络执行训练或预测。
Description
技术领域
本发明的实施例涉及通过机器学习的人工智能(AI)领域。具体地,本发明的实施例涉及使用神经网络的深度学习。
背景技术
人工神经网络(或简称为“神经网络”)是通过机器学习训练的类似于神经元的生物网络的计算机模型。传统的神经网络具有输入层、多个中间层或隐藏层以及输出层。每一层具有多个(例如,100至1000个)人工“神经元”。层(N)中的每个神经元可以通过人工“突触”连接到先前(N-1)层和后续(N+1)层中的一些或所有神经元以形成“部分连接的”或“完全连接的”神经网络。每个突触连接的强度由权重表示。因此,神经网络可以由网络中的所有权重的集合表示。
基于学习数据集训练神经网络(NN)以解决或学习指示该连接的强度的每个突触的权重。突触的权重例如通常被随机地初始化。通过以下步骤执行训练:将样本数据集迭代地输入到神经网络中、输出应用于数据集的神经网络的结果、计算预期(例如,目标)与实际输出之间的误差以及使用纠错算法(例如,反向传播)来调整神经网络权重以使误差最小化。可以重复训练直到误差最小化或收敛。通常,执行通过训练集的多次(例如,数十或数百次)传递(例如,每个样本被多次输入到神经网络中)。对整个训练集的每一次完整传递称为一个“历元(epoch)”。
现有技术神经网络通常具有数百万与数十亿之间的权重,并且因此需要用于训练和运行时(预测)阶段两者的专用硬件(通常是GPU)。因此,即使在预测模式下,在大多数端点装置(例如,loT装置、移动装置或甚至没有专用加速器硬件的膝上型计算机和台式计算机)上运行深度学习模型也是不切实际的。在具有有限处理速度和/或有限存储器可用性的装置上有效地运行深度学习模型仍然是当今的关键挑战。
为了解决硬件容量有限的问题,目前大多数深度学习预测都是在远程服务器或云端进行的。例如,智能助手(例如,Alexa)将信息(例如,语音信号)发送到云端,在云端在专用硬件上远程地执行深度学习预测,并且将响应发送回本地装置。因此,如果这些端点装置与云端断开连接、如果输入速率太高以至于无法与云端持续通信或者如果即使在专用硬件今天也不够快的情况下需要非常快速的预测,则这些端点装置将无法提供基于深度学习的结果(例如,用于高频交易的深度学习)。
因此,本领域需要在训练和/或预测模式下提高效率并且降低用于神经网络的深度学习的存储器需求。
发明内容
根据本发明的一些实施例,提供了用于使用“簇连接”神经网络进行训练和预测的装置、系统和方法,该“簇连接”神经网络在簇内局部完全或密集连接(例如,鼓励本地簇内的簇内权重)和在簇外全局稀疏连接(例如,消除跨簇边界的簇间权重)。簇可以被成形为列,鼓励神经元激活的主方向通常从输入层朝向输出层延伸(例如,平行于神经网络轴),并且阻止通常较少的主侧向神经元激活(例如,垂直于神经网络轴)。作为示例,在包括每层1000个神经元的两层的神经网络中,在完全连接的设计中,这些层通过一百万个权重(1000×1000)连接,但在列连接的设计中,当被划分为十个列(100×100×10)加上一些稀疏的剩余列间权重时,这些层仅通过十万个权重连接。因此,与具有基本相同精度的全连接神经网络相比,该列连接神经网络在运行时预测期间提供计算速度的大约10倍的增加和用于存储具有新的稀疏索引的十分之一的簇间权重数量的存储器的大约10倍的减少。与具有基本相同精度的全连接神经网络相比,该列连接神经网络还提高了训练速度。例如,当神经网络被初始化为簇连接神经网络时,训练速度的增加以与运行时速度的增加相同的顺序被最大化(例如,在以上场景中为10倍)。在另一示例中,当神经网络被初始化为全连接神经网络时,随着越来越多的突触被移除或修剪,训练速度在每个顺序训练迭代中增加,直到形成列连接神经网络并达到完全训练速度(例如,在以上场景中为10倍)。
根据本发明的一些实施例,提供了用于使用簇连接神经网络进行训练或预测的装置、系统和方法。簇连接神经网络可以被划分为多个簇。每个簇可以包括不同的多个人工神经元或卷积通道,其中,每对神经元或通道通过权重或卷积滤波器唯一地连接。在簇连接神经网络的每个簇内,可以生成或维持簇内权重或滤波器的局部密集子网络,其中,同一簇内的大多数对神经元或通道通过簇内权重或滤波器连接,使得在使用簇连接神经网络进行训练或预测期间,每个簇中连接的大多数对神经元或通道作为激活块共同激活。在簇连接神经网络的每个簇外部,可以生成或维持簇间权重或滤波器的全局稀疏网络,其中,由跨不同簇的簇边界间隔开的少数对神经元或通道通过簇间权重或滤波器连接。可以执行簇连接神经网络以进行训练和/或预测。
附图说明
在说明书的结论部分中具体指出并明确要求保护被视为本发明的主题。然而,当结合附图阅读时,通过参考以下详细描述可以最好地理解本发明的组织和操作方法及其目的、特征和优点,在附图中:
图1是根据本发明的一些实施例的簇连接神经网络的示意图;
图2是根据本发明的一些实施例的簇连接卷积神经网络的示意图;
图3是根据本发明的一些实施例的簇连接神经网络的示意图,并且图4是用于在图3的网络中存储簇间权重的数据结构;
图5是根据本发明的一些实施例的用于使用簇连接神经网络进行训练和预测的系统的示意图;并且
图6是根据本发明的一些实施例的用于使用簇连接神经网络进行训练和预测的方法的流程图。
应当理解,为了说明的简单和清楚起见,图中所示的元件不必按比例绘制。例如,为了清楚起见,一些元件的尺寸可能相对于其他元件被放大。此外,在认为适当的情况下,参考数字可以在图中重复以指示对应或类似的元件。
具体实施方式
单个神经元的激活依赖于其周围相邻神经元的激活模式。连接到具有相对较高权重的神经元簇的神经元比连接到具有相对较低权重的神经元簇的神经元更有可能被激活。神经元因此成簇激活。根据本发明的实施例的基于簇的神经网络加强激活占主导地位的每个簇内的权重(簇内权重),并减少或消除通常仅表现出较小激活的簇外的权重(簇间权重)。通过鼓励占主导地位的簇内权重,并消除弱的簇间权重,本发明的实施例形成簇连接神经网络,其中,神经元在每个簇内密集连接(局部密集)并跨不同簇稀疏连接(全局稀疏)。与常规神经网络相比,簇连接神经网络通过将计算精力集中在影响最大的簇内神经元激活上并且消除或减少影响较小的簇间神经元激活的计算精力以用显著更少的处理精力和时间实现基本上相同的结果来提高效率。
神经元通常主要在与神经网络轴相同的方向上激活(例如,在图1的从输入层延伸到输出层的方向上,垂直于层平面)。在图1所示的示例中,其中,神经网络是垂直定向的,神经元激活在垂直簇中占主导地位,因此形成列状簇106。虽然在图1中使用列状簇,但也可以使用其他簇形状,例如,这些其他簇形状是高度连接的神经元激活区域的边界。例如,神经元簇的边界的形状可以包括圆形、列、行、多边形、不规则形状和/或任何2D或3D形状。簇可以是对齐或未对齐(例如,交错列)、各种大小(例如,4×2神经元列、3×6神经元行等)、各种方向、重叠或未重叠等。虽然一些簇表示一组相邻神经元,但附加地或可选地,一些簇可以表示非相邻或非相邻神经元(例如,基于权重值选择,而不是邻近或除了邻近之外)。在一个示例中,如果图1的神经网络方向110旋转到水平方向,则行状簇可以等效于列状簇。附加地或可选地,在图1所示的方向中,行簇可以用于递归神经网络,其中,神经元连接到同一层中的其他神经元。在一些实施例中,可以使用列簇和行簇的组合。例如,在重复或层内连接占主导地位的区域中使用行簇和/或在层间连接占主导地位的区域中使用列簇。附加地或可选地,3D簇可以用于3D神经网络(例如,诸如具有多维滤波器通道的卷积神经网络(CNN))。
在一些实施例中,可以执行测试以确定簇形状的最佳模式。例如,簇形状可以被定义为分组具有最高集体组权重的神经元(例如,测试神经元的所有、局部化的子集或随机或半随机采样)、在多个训练迭代或历元上具有最大弹性(例如,变化最慢)权重的神经元或神经元对或组权重的任何其他度量。测试分析可以在任何其他规则或不规则的时间间隔处周期性地针对每个历元执行一次,和/或由任何其他事件或标准(例如,权重超过阈值)触发。测试统计量可以独立于训练计算来计算,或者作为训练计算的一部分来计算。在一些实施例中,当神经元权重在训练期间改变时,可以动态地调整簇的模式和形状以维持最佳簇。
为了训练簇连接神经网络,本发明的一些实施例可以从全连接神经网络开始并修剪簇间权重。本发明的其他实施例可以从断开的簇开始并添加所选择的簇间权重。
权重训练可以偏向于增强或添加簇内权重(连接位于同一簇内的神经元)和削弱或修剪簇间权重(跨簇边界以连接位于不同簇中的神经元)。可以使用L1正则化、Lp正则化、阈值化、随机归零、新权重生成、使用遗传算法的进化权重和/或基于偏置的修剪来减小或修剪簇间权重。在一些实施例中,权重强度可以与神经元之间的距离成反比例地偏置。例如,权重可以偏向于连接的神经元彼此越近越强,而连接的神经元彼此相距越远越弱。例如,Lp正则化可以将网络中的权重推为零,例如,其中,d表示通过权重wij连接的第i个神经元与第j个神经元之间的距离。因此,神经元距离d越大,Lp正则化越快将权重Wij驱动为零。神经元距离d可以是神经元分离或接近度的任何度量,例如,基于分离两个连接的第i个神经元和第j个神经元的神经元、层、簇等的数量。
可以添加或维持所有可能的簇间权重108的子集(例如,少数)。在各种实施例中,可以添加或维持具有高于阈值权重、在最高簇间权重的前N个(预定数量)中、连接具有最小或低于阈值距离的神经元或其他标准的簇间权重108。在一些实施例中,仅允许沿着簇边界定位的神经元(而不是内部非边界神经元)经由簇间权重连接到不同簇中的神经元。在一些实施例中,允许每个神经元(或仅边界神经元)具有预定数量的簇间权重,或簇间权重与簇内权重的比例。
在各种实施例中,神经元可以在每个簇内完全连接和/或部分连接。在一些混合实施例中,神经元/权重的各个区域、层、子集等可以是簇连接的、非簇连接的、完全连接的、部分连接的或以其他方式连接的。在一个实施例中,可以使用完全连接的簇和部分连接的簇的组合。例如,不同类型的簇可以使用不同的连接模式,诸如完全连接的列簇(例如,表示更重要的层间连接)和部分连接的行簇(例如,表示不太重要的递归层内连接)。另一混合实施例可以针对区域子集使用簇连接神经元,而其他区域可以使用标准连接。
一些实施例可以生成稀疏卷积神经网络(CNN)。CNN由将输入层的通道连接到卷积层的通道的多个滤波器表示。滤波器扫描输入通道,对神经元的每个渐进区域(例如,表示N×N像素图像区域)进行操作,并且将每个区域的卷积或其他变换映射到卷积通道中的单个神经元。通过将多个神经元的整个区域连接到每个单个卷积神经元,滤波器形成具有多对一神经元连接的突触,与标准NN中的一对一神经元连接相比,这减少了CNN中的突触数量。一些实施例可以通过对通道的簇进行分组并修剪或归零连接来自不同簇的通道的簇间滤波器来生成簇连接CNN。
在CNN中,滤波器可以是二维(2D)(将第一层中的每个单个通道与第二层中的单个通道连接)或三维(3D)(将第二层中的每个单个通道与第一层中的多个通道连接)。例如,图2所示的簇连接CNN 200可以用30个2D滤波器或10个3D滤波器连接输入和第一卷积层。因此,如图2所示,CNN簇206也可以是2D(分组2D滤波器)或3D(分组3D滤波器或多层2D滤波器)。因此,修剪可以删除CNN中的2D或3D(图2中)或其任何组合的簇间滤波器208。
本发明的实施例提供了一种使用簇连接神经网络进行训练和预测的新颖系统和方法,该簇连接神经网络在每个簇内密集连接(例如,局部完全连接的簇内权重)和跨簇边界稀疏连接(例如,全局稀疏的簇间权重)。稀疏化可以通过在训练阶段修剪簇间权重或通过进化神经网络(例如,通过使用遗传算法的突变来减少或消除簇间权重)来实现。这些实施例提供了几个显著的改进:
·在神经网络中实现大量的稀疏性。簇间权重占网络权重的绝大多数,大部分跨越很远的距离,并且因此不太可能与本地簇内权重一样重要。在以上示例中,将每层1000个神经元的两层划分为10个列簇将权重的数量减少90%,从完全连接设计中的一百万个权重(1000×1000)减少到列连接设计中的十万个权重(100×100×10)。少数剩余的簇间权重是稀疏的,并且仅占权重数量的少量增加。
·在训练期间的修剪允许剩余的权重抵消由修剪引起的差异,从而在修剪之前(例如,在全连接网络中)和在修剪之后(例如,在簇连接网络中)产生基本上相同的预测精度。
·导致预测模式和训练模式两者都具有与神经网络中引起的稀疏程度成正比的线性加速。例如,50%的稀疏簇连接神经网络(维持其权重的少于50%或一小部分)导致两倍(或200%)快的预测和训练。在以上示例中,90%的稀疏簇连接神经网络(维持其权重的10%)导致10倍(或1000%)快的预测和训练。通常,神经网络的稀疏性越大,预测和训练时间就越快。
·导致使用基于簇的索引的存储器使用的近似线性下降。局部密集簇可以通过与每个簇特定矩阵相关联的簇索引来表示它们的簇内权重以用于快速矩阵乘法。然而,绝大多数全局稀疏簇间权重可以为每个非零簇间权重独立索引,从而消除了存储零簇间权重的需要。消除大多数零簇间权重,同时使用额外的(例如,两倍的)存储器来独立地索引每个非零簇间权重(例如,存储索引以及值),从而导致用于存储以90%比例修剪的簇间权重的存储器消耗减少10/2或5倍(80%)。
·导致任何硬件的线性加速。例如,与全连接神经网络相比,无论计算装置是例如在慢速CPU上还是在快速专用GPU上运行,90%稀疏的簇连接神经网络导致10倍的加速。换句话说,虽然本发明的实施例可以提供对效率的改进,以允许在CPU或存储器受限制的装置(不能有效地处理或存储常规神经网络)上深度学习网络,但是相同的实施例可以通过快速硬件来实现,从而导致加速和存储量减少几个数量级(这在诸如实时导航的领域中至关重要,其中,即使在最快的专用硬件上也无法使用深度学习)。
·该方法与神经网络的类型无关,并且可以应用于任何神经网络架构,例如,包括但不限于完全连接,部分连接、卷积、递归等,并导致显著的稀疏性而不会造成影响网络精度的不利影响。
虽然矩阵表示对于密集神经网络(具有许多或大多数活动突触)实现方便且有效,但对于稀疏神经网络(具有很少或少数连接突触)并不是有效表示。神经网络预测的速度与神经网络中的权重的数量成正比。对于具有10×20权重的示例矩阵,该矩阵通过将大多数权重的值设置为零来表示稀疏神经网络。然而,归零矩阵权重不会减少矩阵中的条目数量,并且因此不会减少在神经网络上执行的计算次数。因此,矩阵表示中的存储器和计算要求对于稀疏神经网络和对于密集神经网络相同(存储零值并将其相乘,就像矩阵乘法中的非零值一样)。换句话说,将矩阵表示中的权重设置为零不会从存储器中消除这些权重或减少相关计算的次数。因此,在簇连接神经网络中修剪权重不会减少其使用常规矩阵表示的存储器。
根据本发明的一些实施例,提供了簇连接神经网络的新的紧凑表示,其独立地索引每个簇间权重(独立地定义权重表示哪个突触),这允许跳过或丢弃修剪或省略的突触的簇间权重。在常规的矩阵表示中,每个权重由其在矩阵中的位置来索引(例如,行i列j中的权重表示连接第一层中的第i个神经元和第二层中的第j个神经元的突触)。额外的矩阵可以用于存储每对层的权重。由于索引是基于矩阵位置的,因此权重不能消除,因为它们会移动矩阵中其他权重的位置。这导致稀疏神经网络由大部分为零的条目的稀疏矩阵表示,这是用于存储大部分为零的权重的存储器和用于将零权重相乘的计算两者的浪费。通过根据本发明的实施例独立地索引每个簇间权重,权重的索引不相互依赖,并且因此可以完全丢弃每个修剪的簇间权重,而不影响其他簇间权重或簇内权重的索引。因此,该独立索引消除了存储用于断开的簇间突触的条目的需要(减少了存储器消耗),并消除了基于断开的簇间突触执行的计算(提高了处理速度)。由于神经网络的运行速度与其中的权重的数量成正比,因此仅具有通过簇间权重连接的一部分跨簇神经元根据本发明的实施例的稀疏簇连接神经网络将与密集或完全连接的神经网络一样在一部分时间内运行和训练。
由于簇连接神经网络在每个簇内具有局部密集数量的簇内权重的布置,而在每个簇外具有簇内权重的全局稀疏布置,因此本发明的实施例提供以不同方式索引簇间权重和簇内权重的混合索引系统。为了利用其全局稀疏性,可以通过上述新的紧凑索引对簇间权重进行索引,该新的紧凑索引唯一且独立地索引每个簇间权重,从而避免记录零簇间权重。另一方面,为了利用其局部密度,每个簇内的簇内权重可以通过簇索引结合密集子矩阵来索引,该密集子矩阵根据每个簇内权重的位置表示,从而受益于逐簇的快速矩阵乘法。
本发明的实施例支持索引稀疏神经网络的许多方法,包括但不限于独立地索引每个突触或权重(例如,使用图4的三元组表示)、压缩稀疏行(CSR)表示、压缩稀疏列(CSC)表示、映射表示、列表表示、双数组表示(一个数组存储非零元素,另一数组存储它们的索引)、稀疏张量表示或任何其他稀疏神经网络或矩阵索引。
参考图1,其示意性地示出了根据本发明的一些实施例的簇连接神经网络100。
簇连接神经网络100包括通过多个突触连接(由图1中连接神经元的箭头所示)连接的多个人工神经元102。簇连接神经网络100可以由表示相应的多个突触连接的强度的多个权重来表示。突触连接可以通过簇内权重104(连接同一簇内的两个神经元)和簇间权重108(跨簇106边界(虚线边界框)以连接跨不同簇定位的神经元)来连接。
人工神经元102可以排列成多层的层次结构。神经网络100可以包括输入层、一个或多个中间层或隐藏层(1、2、…、N)和输出层。簇连接神经网络100被划分为多个神经元簇106。尽管可以使用其他簇形状,但是图1所示的神经元簇106是列状的。
每个簇106中的每个神经元102通过簇内权重104连接到该簇106内相邻层中的(所有)神经元(完全连接)。然而,每个簇106中的每个神经元102与不同簇106中的大多数(或全部)神经元断开。在一些实施例中,每个簇106中的神经元的子集或少数(例如,仅沿着簇106边界的虚线定位的边界神经元)通过簇间权重108连接到不同簇106中的神经元。因此,在每个簇106内部是完全互连神经元的局部密集子网络,而在簇106外部是大部分稀疏断开神经元的全局稀疏神经网络。
因此,簇连接神经网络100可以是局部“密集的”,其中,每个簇106内的神经元102的大多数或大于或等于阈值百分比的神经元通过簇内权重104(例如,具有非零连接权重)连接。阈值可以是从大于50%(大多数连接)到100%(“完全连接”)范围内的任何百分比,并且通常是90%-99%连接。在图1所示的示例中,每个簇106内的所有神经元102连接到相邻层中的所有其他神经元,因此每个簇106是完全连接的。在该示例中,四个神经元的每对相邻层具有16个可能的连接,并且对于两对相邻层,在每个簇106中有32个神经元连接和相关联的簇内权重104。
簇连接神经网络100可以是全局“稀疏”的,其中,跨整个神经网络100和/或在跨簇神经元中的少数或小于或等于阈值百分比的神经元通过簇间权重108连接(或者跨簇神经元的多数或大于阈值百分比的神经元不连接)。阈值可以是小于50%(少数连接)范围内的任何百分比,并且可以是1%-10%连接。在一些实施例中,簇间权重108的数量或密度可以被精度驱动为例如达到高于阈值精度的最小数量。在图1所示的示例中,仅少量稀疏的簇间权重108。
在一些实施例中,簇连接神经网络100可以启动作为密集神经网络的训练,并且可以通过修剪大多数或高于阈值百分比的簇间权重108来变换以生成图1的稀疏簇连接神经网络100。权重可以通过断开先前连接的神经元对来修剪。可以使用诸如进化神经网络的遗传算法、遗传编程、强化学习等的方法来训练簇连接神经网络100。簇连接神经网络100可以具有各种类型的连接的混合混合物,例如具有全局稀疏表示的局部连接、循环连接、跳过连接等。使用根据本发明实施例的紧凑独立索引来索引簇间权重108和/或簇内权重104可以有效地执行具有这种混合连接的神经网络的演化。附加地或可选地,簇连接神经网络100可以首先作为稀疏网络生成或接收(而不进行修剪)。在一些实施例中,可以仅用簇内权重104(而不是簇间权重108)启动簇连接神经网络100,并且可以在训练期间添加簇间权重108的稀疏子集。
在常规矩阵中,修剪或省略的权重被设置为零,并与连接的权重相同,这不会对修剪产生显著的存储或处理益处。根据本发明的实施例,提供了如图4所示的新数据结构,该新数据结构通过簇间权重108的值(列3)和与唯一索引相关联的值(列1-2)来表示图3的簇连接神经网络300的多个簇间权重108。因为在每个数据条目中显式地索引簇间权重108,所以图4中表示的数据条目的顺序不再用作它们的隐式索引,并且权重条目可以在不丢失信息的情况下被打乱或重新排序。具体地,没有理由将簇间权重108的零值存储为占位符以维持矩阵表示中的索引。因此,当两个簇间神经元首先被断开(通过修剪)或不连接时,图4的数据结构简单地完全删除或省略用于该连接的条目(例如,不存储用于该连接的权重记录或任何信息)。
通过仅存储表示成对神经元102之间的活动的跨簇连接的非零簇间权重108(并且不存储表示成对神经元之间的断开连接、非活动连接或无连接的零簇间权重),图4的数据结构可以大幅将用于存储簇连接神经网络300的稀疏簇间权重108的存储器减少与簇间权重108和/或网络300的稀疏度成正比的量。如果移除或省略簇间权重108的X%,仅留下总权重的100%-X%,并且索引使用与权重相同的位数,则权重条目可以比完全连接的神经网络占用存储器的2×(100-X)%(例如,99%的稀疏性导致仅需要用于密集表示的存储器的2%的稀疏表示,即,少50倍的存储器使用)。
在一些实施例中,密集簇内权重104可以通过对于存储密集的或完全连接的权重更有效的矩阵来存储。除了或代替用于整个簇连接神经网络300的一个全局矩阵之外,每个簇106可以被视为由唯一簇索引表示的子网络,并且其簇内权重104可以由对应的簇特定子矩阵表示。
神经网络的运行速度与神经网络中的权重的数量成正比。修剪或省略簇连接神经网络100中的连接可以导致与稀疏性量成比例的直接预测加速(例如,如果移除或省略簇间突触的X%,仅留下总突触的100%-X%,则所得到的簇连接神经网络将执行比完全连接神经网络快100/(100-X)倍)。
参考图2,其示意性地示出了根据本发明的一些实施例的簇连接卷积神经网络200。
卷积神经网络200包括输入层201、一个或多个卷积层202和203、以及一个或多个输出层。CNN 200的每个层201、202、203…可以具有一个或多个通道。在图2所示的示例中,输入层201表示彩色图像并且具有三个颜色通道(例如,红色通道、绿色通道和蓝色通道)。第一卷积层202具有多个(例如,10个)通道(例如,C1-C10),并且第二卷积层203具有多个(例如,8个)通道(例如,C1-C8)。每个卷积通道可以表示特征(诸如边缘、线、圆或较高层中的更复杂的对象,诸如苹果、锤子等)的特征映射。这些特征通道通常完全来自神经网络的训练过程(并且不是手动指定的)。
在完全连接的CNN中,一层中的每个通道可以通过卷积滤波器204连接到后续层中的每个通道。每个滤波器204表示多个权重的组,这些权重是一个通道的神经元区域(例如,表示N×N像素图像区域)到(相邻或非相邻)卷积层的通道中的神经元的卷积或变换。示例2D卷积滤波器204包括一组N×N权重(例如,a,b,c…),使得其卷积输入通道(例如,1a+2b+3c+…)中的每个N×N组神经元(例如,1,2,3,…,NN),以等于卷积通道中的单个连接的卷积神经元。N×N权重的相同单个卷积滤波器204用于对整个输入通道的所有N×N组神经元进行卷积。通常,卷积滤波器204可以具有各种维度,包括一维(1D)(例如,在神经元的列或行上操作的1×N行滤波器或N×1列滤波器)、二维(2D)(例如,在神经元的2D网格上操作的N×M滤波器)、三维(3D)(例如,在一层中的多个通道的网格上操作的N×M×P滤波器)、…或N维(ND)(例如,在多个通道和多个层的网格上操作)。例如,输入层201的每个颜色通道可以连接到第一卷积层202中的每个卷积通道C1-C10,每个卷积通道C1-C10又可以连接到第二卷积层203中的每个卷积通道C1-C8。在图2的示例中,在输入层201中存在三个通道、在第一卷积层202中存在十个通道C1-C10、在第二卷积层203中存在八个通道C1-C8,从而导致连接来自输入层201和卷积层202、203…的每对通道的全连接架构中的总共N=240个可能的滤波器204。CNN 200通常具有比所示多得多的卷积层和/或其他(例如,最大池化)层,这导致滤波器的数量以指数方式增长(例如,增长到数千、数百万或数十亿个滤波器204)。
本发明的实施例可以通过将通道分组成多个离散的簇206和修剪或省略许多或大多数跨边界连接位于不同簇中的通道的簇间滤波器208来创建稀疏簇连接CNN 200。当通道被大量的簇206(例如,大于3个,并且优选为数十个,甚至数百个簇)划分时,绝大多数完全连接的CNN滤波器是簇间滤波器208。因此,通过修剪除了簇间滤波器208的稀疏布置以外的所有布置,本发明的实施例生成全局稀疏簇连接CNN 200。操作具有修剪或省略的簇间滤波器208的簇连接CNN 200避免执行它们相关联的卷积操作,并且加快簇连接CNN 200的训练和/或预测。
尽管常规CNN以与非零滤波器相同的方式存储和操作零滤波器,这对修剪没有产生显著的存储或处理益处,但根据本发明的实施例,提供了仅存储非零簇间滤波器208的新的数据结构。新的数据结构可以使用紧凑稀疏索引方法,诸如图4的三元组表示,使得两个通道索引(列1-2)唯一地定义由簇间滤波器208连接的输入/输出通道,并且一个滤波器表示(列3)定义滤波器的权重值。因为在每个数据条目中显式地索引簇间滤波器208,所以数据条目的矩阵位置不再用作它们的隐式索引,并且簇间滤波器条目可以在不丢失信息的情况下被打乱、重新排序或删除。具体地,没有理由像矩阵表示那样将零簇间滤波器(所有权重为零的滤波器)存储为占位符来维持索引。因此,当神经元通道首先被断开(通过修剪)或不连接时,图4的数据结构简单地完全删除或省略相关联的滤波器的条目(例如,不存储用于该滤波器的任何权重的记录或任何信息)。在各种实施例中,数据结构可以省略1D、2D、3D或ND滤波器,例如,如预定义的或完全归零的最高维数。在CNN中,滤波器可以是二维(2D)(将第一层中的每个单个通道与第二层中的单个通道连接)或三维(3D)(将第二层中的每个单个通道与第一层中的多个通道连接)。例如,图2所示的簇连接CNN 200可以将CNN划分为3D簇206,并且因此可以删除3D簇间滤波器208,尽管可以使用任何维度的簇和滤波器。
通过仅存储表示神经元之间的活动卷积的非零簇间滤波器208(并且不存储表示神经元之间无卷积或可忽略卷积的零滤波器),图4的数据结构可以将用于存储稀疏卷积神经网络200的存储器减少与CNN中删除的簇间滤波器208的量成比例的量。
卷积神经网络的运行速度与CNN中的滤波器的数量成正比。修剪或省略簇连接CNN200中的滤波器可以导致与CNN中省略的滤波器的数量成比例的直接预测加速。
本领域普通技术人员将理解,图1至图4中的数据结构的布置仅是示例,并且可以使用神经元、连接、滤波器、通道、层和簇的其他数量、大小、维度和配置。
附加的稀疏数据表示:附加或替代图4的三元组表示,以下表示可以代替低效的常规稀疏矩阵表示。
压缩稀疏行(CSR)数据表示可以用于减少稀疏矩阵的存储。CSR可以使用三个(一维)数组以行形式表示矩阵,第一个数组定义矩阵的非零值,而其余数组表示矩阵中簇间权重的稀疏模式。对于稀疏卷积神经网络,本发明的实施例可以例如针对矩阵的不同维度使用修改的三元组来表示4维(或更高)矩阵或基于CSR的索引方法或者两者的组合。
映射表示可以用其中“从(from)”神经元ID和“到(to)”神经元ID(或滤波器ID)映射到权重w的映射代替常规矩阵。这需要与三元组表示类似的存储量,但允许更快地访问各个权重(零和非零等),以较慢地添加新的非零权重为代价。
列表表示可以用成对的列表<“从”,inner_list>代替常规矩阵,而内部列表包括成对的<“到”,w>形式,其中,“到”、“从”和w与上面相同。上面的变体是保存稀疏向量的列表,例如,将矩阵表示为行数大小的列表,其元素是<j,w>对的列表(如果该索引处的神经元没有连接,则可能为空)。列表表示可以与例如如下的任何稀疏向量表示一起使用。
稀疏向量表示例如包括:
<索引,值>对的列表,其按索引排序或无序。
字典或映射,其中,非零元素的索引被映射到该元素。丢失的索引可以被视为零。
两个数组,一个数据数组保存所有非零元素,并且一个索引数组保存原始向量中匹配数据元素的索引。
稀疏向量中的一个稀疏向量可以在可能的稀疏向量表示之一中用稀疏向量代替常规矩阵,其中,每个数据元素是另一稀疏向量。这对于具有多个零行/列的矩阵可能特别有用。
压缩稀疏行(又名压缩行存储)表示可以用三个数组代替常规矩阵:(1)保存所有非零权重的第一个数据数组(例如,按行优先顺序排列,即从左到右,然后从上到下)。(2)第二个数据数组按行表示递增元素数(因此第一个元素始终为零,第二个元素是第一行中非零元素的数量,第三个元素是前两行中非零元素的数量,并且依此类推,直到最后一个元素,它始终是整个矩阵中非零元素的总数量)。(3)第三个数据数组包含每个非零元素的匹配它们在数据数组中的顺序的列索引j(即,神经元的“到”标识符)。
压缩稀疏列(又名压缩列存储,又名Harwell-Boeing稀疏矩阵)表示可以用三个数组代替常规矩阵:(1)就像在压缩稀疏行中一样,所有非零簇间权重的第一个数据数组(例如,按列优先顺序排列,即从上到下,然后从左到右)。(2)第二个数据数组表示与这些值相对应的行索引的列表。(3)第三个数据数组包含每个新列开始的数据数组的索引列表。例如,[1,2,4]表示数据数组中的第一个元素属于矩阵的第一列,第二个元素和第三个元素属于第二列,而第四个元素则从第三列开始。
修改的压缩稀疏行:改进的CSR表示可以用两个数组代替常规矩阵:(1)第一个数据数组首先保存对角线值(例如,如果对角线上有零,则包括零),然后按行优先顺序保存剩余的非零元素(与常规CSR相同的方式)。(2)第二个(索引)数据数组与第一个数据数组的长度相同。与第一个数组中的对角线元素匹配的元素指向数据数组中该行的第一个元素(因此,第一个元素始终是对角线的大小加1),而与其余数据匹配的元素指定矩阵中该数据元素的列索引。例如,具有以下值的4×4矩阵:[[1,2,0,3],[0,4,5,0],[0,0,0,6],[0,0,0,7]],将成为第一个数据数组:[1,4,0,7,2,3,5,6]和第二个索引数组:[4,6,7,7,1,3,2,3]。
修改的压缩稀疏列表示可以用两个数组代替常规矩阵:(1)第一个数据数组首先保存对角线值(如果对角线上有零,则包括零),然后按列优先顺序保存其余的非零元素(与常规CSC相同的方式)。(2)第二个(索引)数组与第一个数组的长度相同。与第一个数组中的对角线元素匹配的元素指向数据数组中该列的第一个元素(因此,第一个元素始终是对角线的大小加1),而与其余数据匹配的元素指定矩阵中该数据元素的行索引。例如,具有以下值(与上面相同的值)的4×4矩阵:[[1,2,0,3],[0,4,5,0],[0,0,0,6],[0,0,0,7]],将成为第一个数据数组:[1,4,0,7,2,5,3,6]和第二个索引数组:[4,4,5,6,1,2,3,3]。
稀疏张量表示:张量是向量和矩阵到更高维度的概括。例如,三维张量具有三个索引(而不是矩阵的两个索引,向量的一个索引),并且可以被认为是向量,其元素是矩阵。稀疏张量表示可以分为两类:(1)低维张量的组合或对指定方法之一的概括。例如,可以使用上述任何一种格式将3D张量表示为矩阵向量,其中,每个矩阵都是稀疏矩阵。(2)可选地或附加地,3D张量可以通过压缩稀疏行的概括来表示,其中,数据、索引和列数组与以前一样,但是索引数组维持成对的索引,而不仅仅是行索引。
可以使用以下任何一种或多种技术来减小或修剪簇间权重或滤波器:
在训练期间诱导稀疏性:提供了用于在训练期间引起稀疏的若干实施例,包括以下一种或多种的任何组合:L1正则化、Lp正则化、阈值化、随机归零、新权重生成,使用遗传算法的进化权重以及基于偏置的修剪。
L1正则化:本发明的一些实施例可以在一个或多个迭代中的每个迭代中(例如,除了诸如反向传播的权重校正更新之外),在神经网络训练期间使用L1正则化来修剪神经元连接。在每次训练迭代中,神经网络的权重wij可以更新为权重wij′,例如,如下所示:
w′ij=wij-sgn(wij)*d
其中,d是“权重衰减”参数(通常是一个非常小的数字),而sgn是符号函数。权重衰减可以是距离的函数。换句话说,在每次簇间权重更新时,簇间权重的值逐渐衰减或趋向于零。由上述等式中的簇间权重连接的神经元之间的距离衰减参数(d)越大,簇间权重越快接近零,并且簇间权重中变为绝对零的部分越大,表示跨簇神经元之间的断开(连接的修剪)。
在一个实施例中,可以使用具有修改的L1正则化来执行修剪:在簇间权重变为零(或更改符号)时,权重的存储器条目被从存储中(从三元组表示表)物理地移除或删除,并且无法在将来(例如,在任何将来的时间或在设置的锁定时间段或迭代次数内)增长回或重新生成为非零值。
Lp正则化:Lp正则化是L1正则化的扩展,其可以改善将网络中的权重“推”为零的期望行为,例如,如下所示:
其中,d表示驱动或推为零的速度,诸如簇间神经元i与j之间的距离,而p表示Lp归一化中归一化因子的幂,Lp归一化有效地表示应用该驱动的值的分布(例如,p为正值)。在该示例中,较高的p将驱动向较高的权重移动至更多零,从而对较低的权重施加较小的压力。在对卷积层进行正则化时,可以将整个滤波器作为一个单元一起进行正则化,在这种情况下,可以修改上述Lp正则化,例如如下所示:
其中,p在0与1之间,并且其中,r是核的半径(卷积层中的滤波器),例如,核是大小为2*r+1的矩阵。在该修改的Lp正则化中,相邻滤波器的零值越多,滤波器达到零的压力就越大。Lp正则化允许灵活的动态压力,其中,可以例如基于稀疏性百分比来动态地修改p以将簇间权重的导数/范数推为零。以上等式基于权重本身的值、簇间神经元之间的距离以及对于卷积滤波器也基于同一滤波器中的相邻权重的权重来鼓励簇间权重为零。
阈值化:当权重值(虽然不是零)低于接近零的阈值时,簇间权重及其条目可以被物理地删除:
如果(wij<阈值)→wij=0
该阈值可以被平衡为足够低以至于在训练期间不会撤消纠错(例如,反向传播),同时足够高以相当快的速率修剪并防止该纠错将值拉离零。示例阈值包括但不限于0.1、0.001、0.0001、0.00001等。
舍入:在浮点之后的预定位数后移除值。例如,给定5位舍入,值0.12345678被设置为0.12345。当权重值小于舍入允许的最小值时,则舍入会将权重归零。否则,当舍入不能直接将权重归零时,由于反向传播干扰了一些权重的更新,可能导致额外的总体稀疏性。用于舍入的预定数字位数同样可以被平衡为足够少以至于不能撤消纠错,同时要足够多以防止该纠错将值拉离零。可以使用将权重舍入到浮点后的任何整数位数。
随机归零:可以以固定的小概率(完全随机归零)或以与其当前值成比例的概率(部分随机归零)将簇间权重设置为零。在后一种部分随机归零的情况下,权重越小,则归零的概率越大。
通常,此处可以使用将簇间权重设置为零或将簇间权重衰减为接近零的任何额外或替代修剪方法,包括随机地、概率地(例如,概率与其当前值成正比)和/或使用数学或统计启发法修剪。
新权重生成:附加地或可选地,为了将簇间权重设置为零并将它们从存储器中删除(修剪),本发明的一些实施例可以随机地生成(创建)先前不存在的新簇间权重或连接。新簇间权重可以随机地、概率地(例如,两个神经元“一起发射”的次数越多,它们连接的概率就越大和/或该连接的权重就越高)和/或使用数学或统计启发法生成。
进化稀疏神经网络:遗传算法(GA)可以用于训练神经网络。GA将神经网络的权重集表示为人工“染色体”,例如,其中,每个染色体表示一个神经网络。遗传算法可以通过执行以下步骤来进化这种染色体的种群:(a)测量每个染色体的适应性或精度(例如,训练集上的平均损失越低,适应性越好),(b)选择合适的染色体进行繁殖,(c)在成对的亲本染色体之间执行重组或杂交(例如,从亲本中随机选择权重以创建后代),以及(d)变异后代(例如,删除或添加簇间权重)。虽然GA在训练期间通常遭受太多的可变性和波动性,但是本文所公开的稀疏数据结构的紧凑和快速表示可以提供平衡以有效地进化神经网络。替代地或附加地,也可以使用基因编程(GP)。GP与GA的工作方式类似,不同之处在于,它不是将神经网络表示为染色体,而是将其表示为“树”。因此,神经网络架构(层及其连接)可以表示并演变为GP树。虽然GA通常假设固定数量的层和神经元(并且仅进化连接),但是GP可以进化层的数量、神经元数量和/或其连接。作为用于进化神经网络架构的另一附加或替代方法,也可以应用强化学习,其中,随机地修改神经网络架构的单个实例以使总体精度最大化。
基于偏差的神经元修剪:偏差单元可以在训练期间通过分别向神经元的权重添加增加或减少的恒定值来相对于神经元的簇间权重“偏置”有利于簇内权重。如果偏置值足够低(例如,大的幅度负值),则偏置单元可以将神经元的一些簇间权重移动到负值,然后对负值进行修剪。
参考图5,其示意性地示出了根据本发明的实施例的用于使用簇连接神经网络进行训练和预测的系统500。系统500可以存储和/或生成数据结构,并实现参考图1至图4描述的神经网络的训练和预测。
系统500可包括一个或多个本地端点装置550和本地装置可经由网络520或计算云访问的一个或多个远程服务器510。通常,尽管远程服务器510和/或本地端点装置550可以使用根据本发明的实施例的簇连接神经网络进行训练和/或预测,但是簇连接神经网络由远程服务器510训练,并在一个或多个本地端点装置550处运行以进行预测。具体地,为簇连接神经网络提供数据表示(例如,图4、CSR或另一稀疏矩阵表示),该簇连接神经网络足够紧凑以允许通常具有非常有限的存储器和处理能力的本地端点装置550基于簇连接神经网络进行训练和/或预测。当本地端点装置550执行训练和运行时间预测时,可以移除远程服务器510。
远程服务器510可以具有用于存储簇连接神经网络的存储器515和用于基于簇连接神经网络进行训练和/或预测的处理器516。远程服务器510可以用具有断开连接的簇的神经网络进行初始化,并且可以添加少数簇间权重或滤波器,或者可以初始化完全连接的神经网络并修剪大多数簇间权重或滤波器,以生成簇连接神经网络(例如,图1的100或图2的200)。在一些实施例中,远程服务器510可以具有专用硬件,该专用硬件包括用于存储神经网络的大存储器515和专用处理器516(例如,GPU),例如,当使用密集或完全连接的神经网络时。存储器515可以存储包括训练数据集和表示簇连接神经网络的多个权重的数据的数据517。根据本发明的实施例,数据517还可以包括代码(例如,软件代码)或逻辑,例如以实现数据517的存储和检索。
本地端点装置550可以各自包括用于根据在本发明的一些实施例中提供的数据表示(例如,图4、CSR或另一稀疏矩阵表示)存储簇连接神经网络的一个或多个存储器558。存储器558可以存储具有唯一索引(例如,图4的数据表示的列1和列2)的(或与唯一索引(例如,图4的数据表示的列1和列2)相关联地存储)簇连接神经网络(例如,图4的数据表示的列3)的多个权重中的每一个。唯一索引可以唯一地识别具有由该权重表示的连接的一对人工神经元。在一个实施例中,每个簇间权重或滤波器可以由三元组表示,该三元组定义:(1)第一索引值,识别由权重或滤波器连接的第一或“从”簇中的神经元或通道,(2)第二索引值,识别由权重或滤波器连接的第二或“到”簇中的神经元或通道,以及(3)簇间权重或滤波器的值。通过独立地索引权重或滤波器,存储器558可以仅存储用于具有非零权重或滤波器的连接的条目(例如,删除或省略用于断开连接或没有与零权重或滤波器相关联的连接的条目)。与完全连接的神经网络相比,对于X%的稀疏性和每个权重或滤波器条目大小的两倍,用于存储簇连接神经网络的存储器558的使用可以减少到用于密集神经网络的存储器的2×(100-X)%(例如,99%稀疏性簇连接神经网络仅使用用于密集表示的存储器量的2%,即,少50倍的存储器使用)。本地端点装置550可以各自包括用于基于存储在存储器558中的簇连接神经网络的权重或滤波器进行训练和/或执行预测的一个或多个处理器556。在预测期间,簇连接神经网络向前运行一次。在训练期间,簇连接神经网络运行两次,一次向前生成输出,一次向后进行纠错(例如,反向传播)。每次运行簇连接神经网络时,计算量减少,并且速度提高与簇连接神经网络中权重数量的减少成比例。对于具有X%稀疏性的簇连接神经网络,处理器556可以运行神经网络(100/(100-X)倍快(减少X%的计算量)。当簇连接神经网络被初始化为无簇间连接或稀疏簇间连接时,加速是瞬时的。而当簇连接神经网络被初始化为密集或全连接神经网络并随后被修剪时,加速随着时间而增加,直到达到(100/(100-X)的最大速度。
本地端点装置550可以包括智能装置、个人计算机、台式计算机、移动计算机、膝上型计算机和笔记本计算机或任何其他合适的装置(诸如蜂窝电话、个人数字助理(PDA)、视频游戏控制台等),并且可以包括有线或无线连接或调制解调器。本地端点装置550可以包括一个或多个输入装置552,用于从用户接收输入(例如,神经网络参数,诸如神经元、突触和层的数量、大小、维度和配置、精度或训练阈值等)。本地端点装置550可以包括一个或多个输出装置554(例如,监视器或屏幕),用于向用户显示由计算机550或远程服务器510生成的数据。在各种应用中,本地端点装置550是用于图像识别、计算机视觉、虚拟或增强现实、语音识别、文本理解或深度学习的其他应用的系统的一部分。在面部识别的应用中,装置可以使用稀疏神经网络来有效地执行面部识别以在检测到匹配时触发装置解锁自身或物理门。在安全应用中,安全相机系统可以使用稀疏神经网络来有效地检测安全漏洞并发出警报或其他安全措施。在自动驾驶的应用中,车辆计算机可以使用稀疏神经网络来控制驾驶操作,例如,转向以避开被检测到的对象。
连接本地端点装置550和远程服务器510的网络520可以是任何公共或专用网络,诸如因特网。可以通过有线、地面无线、卫星或本领域公知的其他系统来访问网络520。
本地端点装置550和远程服务器510可以分别包括用于执行根据本发明的实施例的操作的一个或多个控制器或处理器556和516以及分别用于存储可由处理器执行的数据517和/或指令(例如,用于应用根据本发明的实施例的方法的软件)的一个或多个存储器单元558和515。处理器556和516可以包括例如中央处理单元(CPU)、图形处理单元(GPU)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、数字信号处理器(DSP)、微处理器、控制器、芯片、微芯片、集成电路(IC)或任何其他合适的多用途或专用处理器或控制器。存储器单元558和515可以包括例如随机存取存储器(RAM)、动态RAM(DRAM)、闪存、易失性存储器、非易失性存储器、高速缓存存储器、缓冲器、短期存储器单元、长期存储器单元或其他合适的存储器单元或存储单元。
可以使用其他装置和配置,例如,数据517可以存储在存储器558中,并且可以不使用单独的服务器510。
参考图6,其是根据本发明的一些实施例的用于使用簇连接神经网络进行训练和预测的方法的流程图。图6的操作可以由处理器(例如,图5的一个或多个处理器516和/或556)使用存储在存储器(例如,图5的一个或多个存储器单元515和/或558)中的数据来执行。
在操作600中,处理器可以在存储器中生成或接收初始神经网络。初始神经网络可以从随后被修剪的密集的或完全连接的簇间权重开始,或者可以从稀疏的或不添加的簇间权重开始。
在操作602中,处理器可以将初始神经网络划分为多个簇。处理器可以存储簇划分的神经网络,其中,每个簇可以包括不同的多个人工神经元或卷积通道,并且多对神经元或通道中的每一个通过权重或卷积滤波器唯一地连接。
在操作604中,处理器可以生成、训练或接收具有簇连接神经网络的每个簇内的簇内权重或滤波器的局部密集子网络的簇连接神经网络,其中,同一簇内的大多数对神经元或通道由(非零)簇内权重或滤波器连接。在使用簇连接神经网络进行训练或预测期间,每个簇中连接的多数对神经元或通道可以作为激活块共同激活(例如,所有神经元或通道都在神经网络的相同传递或运行中激活)。每个簇内的神经元或通道可以是完全连接的或部分连接的。
在操作606中,处理器可以生成、训练或接收具有簇连接神经网络的每个簇外部(或不同簇之间)的簇间权重或滤波器的全局稀疏网络的簇连接神经网络,其中,由跨不同簇的簇边界间隔开的少数对神经元或通道由簇间权重或滤波器连接。在训练或预测期间,由于每个这样的神经元或通道对未连接,所以在剩余的大多数断开对的簇间神经元或通道中的每个神经元或通道中的神经元或通道未被一起共同激活。
当操作600的初始神经网络具有密集或完全连接的簇间权重或滤波器时,处理器可以通过修剪大多数簇间权重或滤波器来训练簇间权重或滤波器的全局稀疏网络。当操作600的初始神经网络具有稀疏或没有簇间权重或滤波器时,处理器可以通过添加或重新排列少数可能的簇间权重或滤波器来训练簇间权重或滤波器的全局稀疏网络。处理器可以在神经网络的训练阶段期间和/或之后修剪预先存在的簇间权重或添加新的簇间权重。处理器可以在训练阶段期间通过偏向于簇内权重的偏置和针对簇间权重的偏置来修剪簇间权重。处理器可以使用L1正则化、Lp正则化、阈值化、随机归零和基于偏差的修剪来修剪簇间权重。在一些实施例中,处理器可以训练簇连接神经网络,使得簇连接神经网络的权重或滤波器的强度与通过滤波器的权重连接的神经元或通道之间的距离成反比例地偏置。处理器可以随机地、概率地和/或启发式地修剪权重。处理器可以通过连接创建在簇连接神经网络中添加一个或多个新的簇间权重。可以随机地、概率地和/或启发式地生成新权重。在一些实施例中,簇连接神经网络可以使用进化计算(遗传算法或遗传编程)或使用强化学习来进化。
处理器可以测试簇连接神经网络中的神经元或通道激活模式以确定最接近地类似于由测试产生的高度链接神经元或通道的激活模式的最佳簇形状。随着激活模式在训练期间的改变,处理器可以动态地调整最佳簇形状。在各种实施例中,多个簇中的一个或多个簇的簇边界可以具有列(N×1或N×M维度)、行(1×N或M×N维度)、圆形、多边形、不规则形状、矩形棱柱、圆柱体、球体、多面体和/或任何二维、三维或N维形状的形状。可以使用不同形状的组合。在一些实施例中,簇连接神经网络是簇连接区域和标准非簇连接区域的混合。在一些实施例中,簇间连接可以仅连接边界神经元,而不连接内部神经元。例如,一个簇中的边界神经元或通道通过簇间权重或滤波器连接到一个或多个不同簇中的边界神经元或通道,而与簇边界间隔开的内部神经元或通道仅通过簇内权重或滤波器连接到同一簇中的其他神经元或通道。参考图1和图2描述簇连接神经网络的示例。
根据本发明的实施例可以使用各种索引方法。可以使用压缩稀疏行(CSR)表示、压缩稀疏列(CSC)表示、稀疏张量表示、映射表示、列表表示和/或稀疏向量表示、任何其他稀疏矩阵或神经网络表示来存储簇连接神经网络的簇间权重或滤波器的值。在一些实施例中,存储器可以将簇内权重或滤波器与唯一簇索引相关联地存储在簇连接神经网络的每个通道中,并且使用通过簇的矩阵位置表示簇中的簇内权重的簇特定矩阵。在一些实施例中,存储器可以存储与唯一索引相关联地存储簇连接神经网络的多个簇间权重或滤波器中的每一个。唯一索引可以唯一地识别具有由簇间权重或滤波器表示的连接的一对人工神经元或通道,其中,仅存储表示不同簇中的成对神经元或通道之间的连接的非零簇间权重或滤波器,并且不存储表示成对神经元或通道之间的不连接的零簇间权重或滤波器。在一些实施例中,存储器可以存储识别每个簇间权重或滤波器的值的三元组,例如,如图4所示,该三元组包括:索引的第一值,识别第一簇中的成对的第一神经元或通道(例如,图4列1);索引的第二值,识别第二不同簇中的成对的第二神经元或通道(例如,图4列2);以及簇间权重或滤波器的值(例如,图4列3)。
在操作608中,处理器可以执行在操作600至606中生成、训练或接收的簇连接神经网络以进行预测。在预测模式下,处理器可以从存储器中检索并运行在操作604和606中配置的簇连接神经网络,以仅基于簇连接神经网络的少数非零权重簇间权重或滤波器(而不是基于零簇间权重或滤波器)来计算输出。为了预测,处理器可以将源数据输入到簇连接神经网络的输入层,通过仅由将该层的神经元连接到后续层的非零权重对每层中的数据进行迭代操作来将数据传播通过稀疏神经网络的多个神经元或通道层,并输出簇连接神经网络的最后层的结果。
在一些实施例中,在前向训练或预测传递期间,处理器可以根据与簇连接神经网络中的非零簇间权重或滤波器的稀疏分布相关联的索引的非顺序模式从主存储器获取存储在主存储器中的非顺序位置中的簇间权重或滤波器。在从主存储器中的非顺序位置获取这些簇间权重或滤波器之后,它们可以存储在本地或高速缓冲存储器中的顺序存储器位置中。
可以使用其他操作或操作顺序。例如,代替在操作600中从初始(非簇连接的)神经网络开始并训练簇连接神经网络,一些实施例可以接收完全训练的簇连接神经网络,跳过操作600至608,并在操作610开始处理以使用簇连接神经网络执行预测。此外,操作604(每个簇内的训练)和操作606(每个簇外的训练)通常是相同训练处理的一部分,并且作为相同操作的一部分同时执行。在一些实施例中,簇内可能没有训练,例如,其中,每个簇内是完全连接的网络,因此可以跳过操作604。
结果:将本发明的实施例应用于若干深度学习基准导致神经网络中的权重数量的90%-99%之间的减少,同时维持99%以上的原始精度。这相当于神经网络的计算速度的10到1000倍之间的加速(在预测模式期间,而且在训练模式期间,因为网络在训练的每次迭代中变得稀疏),并且存储器使用的5到500倍的减少。
因此,深度学习网络可以在具有最小量的CPU能力和存储器可用性的装置(例如,图5的本地端点装置550)(而不仅仅是云端或网络侧服务器(例如,图5的远程服务器510)中的专门硬件)上有效地运行,这是到目前为止无法实现的。另外,权重的紧凑(例如,三元组)表示可以容易地在任何硬件(CPU、GPU等)上并行化以进一步提高处理速度。
使用稀疏神经网络的紧凑(例如,三元组)表示,本发明的实施例可以提供足够的效率来进化簇连接神经网络。
为了加速簇连接卷积NN的训练和预测,卷积运算(例如,通常相对较慢和复杂)可以等效地通过对重新排列和重复的项执行的矩阵乘法运算来执行(例如,与卷积运算相比,通常相对较快且较不复杂)。该转换被称为“img2col”函数。一些实施例提供了适用于稀疏CNN的新的和更紧凑的img2col函数。在常规img2col函数中,构造了两个自定义矩阵以表示由层执行的每个卷积运算,使得每一行和列的乘法都表示卷积运算。本发明的实施例可以提供修改的img2col函数,其中,一些核被清零,并且可以修改相关联的矩阵以省略或删除这些行和列。与标准img2col运算相比,这导致与更少乘法运算相关联的更紧凑的矩阵以实现相同的卷积结果。
与神经网络的神经元和权重相关的本发明的实施例可以分别应用于卷积神经网络的通道和滤波器。
尽管本发明的实施例描述了用于簇间权重的稀疏索引,但是相同的稀疏索引可以附加地或可选地应用于簇内权重。可选地,可以不使用稀疏索引。
在前面的描述中,描述了本发明的各个方面。出于解释的目的,阐述了具体配置和细节以提供对本发明的透彻理解。然而,对于本领域的普通技术人员来说也显而易见的是,可以在不具有本文呈现的具体细节的情况下实践本发明。此外,可以省略或简化公知特征以免混淆本发明。
除非另外具体声明,否则从以下讨论中显而易见的是,应当理解,在整个说明书讨论中,利用诸如“处理”、“计算(computing)”、“计算(calculating)”、“确定”等术语指的是计算机或计算系统或类似的电子计算装置的动作和/或处理,其将表示为计算系统的寄存器和/或存储器内的物理(诸如电子)量的数据操纵和/或转换为类似地表示为计算系统的存储器、寄存器或其他这样的信息存储、传输或显示装置内的物理量的其他数据。
上述流程图和框图示出了根据本发明的各种实施例的系统和方法的可能实现的架构、功能和操作。在这点上,流程图或框图中的每个框可以表示代码的模块、段或部分,其可以包括用于实现指定逻辑功能的一个或多个可执行指令。在一些可选实施例中,框中指出的功能可以不按图中指出的顺序发生或通过不同的模块发生。除非明确指出,否则本文描述的方法实施例不限于特定次序或顺序。另外,所描述的实施例或其要素中的一些可以在同一时间点发生或执行。可以通过执行指定功能或动作的基于专用硬件的系统或专用硬件和计算机指令的组合来实现框图和/或流程图说明的每个框以及框图和/或流程图说明中的框的组合。
本发明的实施例可以包括诸如非暂时性计算机或处理器可读介质或计算机或处理器非暂时性存储介质(诸如,例如存储器(例如,图5的存储器单元515或558)、磁盘驱动器或USB闪存)的物品,该物品编码、包括或存储指令(例如计算机可执行指令),当由处理器或控制器(例如,图5的处理器516或556)执行时,该指令执行本文公开的方法。
在以上描述中,实施例是本发明的示例或实现方式。“一个实施例”、“实施例”或“一些实施例”的各种出现不必都指相同的实施例。尽管可以在单个实施例的上下文中描述本发明的各种特征,但是也可以单独地或以任何合适的组合来提供实施例的特征。相反,尽管为了清楚起见在本文中可以在单独的实施例的上下文中描述本发明,但是本发明也可以在单个实施例中实施。说明书中对“一些实施例”、“实施例”、“一个实施例”或“其他实施例”的引用是指结合实施例描述的特定特征、结构或特性包括在本发明的至少一些实施例中,但不必包括在本发明的所有实施例中。将进一步认识到,上文描述的本发明的方面可以在本发明的实施例中组合或以其他方式共存。
权利要求书和说明书中呈现的描述、示例、方法和材料不应被解释为限制性的,而仅是说明性的。尽管本文已经说明和描述了本发明的某些特征,但是本领域的普通技术人员可以想到许多修改、替换、改变和等效物。因此,应当理解,所附权利要求旨在覆盖落入本发明的真实精神内的所有这样的修改和变化。
尽管已经关于有限数量的实施例描述了本发明,但是这些实施例不应被解释为对本发明的范围的限制,而是作为一些优选实施例的示例。其他可能的变化、修改和应用也在本发明的范围内。本文公开了不同的实施例。某些实施例的特征可以与其他实施例的特征组合;因此,某些实施例可以是多个实施例的特征的组合。
Claims (30)
1.一种用于使用簇连接神经网络进行训练或预测的方法,所述方法包括:
存储具有神经网络轴的神经网络,所述神经网络轴在从输入层延伸到输出层且垂直于多个中间层的定向上,其中,所述神经网络被划分为多个簇,其中,每个簇包括不同的多个人工神经元或卷积通道,其中,每个簇的人工神经元或卷积通道处于形状为平行于所述神经网络轴的方向延伸的列的区域中,从而使神经元激活的主方向从所述输入层朝向所述输出层延伸,其中,每对神经元或通道通过权重或卷积滤波器唯一地连接;
在所述簇连接神经网络的每个簇内,生成或维持簇内权重或滤波器的局部密集子网络,其中,同一簇内的大多数对神经元或通道通过簇内权重或滤波器连接,使得在使用所述簇连接神经网络进行训练或预测期间,每个簇中连接的大多数对神经元或通道作为激活块共同激活;
在所述簇连接神经网络的每个簇外部,生成或维持簇间权重或滤波器的全局稀疏网络,其中,由跨不同簇的簇边界间隔开的少数对神经元或通道通过簇间权重或滤波器连接;并且
使用所述簇连接神经网络进行训练或预测。
2.根据权利要求1所述的方法,包括:测试所述簇连接神经网络中的神经元或通道激活模式以确定最接近地类似于由所述测试产生的高度链接神经元或通道的激活模式的最佳簇形状。
3.根据权利要求2所述的方法,包括:随着激活模式在训练期间的改变而动态地调整所述最佳簇形状。
4.根据权利要求1所述的方法,其中,所述多个簇中的一个或多个簇的簇边界具有选自由以下组成的组的形状:列、行、圆形、多边形、不规则形状、矩形棱柱、圆柱体、多面体和另一二维、三维或N维形状。
5.根据权利要求1所述的方法,包括:通过初始化具有断开的簇的神经网络并添加少数的簇间权重或滤波器来训练所述簇连接神经网络。
6.根据权利要求1所述的方法,包括:通过初始化全连接神经网络并修剪大部分所述簇间权重或滤波器来训练所述簇连接神经网络。
7.根据权利要求6所述的方法,其中,在训练阶段期间,通过偏向簇内权重和偏向簇间权重来执行所述修剪。
8.根据权利要求6所述的方法,其中,使用选自由以下组成的组中的一个或多个技术来执行所述修剪:L1正则化、Lp正则化、阈值化、随机归零和基于偏置的修剪。
9.根据权利要求1所述的方法,其中,所述簇连接神经网络被训练为使得所述簇连接神经网络的权重或滤波器的强度与通过所述滤波器的权重连接的神经元与通道之间的距离成反比例地偏置。
10.根据权利要求1所述的方法,包括:使用进化算法或强化学习来训练所述簇连接神经网络。
11.根据权利要求1所述的方法,其中,一个簇中的边界神经元或通道通过簇间权重或滤波器连接到一个或多个不同簇中的边界神经元或通道,而与所述簇边界间隔开的内部神经元或通道仅通过簇内权重或滤波器连接到同一簇中的其他神经元或通道。
12.根据权利要求1所述的方法,其中,每个簇中的神经元或通道是完全连接或部分连接的。
13.根据权利要求1所述的方法,其中,所述簇连接神经网络是簇连接区域和标准非簇连接区域的混合。
14.根据权利要求1所述的方法,包括:将簇内权重或滤波器与唯一簇索引相关联地存储在所述簇连接神经网络的每个通道中,并且使用通过簇的矩阵位置表示所述簇中的簇内权重的簇特定矩阵。
15.根据权利要求1所述的方法,包括:与唯一索引相关联地存储所述簇连接神经网络的多个簇间权重或滤波器中的每一个簇间权重或滤波器,所述唯一索引唯一地识别具有由所述簇间权重或滤波器表示的连接的一对人工神经元或通道,其中,仅存储表示不同簇中的成对神经元或通道之间的连接的非零簇间权重或滤波器,并且不存储表示成对神经元或通道对之间的不连接的零簇间权重或滤波器。
16.根据权利要求15所述的方法,包括:存储识别每个簇间权重或滤波器的值的三元组,所述三元组包括:
唯一索引的第一值,识别第一簇中的成对神经元或通道的第一神经元或通道,
唯一索引的第二值,识别第二不同簇中的成对神经元或通道的第二神经元或通道,以及
所述簇间权重或滤波器的值。
17.根据权利要求15所述的方法,包括:
根据与所述簇连接神经网络中的非零簇间权重或滤波器的稀疏分布相关联的索引的非顺序模式从主存储器获取存储在所述主存储器中的非顺序位置中的簇间权重或滤波器;并且
将从所述主存储器中的非顺序位置获取的所述簇间权重或滤波器存储到高速缓冲存储器中的顺序位置。
18.根据权利要求15所述的方法,包括:使用从由以下组成的组中选择的一个或多个数据表示来存储所述簇连接神经网络的所述簇间权重或滤波器的值:压缩稀疏行(CSR)表示、压缩稀疏列(CSC)表示、稀疏张量表示、映射表示、列表表示和稀疏向量表示。
19.一种用于使用簇连接神经网络进行训练或预测的系统,所述系统包括:
一个或多个存储器,被配置为存储具有神经网络轴的神经网络,所述神经网络轴在从输入层延伸到输出层且垂直于多个中间层的定向上,其中,所述神经网络被划分为多个簇,其中,每个簇包括处于平行于所述神经网络轴的方向延伸的区域中的不同的多个人工神经元或卷积通道,从而鼓励神经元激活的主方向从所述输入层朝向所述输出层延伸,其中,每对神经元或通道通过权重或卷积滤波器唯一地连接;以及
一个或多个处理器,被配置为:
在所述簇连接神经网络的每个簇内,生成或维持簇内权重或滤波器的局部密集子网络,其中,同一簇内的大多数对神经元或通道通过簇内权重或滤波器连接,使得在使用所述簇连接神经网络进行训练或预测期间,每个簇中连接的大多数对神经元或通道作为激活块共同激活;
在所述簇连接神经网络的每个簇外部,生成或维持簇间权重或滤波器的全局稀疏网络,其中,由跨不同簇的簇边界间隔开的少数对神经元或通道通过簇间权重或滤波器连接;并且
使用所述簇连接神经网络进行训练或预测。
20.根据权利要求19所述的系统,其中,所述一个或多个处理器被配置为测试所述簇连接神经网络中的神经元或通道激活模式以确定最接近地类似于由所述测试产生的高度链接神经元或通道的激活模式的最佳簇形状。
21.根据权利要求20所述的系统,其中,所述一个或多个处理器被配置为随着激活模式在训练期间的改变而动态地调整所述最佳簇形状。
22.根据权利要求19所述的系统,其中,所述多个簇中的一个或多个簇的簇边界具有选自由以下组成的组的形状:列、行、圆形、多边形、不规则形状、矩形棱柱、圆柱体、多面体和另一二维、三维或N维形状。
23.根据权利要求19所述的系统,其中,所述一个或多个处理器被配置为通过初始化具有断开的簇的神经网络并添加少数的簇间权重或滤波器来训练所述簇连接神经网络。
24.根据权利要求19所述的系统,其中,所述一个或多个处理器被配置为通过初始化全连接神经网络并修剪大部分所述簇间权重或滤波器来训练所述簇连接神经网络。
25.根据权利要求19所述的系统,其中,一个簇中的边界神经元或通道通过簇间权重或滤波器连接到一个或多个不同簇中的边界神经元或通道,而与所述簇边界间隔开的内部神经元或通道仅通过簇内权重或滤波器连接到同一簇中的其他神经元或通道。
26.根据权利要求19所述的系统,其中,所述一个或多个存储器被配置为将簇内权重或滤波器与唯一簇索引相关联地存储在所述簇连接神经网络的每个通道中,并且使用通过簇的矩阵位置表示所述簇中的簇内权重的簇特定矩阵。
27.根据权利要求19所述的系统,其中,所述一个或多个存储器被配置为包括与唯一索引相关联地存储所述簇连接神经网络的多个簇间权重或滤波器中的每一个簇间权重或滤波器,所述唯一索引唯一地识别具有由所述簇间权重或滤波器表示的连接的一对人工神经元或通道,其中,仅存储表示不同簇中的成对神经元或通道之间的连接的非零簇间权重或滤波器,并且不存储表示成对神经元或通道之间的不连接的零簇间权重或滤波器。
28.根据权利要求19所述的系统,其中,所述一个或多个存储器被配置为存储识别每个簇间权重或滤波器的值的三元组,所述三元组包括:
唯一索引的第一值,识别第一簇中的成对神经元或通道的第一神经元或通道,
唯一索引的第二值,识别第二不同簇中的成对神经元或通道的第二神经元或通道,以及
所述簇间权重或滤波器的值。
29.根据权利要求19所述的系统,其中,所述一个或多个处理器被配置为:
根据与所述簇连接神经网络中的非零簇间权重或滤波器的稀疏分布相关联的索引的非顺序模式从主存储器获取存储在所述主存储器中的非顺序位置中的簇间权重或滤波器;并且
将从所述主存储器中的非顺序位置获取的所述簇间权重或滤波器存储到高速缓冲存储器中的顺序位置。
30.根据权利要求19所述的系统,其中,所述一个或多个存储器被配置为使用从由以下组成的组中选择的一个或多个数据表示来存储所述簇连接神经网络的所述簇间权重或滤波器的值:压缩稀疏行(CSR)表示、压缩稀疏列(CSC)表示、稀疏张量表示、映射表示、列表表示和稀疏向量表示。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/095,154 | 2020-11-11 | ||
US17/095,154 US11164084B1 (en) | 2020-11-11 | 2020-11-11 | Cluster-connected neural network |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114548359A true CN114548359A (zh) | 2022-05-27 |
CN114548359B CN114548359B (zh) | 2024-01-23 |
Family
ID=78372536
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111329910.0A Active CN114548359B (zh) | 2020-11-11 | 2021-11-10 | 用于使用簇连接神经网络进行训练或预测的方法和系统 |
Country Status (8)
Country | Link |
---|---|
US (2) | US11164084B1 (zh) |
EP (1) | EP4009243A1 (zh) |
JP (1) | JP7235836B2 (zh) |
KR (1) | KR102505059B1 (zh) |
CN (1) | CN114548359B (zh) |
CA (1) | CA3139915C (zh) |
IL (1) | IL288021B2 (zh) |
TW (1) | TWI831076B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230153625A1 (en) * | 2021-11-17 | 2023-05-18 | Samsung Electronics Co., Ltd. | System and method for torque-based structured pruning for deep neural networks |
US20240048152A1 (en) * | 2022-08-03 | 2024-02-08 | Arm Limited | Weight processing for a neural network |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6421467B1 (en) * | 1999-05-28 | 2002-07-16 | Texas Tech University | Adaptive vector quantization/quantizer |
DE102004053301B4 (de) * | 2004-11-04 | 2014-01-23 | Siemens Aktiengesellschaft | Verfahren zum Betreiben eines Magnetschwebefahrzeugs mit einer Schaltungsvorrichtung zur Erhöhung der nutzbaren Motorspannung bei einem Langstatorantrieb |
JP2006163808A (ja) * | 2004-12-07 | 2006-06-22 | Fuji Electric Holdings Co Ltd | ニューラルネットワークの構造 |
JP5234085B2 (ja) * | 2010-11-11 | 2013-07-10 | 富士電機株式会社 | ニューラルネットワークの学習方法 |
US9202178B2 (en) * | 2014-03-11 | 2015-12-01 | Sas Institute Inc. | Computerized cluster analysis framework for decorrelated cluster identification in datasets |
WO2017007990A1 (en) * | 2015-07-08 | 2017-01-12 | Convida Wireless, Llc | M2m clustering management |
KR102399548B1 (ko) * | 2016-07-13 | 2022-05-19 | 삼성전자주식회사 | 뉴럴 네트워크를 위한 방법 및 그 방법을 수행하는 장치 |
KR101887267B1 (ko) * | 2016-08-24 | 2018-08-09 | 한국과학기술원 | 부분구조 학습기법과 영상데이터를 이용한 신경망 학습 방법 및 장치 |
WO2018058509A1 (en) * | 2016-09-30 | 2018-04-05 | Intel Corporation | Dynamic neural network surgery |
US11353868B2 (en) * | 2017-04-24 | 2022-06-07 | Intel Corporation | Barriers and synchronization for machine learning at autonomous machines |
US10339450B2 (en) | 2017-09-08 | 2019-07-02 | DeepCube LTD. | System and method for efficient evolution of deep convolutional neural networks using filter-wise recombination and propagated mutations |
US10366322B2 (en) * | 2017-10-06 | 2019-07-30 | DeepCube LTD. | System and method for compact and efficient sparse neural networks |
EP3507783B1 (en) * | 2017-11-23 | 2021-11-10 | Beijing Didi Infinity Technology and Development Co., Ltd. | System and method for estimating arrival time |
CN108038546B (zh) * | 2017-12-29 | 2021-02-09 | 百度在线网络技术(北京)有限公司 | 用于压缩神经网络的方法和装置 |
WO2019167042A1 (en) * | 2018-02-27 | 2019-09-06 | Yissum Research Development Company Of The Hebrew University Of Jerusalem Ltd. | Systems and methods for using and training a neural network |
WO2019173315A1 (en) * | 2018-03-05 | 2019-09-12 | Mobileye Vision Technologies Ltd. | Systems and methods for anonymizing navigation information |
JP7014963B2 (ja) * | 2018-03-15 | 2022-02-02 | 富士通株式会社 | 最適化装置及び最適化装置の制御方法 |
US11907854B2 (en) | 2018-06-01 | 2024-02-20 | Nano Dimension Technologies, Ltd. | System and method for mimicking a neural network without access to the original training dataset or the target model |
US11100923B2 (en) * | 2018-09-28 | 2021-08-24 | Sonos, Inc. | Systems and methods for selective wake word detection using neural network models |
US10878321B2 (en) | 2019-02-28 | 2020-12-29 | DeepCube LTD. | Partial activation of multiple pathways in neural networks |
-
2020
- 2020-11-11 US US17/095,154 patent/US11164084B1/en active Active
-
2021
- 2021-10-28 EP EP21205305.2A patent/EP4009243A1/en active Pending
- 2021-10-28 US US17/513,189 patent/US20220147828A1/en active Pending
- 2021-11-05 JP JP2021181497A patent/JP7235836B2/ja active Active
- 2021-11-09 TW TW110141640A patent/TWI831076B/zh active
- 2021-11-10 CN CN202111329910.0A patent/CN114548359B/zh active Active
- 2021-11-11 IL IL288021A patent/IL288021B2/en unknown
- 2021-11-11 KR KR1020210154639A patent/KR102505059B1/ko active IP Right Grant
- 2021-11-23 CA CA3139915A patent/CA3139915C/en active Active
Non-Patent Citations (1)
Title |
---|
MOHAMMAD JAVAD SHAFIEE 等: "Evolution in Groups: A deeper look at synaptic cluster driven evolution of deep neural networks", ARXIV.ORG, CORNELL UNIVERSITY LIBRARY, pages 1 - 8 * |
Also Published As
Publication number | Publication date |
---|---|
CN114548359B (zh) | 2024-01-23 |
KR102505059B1 (ko) | 2023-02-28 |
JP2022077510A (ja) | 2022-05-23 |
TWI831076B (zh) | 2024-02-01 |
CA3139915C (en) | 2022-09-27 |
TW202234295A (zh) | 2022-09-01 |
KR20220064336A (ko) | 2022-05-18 |
JP7235836B2 (ja) | 2023-03-08 |
US11164084B1 (en) | 2021-11-02 |
CA3139915A1 (en) | 2022-03-30 |
IL288021B1 (en) | 2023-03-01 |
IL288021B2 (en) | 2023-07-01 |
IL288021A (en) | 2022-06-01 |
US20220147828A1 (en) | 2022-05-12 |
EP4009243A1 (en) | 2022-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111247537B (zh) | 有效存储稀疏神经网络和稀疏卷积神经网络的方法及系统 | |
Swaminathan et al. | Sparse low rank factorization for deep neural network compression | |
Dong et al. | Network pruning via transformable architecture search | |
Hu et al. | A novel channel pruning method for deep neural network compression | |
Tjandra et al. | Compressing recurrent neural network with tensor train | |
US11710044B2 (en) | System and method for efficient evolution of deep convolutional neural networks using filter-wise recombination and propagated mutations | |
Van Der Maaten | Barnes-hut-sne | |
Marinó et al. | Deep neural networks compression: A comparative survey and choice recommendations | |
CN114548359B (zh) | 用于使用簇连接神经网络进行训练或预测的方法和系统 | |
CN115485695A (zh) | 用于分层权重稀疏卷积处理的方法和系统 | |
WO2022002157A1 (en) | Method and system for balanced-weight sparse convolution processing | |
US20230376777A1 (en) | System and method for efficient evolution of deep convolutional neural networks using filter-wise recombination and propagated mutations | |
CN114742210A (zh) | 混合神经网络训练方法、交通流预测方法、设备和介质 | |
Kim et al. | Tweaking deep neural networks | |
Bhalgaonkar et al. | Model compression of deep neural network architectures for visual pattern recognition: Current status and future directions | |
Crowley et al. | Substituting convolutions for neural network compression | |
Güldoğuş et al. | Autoselection of the ensemble of convolutional neural networks with second-order cone programming | |
Wen et al. | Learning Sparse Patterns in Deep Neural Networks | |
Cakır | Memory Efficient Filtering Algorithms for Convolutional Neural Networks | |
Joarder et al. | A hybrid algorithm based robust big data clustering for solving unhealthy initialization, dynamic centroid selection and empty clustering problems with analysis | |
Wang | Evolutionary optimisation in convolutional neural networks | |
Dong et al. | An optimization method for pruning rates of each layer in CNN based on the GA-SMSM | |
CN115168612A (zh) | 一种基于任意维度超复数嵌入的知识图谱表示方法 | |
KR20200141663A (ko) | 컨볼루션 신경망 모델에 기초한 컴퓨팅 장치 및 그 동작 방법 |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20230516 Address after: Israeli ness Ziona Applicant after: Nanoscale Technology Co.,Ltd. Address before: Israel Tel Aviv Applicant before: Shenzhen cube Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |