CN117859136A - 用于深度神经网络的基于扭矩的结构化修剪的电子设备和方法 - Google Patents
用于深度神经网络的基于扭矩的结构化修剪的电子设备和方法 Download PDFInfo
- Publication number
- CN117859136A CN117859136A CN202280056808.4A CN202280056808A CN117859136A CN 117859136 A CN117859136 A CN 117859136A CN 202280056808 A CN202280056808 A CN 202280056808A CN 117859136 A CN117859136 A CN 117859136A
- Authority
- CN
- China
- Prior art keywords
- machine learning
- learning model
- torque
- channel
- electronic device
- 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
- 238000000034 method Methods 0.000 title claims abstract description 149
- 238000013138 pruning Methods 0.000 title abstract description 71
- 238000013528 artificial neural network Methods 0.000 title description 7
- 238000010801 machine learning Methods 0.000 claims abstract description 191
- 238000012549 training Methods 0.000 claims abstract description 108
- 230000006870 function Effects 0.000 claims description 40
- 230000008569 process Effects 0.000 description 58
- 238000009966 trimming Methods 0.000 description 32
- 238000004891 communication Methods 0.000 description 20
- 230000009471 action Effects 0.000 description 16
- 238000012545 processing Methods 0.000 description 12
- 230000003071 parasitic effect Effects 0.000 description 9
- 244000141353 Prunus domestica Species 0.000 description 6
- 230000008901 benefit Effects 0.000 description 6
- 238000013527 convolutional neural network Methods 0.000 description 6
- 239000011159 matrix material Substances 0.000 description 6
- 230000009467 reduction Effects 0.000 description 6
- 238000012546 transfer Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 238000005259 measurement Methods 0.000 description 4
- 238000010606 normalization Methods 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 230000011218 segmentation Effects 0.000 description 3
- 238000002591 computed tomography Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000005611 electricity Effects 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 2
- WQZGKKKJIJFFOK-GASJEMHNSA-N Glucose Natural products OC[C@H]1OC(O)[C@H](O)[C@@H](O)[C@@H]1O WQZGKKKJIJFFOK-GASJEMHNSA-N 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000002583 angiography Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 239000008280 blood Substances 0.000 description 1
- 210000004369 blood Anatomy 0.000 description 1
- 238000009529 body temperature measurement Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- -1 electricity Substances 0.000 description 1
- 238000002567 electromyography Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 239000008103 glucose Substances 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000002595 magnetic resonance imaging Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 239000002096 quantum dot Substances 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 238000002604 ultrasonography Methods 0.000 description 1
- 238000005406 washing Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/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/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/08—Learning methods
-
- 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
- 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
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
- G06N20/10—Machine learning using kernel methods, e.g. support vector machines [SVM]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- User Interface Of Digital Computer (AREA)
- Feedback Control In General (AREA)
Abstract
提供了一种用于训练机器学习模型的方法。该方法包括访问机器学习模型以进行训练。该方法包括选择机器学习模型的至少一层的枢轴点通道,并基于距枢轴点通道的通道距离来选择针对除枢轴点通道之外的每个通道的扭矩强度。该方法包括对机器学习模型的至少一个滤波器施加基于扭矩的约束。该方法包括基于施加基于扭矩的约束,将机器学习模型的至少一个滤波器的第一集合调整为具有比机器学习模型的至少一个滤波器的第二集合更高的权重集中度。该方法包括基于阈值来修剪机器学习模型的至少一个通道。
Description
技术领域
本公开总体上涉及机器学习系统。更具体地,本公开涉及用于深度神经网络的基于扭矩的结构化修剪的电子设备和方法。
背景技术
深度神经网络(DNN)模型的大小持续增加,以便适应和处理复杂的数据和问题。这些DNN模型的普及和成功伴随着计算能力和参数存储成本的显著增加。这已导致修剪技术的出现,修剪技术专注于减少DNN模型中的参数数量,以便减少存储器和硬件消耗,同时仍试图保持良好的准确度。这种修剪技术可以大体上分为非结构化技术和结构化技术。当前的非结构化修剪方法减少了参数总数,但需要稀疏矩阵运算库和硬件能力,这使得它们对于硬件部署是不切实际的。当前的结构化修剪方法(如网络缩减)使用来自DNN模型中的批量归一化层的缩放因子来修剪通道。然而,批量归一化可能在训练时导致低效,并且还可能降低测试准确度。当前的修剪方法在对滤波器进行修剪之后还显示出准确度的高下降,并且需要大量微调以达到稳定的模型。
发明内容
技术解决方案
本公开涉及用于深度神经网络的基于扭矩的结构化修剪的电子设备和方法。
根据本公开的一个方面,提供了一种用于训练机器学习模型的方法。该方法可以包括访问机器学习模型以进行训练。该方法可以包括选择机器学习模型的至少一层的枢轴点通道,并基于距枢轴点通道的通道距离来选择针对除枢轴点通道之外的每个通道的扭矩强度。该方法可以包括对机器学习模型的至少一个滤波器施加基于扭矩的约束。该方法可以包括基于施加基于扭矩的约束,将机器学习模型的至少一个滤波器的第一集合调整为具有比机器学习模型的至少一个滤波器的第二集合更高的权重集中度。该方法可以包括基于阈值来修剪机器学习模型的至少一个通道。
根据本公开的一个方面,提供了一种用于训练机器学习模型的电子设备。电子设备可以包括存储指令的存储器、以及被配置为执行指令以访问机器学习模型进行训练的至少一个处理器。至少一个处理器可以被配置为执行指令以选择机器学习模型的至少一层的枢轴点通道,并基于距枢轴点通道的通道距离来选择针对除枢轴点通道之外的每个通道的扭矩强度。至少一个处理器可以被配置为执行指令以对机器学习模型的至少一个滤波器施加基于扭矩的约束。至少一个处理器可以被配置为执行指令以基于施加基于扭矩的约束,将机器学习模型的至少一个滤波器的第一集合调整为具有比机器学习模型的至少一个滤波器的第二集合更高的权重集中度。至少一个处理器可以被配置为执行指令以基于阈值来修剪机器学习模型的至少一个通道。
根据本公开的一个方面,提供了一种计算机可读介质。计算机可读介质可以包含至少一个指令,该至少一个指令在被执行时使电子设备的至少一个处理器:访问机器学习模型以进行训练;选择机器学习模型的至少一层的枢轴点通道,并基于距枢轴点通道的通道距离来选择针对除枢轴点通道之外的每个通道的扭矩强度;对机器学习模型的至少一个滤波器施加基于扭矩的约束;基于施加基于扭矩的约束,将机器学习模型的至少一个滤波器的第一集合调整为具有比机器学习模型的至少一个滤波器的第二集合更高的权重集中度;基于阈值来修剪机器学习模型的至少一个通道。
根据以下附图、描述和权利要求,其他技术特征对于本领域技术人员而言可以是显而易见的。
附图说明
为了更完整地理解本公开及其优点,现在参考结合附图进行的以下描述,其中相同的附图标记表示相同的部分:
图1示出了根据本公开的实施例的包括电子设备的示例网络配置;
图2示出了根据本公开的实施例的用于使用基于扭矩的约束来训练机器学习模型的示例过程;
图3A和图3B示出了根据本公开的实施例的用于基于输出通道进行基于扭矩的训练和修剪的示例过程;
图4示出了示例性非基于扭矩的修剪过程;
图5示出了根据本公开的实施例的卷积神经网络的层在该层经历基于扭矩的训练和修剪时的示例表示;
图6A和图6B示出了根据本公开的实施例的用于基于输入通道进行基于扭矩的训练和修剪的示例过程;
图7示出了根据本公开的实施例的用于归一化的基于扭矩的训练的示例过程;
图8A和图8B示出了根据本公开的实施例的用于基于扭矩的机器学习模型训练、修剪、部署和推理的示例方法;
图9A示出了根据本公开的实施例的示例训练损失结果;以及
图9B示出了根据本公开的实施例的示例模型准确度结果。
图10示出了根据本公开的实施例的服务器的框图。
具体实施方式
在进行下面的具体实施方式之前,阐述贯穿本专利文件使用的某些词语和短语的定义可能是有利的。术语“发送”、“接收”和“通信”及其派生词包括直接通信和间接通信两者。术语“包括”和“包含”及其派生词意指包括但不限于此。术语“或”是包含性的,意指和/或。短语“与……相关联”及其派生词意指包括、被包括在……内、与……互连、包含、被包含在……内、连接到或与……连接、耦合到或与……耦合、可与……通信、与……协作、交织、并置、接近于、绑定到或与……绑定、具有、具有……的性质、与……具有关系等。
此外,下面描述的各种功能可以由一个或多个计算机程序实现或支持,每个计算机程序由计算机可读程序代码形成并实施在计算机可读介质中。术语“应用”和“程序”是指适于在合适的计算机可读程序代码中实现的一个或多个计算机程序、软件组件、指令集、过程、功能、对象、类、实例、相关数据或其一部分。短语“计算机可读程序代码”包括任何类型的计算机代码,包括源代码、目标代码和可执行代码。短语“计算机可读介质”包括能够由计算机访问的任何类型的介质,诸如只读存储器(ROM)、随机存取存储器(RAM)、硬盘驱动器、光盘(CD)、数字视频盘(DVD)或任何其他类型的存储器。“非暂时性”计算机可读介质不包括传输暂时性电信号或其他信号的有线、无线、光学或其他通信链路。非暂时性计算机可读介质包括可以永久存储数据的介质和可以存储数据并稍后重写数据的介质,诸如可重写光盘或可擦除存储器设备。
如这里所使用的,诸如“具有”、“可以具有”、“包括”或“可以包括”特征(如数字、功能、操作或诸如部件的组件)的术语和短语指示该特征的存在,并且不排除其他特征的存在。此外,如本文所使用的,短语“A或B”、“A和/或B中的至少一个”或“A和/或B中的一个或多个”可以包括A和B的所有可能的组合。例如,“A或B”、“A和B中的至少一个”和“A或B中的至少一个”可以指示以下全部:(1)包括至少一个A、(2)包括至少一个B或(3)包括至少一个A和至少一个B。此外,如这里所使用的,术语“第一”和“第二”可以修饰各种组件而不管其重要性,并且不限制所述组件。这些术语仅用于将一个组件与另一个组件区分开。例如,第一用户设备和第二用户设备可以指示彼此不同的用户设备,而不管所述设备的顺序或重要性。在不脱离本公开的范围的情况下,第一组件可以表示为第二组件,反之亦然。
将理解,当元件(诸如第一元件)被称为(可操作地或通信地)“与”另一元件(诸如第二元件)“耦合”或“与”另一元件(诸如第二元件)“连接”或“连接到”另一元件(诸如第二元件)时,它可以直接或经由第三元件与所述另一元件耦合或连接/连接到所述另一元件。相反,将理解,当元件(诸如第一元件)被称为“与”另一元件(诸如第二元件)“直接耦接”或“直接耦接到”另一元件(诸如第二元件)或“直接连接到”另一元件(诸如第二元件)时,在该元件和所述另一元件之间没有其他元件(诸如第三元件)。
如本文所使用的,取决于情况,短语“被配置(或设置)为”可以与短语“适合于”、“具有……的能力”、“被设计为”、“适于”、“被制造为”或“能够”互换使用。短语“被配置(或设置)为”本质上不意指“在硬件中专门设计为”。相反,短语“被配置为”可以表示设备可以与另一设备或部件一起执行操作。例如,短语“被配置(或设置)为执行A、B和C的处理器”可以表示可以通过执行存储在存储器设备中的一个或多个软件程序来执行操作的通用处理器(诸如CPU或应用处理器)或用于执行操作的专用处理器(诸如嵌入式处理器)。
这里使用的术语和短语仅用于描述本公开的一些实施例,而不是限制本公开的其他实施例的范围。应当理解,单数形式包括复数指代,除非上下文另有明确说明。这里使用的所有术语和短语(包括技术和科学术语和短语)具有与本公开的实施例所属领域的普通技术人员通常理解的含义相同的含义。将进一步理解,术语和短语(诸如在常用词典中定义的那些术语和短语)应当被解释为具有与其在相关领域的上下文中的含义一致的含义,并且将不以理想化或过度正式的意义来解释,除非在此明确地如此定义。在一些情况下,这里定义的术语和短语可以被解释为不包括本公开的实施例。
根据本公开的实施例的“电子设备”的示例可以包括智能电话、平板个人计算机(PC)、移动电话、视频电话、电子书阅读器、台式PC、膝上型计算机、上网本计算机、工作站、个人数字助理(PDA)、便携式多媒体播放器(PMP)、MP3播放器、移动医疗设备、相机或可穿戴设备(诸如智能眼镜、头戴式设备(HMD)、电子服装、电子手镯、电子项链、电子配件、电子纹身、智能镜子或智能手表)中的至少一个。电子设备的其他示例包括智能家用电器。智能家用电器的示例可以包括电视、数字视频盘(DVD)播放器、音频播放器、冰箱、空调、吸尘器、烤箱、微波炉、洗衣机、烘干机、空气净化器、机顶盒、家庭自动化控制面板、安全控制面板、TV盒(诸如三星HOMESYNC)、智能扬声器或具有集成数字助理的扬声器(诸如三星GALAXYHOME)、游戏控制台(诸如XBOX、PLAYSTATION或NINTENDO)、电子词典、电子钥匙、摄像机或电子相框中的至少一个。电子设备的还有其他示例包括各种医疗设备(诸如各种便携式医疗测量设备(如血糖测量设备、心跳测量设备或体温测量设备)、磁共振血管造影(MRA)设备、磁共振成像(MRI)设备、计算机断层摄影(CT)设备、成像设备或超声设备)、导航设备、全球定位系统(GPS)接收器、事件数据记录器(EDR)、飞行数据记录仪(FDR)、汽车信息娱乐设备、航行电子设备(诸如航行导航设备或陀螺罗盘)、航空电子设备、安全设备、车载头部单元、工业或家用机器人、自动柜员机(ATM)销售点(POS)设备或物联网(IoT)设备(诸如灯泡、各种传感器、电表或燃气表、洒水器、火灾报警器、恒温器、路灯、烤面包机、健身器材、热水箱、加热器或锅炉)中的至少一个。电子设备的其他示例包括一件家具或建筑物/结构的至少一部分、电子板、电子签名接收设备、投影仪或各种测量设备(诸如用于测量水、电、气或电磁波的设备)。注意,根据本公开的各种实施例,电子设备可以是上面列出的设备中的一个或组合。根据本公开的一些实施例,电子设备可以是柔性电子设备。这里公开的电子设备不限于上面列出的设备,并且可以包括现在已知或以后开发的任何其他电子设备。
在以下描述中,根据本公开的各种实施例,参考附图描述了电子设备。如这里所使用的,术语“用户”可以表示使用电子设备的人或另一设备(诸如人工智能电子设备)。
在本专利文件中可以提供其他某些单词和短语的定义。本领域普通技术人员应当理解,在许多甚至大多数情况下,这样的定义适用于这样定义的单词和短语的先前以及将来的用途。
本申请中的描述都不应被解读为暗指任何特定元件、步骤或功能是必须包括在权利要求范围中的必要元件。专利主题的范围仅由权利要求限定。此外,权利要求都不旨在援引35U.S.C.§112(f),除非确切的词语“设备用于”后面跟着分词。在权利要求内使用包括但不限于“机构”、“模块”、“设备”、“单元”、“组件”、“元件”、“构件”、“装置”、“机器”、“系统”、“处理器”或“控制器”的任何其他术语,申请人应理解为是指相关领域技术人员已知的结构,而不旨在援引35U.S.C.§112(f)。
参考附图描述下面讨论的图1至图9B以及本公开的各种实施例。然而,应当理解,本公开不限于这些实施例,并且其所有改变和/或等同物或替换物也属于本公开的范围。在整个说明书和附图中,相同或相似的附图标记可以用于指代相同或相似的元件。
如上所述,深度神经网络(DNN)模型的大小持续增加,以便适应和处理复杂的数据和问题。这些DNN模型的普及和成功伴随着计算能力和参数存储成本的显著增加。这已导致修剪技术的出现,修剪技术专注于减少DNN模型中的参数数量,以便减少存储器和硬件消耗,同时仍试图保持良好的准确度。这种修剪技术可以大体上分为非结构化技术和结构化技术。当前的非结构化修剪方法通过从网络中移除具有非常小的权重的不重要连接来减少参数总数,导致最终网络主要由零组成。然而,非结构化修剪方法需要稀疏矩阵运算库和硬件能力,这使得它们对于硬件部署是不切实际的。
结构化修剪技术根据通道或滤波器的稀疏性来修剪整个通道或滤波器。这种修剪技术需要较不复杂的库或不需要库来实现它们。一些结构化修剪技术使用缩减,其利用来自批量归一化(BN)的缩放因子伽马来修剪具有小的相关联伽马因子的通道。然而,缩减伴随着使用BN层的代价。引入BN以减少每个卷积层之后的内部协变移位。但是,尽管BN提供了多个优点,如更快的收敛和对初始权重的较少依赖,但是BN的使用通常会适得其反。最近的研究表明,当使用小批量尺寸时,BN是不稳定的,并且导致训练时间增加。此外,因为BN根据训练数据计算可变性、平均值和标准偏差,所以当训练数据和测试数据的分布不同时,使用BN的模型可能在生成时失败。当前的修剪方法在修剪滤波器之后还显示出准确度的高度下降,并且需要大量的微调以达到稳定的模型。
为了解决上述问题,本公开提供了一种不依赖于批量归一化的基于扭矩的结构化修剪技术。扭矩是垂直于作用线施加的力。增大从轴线到施加力的地方的半径会增大扭矩。在本公开的实施例中利用该概念来提供改进的训练和修剪技术。在本公开的实施例中,扭矩是在训练期间对机器学习模型层的输出滤波器或通道的权重所施加的约束。离选择的枢轴点(例如,通道0)越远,将要施加的约束(扭矩)越多。在本公开的一些实施例中,可以迫使层的初始通道进行大部分的繁重工作,从而确保在初始的几个通道中更高的权重集中度。一旦在训练期间达到稳定条件,就可以修剪较不密集的通道或滤波器,并且可以进一步微调模型。
在各种实施例中,基于扭矩的修剪不需要任何附加层或对模型架构的改变,这与必须使用BN层的网络缩减不同。在一些实施例中,本公开的修剪技术可以应用于输出滤波器、输入滤波器或输出滤波器和输入滤波器两者。本公开的基于扭矩的技术可以减少参数的总数,同时仍然保持高准确度,并且可以通过仍然保持密集连接来保持网络的结构完整性,从而易于在硬件上实现。
图1示出了根据本公开的实施例的包括电子设备101的示例网络配置100。图1所示的网络配置100的实施例仅用于说明。在不脱离本公开的范围的情况下,可以使用网络配置100的其他实施例。
根据本公开的实施例,电子设备101被包括在网络配置100中。电子设备101可以包括总线110、处理器120、存储器130、输入/输出(I/O)接口150、显示器160、通信接口170或传感器180中的至少一个。在一些实施例中,电子设备101可以不包括这些组件中的至少一个,或者可以添加至少一个其他组件。总线110包括用于将组件120-180彼此连接并且用于在组件之间传输通信(诸如控制消息和/或数据)的电路。
处理器120包括一个或多个处理设备,诸如一个或多个微处理器、微控制器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)。在一些实施例中,处理器120包括中央处理单元(CPU)、应用处理器(AP)、通信处理器(CP)或图形处理器单元(GPU)中的一个或多个。处理器120能够对电子设备101的至少一个其他组件执行控制和/或执行与通信或其他功能相关的操作或数据处理。如下所述,处理器120可以接收和处理输入(诸如音频输入、图像或其他数据),并将输入提供给已经使用基于扭矩的约束训练的机器学习模型。处理器120可以使用机器学习模型来生成和接收来自机器学习模型的输出,并且基于来自机器学习模型的输出来指示至少一个动作。例如,处理器120可以指示电子设备101执行电子设备101的各种动作,诸如输出图像分类、播放音频、呼叫联系人或其他动作。处理器120还可以指示其他设备执行某些操作或在一个或多个显示器160上显示内容。处理器120还可以接收用于训练机器学习模型的输入(诸如要在训练机器学习模型时使用的数据样本)并通过将样本输入到机器学习模型来管理这样的训练,接收来自机器学习模型的输出,施加基于扭矩的约束并修剪机器学习模型,和/或执行学习功能(诸如损失函数)以改进机器学习模型。
存储器130可以包括易失性和/或非易失性存储器。例如,存储器130可以存储与电子设备101的至少一个其他组件相关的命令或数据。根据本公开的实施例,存储器130可以存储软件和/或程序140。程序140包括例如内核141、中间件143、应用编程接口(API)145和/或应用程序(或“应用”)147。内核141、中间件143或API145的至少一部分可以表示为操作系统(OS)。
内核141可以控制或管理用于执行在其他程序(诸如中间件143、API 145或应用147)中实现的操作或功能的系统资源(诸如总线110、处理器120或存储器130)。内核141提供允许中间件143、API 145或应用147访问电子设备101的各个组件以控制或管理系统资源的接口。应用147包括一个或多个应用,其支持数据输入的接收、使用一个或多个机器学习模型处理输入以生成预测输出、以及执行与输入和输出相关的任务。这些功能可以由单个应用或多个应用执行,每个应用执行这些功能中的一个或多个。例如,中间件143可以用作中继器以允许API 145或应用147与内核141通信数据。可以提供多个应用147。中间件143能够控制从应用147接收的工作请求,诸如通过将使用电子设备101的系统资源(如总线110、处理器120或存储器130)的优先级分配给多个应用147中的至少一个。API 145是允许应用147控制从内核141或中间件143提供的功能的接口。
I/O接口150用作可以例如将从用户或其他外部设备输入的命令或数据传送到电子设备101的其他组件的接口。I/O接口150还可以将从电子设备101的其他组件接收的命令或数据输出给用户或其他外部设备。
显示器160包括例如液晶显示器(LCD)、发光二极管(LED)显示器、有机发光二极管(OLED)显示器、量子点发光二极管(QLED)显示器、微机电系统(MEMS)显示器或电子纸显示器。显示器160还可以是深度感知显示器,诸如多焦显示器。显示器160能够向用户显示例如各种内容(诸如文本、图像、视频、图标或符号)。显示器160可以包括触摸屏,并且可以接收例如使用电子笔或用户的身体部分的触摸、手势、接近或悬停输入。
例如,通信接口170能够在电子设备101与外部电子设备(诸如第一电子设备102、第二电子设备104或服务器106)之间建立通信。例如,通信接口170可以通过无线或有线通信与网络162或164连接,以与外部电子设备102、104或106通信。通信接口170可以是有线或无线收发器或用于发送和接收信号(诸如音频或图像)的任何其他部件。
电子设备101还包括一个或多个传感器180,其可以计量物理量或检测电子设备101的激活状态并将计量或检测到的信息转换为电信号。传感器180还可以包括用于触摸输入的一个或多个按钮、一个或多个麦克风、手势传感器、陀螺仪或陀螺仪传感器、气压传感器、磁传感器或磁力计、加速度传感器或加速度计、握持传感器、接近传感器、颜色传感器(诸如RGB传感器)、生物物理传感器、温度传感器、湿度传感器、照度传感器、紫外(UV)传感器、肌电图(EMG)传感器、脑电图(EEG)传感器、心电图(ECG)传感器、红外(IR)传感器、超声传感器、虹膜传感器或指纹传感器。传感器180还可以包括惯性测量单元,其可以包括一个或多个加速度计、陀螺仪和其他组件。另外,传感器180可以包括用于控制这里包括的至少一个传感器的控制电路。这些传感器180中的任何一个可以位于电子设备101内。
第一外部电子设备102或第二外部电子设备104可以是可穿戴设备或电子设备可安装的可穿戴设备(诸如HMD)。当电子设备101安装在电子设备102(诸如HMD)中时,电子设备101可以通过通信接口170与电子设备102通信。电子设备101可以与电子设备102直接连接以与电子设备102通信,而不涉及单独的网络。电子设备101还可以是包括一个或多个相机的增强现实(AR)可穿戴设备,诸如眼镜。
无线通信能够使用例如长期演进(LTE)、高级长期演进(LTE-A)、第五代无线系统(5G)、毫米波或60GHz无线通信、无线USB、码分多址(CDMA)、宽带码分多址(WCDMA)、通用移动电信系统(UMTS)、无线宽带(WiBro)或全球移动通信系统(GSM)中的至少一个作为蜂窝通信协议。有线连接可以包括例如通用串行总线(USB)、高清多媒体接口(HDMI)、推荐标准232(RS-232)或普通老式电话服务(POTS)中的至少一个。网络162包括至少一个通信网络,诸如计算机网络(如局域网(LAN)或广域网(WAN))、互联网或电话网络。
第一外部电子设备102和第二外部电子设备104以及服务器106各自可以是与电子设备101相同或不同类型的设备。根据本公开的某些实施例,服务器106包括一个或多个服务器的组。此外,根据本公开的某些实施例,在电子设备101上执行的操作中的全部或一些操作可以在另一个或多个其他电子设备(诸如电子设备102和104或服务器106)上执行。此外,根据本公开的某些实施例,当电子设备101应当自动地或应请求执行某个功能或服务时,电子设备101可以不自己执行该功能或服务,而是请求另一设备(诸如电子设备102和104或服务器106)执行与其相关联的至少一些功能,或者电子设备101除执行该功能或服务外,还请求另一设备(诸如电子设备102和104或服务器106)执行与其相关联的至少一些功能。其他电子设备(诸如电子设备102和104或服务器106)能够执行所请求的功能或附加功能,并将执行结果传送到电子设备101。电子设备101可以通过按原样或附加地处理接收到的结果来提供所请求的功能或服务。为此,例如,可以使用云计算、分布式计算或客户端-服务器计算技术。虽然图1示出了电子设备101包括通信接口170以经由网络162或164与外部电子设备102和104或服务器106通信,但是根据本公开的一些实施例,电子设备101可以独立地操作而无需单独的通信功能。
服务器106可以包括与电子设备101相同或相似的组件(或其合适的子集)。服务器106可以通过执行在电子设备101上实现的操作(或功能)中的至少一个来支持驱动电子设备101。例如,服务器106可以包括可以支持在电子设备101中实现的处理器120的处理模块或处理器。如下所述,服务器106可以接收和处理输入(诸如音频输入、图像或其他数据),并将输入提供给已经使用基于扭矩的约束训练的机器学习模型。服务器106可以使用机器学习模型来生成和接收输出,并且基于来自机器学习模型的输出来指示至少一个动作。服务器106还可以指示其他设备执行某些操作(诸如输出图像分类、播放音频、呼叫联系人或其他动作)或在一个或多个显示器160上显示内容。服务器106还可以接收用于训练机器学习模型的输入(诸如用于训练机器学习模型的数据样本)并且通过将样本输入到机器学习模型来管理这样的训练,接收来自机器学习模型的输出,施加基于扭矩的约束并修剪机器学习模型,和/或执行学习功能(诸如损失函数)以改进机器学习模型。
尽管图1示出了包括电子设备101的网络配置100的一个示例,但是可以对图1进行各种改变。例如,网络配置100可以以任何合适的布置包括任何合适数量的每个组件。通常,计算系统和通信系统具有各种各样的配置,并且图1不将本公开的范围限制于任何特定配置。此外,虽然图1示出了可以使用本公开中公开的各种特征的一个操作环境,但是这些特征可以用于任何其他合适的系统中。
图2示出了根据本公开的实施例的用于使用基于扭矩的约束来训练机器学习模型的示例过程200。为了便于解释,图2中所示的过程200被描述为使用图1的网络配置100中的服务器106来执行。作为特定示例,可以在图1的网络配置100中的服务器106上执行过程200,然后可以将训练的机器学习模型部署到电子设备(诸如电子设备101)以供使用。然而,过程200可以与任何其他合适的设备(诸如电子设备101)一起使用,并且可以在任何其他合适的系统中使用。
过程200包括访问原始机器学习模型202,诸如DNN模型,并且在步骤204,用扭矩训练机器学习模型202。扭矩通常是垂直于作用线施加的力,其中增大从轴线到施加力的地方的半径会增大扭矩。本公开的实施例通过在一个或多个训练阶段期间施加扭矩作为对机器学习模型202的机器学习层(诸如卷积层)的输出滤波器或通道的权重的约束来使用扭矩的这种概念。离枢轴点通道(例如,通道0)越远,将施加的约束(扭矩)越多。当远离选择的枢轴点通道移动时增大扭矩约束的强度,使得更远离枢轴点的通道被更多地惩罚,导致随着距枢轴点的距离增大而增大的权重稀疏性。施加的扭矩可以迫使机器学习模型的层的初始通道进行大部分繁重计算。因此,基于扭矩的约束可以确保机器学习层的初始几个通道中的权重的更高集中度。施加基于扭矩的约束不需要任何附加层或对机器学习模型202架构的改变,这与使用BN层的网络缩减不同。在本公开的各种实施例中,可以基于输出通道、输入通道或输出通道和输入通道两者来施加基于扭矩的约束。
在施加基于扭矩的约束以将权重集中到初始通道集合之后,并且一旦在训练期间达到稳定条件,在步骤206,从机器学习模型202的层修剪一个或多个较不密集的通道和滤波器。修剪可以基于阈值或其他度量来执行,诸如基于使用一组滤波器中的每一个的绝对权重或通道的平均权重。因此,修剪使得密度低于指定阈值的通道从层中移除,同时至少保留选择的枢轴点通道。例如,作为施加基于扭矩的约束并使层的权重集中在一组初始通道中的结果,可以从机器学习模型202中修剪具有低于阈值的权重值的层中的通道,以从机器学习模型中移除参数,从而减小机器学习模型的大小和由机器学习模型执行的计算的数量,同时保持高准确度,并且这可以允许机器学习模型有效地部署在诸如电子设备101的设备上以执行推理操作。另外,过程200可以通过仍然保持密集连接来帮助保持机器学习模型的网络的结构完整性,从而易于在硬件上实现。
如图2所示,在步骤206修剪机器学习模型202之后,然后可以使用多步基于扭矩的训练方法来训练机器学习模型,其中在步骤204施加附加的基于扭矩的约束。过程200可以包括多轮步骤204和步骤206的基于扭矩的训练和修剪,这取决于各种因素,诸如机器学习模型202的复杂度和在训练之后将在其上部署模型的硬件的需求。另外,因为本公开的实施例中描述的基于扭矩的训练保留了密集滤波器,所以对于训练的机器学习模型需要非常少的微调。因此,在步骤208,训练和修剪的机器学习模型可以被部署直接使用而无需微调模型,同时仍然提供高准确度。在一轮基于扭矩的训练之后或在多轮之后,可以在步骤208部署训练和修剪的机器学习模型。
在一些实施例中,尽管训练和修剪的机器学习模型的准确度保持高,但是在步骤210,可以执行机器学习模型的微调以进一步提高机器学习模型的准确度。然后在步骤212,部署修剪的模型,诸如在用于使用训练和修剪的机器学习模型进行推理的电子设备(诸如电子设备101)上。
尽管图2示出了用于使用基于扭矩的约束来训练机器学习模型的过程200的一个示例,但是可以对图2进行各种改变。例如,步骤210的微调可以在一轮基于扭矩的训练之后、在完成多轮基于扭矩的训练之后、或者在多步基于扭矩的训练过程中的每轮基于扭矩的训练之后被执行。另外,在一些实施例中,可以在步骤208部署修剪的模型之后执行微调,例如,在推理期间检测到一定程度的不准确度的情况下。
图3A和图3B示出了根据本公开的实施例的用于基于输出通道进行基于扭矩的训练和修剪的示例过程300。为了便于解释,图3A和图3B中所示的过程300被描述为使用图1的网络配置100中的服务器106来执行。作为特定示例,可以在图1的网络配置100中的服务器106上执行过程300,然后可以将训练的机器学习模型部署到电子设备101以供使用。然而,过程300可以与任何其他合适的设备(诸如电子设备101)一起使用,并且可以在任何其他合适的系统中使用。
扭矩是垂直于作用线施加的力,并且通常表示为下面的等式(1)。
T=F×d (1)
这里,F表示力,d表示垂直于作用线的距离。
当在本公开的各种实施例中的训练期间将扭矩施加到机器学习模型层时,扭矩被用作基于给定输出滤波器距枢轴点多远的约束。例如,如图3A所示,在过程300的步骤302,访问机器学习模型的层,诸如卷积层。模型层包括具有多个输入通道Ci0至Cin和多个输出通道Co0至Con的权重矩阵,在该示例中,每个通道由二维(2D)核K组成。
在步骤304,选择枢轴点,并且将扭矩约束施加到模型层的输出通道,其具有基于输出通道距枢轴点的距离的增大的强度。例如,如图3A所示,在步骤304,选择输出通道Co0作为枢轴点,并且除枢轴点通道Co0之外的每个输出通道具有基于其距枢轴点通道Co0的距离所施加的增大的扭矩强度(T)。对于权重矩阵W,这可以表示为如下面的等式(2)所示。
T=F×d=W×d (2)
这里,F表示力,d表示垂直于作用线的距离。
因此,这里的枢轴点是第0输出通道/滤波器Co0。施加到任何输出通道/滤波器的约束基于该输出通道/滤波器距枢轴点多远。如果d1、d2、d3和d4分别是从输出通道Co0到输出通道Co1、Co2、Co3和Co4的距离,则d4>d3>d2>d1。例如,如示例过程300中的步骤304所示,输出通道Co4具有比输出通道Co3更强的施加的扭矩强度(T4),输出通道Co3具有比输出通道Co2更强的施加的扭矩强度(T3),并且输出通道Co2具有比施加到输出通道Co1的扭矩强度(T1)更强的施加的扭矩强度(T2),如步骤304处滤波器的颜色逐渐变暗的阴影所示。
如过程300的步骤306所示,施加基于扭矩的约束迫使更靠近枢轴点Co0的输出通道具有更高的权重集中度,如步骤306处滤波器的颜色逐渐变暗的阴影所示。
在本公开的实施例中,在训练模型时,前向函数保持不变。然而,在后向传递期间,可以添加扭矩约束作为附加项。例如,可以将扭矩约束添加到每个参数计算的梯度。下面的等式(3)表示根据本公开的实施例的用于训练机器学习模型的原始损失函数。
下面的等式(4)表示具有基于扭矩比率添加的附加损失的损失函数。
这里,λT表示扭矩比率。
利用附加损失计算的梯度可以表示为下面的等式(5)所示。
这里,T=F×d=W×d。
将扭矩约束添加到每个参数计算的梯度,可以表示为如下面的等式(6)所示。
与L1正则化类似,基于如等式(4)、(5)和(6)中所示的量值的绝对值以线性方式添加基于扭矩的约束,将更远离枢轴点的大部分权重推为零,并迫使枢轴点附近的通道/滤波器密集。与需要BN层的网络缩减不同,这种基于扭矩的训练过程可以通过简单地修改其梯度而直接应用于任何模型。
在一些实施例中,代替如上面关于等式(4)、(5)和(6)所述的在每次更新时将基于扭矩的约束线性地添加到梯度,可以通过仅修改损失函数以在后向传递期间基于扭矩向损失函数添加附加损失来实现类似的结果,如下面的等式(7)和(8)所示。
该附加损失可以与原始损失一起后向传播以训练模型。
在其他实施例中,类似于L2正则化,可以通过添加平方量值作为惩罚,来利用梯度。下面的等式(9)表示具有基于扭矩比率添加的附加损失的损失函数。
利用附加损失计算的梯度可以表示为下面的等式(10)所示。
将扭矩约束添加到每个参数计算的梯度可以表示为如下面的等式(11)所示。
与L2正则化类似,如等式(9)、(10)和(11)所示,以平方方式添加基于扭矩的约束将更远离枢轴点的大部分权重推得非常小,并迫使枢轴点附近的通道/滤波器密集。在一些实施例中,代替如上面关于等式(9)、(10)和(11)所述的在每次更新时以平方方式将基于扭矩的约束添加到梯度,可以通过仅修改损失函数以在后向传递期间基于扭矩向损失函数添加附加损失来实现类似的结果,如下面的等式(12)和(13)所示。
该附加损失可以与原始损失一起后向传播以训练模型。
一旦使用基于扭矩的约束训练了模型,在图3B所示的步骤308,可以选择输出通道/滤波器用于修剪。例如,如图3B所示,访问训练的权重矩阵,其包括与原始输入通道Ci0至Cin对应的权重输入通道Wi0至Win,以及与原始输出通道Co0至Con对应的权重输出通道Wo0至Won。当基于输出通道施加基于扭矩的约束时,现在较不密集的输出通道可以诸如基于阈值或其他度量,诸如基于使用一组滤波器中的每个滤波器的绝对权重或通道的平均权重,而从模型层被修剪。
在过程300的步骤308中所示的示例中,由于输出通道Wo3至Won的权重稀疏性,输出通道Wo3至Won被选择用于修剪,作为应用基于扭矩的训练的结果。如过程300的步骤310所示,从模型修剪这些输出通道,得到修剪的模型层。由于仅移除稀疏滤波器,因此不会丢失太多信息,并且因此,模型保持良好的准确度并且花费更少的时间来达到稳定性。
基于扭矩的训练和修剪提供了优于现有修剪技术的明显优点。例如,图4示出了示例性非基于扭矩的修剪过程400。如图4所示,现有修剪过程包括从机器学习模型修剪较不密集的通道,诸如图4的示例中的输出通道1和4。然而,由于没有执行基于扭矩的修剪,因此被修剪的输出通道中具有更密集权重的滤波器最终从模型中移除,并且现有通道最终也保留了更稀疏的滤波器。因此,修剪导致在训练期间可能已经经历大量学习的滤波器的移除,并且所学习的知识现在丢失。在修剪之后,模型将花费更多微调时间来补偿修剪的权重,并且重新学习该信息可能是困难的或不可能的。
例如在过程300中所示的基于扭矩的训练和修剪避免了这些问题,并且提供了比现有方法更有效但高准确度的模型。在过程300中完成机器学习模型的修剪之后,模型层保留执行繁重计算的前几个密集滤波器。然后可以在其当前状态下部署模型,同时仍然保持良好的准确度,或者可以微调模型以达到甚至进一步稳定的状态。本公开的基于扭矩的训练和修剪方法有助于结构化修剪,使存储大小最小化,并使机器学习模型的计算复杂度最小化。这导致较少的浮点(flop)运算和mac运算,从而加速设备推断。
基于扭矩的修剪方法还减少了总参数,同时保持了网络的高准确度。本公开的基于扭矩的结构化修剪可以应用于各种领域中使用的任何模型架构,例如分类、对象检测、分割和超分辨率。另外,严重依赖于BN的其他技术(如网络缩减)不能用于诸如超分辨率的任务,因为BN的使用极大地影响这种模型的性能。然而,本公开的实施例不具有对任何附加层的硬性要求,并且即使在存在BN层的情况下,本公开的使用扭矩训练和修剪的机器学习模型也提供高性能。
尽管图3示出了用于基于输出通道进行基于扭矩的训练和修剪的过程300的一个示例,但是可以对图3进行各种改变。例如,可以在机器学习层上执行多个基于扭矩的训练步骤,并且可以在机器学习模型的多个层上执行基于扭矩的训练和修剪步骤。应当理解,过程300的基于扭矩的训练和修剪步骤可以在不同配置并且具有任何数量的输入通道或输出通道的各种机器学习模型上执行。基于扭矩的训练和修剪也可以基于如过程300中所示的输出通道、基于输入通道或基于输出通道和输入通道两者来执行。
图5示出了根据本公开的实施例的卷积神经网络的层在该层经历基于扭矩的训练和修剪时的示例表示500。如图5所示,类似于图3A和图3B所示的过程300,在第一阶段502,卷积神经网络的层尚未使用基于扭矩的训练进行训练,其中权重密度分布在整个层中。在阶段504,在卷积神经网络的层上执行如本公开中描述的基于扭矩的训练,使得权重更集中于该层的初始通道,如图5中围绕初始通道的较暗阴影区域和围绕更远离初始通道的通道的较亮阴影区域所示。在阶段506,对卷积神经网络的层的稀疏通道和滤波器进行修剪和微调以达到稳定状态,从而使该层的参数减少并且密集滤波器集中在该层的初始通道中。
尽管图5示出了当神经网络经历基于扭矩的训练和修剪时神经网络的表示500的一个示例,但是可以对图5进行各种改变。例如,可以在机器学习层上执行多个基于扭矩的训练步骤,并且可以在机器学习模型的多个层上执行基于扭矩的训练和修剪步骤。另外,虽然图5示出了卷积神经网络的层的表示,但是应当理解,本公开的基于扭矩的训练和修剪可以在各种类型和配置的各种机器学习模型上执行。基于扭矩的训练和修剪也可以基于输出通道、基于输入通道或基于输出通道和输入通道两者来执行。
图6A和图6B示出了根据本公开的实施例的用于基于输入通道进行基于扭矩的训练和修剪的示例过程600。为了便于解释,图6A和图6B中所示的过程600被描述为使用图1的网络配置100中的服务器106来执行。作为特定示例,可以在图1的网络配置100中的服务器106上执行过程600,并且然后可以将训练的机器学习模型部署到电子设备101以供使用。然而,过程600可以与任何其他合适的设备(诸如电子设备101)一起使用,并且可以在任何其他合适的系统中使用。
如图6A和图6B所示,还可以基于机器学习模型层的输入通道来执行基于扭矩的训练和修剪,其中枢轴点被选择为输入通道之一。例如,如图6A所示,在过程600的步骤602,访问机器学习模型的层(诸如卷积层),并且选择针对输入通道的枢轴点。模型层包括具有多个输入通道Ci0至Cin和多个输出通道Co0至Con的权重矩阵。基于选择的输入通道枢轴点,将扭矩约束施加到模型层的输入通道,其具有基于输入通道距枢轴点的距离的增大的强度。例如,如图6A所示,在步骤602,选择输入通道Ci0作为枢轴点,并且除枢轴点通道Ci0之外的每个输入通道具有基于其距枢轴点通道Ci0的距离所施加的增大的扭矩强度(T)。
因此,这里的枢轴点是第0输入通道/滤波器Ci0。施加到任何输入通道/滤波器的约束基于该输入通道/滤波器距枢轴点多远。如果d1、d2和d3分别是从输入通道Ci0到输入通道Ci1、Ci2和Ci3的距离,则d3>d2>d1。例如,如示例性过程600中的步骤602所示,输入通道Ci3具有比输入通道Ci2更强的施加的扭矩强度(T3),并且输入通道Ci2具有比施加到输入通道Ci1的扭矩强度(T1)更强的施加的扭矩强度(T2),如步骤602处滤波器的颜色逐渐变暗的阴影所示。如过程600的步骤604所示,施加基于扭矩的约束迫使更靠近枢轴点Ci0的输入通道具有更高的权重集中度,如步骤604处滤波器的颜色逐渐变暗的阴影所示。
在本公开的实施例中,可以使用等式(3)-(13)中的一个或多个,通过在后向传递期间以线性或平方方式将基于扭矩的约束添加到梯度,或者通过将基于约束的附加损失添加到损失函数,以与关于图3A和图3B描述的方式类似的方式来训练模型。
一旦使用基于扭矩的约束训练了模型,在图6B所示的步骤606,可以选择输入通道/滤波器用于修剪。例如,如图6B所示,访问训练的权重矩阵,其包括与原始输入通道Ci0至Cin对应的权重输入通道Wi0至Win以及与原始输出通道Co0至Con对应的权重输出通道Wo0至Won。当基于输入通道施加基于扭矩的约束时,现在较不密集的输入通道可以诸如基于阈值或其他度量,诸如基于使用一组滤波器中的每个滤波器的绝对权重或通道的平均权重,而从模型层被修剪。
在过程600的步骤606中所示的示例中,由于输入通道Wi3至Win的权重稀疏性,输入通道Wi3至Win被选择用于修剪,作为应用基于扭矩的训练的结果。如过程600的步骤608中所示,从模型修剪这些输入通道,从而得到修剪的模型层。由于仅移除稀疏滤波器,因此不会丢失太多信息,并且因此,模型保持良好的准确度并且花费更少的时间来达到稳定性。这提供了优于现有修剪技术(诸如关于图4描述的修剪技术)的明显优点。例如在过程600中所示的基于扭矩的训练和修剪避免了这些问题,并且提供了比现有方法更有效但高准确度的模型。在过程600中完成机器学习模型的修剪之后,模型层保留执行繁重计算的前几个密集滤波器。然后可以在其当前状态下部署模型,同时仍然保持高准确度,或者可以微调模型以达到甚至更稳定的状态。
尽管图6示出了用于基于输入通道进行基于扭矩的训练和修剪的过程600的一个示例,但是可以对图6进行各种改变。例如,可以在机器学习层上执行多个基于扭矩的训练步骤,并且可以在机器学习模型的多个层上执行基于扭矩的训练和修剪步骤。应当理解,过程600的基于扭矩的训练和修剪步骤可以在不同配置并且具有任何数量的输入通道或输出通道的各种机器学习模型上执行。基于扭矩的训练和修剪也可以基于如过程600中所示的输入通道、基于输出通道或基于输入通道和输出通道两者来执行。
图7示出了根据本公开的实施例的用于归一化的基于扭矩的训练的示例过程700。为了便于解释,图7中所示的过程700被描述为使用图1的网络配置100中的服务器106来执行。作为特定示例,可以在图1的网络配置100中的服务器106上执行过程700,并且然后可以将训练的机器学习模型部署到电子设备101以供使用。然而,过程700可以与任何其他合适的设备(诸如电子设备101)一起使用,并且可以在任何其他合适的系统中使用。
如图7所示,在各种实施例中,施加到滤波器的基于扭矩的约束可以在所有通道上被归一化。这是通过归一化d的值使得其值的范围在0到1之间(其中d=l对应于离枢轴点最远的通道)来实现的。因此,等式(6)可以被修改为如下面的等式(14)所示。
其中i的范围为1至Con。
例如,如图7所示,机器学习模型的第一层702具有作为距枢轴点通道Co0最远通道的输出通道Co2,因此具有跨通道被归一化的扭矩约束,使得输出通道Co1具有0.5的扭矩约束,并且输出通道Co2具有1的扭矩约束。还如图7所示,机器学习模型的第二层704具有作为离枢轴点通道Co0最远通道的输出通道Co4。因此,扭矩约束跨通道被归一化,使得输出通道Co1具有0.25的扭矩约束,输出通道Co2具有0.5的扭矩约束,输出通道Co3具有0.75的扭矩约束,并且输出通道Co4具有1的扭矩约束。
尽管图7示出了用于归一化的基于扭矩的训练的过程700的一个示例,但是可以对图7进行各种改变。例如,可以在机器学习层上执行多个基于扭矩的训练步骤,并且可以在机器学习模型的附加层上执行基于扭矩的训练步骤。应当理解,过程700的基于扭矩的训练可以在不同配置并且具有任何数量的输入通道或输出通道的各种机器学习模型上执行。基于扭矩的训练也可以基于如过程700中所示的输出通道、基于输入通道或基于输出通道和输入通道两者来执行。还如本公开的实施例中所描述的,可以对机器学习模型的层702和层704执行修剪和其他操作。
图8A和图8B示出了根据本公开的实施例的用于基于扭矩的机器学习模型训练、修剪、部署和推理的示例方法800。为了便于解释,图8A和图8B中所示的方法800的部分可以被描述为使用图1的网络配置100中的服务器106来执行,而方法800的其他部分可以被描述为使用图1的网络配置100中的电子设备101来执行。作为特定示例,可以在图1的网络配置100中的服务器106上执行来自框802-818的方法800,并且可以将训练的机器学习模型部署到客户端电子设备101以供使用。然后,客户端电子设备101可以执行框820-826。然而,方法800可以与任何其他合适的(一个或多个)设备一起使用并且在任何其他合适的(一个或多个)系统中使用。
在框802,处理器(诸如服务器106的处理器)访问机器学习模型(诸如DNN)以使用如本公开中所描述的基于扭矩的约束进行训练。在框804,处理器选择机器学习模型的至少一层的枢轴点通道,并基于距选择的枢轴点通道的距离来选择针对除枢轴点通道之外的每个通道的扭矩强度。选择的枢轴点通道可以基于机器学习模型的层的特定结构。
如本公开的实施例中所描述的,枢轴点通道可以是机器学习模型的输出通道,并且基于其他输出通道与枢轴点输出通道的距离将扭矩强度施加到其他输出通道。在一些实施例中,枢轴点通道可以是机器学习模型的输入通道,并且基于其他输入通道与枢轴点输入通道的距离将扭矩强度施加到其他输入通道。在一些实施例中,诸如当执行多个基于扭矩的训练和修剪步骤时,可以选择输入通道和输出通道两者。
在框806,处理器基于与每个滤波器的通道相关联的扭矩强度对机器学习模型的一个或多个滤波器施加基于扭矩的约束。如本公开中所描述的,诸如关于图3A和图3B,可以执行基于在梯度更新期间添加扭矩约束作为附加项或作为损失函数中的附加损失的各种训练函数,以使用扭矩来训练机器学习模型。例如,可以在梯度更新期间施加基于扭矩的约束,其中梯度更新基于L1正则化或基于L2正则化。基于扭矩的约束也可以基于L1正则化或L2正则化作为附加项应用于损失函数中。
在框808,由于施加扭矩约束,处理器将机器学习模型的一个或多个滤波器的第一集合调整为具有比机器学习模型的一个或多个滤波器的第二集合更高的权重集中度。例如,施加扭矩约束使得机器学习模型的层的靠近枢轴点通道的通道具有比更远离枢轴点通道的通道更高的权重集中度。因此,调整滤波器的权重使得权重稀疏性基于距枢轴点通道的通道距离而增大。
在框810,处理器基于阈值(诸如基于枢轴点通道和除枢轴点通道之外的每个通道的平均权重)来修剪机器学习模型的至少一个通道。例如,由于远离枢轴点的通道具有较不密集的权重,因此它们变得越来越可能下降到阈值以下,并且如果它们确实下降到阈值以下,则从机器学习模型的层中移除这些通道。
在判定框812,在修剪机器学习模型的一个或多个层之后,确定是否微调机器学习模型。因为本公开的实施例中描述的基于扭矩的训练保留了机器学习模型的密集滤波器,所以对于训练的机器学习模型需要非常少的微调来重新学习任何丢失的权重。因此,训练和修剪的机器学习模型可以被部署以直接使用而无需微调模型,同时仍然提供高准确度。
如果在判定框812处确定不微调机器学习模型,则方法800移动到判定框816。如果在判定框812处确定微调机器学习模型,则在框814,处理器微调机器学习模型的剩余参数以重新学习任何丢失的信息并进一步提高机器学习模型的准确度。在判定框816,确定是否使用多步基于扭矩的训练,其中执行基于扭矩的训练的至少一个附加阶段。如果是,则方法800循环回到执行框804-816以再次基于输入通道或输出通道选择枢轴点,调整机器学习模型的层的滤波器,从机器学习模型修剪通道,可能微调机器学习模型,并确定是否执行任何附加的训练和修剪轮次。将理解,框814处的微调可以在每轮基于扭矩的训练和修剪之后、在两轮或更多轮基于扭矩的训练和修剪之后、或者在完成所有轮基于扭矩的训练和修剪之后发生。可以在一轮基于扭矩的训练之后或在多轮之后部署训练和修剪的机器学习模型。
如果在判定框816处确定停止执行基于扭矩的训练和修剪,则方法800移动到框818。在框818,可以将训练和修剪的机器学习模型部署到另一设备,诸如电子设备101,以用于由另一设备的至少一个处理器执行机器学习模型。在框820,处理器从输入源接收至少一个输入,诸如图像数据、音频数据或其他输入。在框822,处理器访问训练和修剪的机器学习模型,并将至少一个输入提供给机器学习模型。在框824,处理器接收来自机器学习模型的输出,诸如分类结果。在框826,基于来自机器学习模型的输出,处理器基于来自机器学习模型的输出指示至少一个动作。例如,处理器可以指示电子设备执行电子设备的各种动作,诸如向用户输出图像分类、通过电子设备的扬声器播放音频、使用电子设备呼叫联系人或任何其他动作。方法800在框828处结束。
如方法800中的基于扭矩的训练和修剪提供了比现有方法更有效和更准确的模型。在方法800中完成机器学习模型的修剪之后,模型保留执行繁重计算的前几个密集滤波器。方法800帮助结构化修剪、使空间最小化和使机器学习模型的计算复杂度最小化。这导致减少了浮点运算和mac运算,从而加速设备推断。方法800减少总参数,同时保持网络的高准确度。方法800可以应用于各种领域中使用的任何模型架构,诸如分类、对象检测、分割和超分辨率。另外,严重依赖于BN的其他技术(如网络缩减)不能用于诸如超分辨率的任务,因为BN的使用极大地影响这种模型的性能。然而,本公开的实施例不具有对任何附加层的硬性要求,并且即使在存在BN层的情况下,本公开的使用扭矩训练和修剪的机器学习模型也提供高性能。
尽管图8A和图8B示出了用于基于扭矩的机器学习模型训练、修剪、部署和推断的方法800的一个示例,但是可以对图8A和图8B进行各种改变。例如,虽然示出为一系列步骤,但是图8A和图8B中的各种步骤可以重复、并行发生、以不同顺序发生或发生任何次数。作为特定示例,如在判定框816处所示的多步基于扭矩的训练可以在判定框812处微调模型之前发生。另外,尽管方法800被描述为部分地由诸如服务器106的服务器执行,并且部分地由诸如电子设备101的电子设备执行,但是整个方法800可以由服务器或电子设备执行,这取决于特定的模型训练和部署系统或架构。
图9A和图9B示出了根据本公开的实施例的示例训练损失和模型准确度结果。图9A示出了示例训练损失结果901,并且图9B示出了示例模型准确度结果902。
本公开的基于扭矩的训练和修剪方法可以在训练模型时引入稀疏性。通过保持小阈值,可以有效地消除包含较少权重密度的输出滤波器。由于大多数繁重计算由未被修剪的初始滤波器执行,因此模型的微调比其他修剪方法(诸如图4中所示的方法)更快地进行。例如,如图9A所示,测试结果已经表明,本公开的实施例的基于扭矩的训练的损失快速下降,表明用本公开的基于扭矩的方法训练的机器学习模型花费很少的时间来重新学习被修剪的权重。
另外,本公开的基于扭矩的修剪方法减少了参数的总数,同时仍然保持高准确度。例如,图9B示出了示例测试结果,其示出了修剪步骤之前和之后以及模型微调之后的模型准确度。如图9B所示,在基于扭矩的模型训练之后并且在第一修剪步骤之前,模型准确度约为87.5%的准确度。在第一修剪步骤之后,模型准确度仅下降到约83.5%的准确度,远低于现有修剪方法。如本公开中所描述的,如果需要,可以在没有微调的情况下使用模型,因为即使在修剪之后准确度仍然很高。
另外,图9B示出了使用本公开的基于扭矩的方法训练的模型需要非常少的微调。如图9B所示,在第一修剪步骤之后,执行微调以使模型准确度更高,在该示例中高达约88.25%。如果执行附加的修剪步骤,则这种模式继续。如图9B所示,在执行第二修剪步骤时,模型准确度仅从约88.25%下降到84.42%。在下一个微调步骤之后,模型然后将准确度恢复回到约88.5%,这甚至高于修剪之前的原始模型,并且修剪的模型获得尺寸更小和计算强度更低的益处,使得能够容易地部署在电子设备上,特别是具有有限存储能力或处理能力的电子设备上。
尽管图9A和图9B示出了训练损失结果901的一个示例和模型准确度结果902的一个示例,但是可以对图9A和图9B进行各种改变。例如,尽管所示的结果通常指示使用本公开的基于扭矩的训练和修剪方法获得的结果和益处,但是取决于所使用的机器学习模型的特定类型、机器学习模型执行的特定任务、机器学习模型的复杂性等,可以获得不同的损失和准确度数值。
图10是根据本公开的实施例的服务器的框图。
参考图10,服务器106可以包括处理器1100、存储器1200和通信接口1300。服务器106的功能块执行与电子设备101中包括的相应功能块相同的功能。服务器106可以不包括这些功能块中的至少一个,或者可以添加至少一个其他功能块。
根据本公开的实施例,一种方法包括使用电子设备的至少一个处理器访问机器学习模型,该机器学习模型使用基于扭矩的约束来训练。该方法还包括使用至少一个处理器从输入源接收输入。该方法还包括使用至少一个处理器向机器学习模型提供输入。该方法还包括使用至少一个处理器接收来自机器学习模型的输出。该方法还包括使用至少一个处理器基于来自机器学习模型的输出来指示至少一个动作。
根据本公开的实施例,一种装置包括至少一个处理设备。至少一个处理设备被配置为访问机器学习模型,机器学习模型使用基于扭矩的约束来训练。至少一个处理设备还被配置为从输入源接收输入。至少一个处理设备还被配置为向机器学习模型提供输入。至少一个处理设备还被配置为接收来自机器学习模型的输出。至少一个处理设备还被配置为基于来自机器学习模型的输出来指示至少一个动作。
根据本公开的实施例,一种非暂时性计算机可读介质包含在被执行时使至少一个处理器访问机器学习模型的指令,机器学习模型使用基于扭矩的约束来训练。该介质还包含在被执行时使至少一个处理器从输入源接收输入的指令。该介质还包含在被执行时使至少一个处理器将输入提供给机器学习模型的指令。该介质还包含在被执行时使至少一个处理器接收来自机器学习模型的输出的指令。该介质还包含在被执行时使至少一个处理器基于来自机器学习模型的输出来指示至少一个动作的指令。
根据本公开的实施例,可以在机器学习模型的训练期间使用基于扭矩的约束来调整多个滤波器之间的权重集中度。
根据本公开的实施例,阈值可以是枢轴点通道和除枢轴点通道之外的每个通道的平均权重。
根据本公开的实施例,调整步骤可以使权重稀疏性基于距枢轴点通道的通道距离而增大。
根据本公开的实施例,机器学习模型可以包括在使用基于扭矩的约束修剪机器学习模型之后剩余的通道。
根据本公开的实施例,对机器学习模型的修剪可以导致基于通道的平均权重移除至少一个通道。
根据本公开的实施例,输入可以从图像数据推导出,并且输出是图像分类。
根据本公开的实施例,枢轴点通道可以是机器学习模型的输出通道。
根据本公开的实施例,枢轴点通道可以是机器学习模型的输入通道。
根据本公开的实施例,可以在梯度更新期间施加基于扭矩的约束,其中梯度更新基于L1正则化或基于L2正则化。
根据本公开的实施例,基于扭矩的约束可以基于L1正则化或L2正则化作为附加项被应用在损失函数中。
根据本公开的实施例,该方法可以包括微调机器学习模型的剩余参数。
根据本公开的实施例,该方法可以包括通过将附加的基于扭矩的约束施加到修剪的机器学习模型的一个或多个滤波器来进一步训练修剪的机器学习模型。
尽管已经利用示例实施例描述了本公开,但是可以向本领域技术人员建议各种改变和修改。本公开旨在涵盖落入所附权利要求的范围内的这些改变和修改。
Claims (15)
1.一种用于训练机器学习模型的方法,所述方法包括:
访问所述机器学习模型以进行训练;
选择所述机器学习模型的至少一层的枢轴点通道,并基于距所述枢轴点通道的通道距离,选择针对除所述枢轴点通道之外的每个通道的扭矩强度;
对所述机器学习模型的至少一个滤波器施加基于扭矩的约束;
基于施加所述基于扭矩的约束,将所述机器学习模型的所述至少一个滤波器的第一集合调整为具有比所述机器学习模型的所述至少一个滤波器的第二集合更高的权重集中度;以及
基于阈值来修剪所述机器学习模型的至少一个通道。
2.根据权利要求1所述的方法,其中,所述调整使权重稀疏性基于距所述枢轴点通道的通道距离而增大。
3.根据前述权利要求中任一项所述的方法,其中,所述枢轴点通道是所述机器学习模型的输出通道或所述机器学习模型的输入通道。
4.根据前述权利要求中任一项所述的方法,其中,在梯度更新期间施加所述基于扭矩的约束,其中,所述梯度更新基于L1正则化或基于L2正则化。
5.根据前述权利要求中任一项所述的方法,其中,所述基于扭矩的约束基于L1正则化或L2正则化作为附加项应用于损失函数中。
6.根据前述权利要求中任一项所述的方法,还包括:
微调所述机器学习模型的剩余参数。
7.根据前述权利要求中任一项所述的方法,还包括:
通过将附加的基于扭矩的约束施加到修剪的机器学习模型的至少一个滤波器来进一步训练所述修剪的机器学习模型。
8.一种电子设备,包括:
存储器(1200),存储指令;以及
至少一个处理器(1100),被配置为执行所述指令以:
访问机器学习模型以进行训练,
选择所述机器学习模型的至少一层的枢轴点通道,并且基于距所述枢轴点通道的通道距离,选择针对除所述枢轴点通道之外的每个通道的扭矩强度,
对所述机器学习模型的至少一个滤波器施加基于扭矩的约束;
基于施加所述基于扭矩的约束,将所述机器学习模型的所述至少一个滤波器的第一集合调整为具有比所述机器学习模型的所述至少一个滤波器的第二集合更高的权重集中度;以及
基于阈值来修剪所述机器学习模型的至少一个通道。
9.根据权利要求8所述的电子设备,其中,所述调整使权重稀疏性基于距所述枢轴点通道的通道距离而增大。
10.根据前述权利要求中任一项所述的电子设备,其中,所述枢轴点通道是所述机器学习模型的输出通道或所述机器学习模型的输入通道。
11.根据前述权利要求中任一项所述的电子设备,其中,在梯度更新期间施加所述基于扭矩的约束,其中,所述梯度更新基于L1正则化或基于L2正则化。
12.根据前述权利要求中任一项所述的电子设备,其中,所述基于扭矩的约束基于L1正则化或L2正则化作为附加项应用于损失函数中。
13.根据前述权利要求中任一项所述的电子设备,其中,所述至少一个处理器还被配置为执行所述指令以:
微调所述机器学习模型的剩余参数。
14.根据前述权利要求中任一项所述的电子设备,其中,所述至少一个处理器还被配置为执行所述指令以:
通过将附加的基于扭矩的约束施加到修剪的机器学习模型的至少一个滤波器来进一步训练所述修剪的机器学习模型。
15.一种计算机可读介质,包含至少一个指令,所述至少一个指令在被执行时使电子设备的至少一个处理器执行与根据权利要求1至7中任一项所述的方法对应的操作。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163280564P | 2021-11-17 | 2021-11-17 | |
US63/280,564 | 2021-11-17 | ||
US18/052,297 | 2022-11-03 | ||
US18/052,297 US20230153625A1 (en) | 2021-11-17 | 2022-11-03 | System and method for torque-based structured pruning for deep neural networks |
PCT/KR2022/017994 WO2023090818A1 (en) | 2021-11-17 | 2022-11-15 | Electronic device and method for torque-based structured pruning for deep neural networks |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117859136A true CN117859136A (zh) | 2024-04-09 |
Family
ID=86323635
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280056808.4A Pending CN117859136A (zh) | 2021-11-17 | 2022-11-15 | 用于深度神经网络的基于扭矩的结构化修剪的电子设备和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230153625A1 (zh) |
EP (1) | EP4341865A1 (zh) |
CN (1) | CN117859136A (zh) |
WO (1) | WO2023090818A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116821775A (zh) * | 2023-08-29 | 2023-09-29 | 陕西重型汽车有限公司 | 一种基于机器学习的载重估计方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11875260B2 (en) * | 2018-02-13 | 2024-01-16 | Adobe Inc. | Reducing architectural complexity of convolutional neural networks via channel pruning |
KR102321049B1 (ko) * | 2019-11-19 | 2021-11-02 | 아주대학교산학협력단 | 상이한 희소 수준을 갖는 신경망 다중 프루닝 장치 및 방법 |
US11164084B1 (en) * | 2020-11-11 | 2021-11-02 | DeepCube LTD. | Cluster-connected neural network |
KR102256288B1 (ko) * | 2021-03-19 | 2021-05-27 | 리벨리온 주식회사 | 인공 신경망의 가속 하드웨어를 위한 가지치기 기반의 훈련 방법 및 시스템 |
-
2022
- 2022-11-03 US US18/052,297 patent/US20230153625A1/en active Pending
- 2022-11-15 WO PCT/KR2022/017994 patent/WO2023090818A1/en active Application Filing
- 2022-11-15 EP EP22896024.1A patent/EP4341865A1/en active Pending
- 2022-11-15 CN CN202280056808.4A patent/CN117859136A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4341865A1 (en) | 2024-03-27 |
US20230153625A1 (en) | 2023-05-18 |
WO2023090818A1 (en) | 2023-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11573991B2 (en) | Deep reinforcement learning-based multi-step question answering systems | |
US11669746B2 (en) | System and method for active machine learning | |
CN110647920A (zh) | 机器学习中的迁移学习方法及装置、设备与可读介质 | |
US11341945B2 (en) | Techniques for learning effective musical features for generative and retrieval-based applications | |
US20210383272A1 (en) | Systems and methods for continual learning | |
US11455471B2 (en) | System and method for explaining and compressing deep learning natural language understanding (NLU) models | |
CN117859136A (zh) | 用于深度神经网络的基于扭矩的结构化修剪的电子设备和方法 | |
US11989939B2 (en) | System and method for enhancing machine learning model for audio/video understanding using gated multi-level attention and temporal adversarial training | |
US20230055991A1 (en) | System and method for interactive dialogue | |
US11074317B2 (en) | System and method for cached convolution calculation | |
US20230106213A1 (en) | Machine learning model compression using weighted low-rank factorization | |
US20230081128A1 (en) | Picture quality-sensitive semantic segmentation for use in training image generation adversarial networks | |
US20220114479A1 (en) | Systems and methods for automatic mixed-precision quantization search | |
US20220222491A1 (en) | System and method for lightweight semantic masking | |
US11620737B2 (en) | System and method for indoor image inpainting under multimodal structural guidance | |
US20220199070A1 (en) | Method and system for detecting unsupported utterances in natural language understanding | |
US11526967B2 (en) | System and method for precise image inpainting to remove unwanted content from digital images | |
US20200050934A1 (en) | System and method for deep memory network | |
US11423225B2 (en) | On-device lightweight natural language understanding (NLU) continual learning | |
US11631163B2 (en) | Mobile data augmentation engine for personalized on-device deep learning system | |
US20230386450A1 (en) | System and method for detecting unhandled applications in contrastive siamese network training | |
US20230040176A1 (en) | Controllable neural networks or other controllable machine learning models | |
US20230177338A1 (en) | Small and fast transformer model for multi-modal or other tasks | |
US20230245328A1 (en) | Multi-frame optical flow network with lossless pyramid micro-architecture | |
US20230259467A1 (en) | Direct memory access (dma) engine processing data transfer tasks in parallel |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |