CN112771543A - 通过包括实现成本作为目标来训练神经网络 - Google Patents
通过包括实现成本作为目标来训练神经网络 Download PDFInfo
- Publication number
- CN112771543A CN112771543A CN201980064032.9A CN201980064032A CN112771543A CN 112771543 A CN112771543 A CN 112771543A CN 201980064032 A CN201980064032 A CN 201980064032A CN 112771543 A CN112771543 A CN 112771543A
- Authority
- CN
- China
- Prior art keywords
- neural network
- network architecture
- training
- implementation
- accuracy
- 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
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 181
- 238000012549 training Methods 0.000 title claims abstract description 86
- 238000000034 method Methods 0.000 claims abstract description 50
- 230000006870 function Effects 0.000 claims description 44
- 230000015654 memory Effects 0.000 claims description 36
- 230000002787 reinforcement Effects 0.000 claims description 14
- 238000013461 design Methods 0.000 claims description 12
- 230000000306 recurrent effect Effects 0.000 claims description 6
- 238000012545 processing Methods 0.000 description 25
- 239000003795 chemical substances by application Substances 0.000 description 23
- 238000005457 optimization Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 11
- 210000002569 neuron Anatomy 0.000 description 9
- 230000002093 peripheral effect Effects 0.000 description 9
- 238000010801 machine learning Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 238000004590 computer program Methods 0.000 description 5
- 238000013135 deep learning Methods 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 238000013459 approach Methods 0.000 description 4
- 230000006399 behavior Effects 0.000 description 4
- 235000019800 disodium phosphate Nutrition 0.000 description 4
- 108090000623 proteins and genes Proteins 0.000 description 4
- 238000013139 quantization Methods 0.000 description 4
- 210000004027 cell Anatomy 0.000 description 3
- 238000013527 convolutional neural network Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 230000001965 increasing effect Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000013179 statistical model Methods 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- 101000822695 Clostridium perfringens (strain 13 / Type A) Small, acid-soluble spore protein C1 Proteins 0.000 description 1
- 101000655262 Clostridium perfringens (strain 13 / Type A) Small, acid-soluble spore protein C2 Proteins 0.000 description 1
- 101000655256 Paraclostridium bifermentans Small, acid-soluble spore protein alpha Proteins 0.000 description 1
- 101000655264 Paraclostridium bifermentans Small, acid-soluble spore protein beta Proteins 0.000 description 1
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 238000005562 fading Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000006698 induction Effects 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 238000003064 k means clustering Methods 0.000 description 1
- 238000012417 linear regression Methods 0.000 description 1
- 238000007477 logistic regression Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 238000013138 pruning Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 210000000225 synapse Anatomy 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/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/086—Learning methods using evolutionary algorithms, e.g. genetic algorithms or genetic programming
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61B—DIAGNOSIS; SURGERY; IDENTIFICATION
- A61B1/00—Instruments for performing medical examinations of the interior of cavities or tubes of the body by visual or photographical inspection, e.g. endoscopes; Illuminating arrangements therefor
- A61B1/00064—Constructional details of the endoscope body
- A61B1/00071—Insertion part of the endoscope body
- A61B1/0008—Insertion part of the endoscope body characterised by distal tip features
- A61B1/00096—Optical elements
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61B—DIAGNOSIS; SURGERY; IDENTIFICATION
- A61B1/00—Instruments for performing medical examinations of the interior of cavities or tubes of the body by visual or photographical inspection, e.g. endoscopes; Illuminating arrangements therefor
- A61B1/04—Instruments for performing medical examinations of the interior of cavities or tubes of the body by visual or photographical inspection, e.g. endoscopes; Illuminating arrangements therefor combined with photographic or television appliances
- A61B1/05—Instruments for performing medical examinations of the interior of cavities or tubes of the body by visual or photographical inspection, e.g. endoscopes; Illuminating arrangements therefor combined with photographic or television appliances characterised by the image sensor, e.g. camera, being in the distal end portion
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61B—DIAGNOSIS; SURGERY; IDENTIFICATION
- A61B1/00—Instruments for performing medical examinations of the interior of cavities or tubes of the body by visual or photographical inspection, e.g. endoscopes; Illuminating arrangements therefor
- A61B1/06—Instruments for performing medical examinations of the interior of cavities or tubes of the body by visual or photographical inspection, e.g. endoscopes; Illuminating arrangements therefor with illuminating arrangements
- A61B1/0615—Instruments for performing medical examinations of the interior of cavities or tubes of the body by visual or photographical inspection, e.g. endoscopes; Illuminating arrangements therefor with illuminating arrangements for radial illumination
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61B—DIAGNOSIS; SURGERY; IDENTIFICATION
- A61B1/00—Instruments for performing medical examinations of the interior of cavities or tubes of the body by visual or photographical inspection, e.g. endoscopes; Illuminating arrangements therefor
- A61B1/06—Instruments for performing medical examinations of the interior of cavities or tubes of the body by visual or photographical inspection, e.g. endoscopes; Illuminating arrangements therefor with illuminating arrangements
- A61B1/0638—Instruments for performing medical examinations of the interior of cavities or tubes of the body by visual or photographical inspection, e.g. endoscopes; Illuminating arrangements therefor with illuminating arrangements providing two or more wavelengths
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61B—DIAGNOSIS; SURGERY; IDENTIFICATION
- A61B1/00—Instruments for performing medical examinations of the interior of cavities or tubes of the body by visual or photographical inspection, e.g. endoscopes; Illuminating arrangements therefor
- A61B1/06—Instruments for performing medical examinations of the interior of cavities or tubes of the body by visual or photographical inspection, e.g. endoscopes; Illuminating arrangements therefor with illuminating arrangements
- A61B1/0661—Endoscope light sources
- A61B1/0676—Endoscope light sources at distal tip of an endoscope
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61B—DIAGNOSIS; SURGERY; IDENTIFICATION
- A61B1/00—Instruments for performing medical examinations of the interior of cavities or tubes of the body by visual or photographical inspection, e.g. endoscopes; Illuminating arrangements therefor
- A61B1/06—Instruments for performing medical examinations of the interior of cavities or tubes of the body by visual or photographical inspection, e.g. endoscopes; Illuminating arrangements therefor with illuminating arrangements
- A61B1/0661—Endoscope light sources
- A61B1/0684—Endoscope light sources using light emitting diodes [LED]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/004—Artificial life, i.e. computing arrangements simulating life
- G06N3/006—Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
-
- 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/044—Recurrent networks, e.g. Hopfield 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/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/04—Architecture, e.g. interconnection topology
- G06N3/047—Probabilistic or stochastic 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/01—Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N7/00—Computing arrangements based on specific mathematical models
- G06N7/01—Probabilistic graphical models, e.g. probabilistic networks
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61B—DIAGNOSIS; SURGERY; IDENTIFICATION
- A61B1/00—Instruments for performing medical examinations of the interior of cavities or tubes of the body by visual or photographical inspection, e.g. endoscopes; Illuminating arrangements therefor
- A61B1/012—Instruments for performing medical examinations of the interior of cavities or tubes of the body by visual or photographical inspection, e.g. endoscopes; Illuminating arrangements therefor characterised by internal passages or accessories therefor
- A61B1/018—Instruments for performing medical examinations of the interior of cavities or tubes of the body by visual or photographical inspection, e.g. endoscopes; Illuminating arrangements therefor characterised by internal passages or accessories therefor for receiving instruments
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61B—DIAGNOSIS; SURGERY; IDENTIFICATION
- A61B17/00—Surgical instruments, devices or methods, e.g. tourniquets
- A61B17/00234—Surgical instruments, devices or methods, e.g. tourniquets for minimally invasive surgery
- A61B2017/00292—Surgical instruments, devices or methods, e.g. tourniquets for minimally invasive surgery mounted on or guided by flexible, e.g. catheter-like, means
- A61B2017/003—Steerable
- A61B2017/00318—Steering mechanisms
- A61B2017/00323—Cables or rods
- A61B2017/00327—Cables or rods with actuating members moving in opposite directions
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61B—DIAGNOSIS; SURGERY; IDENTIFICATION
- A61B90/00—Instruments, implements or accessories specially adapted for surgery or diagnosis and not covered by any of the groups A61B1/00 - A61B50/00, e.g. for luxation treatment or for protecting wound edges
- A61B90/30—Devices for illuminating a surgical field, the devices having an interrelation with other surgical devices or with a surgical procedure
- A61B2090/309—Devices for illuminating a surgical field, the devices having an interrelation with other surgical devices or with a surgical procedure using white LEDs
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Theoretical Computer Science (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- Molecular Biology (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Surgery (AREA)
- Optics & Photonics (AREA)
- Pathology (AREA)
- Radiology & Medical Imaging (AREA)
- Nuclear Medicine, Radiotherapy & Molecular Imaging (AREA)
- Heart & Thoracic Surgery (AREA)
- Medical Informatics (AREA)
- Animal Behavior & Ethology (AREA)
- Public Health (AREA)
- Veterinary Medicine (AREA)
- Probability & Statistics with Applications (AREA)
- Algebra (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Physiology (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Neurology (AREA)
Abstract
一种神经网络的示例实现方法包括:从搜索空间选择第一神经网络架构;以及训练具有第一神经网络架构的神经网络以获得准确度和实现成本。该实现成本基于推断平台的可编程设备。该方法还包括:基于准确度和实现成本来从搜索空间中选择第二神经网络架构;以及输出具有第二神经网络架构的神经网络的权重和超参数。
Description
技术领域
本公开的示例一般涉及神经网络,具体涉及通过包括实现成本作为目标来训练神经网络。
背景技术
机器学习是诱导计算系统在没有被明确编程的情况下动作的科学。传统机器学习包括各种聚类和分类技术,其包括K-均值聚类、线性和逻辑回归、随机梯度下降、关联规则学习等。深度学习是机器学习中较新前沿。深度学习是一类机器学习算法,其使用多层非线性处理单元进行特征提取和变换。深度学习算法可以为无监督式(例如,模式分析)或监督式(例如,分类)。可以使用人工神经网络(ANN)(在本文中被称为“神经网络”)的层来实现深度学习算法。
一般而言,神经网络是在图中连接的节点(即,“神经元”)的集合。神经网络中的节点计算加权输入的总和,并且向该总和添加可选偏差。节点的输出是最终总和的函数(被称为“激活函数”)。示例性激活函数包括S形函数、双曲正切(tanh)函数、整流线性单位(ReLU)函数、以及恒等函数。神经网络模型通常被组织为节点的层,这些层定义特定拓扑结构、以及对应权重和偏差。权重和偏差被称为网络参数。
一般而言,神经网络包括输入层和输出层,并且可以可选地在输入层和输出层之间包括一个或多个隐藏层。深度学习应用中使用的神经网络通常包括许多隐藏层,其产生了术语深度神经网络(DNN)。神经网络的层可以紧密连接(例如,层中的每个节点都完全连接到前一层中的所有节点)或稀疏连接(例如,层中的每个节点仅连接到前一层中的节点中的一部分节点)。卷积神经网络(CNN)是一种DNN,其包括一个或多个稀疏连接的层,被称为卷积层。CNN非常适合处理图像或视频数据。其他类型的DNN包括递归神经网络(RNN),其非常适合处理语音和文本数据。
任何拓扑结构或类型的神经网络都需要跨所有层的网络参数的正确值,以便使网络适应特定任务。监督式训练过程可以用于确定网络参数集合,这些参数可以针对指定任务得出期望的准确度。训练包括:通过网络的前向路径(前向传播)运行训练数据集并且通过网络的后向路径(后向传播)更新权重以补偿预测误差。然后,经训练的神经网络被部署为对输入数据集合执行指定任务(被称为推断)。用于训练神经网络的计算平台(训练平台)的性能通常高于用于推断的计算平台(推断平台)的性能。然而,推断平台通常比训练平台更省电。常规训练技术没有把推断平台的架构方面考虑在内,这可能导致目标推断平台的神经网络的实现不太理想。
发明内容
描述了通过包括实现成本作为目标来训练神经网络的技术。在一个示例中,一种实现神经网络的方法包括:从搜索空间中选择第一神经网络架构;训练具有第一神经网络架构的神经网络以获得准确度和实现成本,该实现成本基于推断平台的可编程设备;基于准确度和实现成本来从搜索空间选择第二神经网络架构;以及输出具有第二神经网络架构的神经网络的权重和超参数。
在另一示例中,一种非暂态计算机可读介质,包括指令,当在计算机系统中执行时,该指令使得该计算机系统执行一种实现神经网络的方法,该方法包括:从搜索空间选择第一神经网络架构;训练具有第一神经网络架构的神经网络以获得准确度和实现成本,该实现成本基于推断平台的可编程设备;基于准确度和实现成本来从搜索空间选择第二神经网络架构;以及输出具有第二神经网络架构的神经网络的权重和超参数。
在另一示例中,一种计算机系统包括存储器,其具有存储在其中的程序代码;以及处理器,其被配置为执行程序代码,以通过以下方式来实现神经网络:从搜索空间选择第一神经网络架构;训练具有第一神经网络架构的神经网络以获得准确度和实现成本,该实现成本基于推断平台的可编程设备;基于准确度和实现成本来从搜索空间选择第二神经网络架构;以及输出具有第二神经网络架构的神经网络的权重和超参数。
参考以下具体实施方式可以理解这些和其他方面。
附图说明
为了能够详细理解上文所陈述的特征的方式,可以通过参考示例实现来获得上文所简要概述的更具体描述,其中一些示例在附图中图示。然而,应当指出,附图仅示出了典型示例实现,因此不应被认为是对其范围的限制。
图1是描绘了根据一个示例的用于训练并实现神经网络的系统的框图。
图2是描绘了根据一个示例的计算系统的框图。
图3是根据一个示例的神经网络的训练方法。
图4是根据另一示例的神经网络的训练方法。
图5是根据另一示例的神经网络的训练方法。
图6是描绘了根据一个示例的推断平台的实现方法的流程图。
图7是描绘了根据一个示例的可编程集成电路(IC)的框图。
图8是描绘了图7的可编程IC的片上系统(SoC)实现的框图。
图9图示了图7的可编程IC的现场可编程门阵列(FPGA)实现。
为了便于理解,在可能的情况下使用了相同的附图标记来表示图中共有的相同元件。应当设想,一个示例的元件可以有益并入其他示例中。
具体实施方式
下文参考附图对各种特征进行描述。应当指出,附图可以按比例绘制,也可以不按比例绘制,并且在整个附图中,相似结构或功能的元件由相似的附图标记表示。应当指出,附图仅旨在促进对特征的描述。它们不旨在作为所要求保护的发明的详尽描述或对所要求保护的发明的范围的限制。另外,所图示的示例不必具有所示的所有方面或优点。结合特定示例所描述的方面或优点不必限于该示例,并且即使未如此示出或未明确描述,也可以在任何其他示例中实践。
描述了通过包括实现成本作为目标来训练神经网络的技术。该技术提供了神经网络拓扑结构的成本感知型架构搜索。如此,神经网络的训练不再只把在特定任务下使神经网络最大的准确度作为目标。相反,神经网络训练平衡了神经网络的准确度与实现成本,其是训练中的另一目标。以这种方式,训练变成了多目标搜索,其中不仅训练了权重的值,而且还找出了神经网络的拓扑结构和某些实现相关属性。
本文中所描述的技术解决了在训练阶段期间神经网络及其在硬件后端中的实际实现中的高计算/存储器需求。这些技术包括:通过使神经网络的(推断)实现成本成为训练期间的额外目标(紧挨着初始的,通常是准确度相关的目标)以及诸如容错(例如,在安全关键应用的情况下)之类的其他特性来导出/交替网络拓扑结构、其超参数、以及某些实现相关属性。常规训练没有为推断平台的架构方面做出解释。复杂度优化技术着重于通过修剪/压缩权重和/或特征图来减少存储器带宽,并且降低权重和/或特征图的准确度(位宽)。强化学习提供了多目标优化,但无需增加神经网络本身的实现成本作为目标。本文中所描述的用于使用实现成本作为目标进行训练的技术与那些技术互补。下文关于附图对基于推断平台的架构约束来优化网络参数和/或特征图的这些和其他方面。
图1是描绘了根据一个示例的用于训练并实现神经网络的系统100的框图。该系统100包括训练平台102和推断平台104。训练平台102包括硬件和软件,其被配置为训练用于指定任务(例如,图像分类、对象检测等)的神经网络106。如下文所描述的,训练平台包括强化代理103和调整代理105。推断平台104包括硬件和/或软件,其被配置为实现神经网络106以执行指定任务。下文对训练平台102和推断平台104的示例进行描述。
神经网络实现的实现效率可以通过诸如吞吐量、能量、大小、容错等、或其组合之类的不同的成本来测量。该成本是诸如操作数目、带宽、数据局部性、对硬件后端进行的调度等之类的不同设计方面的结果。这些方面与训练算法的特点有关,其中更好的算法性能通常会导致更高的实现成本(Pareto原理)。通常,使用于特定任务/能力的算法准确度最大是训练期间的主要目标。附加地,通常会设计网络拓扑结构,并且训练着重于在神经网络的不同层中找出所有权重的正确值。然后,在推断期间使用这些权重,以执行该任务/功能。训练算法的配置由“算法行为”超参数控制。附加地,术语超参数还用于定义神经网络的容量的参数(例如,神经网络中隐藏层的数目),因此与网络拓扑结构有关。这些超参数在本文中被称为“模型容量”超参数,并且包括所有实现属性(例如,位宽)。
训练平台102接收训练数据集110和初始网络权重113。训练数据集110包括用于训练神经网络106以生成经训练的网络权重114的数据。例如,如果神经网络106被配置为对图像进行分类,训练数据集110可以是经预分类的图像集合。初始网络权重113包括神经网络106的权重的初始值。在一个示例中,训练平台102还包括用于接收算法行为超参数112的输入。算法行为超参数112包括学习率、早期停止准则等。训练平台102还包括用于接收推断实现成本115的输入。训练平台102使用推断实现成本115作为训练目标,以学习最佳权重114、网络拓扑120、模型容量超参数108、以及实现属性122(例如,权重或张量元素位宽、数量格式等),该实现属性122在准确度、实现成本Pareto空间中实现最佳折衷。
当探索该Pareto空间时,可以强制执行最小准确度。在这种情况下,训练寻找成本最低的实现,其至少实现预期准确度。组合准确度和推断特定实现成本训练目标可适用于任何计算平台(例如,CPU、GPU、ASSP、FPGA、ACAP等、或其任何组合)。推断特定实现成本包括吞吐量、能量、大小、容错等、或其组合。这种推断特定实现成本在本文中也更普遍地称为实现成本。由于所有架构设计参数/方面(例如,位宽、处理元件数目等)不固定,因此可以在训练期间学习,所以FPGA的灵活架构非常适合实现该组合准确度和实现成本训练目标。
拓扑结构120通常包括神经元布置。例如,拓扑结构120可以包括神经元的多个层。这些层通常包括输入层、输出层、以及零个或多个隐藏层。每个神经元包括多个输入和一个输出。每个神经元的多个输入与多个权重相关联。每个神经元还包括与其输出相关联的偏差。神经网络106的权重和偏差被称为经训练的网络权重114。对于给定层,其神经元的输入被称为输入特征图,而其神经元的输出被称为输出特征图。输入特征图和输出特征图通常称为“特征图”。
推断平台104实现神经网络106。输入数据集116包括要由神经网络106处理的数据。例如,如果神经网络被配置为对图像进行分类,则输入数据集116可以包括要被分类的图像。推断平台104生成结果数据集118。例如,在图像分类方案中,结果数据集118包括输入数据集116中图像的分类。由于神经网络106已经基于推断平台104的实现成本而被优化,所以通过推断平台104可以高效实现神经网络106,从而利用其特征、元件、以及推断实现成本115所捕获的限制。
图2是描绘了根据一个示例的计算系统(“计算机200”)的框图。计算机200包括在硬件平台202上执行的软件平台204。硬件平台202包括中央处理单元(CPU)206、系统存储器208、存储设备210、支持电路211、训练平台212、以及硬件加速器214。软件平台204包括操作系统(OS)230、驱动器232、库234、以及应用236。
在一个示例中,CPU 206可以是任何类型的通用中央处理单元(CPU),诸如基于x86的处理器、基于的处理器等。CPU 206可以包括一个或多个核和关联的电路系统(例如,高速缓冲存储器、存储器管理单元(MMU)、中断控制器等)。CPU 206被配置为执行程序代码,该程序代码执行本文中所描述的一个或多个操作,并且可以被存储在系统存储器208和/或存储设备210中。支持电路211包括各种与CPU 206合作以管理CPU 206、系统存储器208、存储设备210、训练平台212、硬件加速器214或任何其他外围设备之间的数据流的设备。例如,支持电路211可以包括芯片组(例如,北桥、南桥、平台主机控制器等)、电压调节器、固件(例如,BIOS)等。在一些示例中,CPU 206可以是系统级封装(SiP)、片上系统(SoC)等,其吸收了芯片组(例如,北桥、南桥等)的全部或大部分功能性。在另一示例中,CPU 206可以是矢量处理器或可以包括矢量处理器。
系统存储器208是允许存储并取回诸如可执行指令和数据之类的信息的设备。系统存储器208可以包括例如一个或多个随机存取存储器(RAM)模块,诸如双倍数据速率(DDR)动态RAM(DRAM)。系统存储器208可以存储数据226以及由CPU 206处理并执行以实现软件平台204的程序代码(“代码228”)。存储设备210包括本地存储设备(例如,一个或多个硬盘、闪存模块、固态磁盘、以及光盘)和/或使得计算机200能够与一个或多个网络数据存储系统通信的存储接口。硬件平台202可以包括各种其他常规设备和计算系统的外围设备,诸如图形卡、通用串行总线(USB)接口等。
训练平台212包括硬件216,其可以包括(多个)处理器、存储器、输入/输出(IO)电路等。在一个示例中,硬件216包括图形处理单元(GPU)和关联的支持电路系统。在另一示例中,硬件216可以包括专用集成电路(ASIC)、可编程IC等以及关联的支持系统。在一个示例中,训练平台212的性能高于硬件加速器214的性能,但是比硬件加速器214消耗更多的能量。训练平台212可以用于训练神经网络。
硬件加速器214包括IC 220和存储器224。IC 220包括计算引擎222。在一个示例中,IC 220是可编程IC,诸如现场可编程门阵列(FGPA)或具有FPGA的片上系统(SoC)。可以在IC 220中对计算引擎222进行编程。在另一示例中,IC 220是ASIC等,其中计算引擎222是其中的专用电路系统。硬件加速器214可以用于神经网络的推断平台。
OS 230可以是本领域中已知的任何商品操作系统,诸如Microsoft等。驱动器232和库234包括向训练平台212和硬件加速器214提供应用编程接口(API)以对其进行命令和控制的软件。应用236包括在训练平台212上训练神经网络并在硬件加速器214上实现神经网络的软件。应用236通过驱动器232和库234与训练平台212和硬件加速器214通信。
在训练中包括实现成本作为目标使得训练成为多目标问题。下文对多目标优化技术进行描述,以结合网络准确度和实现成本。描述了用于该实现和准确度驱动的神经网络搜索的训练途径的三个示例:(1)使用强化学习;(2)使用基于演化的算法;以及(3)使用超参数分析/优化。还描述了用于减小神经网络架构搜索空间大小的技术。
多目标优化
当评估网络的性能时,包括推断实现成本意味着至少存在两个要优化的目标。如此,应当以有意义方式平衡多个目标。例如,假设网络的准确度由分类误差CE给出,而估计的实现成本由处理新输入CT所花费的时间给出。如果使CT最小的重要性过大,则优化器可能会产生具有零层、零操作和零存储器需求的网络。尽管诱致很高CE,但这仍会得出CT=0的网络。多目标优化目的是平衡CE和CT,以给予理想解决方案。
多目标优化的一般表述如下:
其中f1,…,fk是定义正在被优化的每个目标的成本的函数,x是表示当前解的向量,X是所有可能解的搜索空间。在本文中所描述的示例中,x表示神经网络拓扑结构及其关联的超参数(即,模型容量超参数108)。函数f1,…,fk表示当前神经网络拓扑结构相对于其准确度和实现成本/硬件成本的感兴趣度量。为了准确起见,这些函数包括均方误差(MSE)、分类误差、Lp范数、铰链损耗、或适用于目标域的类似度量。对于实现成本/硬件成本,这些函数包括存储器要求、带宽要求、时钟周期、数据路径宽度、量化方案、算术样式、数量格式、硅面积和能耗、以及容错。
在一些情况下,难以在数学上以易于理解的方式组合目标函数。在这些情况下,当比较两个解x1和x2时,如果则x1是比x2更好的解。如果找不到比x1更好的解,则x1被视为Pareto最优解。在其他情况下,可以组合多个目标函数以形成单个目标函数,该目标函数旨在封装多个目标之间的权衡。这称为标量化,并且在一般情况下表示如下:
其中g∈Rk→R。g的常见示例包括:
·线性标量化,其中g=∑wifi(x),其中wi>0是与每个目标函数相关联的权重;以及
Lp范数,g=‖f-z‖p,其中f={f1(x),f2(x),...,fk(x)},并且z∈Rk是理想成本值的向量。
基于所选取的优化器(例如,下文所描述的),目标函数可能需要为半微分式,诸如MSE、交叉熵、以及铰链损耗。下文对用于成本感知架构搜索的三种学习技术进行了介绍。注意,这些技术中的每个技术都可以彼此结合使用。
所列举的示例把实现成本C示为附加优化成本(紧挨着准确度R)。这是推断特定实现成本的一般表示。它可以表示单个实现成本,如能量E或容错T等、或成本的任何组合。
基于强化学习的架构搜索
图3是根据一个示例的神经网络的训练方法300。方法300开始于步骤302,在该步骤302处,强化代理103以概率P从搜索空间S中选择样本神经网络架构描述A。神经网络的拓扑结构(例如,其结构和连通性)可以以文本格式(例如,prototxt或神经网络或机器学习框架所使用的任何其他呈现形式)描述。使用实现特定属性(例如,张量元素的位宽、数目格式、调度等)扩展神经网络描述。所扩展的神经网络描述成为神经网络架构描述。
在步骤304处,训练平台训练神经网络,从而在验证集合上产生准确度R。由于神经网络架构描述包括实现属性,所以可以测量或估计/建模实现成本C(基于推断平台)(步骤306)。在步骤308处,训练平台使用准确度R和实现成本C的组合作为回报来计算策略梯度以更新强化代理103。在步骤310处,强化代理103确定结束条件是否已经满足训练。如果不满足,则方法300重复,从搜索空间S中选择另一网络架构描述。应当理解,方法300在选择用于处理的下一网络架构时可以选择与先前迭代相同的网络架构。也就是说,可以在多个训练迭代中使用相同网络架构。否则,方法300进行到步骤312,其中训练平台输出经训练神经网络。
在一个示例中,强化代理103可以是针对序列预测而调整的机器学习算法,诸如递归神经网络(RNN)。该RNN将前一网络层的参数作为输入,并且产生对后续层的参数的预测。RNN以这种方式继续,直到达到停止准则为止。示例停止准则包括:达到一定数目的层,或达到一定硬件成本(例如,存储器使用/操作数目)。如果为网络准确度和实现成本选取了半微分目标函数,则可以通过关于目标函数对一些参数进行微分来更新它们。对于其他参数,针对渐变定义策略。
基于演化的架构搜索
图4是描绘了根据另一示例的训练神经网络的方法400的框图。方法400可以由训练平台实现。架构搜索的备选途径是使用基于演化的算法。为了使用演化算法以执行架构搜索,需要做两件事:1)把神经网络架构编码为基因;以及2)用于评估特定结构的性能的适应度函数。适应度函数可以是上文在多目标优化章节中描述的任何函数,其包括标量化函数或多目标函数。演化算法了解这种网络的实现成本。在这种情况下,演化算法可以用于找到最优解(经标量化)或一系列pareto最优解或近似逼近。为了把神经网络架构编码为基因,神经网络描述可以变换为字母。这可以等同映射到以紧凑方式编写的网络设计协议(诸如caffe的prototxt),以使算法更有利于演化算法。神经网络层、图形连接以及单个神经元和突触都可以表达为基因。
演化算法的基本方法是生成N个随机基因串(其与神经网络架构相对应)(步骤402)。然后,使用适合度函数评估这些架构,这些架构可能需要单独训练每个网络架构(步骤404)。此时,选择架构的子集,将其随机组合并突变以生成下一N架构(步骤406)。随着时间的流逝,这会产生针对给定成本函数而被高度优化的架构,其在这种情况下意味着高准确度和低实现/硬件成本。在步骤408处,确定是否结束。如果没有结束,则方法400进行到步骤404并重复。否则,方法400进行到步骤410,其中训练平台输出经训练的神经网络。
基于超参数分析的训练
图5是根据一个示例的训练神经网络的方法500。方法500开始于步骤502,在步骤502处,调整代理105选择超参数集合。如上文所指出的,模型容量超参数允许定义/描述神经网络的架构。模型容量超参数定义拓扑结构参数(例如,层数、每层通道数等)和相关实现属性两者。调整代理105收集关于超参数(算法行为和模型容量两者)之间的关系的知识。
在步骤504处,训练平台训练神经网络,从而在验证集合上产生准确度R。由于神经网络架构描述包括实现属性,所以可以测量或估计/建模实现成本C(基于推断平台)(步骤506)。在步骤508处,调整代理105使用超参数与神经网络性能(准确度R和实现成本C两者)之间的关系来为下一超参数集合做出更多pareto最优选取。通过应用超参数优化技术,可以在有限数目的优化步骤中实现良好的优化。
超参数优化技术的示例包括网格搜索、随机搜索、以及贝叶斯优化。网格搜索包括:为神经网络内的每个超参数选择候选值集合。然后,通过针对超参数的每个排列训练网络来执行网格搜索。然后,选取最佳模型作为关于我们的成本函数而理想执行的模型,如上文在多目标优化章节中所描述的。
随机搜索在概念上类似于网格搜索,不同之处在于随机搜索从每个超参数的指定范围内选择随机值,而非从网格中选择随机值。这具有几个益处,这些益处包括:受测超参数的变化较大,对于每个超参数,执行结果比网格搜索的执行结果更好的机会高,实验可以在任何点中断,并且仍然被视为完整搜索数据点集。
贝叶斯超参数搜索是一种更复杂的技术,其试图开发将超参数值映射到我们的成本函数的统计模型。通常,该统计模型是高斯过程(GP),其生成与所观测的数据非常接近的函数。GP提供了对在超参数空间中选取的成本函数的预测以及这样的预测的不确定性,与随机搜索和网格搜索相比,它具有以下益处:1)在下一迭代上,选择使GP最小的点,即,基于超参数空间的当前模型相对于我们期望的结果而最有可能是最优的点;以及2)在下一迭代上,选择不确定性高的点,即,将揭示关于超参数空间的大量其他信息的点。
减少架构搜索空间
在上文所描述的方法中,仅通过使网络的某些方面可变,可以减小神经架构搜索空间的大小/复杂度。比如,仅使特征图元素的位宽和特征图的通道数目可变使得能够对其最佳设置进行训练。通常,减小特征图元素的位宽会导致准确度降低,同时允许更有效的实现。可以通过增加特征图通道的数量来弥补准确度的降低,但代价是实现复杂性增加。特征图元素的位宽和通道数可以表达为神经网络架构描述的一部分(用于强化学习技术),还可以表达为模型容量超参数(用于超参数分析)。两种架构搜索技术都将探索(减小的)搜索空间,以找出pareto最佳的(准确度与实现成本)神经网络架构。
注意,实现通常作为优化搜索空间中的离散点出现,在该空间中,实现力图充分利用特定芯片/平台的资源。这不仅减小了搜索空间的大小,而且触及了实现成本感知网络搜索的另一优化目标:使该离散实现点的准确度最大。这表明(针对所考虑的芯片系列的成员)全部设备资源的列表还可以成为实现成本感知架构搜索的输入。
注意,确实位于FPGA架构上的如LUT、FF、DSP、BRAM/URAM等之类的实现资源通常达到特定系列内的设备的某些比例。这些比例可以减少多目标优化中的变量的数目。
最后,注意,许多当前神经网络拓扑结构不依赖于数据相关层执行。神经网络中所有层的‘静态’执行简化了对神经网络的实现成本的建模。如果网络中存在数据相关层执行,则神经网络架构搜索需要更复杂的动态实现成本。可替代地,在(推断)平台上运行拓扑结构候选的同时进行的实现成本测量可以用于神经网络架构搜索。
可编程设备实现
图6是描绘了根据一个示例的实现推断平台的方法600的流程图。在步骤602处,训练平台训练说明上文在技术中所描述的实现成本的神经网络。训练平台输出经训练的神经网络描述。在步骤604处,用户与电路设计工具交互以基于经训练的神经网络的描述来生成电路设计。在步骤606处,电路设计工具实现诸如FGPA或具有可编程逻辑的SoC之类的可编程设备的电路设计。在步骤608处,电路设计工具将比特流加载到可编程设备中以实现推断平台。
图7是描绘了根据一个示例的可编程IC 1的框图,该示例IC可以用于实现推断平台和/或训练平台。可编程IC 1可以用作图2中的IC 220。可编程IC 1包括可编程逻辑3、配置逻辑25、以及配置存储器26。可编程IC 1可以耦合到外部电路,诸如非易失性存储器27、DRAM 28、以及其他电路29。可编程逻辑3包括逻辑单元30、支持电路31、以及可编程互连32。逻辑单元30包括电路,其可以被配置为实现多个输入的通用逻辑功能。支持电路31包括专用电路,诸如收发器、输入/输出块、数字信号处理器、存储器等。逻辑单元和支持电路31可以使用可编程互连32互连。用于对逻辑单元30进行编程、用于设置支持电路31的参数、以及用于对可编程互连32进行编程的信息通过配置逻辑25被存储在配置存储器26中。配置逻辑25可以从非易失性存储器27或任何其他源(例如,DRAM 28或从其他电路29)获得配置数据。在一些示例中,可编程IC 1包括处理系统2。处理系统2可以包括(多个)微处理器、存储器、支持电路、IO电路等。
图8是描绘了根据一个示例的可编程IC 1的片上系统(SoC)实现的框图。在该示例中,可编程IC 1包括处理系统2和可编程逻辑3。处理系统2包括各种处理单元,诸如实时处理单元(RPU)4、应用处理单元(APU)5、图形处理单元(GPU)6、配置和安全单元(CSU)12、平台管理单元(PMU)122等。处理系统2还包括各种支持电路,诸如片上存储器(OCM)14、收发器7、外围设备8、互连16、DMA电路9、存储器控制器10、外围设备15、以及多路复用IO(MIO)电路13。处理单元和支持电路通过互连16互连。PL3还耦合到互连16。收发器7耦合到外部引脚24。PL 3耦合到外部引脚23。存储器控制器10耦合到外部引脚23。MIO 13耦合到外部引脚20。PS 2通常耦合到外部引脚21。APU 5可以包括CPU 17、存储器18、以及支持电路19。
参考PS 2,处理单元中的每个处理单元包括一个或多个中央处理单元(CPU)和关联电路,诸如存储器、中断控制器、直接存储器访问(DMA)控制器、存储器管理单元(MMU)、浮点单元(FPU)等。互连16包括各种开关、总线、通信链路等,其被配置为互连处理单元以及将PS 2中的其他部件互连到处理单元。
OCM 14包括一个或多个RAM模块,其可以分布在整个PS 2中。例如,OCM 14可以包括电池供电的RAM(BBRAM)、紧密耦合的存储器(TCM)等。存储器控制器10可以包括用于访问外部DRAM的DRAM接口。外围设备8、15可以包括一个或多个部件,其向PS2提供接口。例如,外围设备132可以包括图形处理单元(GPU)、显示器接口(例如,DisplayPort、高清多媒体接口(HDMI)端口等)、通用串行总线(USB)端口、以太网端口、通用异步收发器(UART)端口、串行外围设备接口(SPI)端口、通用IO(GPIO)端口、串行高级技术附件(SATA)端口、PCIe端口等。外围设备15可以耦合到MIO 13。外围设备8可以耦合到收发器7。收发器7可以包括串行器/解串器(SERDES)电路、MGT等。
图9图示了可编程IC 1的现场可编程门阵列(FPGA)实现,该FPGA实现包括大量不同的可编程区块,其包括收发器37、可配置逻辑块(“CLB”)33、随机存取存储器块(“BRAM”)34、输入/输出块(“IOB”)36、配置和时钟逻辑(“CONFIG/CLOCKS”)42、数字信号处理块(“DSP”)35、专用输入/输出块(“I/O”)41(例如,配置端口和时钟端口)、以及其他可编程逻辑39(诸如)数字时钟管理器、模数转换器、系统监测逻辑等。FPGA还可以包括PCIe接口40、模数转换器(ADC)38等。
在一些FPGA中,每个可编程区块可以包括至少一个可编程互连元件(“INT”)43,其具有与相同区块内可编程逻辑元件的输入端子和输出端子48的连接,如图9的顶部包括的示例所示。每个可编程互连元件43还可以包括与同一图块或(多个)其他图块中的(多个)相邻可编程互连元件的互连片段49的连接。每个可编程互连元件43还可以包括与逻辑块(未示出)之间的通用路由资源的互连片段50的连接。通用路由资源可以包括逻辑块(未示出)之间的路由通道,这些逻辑块包括互连片段(例如,互连片段50)的轨道和用于连接互连片段的开关块(未示出)。通用路由资源的互连片段(例如,互连片段50)可以跨越一个或多个逻辑块。可编程互连元件43与通用路由资源一起实现了用于所图示的FPGA的可编程互连结构(“可编程互连”)。
在一个示例实现中,CLB 33可以包括可配置逻辑元件(“CLE”)44,其可以被编程为实现用户逻辑以及单个可编程互连元件(“INT”)43。除了一个或多个可编程互连元件之外,BRAM 34还可以包括BRAM逻辑元件(“BRL”)45。通常,区块中包括的互连元件的数目取决于区块的高度。在所描画的示例中,BRAM区块具有与五个CLB相同的高度,但是还可以使用其他数目(例如,四个)。除了适当数目的可编程互连元件之外,DSP区块35还可以包括DSP逻辑元件(“DSPL”)46。除了可编程互连元件43的一个实例之外,IOB36还可以包括例如输入逻辑元件/输出逻辑元件(“IOL”)47的两个实例。对于本领域技术人员而言,显而易见的是,例如连接到I/O逻辑元件47的实际I/O焊盘通常不限于输入逻辑元件/输出逻辑元件47的区域。
在所描画的示例中,靠近管芯的中心的水平区域(如图9所示)用于配置、时钟和其他控制逻辑。从该水平区域或列延伸的垂直列51用于在FPGA的整个宽度上分配时钟和配置信号。
利用图9所图示的架构的一些FPGA包括其他逻辑块,这些逻辑块破坏了构成FPGA很大一部分的规则柱状结构。附加逻辑块可以是可编程块和/或专用逻辑。
注意,图9仅旨在图示一种示例性FPGA架构。例如,一行中逻辑块的数目、行的相对宽度、行的数目和次序、行中包括的逻辑块的类型、逻辑块的相对大小、以及图9的顶部处所包括的互连/逻辑实现纯粹是示例性的。例如,在实际FPGA中,无论CLB出现在何处,通常都包括一个以上的相邻CLB行,以方便用户逻辑的有效实现,但是相邻CLB行的数目随FPGA的整体大小而发生变化。
在一个示例中,一种实现神经网络的方法,包括:从搜索空间选择第一神经网络架构;训练具有第一神经网络架构的神经网络以获得准确度和实现成本,实现成本基于推断平台的可编程设备;基于准确度和实现成本来从搜索空间选择第二神经网络架构;以及输出具有第二神经网络架构的神经网络的权重和超参数。
在一个示例中,选择第一神经网络架构的步骤由强化代理执行,其中强化代理以概率P从搜索空间中选择第一神经网络架构,并且其中强化代理基于准确度和实现成本的函数来调整概率P。
在一个示例中,强化代理是递归神经网络(RNN)。
在一个示例中,第一神经网络架构是多个神经网络架构中的一个神经网络架构,其中训练步骤包括:使用适应度函数来评估多个神经网络架构。
在一个示例中,选择第一神经网络架构的步骤由调整代理执行,并且其中调整代理基于准确度和实现成本的函数来选择用于第二神经网络架构的超参数。
在一个示例中,调整代理使用网格搜索、随机搜索或贝叶斯搜索来选择超参数。
在一个示例中,该方法还包括:基于神经网络的权重和超参数来生成电路设计;以及实现用于可编程逻辑器件的电路设计。
在一个示例中,计算机系统包括存储器,其中存储有程序代码;以及处理器,其被配置为执行程序代码,以通过以下方式实现神经网络:从搜索空间选择第一神经网络架构;训练具有第一神经网络架构的神经网络以获得准确度和实现成本,实现成本基于推断平台的可编程设备;基于准确度和实现成本来从搜索空间选择第二神经网络架构;以及输出具有第二神经网络架构的神经网络的权重和超参数。
在一个示例中,处理器被配置为执行代码以使用强化代理来选择第一神经网络架构,其中强化代理以概率P从搜索空间中选择第一神经网络架构,并且其中强化代理基于准确度和实现成本的函数来调整概率P。
在一个示例中,强化代理是递归神经网络(RNN)。
在一个示例中,第一神经网络架构是多个神经网络架构中的一个神经网络架构,其中处理器执行代码以通过使用适应度函数来评估多个神经网络架构来执行训练。
在一个示例中,处理器使用调整代理来执行代码以选择第一神经网络架构,并且其中调整代理基于准确度和实现成本的函数来选择第二神经网络架构的超参数。
在一个示例中,调整代理使用网格搜索、随机搜索或贝叶斯搜索来选择超参数。
本文中所描述的各种示例可以采用涉及计算机系统中存储的数据的各种计算机实现操作。例如,这些操作可能需要对物理量进行物理操纵,即,通常尽管并非必须,但是这些物理量可以采用电信号或磁信号的形式,这些电信号或磁信号或其实现能够被存储、传送、组合、比较或以其他方式操纵。进一步地,这样的操纵通常以术语来指代,诸如产生、标识、确定、或比较。形成本文中所描述的一个或多个示例技术的一部分的本文中所描述的任何操作可以是有用机器操作。另外,一个或多个示例技术还涉及一种用于执行这些操作的设备或装置。该装置可以被特别构造为用于所需特定目的,或它可以是计算机中存储的计算机程序所选择性地激活或配置的通用计算机。特别地,各种通用机器可以与根据本文中的教导编写的计算机程序一起使用,或构造更专门装置来执行所需操作可能更方便。本文中所描述的各种示例可以与其他计算系统配置一起实践,这些计算系统配置包括手持式设备、微处理器系统、基于微处理器的或可编程的消费者电子产品、小型计算机、大型计算机等。
本文中所描述的一个或多个示例技术可以被实现为一个或多个计算机程序或被实现为一个或多个计算机可读介质中体现的一个或多个计算机程序模块。术语计算机可读介质是指可以存储随后可以输入到计算机系统的数据的任何数据存储设备,即,计算机可读介质可以基于用于以使得能够通过计算机读取计算机程序的方式来体现它们的任何现有的或随后开发的技术。计算机可读介质的示例包括硬盘驱动器、网络附加存储(NAS)、只读存储器、随机存取存储器(例如,闪存设备)、CD(光盘)(即,CD-ROM、CD-R或CD-RW)、DVD(数字多功能光盘)、磁带、以及其他光学和非光学数据存储设备。计算机可读介质还可以分布在网络耦合的计算机系统上,从而以分布式方式存储并执行计算机可读代码。
虽然前述内容针对特定示例,但是在没有背离其基本范围的情况下,可以设计其他和另外示例,并且其范围由所附权利要求书确定。
Claims (13)
1.一种实现神经网络的方法,包括:
从搜索空间选择第一神经网络架构;
训练具有所述第一神经网络架构的所述神经网络以获得准确度和实现成本,所述实现成本基于推断平台的可编程设备;
基于所述准确度和所述实现成本来从所述搜索空间选择第二神经网络架构;以及
输出用于具有所述第二神经网络架构的所述神经网络的权重和超参数。
2.根据权利要求1所述的方法,其中选择所述第一神经网络架构的所述步骤由强化代理执行,其中所述强化代理以概率P从所述搜索空间中选择所述第一神经网络架构,并且其中所述强化代理基于所述准确度和所述实现成本的函数来调整所述概率P。
3.根据权利要求1所述的方法,其中所述强化代理是递归神经网络(RNN)。
4.根据权利要求1所述的方法,其中所述第一神经网络架构是多个神经网络架构中的一个神经网络架构,其中所述训练的步骤包括:使用适应度函数来评估所述多个神经网络架构。
5.根据权利要求1所述的方法,其中选择所述第一神经网络架构的所述步骤由调整代理执行,并且其中所述调整代理基于所述准确度和所述实现成本的函数来选择用于所述第二神经网络架构的超参数。
6.根据权利要求5所述的方法,其中所述调整代理使用网格搜索、随机搜索或贝叶斯搜索来选择所述超参数。
7.根据权利要求1所述的方法,还包括:
基于所述神经网络的所述权重和所述超参数来生成电路设计;以及
实现用于所述可编程逻辑器件的所述电路设计。
8.一种计算机系统,包括:
存储器,其中存储有程序代码;以及
处理器,被配置为执行所述程序代码,以通过以下方式实现神经网络:
从搜索空间选择第一神经网络架构;
训练具有所述第一神经网络架构的所述神经网络以获得准确度和实现成本,所述实现成本基于推断平台的可编程设备;
基于所述准确度和所述实现成本来从所述搜索空间选择第二神经网络架构;以及
输出具有所述第二神经网络架构的所述神经网络的权重和超参数。
9.根据权利要求8所述的计算机系统,其中所述处理器被配置为执行所述代码以使用强化代理来选择所述第一神经网络架构,其中所述强化代理以概率P从所述搜索空间中选择所述第一神经网络架构,并且其中所述强化代理基于所述准确度和所述实现成本的函数来调整所述概率P。
10.根据权利要求8所述的计算机系统,其中所述强化代理是递归神经网络(RNN)。
11.根据权利要求8所述的计算机系统,其中所述第一神经网络架构是多个神经网络架构中的一个神经网络架构,其中所述处理器执行所述代码以通过使用适应度函数来评估所述多个神经网络架构来执行所述训练。
12.根据权利要求8所述的计算机系统,其中所述处理器使用调整代理来执行所述代码以选择所述第一神经网络架构,并且其中所述调整代理基于所述准确度和所述实现成本的函数来选择所述第二神经网络架构的超参数。
13.根据权利要求12所述的计算机系统,其中所述调整代理使用网格搜索、随机搜索或贝叶斯搜索来选择所述超参数。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/147,478 US20200104715A1 (en) | 2018-09-28 | 2018-09-28 | Training of neural networks by including implementation cost as an objective |
US16/147,478 | 2018-09-28 | ||
PCT/US2019/050740 WO2020068437A1 (en) | 2018-09-28 | 2019-09-12 | Training of neural networks by including implementation cost as an objective |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112771543A true CN112771543A (zh) | 2021-05-07 |
Family
ID=68296627
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980064032.9A Pending CN112771543A (zh) | 2018-09-28 | 2019-09-12 | 通过包括实现成本作为目标来训练神经网络 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20200104715A1 (zh) |
EP (1) | EP3857456A1 (zh) |
JP (1) | JP2022502752A (zh) |
KR (1) | KR20210064354A (zh) |
CN (1) | CN112771543A (zh) |
WO (1) | WO2020068437A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113222118A (zh) * | 2021-05-19 | 2021-08-06 | 北京百度网讯科技有限公司 | 神经网络训练方法、装置、电子设备、介质和程序产品 |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR3089329A1 (fr) * | 2018-11-29 | 2020-06-05 | Stmicroelectronics (Rousset) Sas | Procédé d’analyse d’un jeu de paramètres d’un réseau de neurones en vue d’obtenir une amélioration technique, par exemple un gain en mémoire. |
JP2020107012A (ja) * | 2018-12-27 | 2020-07-09 | ルネサスエレクトロニクス株式会社 | 演算処理装置および機械学習方法 |
CN109784333B (zh) * | 2019-01-22 | 2021-09-28 | 中国科学院自动化研究所 | 基于点云带权通道特征的三维目标检测方法及系统 |
US10789402B1 (en) * | 2019-05-01 | 2020-09-29 | Xilinx, Inc. | Compiler and hardware abstraction layer architecture for a neural network accelerator |
JP7171520B2 (ja) * | 2019-07-09 | 2022-11-15 | 株式会社日立製作所 | 機械学習システム |
US11003825B1 (en) * | 2019-09-26 | 2021-05-11 | Cadence Design Systems, Inc. | System, method, and computer program product for optimization in an electronic design |
CN111582482B (zh) * | 2020-05-11 | 2023-12-15 | 抖音视界有限公司 | 用于生成网络模型信息的方法、装置、设备和介质 |
US10970633B1 (en) * | 2020-05-13 | 2021-04-06 | StradVision, Inc. | Method for optimizing on-device neural network model by using sub-kernel searching module and device using the same |
CN111667055A (zh) * | 2020-06-05 | 2020-09-15 | 北京百度网讯科技有限公司 | 用于搜索模型结构的方法和装置 |
CN111798940A (zh) * | 2020-06-28 | 2020-10-20 | 南方科技大学 | 一种基于深度神经网络算法预测超导材料的方法及装置 |
JP6885553B1 (ja) * | 2020-07-14 | 2021-06-16 | エッジコーティックス ピーティーイー. リミテッド | ハードウェアとニューラルアーキテクチャとの共同探索 |
CN112085070A (zh) * | 2020-08-19 | 2020-12-15 | 北京影谱科技股份有限公司 | 一种基于遗传算法的cnn图像分类方法及系统 |
CN112001496B (zh) * | 2020-08-27 | 2022-09-27 | 展讯通信(上海)有限公司 | 神经网络结构搜索方法及系统、电子设备及存储介质 |
CN112100466A (zh) * | 2020-09-25 | 2020-12-18 | 北京百度网讯科技有限公司 | 生成搜索空间的方法、装置、设备及存储介质 |
CN112241786B (zh) * | 2020-10-23 | 2024-02-20 | 北京百度网讯科技有限公司 | 模型超参数的确定方法及设备、计算设备和介质 |
EP4016393A1 (en) * | 2020-12-18 | 2022-06-22 | Adagos | A method for building a resource-frugal neural network |
CN113033784A (zh) * | 2021-04-18 | 2021-06-25 | 沈阳雅译网络技术有限公司 | 一种针对cpu和gpu设备搜索神经网络结构的方法 |
US20220035877A1 (en) * | 2021-10-19 | 2022-02-03 | Intel Corporation | Hardware-aware machine learning model search mechanisms |
FR3129229B1 (fr) * | 2021-11-09 | 2023-12-29 | Univ Grenoble Alpes | Procede, dispositif et produit programme d’ordinateur pour la configuration d’un systeme de calcul distribue |
US11710026B2 (en) * | 2021-11-29 | 2023-07-25 | Deepx Co., Ltd. | Optimization for artificial neural network model and neural processing unit |
US11836595B1 (en) * | 2022-07-29 | 2023-12-05 | Lemon Inc. | Neural architecture search system using training based on a weight-related metric |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105701509A (zh) * | 2016-01-13 | 2016-06-22 | 清华大学 | 一种基于跨类别迁移主动学习的图像分类方法 |
CN108021983A (zh) * | 2016-10-28 | 2018-05-11 | 谷歌有限责任公司 | 神经架构搜索 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180336453A1 (en) * | 2017-05-19 | 2018-11-22 | Salesforce.Com, Inc. | Domain specific language for generation of recurrent neural network architectures |
KR102601604B1 (ko) * | 2017-08-04 | 2023-11-13 | 삼성전자주식회사 | 뉴럴 네트워크의 파라미터들을 양자화하는 방법 및 장치 |
DE102018109835A1 (de) * | 2018-04-24 | 2019-10-24 | Albert-Ludwigs-Universität Freiburg | Verfahren und Vorrichtung zum Ermitteln einer Netzkonfiguration eines neuronalen Netzes |
-
2018
- 2018-09-28 US US16/147,478 patent/US20200104715A1/en not_active Abandoned
-
2019
- 2019-09-12 CN CN201980064032.9A patent/CN112771543A/zh active Pending
- 2019-09-12 KR KR1020217012695A patent/KR20210064354A/ko active Search and Examination
- 2019-09-12 JP JP2021516572A patent/JP2022502752A/ja active Pending
- 2019-09-12 EP EP19790891.6A patent/EP3857456A1/en active Pending
- 2019-09-12 WO PCT/US2019/050740 patent/WO2020068437A1/en unknown
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105701509A (zh) * | 2016-01-13 | 2016-06-22 | 清华大学 | 一种基于跨类别迁移主动学习的图像分类方法 |
CN108021983A (zh) * | 2016-10-28 | 2018-05-11 | 谷歌有限责任公司 | 神经架构搜索 |
Non-Patent Citations (1)
Title |
---|
CHI-HUNG HSU等: "MONAS: Multi-Objective Neural Architecture Search using Reinforcement Learning", 《ARXIV:1806.10332 [CS.LG]》, 27 June 2018 (2018-06-27), pages 1 - 8 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113222118A (zh) * | 2021-05-19 | 2021-08-06 | 北京百度网讯科技有限公司 | 神经网络训练方法、装置、电子设备、介质和程序产品 |
CN113222118B (zh) * | 2021-05-19 | 2022-09-09 | 北京百度网讯科技有限公司 | 神经网络训练方法、装置、电子设备、介质和程序产品 |
Also Published As
Publication number | Publication date |
---|---|
EP3857456A1 (en) | 2021-08-04 |
WO2020068437A1 (en) | 2020-04-02 |
KR20210064354A (ko) | 2021-06-02 |
US20200104715A1 (en) | 2020-04-02 |
JP2022502752A (ja) | 2022-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112771543A (zh) | 通过包括实现成本作为目标来训练神经网络 | |
CN111033529B (zh) | 神经网络的架构优化训练 | |
EP3295382B1 (en) | Bit width selection for fixed point neural networks | |
Imani et al. | Dual: Acceleration of clustering algorithms using digital-based processing in-memory | |
Loni et al. | DeepMaker: A multi-objective optimization framework for deep neural networks in embedded systems | |
KR102483639B1 (ko) | 뉴럴 네트워크 구조 확장 방법, 디멘션 리덕션 방법, 및 그 방법을 이용한 장치 | |
US20160328644A1 (en) | Adaptive selection of artificial neural networks | |
US20160224903A1 (en) | Hyper-parameter selection for deep convolutional networks | |
CN116011510A (zh) | 用于优化机器学习架构的框架 | |
US20190354865A1 (en) | Variance propagation for quantization | |
TW202125339A (zh) | 經由調整記憶體內計算陣列的列閾值來執行xnor等效運算 | |
US11144291B1 (en) | Loop-oriented neural network compilation | |
Streat et al. | Non-volatile hierarchical temporal memory: Hardware for spatial pooling | |
TW202244792A (zh) | 產生及全域地調諧應用程式特定之機器學習加速器 | |
WO2020243922A1 (en) | Automatic machine learning policy network for parametric binary neural networks | |
US20220101133A1 (en) | Dynamic quantization for energy efficient deep learning | |
US11461662B1 (en) | Compilation time reduction for memory and compute bound neural networks | |
Jayakodi et al. | A general hardware and software co-design framework for energy-efficient edge AI | |
US20220284271A1 (en) | Sparsity-based neural network mapping to computing units in a system-on-chip | |
Azari et al. | MILES: m ulticlass i mbalanced l earning in e nsembles through s elective sampling | |
US20220108165A1 (en) | Quantifying reward and resource allocation for concurrent partial deep learning workloads in multi core environments | |
Dialameh et al. | Dynamic feature weighting for imbalanced data sets | |
WO2023155183A1 (en) | Systems, apparatus, articles of manufacture, and methods for teacher-free self-feature distillation training of machine learning models | |
Zamboni et al. | Logic-in-Memory Implementation of Random Forest Algorithm | |
Neshatpour | Acceleration of Machine Learning Algorithms for Big Data Applications |
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 |