CN112884118A - 神经网络的搜索方法、装置及设备 - Google Patents

神经网络的搜索方法、装置及设备 Download PDF

Info

Publication number
CN112884118A
CN112884118A CN201911209275.5A CN201911209275A CN112884118A CN 112884118 A CN112884118 A CN 112884118A CN 201911209275 A CN201911209275 A CN 201911209275A CN 112884118 A CN112884118 A CN 112884118A
Authority
CN
China
Prior art keywords
neural network
evolution
neural
neural networks
network
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201911209275.5A
Other languages
English (en)
Inventor
徐航
陈泽伟
李震国
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201911209275.5A priority Critical patent/CN112884118A/zh
Priority to PCT/CN2020/126795 priority patent/WO2021103977A1/zh
Publication of CN112884118A publication Critical patent/CN112884118A/zh
Priority to US17/826,873 priority patent/US20220292357A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/0985Hyperparameter optimisation; Meta-learning; Learning-to-learn
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/12Computing arrangements based on biological models using genetic models
    • G06N3/126Evolutionary algorithms, e.g. genetic algorithms or genetic programming

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Biophysics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Biomedical Technology (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Physiology (AREA)
  • Genetics & Genomics (AREA)
  • Image Analysis (AREA)

Abstract

本发明实施例公开了一种神经网络的搜索方法、装置及设备,涉及人工智能技术领域,具体涉及自动机器学习技术领域,该方法包括:计算设备获取数据集和N个神经网络,N为正整数;对所述N个神经网络进行K次演化,得到第K次演化得到的神经网络,K为正整数;其中,在每一次演化过程中对上一次演化测到的神经网络的网络结构进行变异,基于偏序假设对变异后得到的网络进行筛选,以得到候选神经网络,进而,从候选神经网络和上一次演化得到的神经网络中筛选出本次演化得到的神经网络,上述方法在每一次演化过程中应用偏序假设对网络的搜索空间进行剪枝,提高自动机器学习的效率。

Description

神经网络的搜索方法、装置及设备
技术领域
本发明涉及机器学习技术领域,尤其涉及一种神经网络的搜索方法、装置及设备。
背景技术
机器学习被广泛应用于各个领域,然而,机器学习模型的构建对机器学习专家的要求较高,需要机器学习专家手动对模型进行繁冗的设计和调试,具有较高的人力和时间成本,提高了产品迭代周期。为使得机器学习更易于应用,减少所需的专业知识并改善模型的性能自动机器学习应运而生。
自动机器学习(automatic machine learning,AutoML)提供数据清洗、特征工程、模型构建、模型训练和评估等机器学习的各个过程的全套自动化解决方法,以算力换人力和时间,减少对机器学习工程师的依赖。
目前,AutoML在模型构建、模型训练和评估的过程中通常利用模型搜索方法,以实现模型结构和模型参数的自动优化。目前的搜索方法是在搜索空间选择一些模型进行训练,并针对训练后的模型进行评估,进而根据评估结果来调节模型的结构和参数。然而,该方法需要对选择的每个模型都进行训练和评估,耗时长,自动机器学习效率低。
发明内容
本发明实施例提供一种神经网络的搜索方法、装置及设备,以解决自动机器学习效率低的技术问题。
第一方面,本发明实施例提供了一种神经网络的搜索方法,该方法包括:计算设备获取数据集和N个神经网络,N为正整数;对N个神经网络进行K次演化,得到第K次演化得到的神经网络,K为正整数;其中,第i次演化包括:计算设备对第i-1次演化得到的神经网络的网络结构进行变异,得到变异后的神经网络;从变异后的神经网络中筛选出网络结构优于第i-1次演化得到的神经网络的神经网络,得到候选神经网络;根据第i-1次演化得到的神经网络和候选神经网络的集合中每一个神经网络对应的P个评价参数,从该集合中筛选出第i次演化得到的神经网络;其中,P个评价参数用于评价集合中每一个神经网络的通过数据集训练和测试后的神经网络的性能,i、P为正整数,1≤i≤K。
上述方法,在每一次演化过程中应用偏序假设对网络的搜索空间进行剪枝,排除了网络结构劣的神经网络,减少需要进行训练和评估的模型,避免劣的网络对计算资源占用和时间的消耗,提高自动机器学习的效率。
结合第一方面,在一种可能的实现方式中,第i-1次演化得到的神经网络为CNN,计算设备对第i-1次演化得到的神经网络进行变异可以包括如下至少一个步骤:
将第i-1次演化得到的神经网络中的一个或多个神经网络中的两层卷积层的位置进行交换;
将第i-1次演化得到的神经网络中的一个或多个神经网络中的一层或多层卷积层的通道数加倍;
在第i-1次演化得到的神经网络中的一个或多个神经网络中一层或多层卷积层的卷积核的步长加倍;
在第i-1次演化得到的神经网络中的一个或多个神经网络中插入一层或多层卷积层;
在第i-1次演化得到的神经网络中的一个或多个神经网络中删除一层或多层卷积层;
在第i-1次演化得到的神经网络中的一个或多个神经网络中插入一层或多层池化层;
在第i-1次演化得到的神经网络中的一个或多个神经网络中删除一层或多层池化层。
通过上述变异方式使得变异得到的神经网络的网络结构与变异前的神经网络的网络结构具备相近的拓扑结构,以符合偏序假设,避免对网络结构优的网络剪枝,提高剪枝的准确性。
结合第一方面,在一种可能的实现方式中,第i-1次演化得到的神经网络为ResNet,计算设备对第i-1次演化得到的神经网络进行变异可以包括如下至少一个步骤:
将第i-1次演化得到的神经网络中的一个或多个神经网络中两个残差单元的位置进行交换;
将第i-1次演化得到的神经网络中的一个或多个神经网络中一个或多个残差单元的通道数加倍;
在第i-1次演化得到的神经网络中的一个或多个神经网络中一个或多个残差单元的卷积核的步长加倍;
在第i-1次演化得到的神经网络中的一个或多个神经网络中插入一个或多个残差单元;
在第i-1次演化得到的神经网络中的一个或多个神经网络中删除一个或多个残差单元。
通过上述网络的变异方式使得变异得到神经网络的网络结构与变异前的神经网络的网络结构具备相近的拓扑结构,以符合偏序假设,避免对网络结构优的网络剪枝,提高剪枝的准确性。
结合第一方面,在一种可能的实现方式中,计算设备从变异后的神经网络中筛选出网络结构优于第i-1次演化得到的神经网络的候选神经网络的一种实现方式可以是:计算设备从第一神经网络变异后的神经网络中筛选出网络结构优于第一神经网络的神经网络,候选神经网络包括第一神经网络变异后的神经网络中网络结构优于第一神经网络的神经网络,第一神经网络为该第i-1次演化得到的神经网络中的任意一个神经网络。
可选地,在满足如下条件中的至少一种时,第一神经网络变异后的神经网络的网络结构优于第一神经网络的网络结构:
第一神经网络变异后的神经网络的通道数大于第一神经网络的通道数;
第一神经网络变异后的神经网络中卷积层的层数大于第一神经网络中卷积层的层数。
上述方法中通过神经网络的通道数和卷积层的层数对变异后神经网络的剪枝方式仅需要统计神经网络中通道数和层数,剪枝效率高,进一步提高自动机器学习的效率。
结合第一方面,在一种可能的实现方式中,计算设备根据第i-1次演化得到的神经网络和候选神经网络的集合中每一个神经网络对应的P个评价参数,从集合中筛选出第i次演化得到的神经网络的一种实现方式可以是:计算设备根据集合中每一个神经网络对应的P个评价参数对集合中的神经网络进行非主导排序,进而,确定第i次演化得到的神经网络为集合中不被主导的神经网络;其中,第二神经网络和第三神经网络为集合中的两个神经网络,若针对P个评价参数中每一个评价参数第二神经网络都不劣于第三神经网络且针对P个评价参数中的至少一个评价参数第二神经网络优于第三神经网络时,则第二神经网络主导第三神经网络。
上述方法,在每一次演化过程中,从上一次演化得到神经网络和其变异所得到的候选神经网络组成的集合中筛选出排雷托最优的网络,进而,减少进入下一次演化的神经网络的数量,大大减小每次演化过程中的计算量,进一步提高自动机器学习的效率。
结合第一方面,在一种可能的实现方式中,计算设备获取N个神经网络的一种实现方式可以是:计算设备随机生成M个神经网络,M为正整数;通过数据集对M个神经网络分别进行训练和测试,得到M个神经网络中每一个神经网络对应的P个评价参数;进而,根据M个神经网络的中每一个神经网络对应的P个评价参数,从M个神经网络中选出N个神经网络,N不大于M。
结合第一方面,在一种可能的实现方式中,P个评价参数包括运行时间、精确度、参数量中的至少一个。
上述方法可以避免一个得到的第K次演化得到的神经网络中一个评价参数优,而其他评价参数差的情况,实现了多目标优化,得到P个评价参数的平衡的神经网络。
第二方面,本申请实施例还提供了一种物体识别方法,包括:用户设备或客户设备获取待识别图像;将所述待识别图像输入到物体识别神经网络,得到所述待识别图像对应的物体类型。
其中,所述物体识别神经网络是在搜索空间中通过如第一方面或第一方面任一种实现方式所述的神经网络的搜索方法确定的网络,所述搜索空间是通过基本单元和所述基本单元的参数构建的。
可选地,该待识别图像为车辆的周围环境的图像,以识别车辆周围环境中的物体。
可选地,所述基本单元的参数包括基本单元的类型、通道数参数和尺寸参数中的至少一种。
可选地,所述基本单元用于对输入所述基本单元的特征图进行第一操作和第二操作,所述特征图为所述待识别图像的特征图,所述第一操作用于将输入所述基本单元的特征图的个数加倍或保持不变,所述第二操作用于将输入所述基本单元的特征图的尺寸从原来的第一尺寸变为第二尺寸或维持所述第一尺寸不变,所述第一尺寸大于所述第二尺寸。
可选地,所述搜索空间中的神经网络为ResNet,所述基本单元包括残差模块,所述残差模块用于将输入所述基本单元的特征图与所述输入所述基本单元的特征图经过所述基本单元处理后的特征图进行相加。
可选地,所述搜索空间中的神经网络为CNN,所述基本单元的类型包括卷积层、池化层。
此时,第一方面中所述的该数据集包括多个样本,该数据集中的每一个样本包括样本图像和该样本图像对应的物体类型。
第三方面,本申请实施例还提供了一种手势识别方法,包括:用户设备或客户设备获取待识别图像;将待识别图像输入到手势识别神经网络,得到待识别图像对应的手势类型。
其中,所述手势识别神经网络是在搜索空间中通过如第一方面或第一方面任一种实现方式所述的神经网络的搜索方法确定的网络,所述搜索空间是通过基本单元和所述基本单元的参数构建的。
可选地,所述基本单元的参数包括基本单元的类型、通道数参数和尺寸参数中的至少一种。
可选地,所述基本单元用于对输入所述基本单元的特征图进行第一操作和第二操作,所述特征图为所述待识别图像的特征图,所述第一操作用于将输入所述基本单元的特征图的个数加倍或保持不变,所述第二操作用于将输入所述基本单元的特征图的尺寸从原来的第一尺寸变为第二尺寸或维持所述第一尺寸不变,所述第一尺寸大于所述第二尺寸。
可选地,所述搜索空间中的神经网络为ResNet,所述基本单元包括残差模块,所述残差模块用于将输入所述基本单元的特征图与所述输入所述基本单元的特征图经过所述基本单元处理后的特征图进行相加。
可选地,所述搜索空间中的神经网络为CNN,所述基本单元的类型包括卷积层、池化层。
此时,第一方面中所述的该数据集包括多个样本,该数据集中的每一个样本包括样本图像和该样本图像对应的手势类型。
第四方面,本申请实施例还提供了一种数据预测方法,该方法可以包括:用户设备或客户设备获取待预测数据;将待预测数据输入到目标神经网络模型,以得到待预测数据对应的预测结果。
其中,目标神经网络可以是上述第一方面得到的第K次演化得到的神经网络或第K次演化得到的神经网络中的一个神经网络,也可以是上述第K次演化得到的神经网络与数据清洗、特征工程算法结合得到的机器学习模型。
同上述第二方面或第三方面,其中,所述目标神经网络是在搜索空间中通过如第一方面或第一方面任一种实现方式所述的神经网络的搜索方法确定的网络,所述搜索空间是通过基本单元和所述基本单元的参数构建的。
第五方面,本申请实施例还提供了一种神经网络的搜索装置,包括:
获取模块,用于获取数据集和N个神经网络,N为正整数;
演化模块,用于对所述N个神经网络进行K次演化,得到第K次演化得到的神经网络,K为正整数;
其中,所述演化模块包括变异单元、第一筛选单元和第二筛选单元,其中,
所述变异单元用于:在第i次演化过程中,对第i-1次演化得到的神经网络的网络结构进行变异,得到变异后的神经网络,所述第0次演化得到的神经网络为所述N个神经网络;
所述第一筛选单元用于:在第i次演化过程中,从所述变异后的神经网络中筛选出网络结构优于所述第i-1次演化得到的神经网络的候选神经网络,所述候选神经网络为筛选出的神经网络;
所述第二筛选单元用于:在第i次演化过程中,根据所述第i-1次演化得到的神经网络和所述候选神经网络的集合中每一个神经网络对应的P个评价参数,从所述集合中筛选出第i次演化得到的神经网络;其中,所述P个评价参数用于评价所述集合中每一个神经网络的通过所述数据集训练和测试后的神经网络的性能,i为不大于K的正整数,所述P为正整数。
上述各个单元的具体实现可以参见上述第一方面或第一方面中任一种实现方式的方法。
第六方面,本申请实施例还提供了一种物体识别装置,包括:用于实现第二方面所述的物体识别方法中的功能单元。
物体识别装置所包括的各个单元和上述各个单元的具体实现可以参见上述第二方面或第二方面中任一种实现方式的方法
第七方面,本申请实施例还提供了一种手势识别装置,包括:用于实现第三方面所述的手势识别方法中的功能单元。
手势识别装置所包括的各个单元和上述各个单元的具体实现可以参见上述第三方面或第三方面中任一种实现方式的方法。
第八方面,本申请实施例还提供了一种数据预测装置,包括:用于实现第四方面所述的手势识别方法中的功能单元。
数据预测装置所包括的各个单元和上述各个单元的具体实现可以参见上述第四方面或第四方面中任一种实现方式的方法。
第九方面,本申请实施例还提供了一种神经网络的搜索装置,包括:包括处理器和存储器,所述存储器用于存储程序,所述处理器执行所述存储器存储的程序,当所述存储器存储的程序被执行时,使得所述神经网络的搜索装置实现如第一方面或第一方面任一项可能的实现所述的方法。
第十方面,本申请实施例还提供了一种物体识别装置,包括:包括处理器和存储器,所述存储器用于存储程序,所述处理器执行所述存储器存储的程序,当所述存储器存储的程序被执行时,使得所述物体识别装置实现如第二方面或第二方面任一项可能的实现所述的方法。
第十一方面,本申请实施例还提供了一种手势识别装置,包括:包括处理器和存储器,所述存储器用于存储程序,所述处理器执行所述存储器存储的程序,当所述存储器存储的程序被执行时,使得所述手势识别装置实现如第三方面或第三方面任一项可能的实现所述的方法。
第十二方面,本申请实施例还提供了一种数据预测装置,包括:包括处理器和存储器,所述存储器用于存储程序,所述处理器执行所述存储器存储的程序,当所述存储器存储的程序被执行时,使得所述数据预测装置实现如第四方面或第四方面任一项可能的实现所述的方法。
第十三方面,本申请实施例还提供了一种包含指令的计算机程序产品,当上述计算机程序产品在计算机上运行时,使得上述计算机实现如第一方面中任一可能的实现方式的方法。
第十四方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令在被所述计算机调用时用于使所述计算机实现如第一方面中任一可能的实现方式所述的方法。
第十五方面,本申请实施例还提供了一种包含指令的计算机程序产品,当上述计算机程序产品在计算机上运行时,使得上述计算机实现如第二方面中任一可能的实现方式的方法。
第十六方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令在被所述计算机调用时用于使所述计算机实现如第二方面中任一可能的实现方式所述的方法。
第十七方面,本申请实施例还提供了一种包含指令的计算机程序产品,当上述计算机程序产品在计算机上运行时,使得上述计算机实现如第三方面中任一可能的实现方式的方法。
第十八方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令在被所述计算机调用时用于使所述计算机实现如第三方面中任一可能的实现方式所述的方法。
第十九方面,本申请实施例还提供了一种包含指令的计算机程序产品,当上述计算机程序产品在计算机上运行时,使得上述计算机实现如第四方面中任一可能的实现方式的方法。
第二十方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令在被所述计算机调用时用于使所述计算机实现如第四方面中任一可能的实现方式所述的方法
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种AutoML的系统架构图;
图2A是本申请实施例提供的一种应用场景的示意图
图2B是本申请实施例提供的又一种应用场景的示意图;
图3是本申请实施例提供的一种系统的架构示意图;
图4是本申请实施例提供的一种卷积神经网络的架构示意图;
图5是本发明实施例提供的一种芯片硬件结构的示意图;
图6A是本申请实施例提供的一种的神经网络的搜索方法的流程示意图;
图6B是本申请实施例提供的计算设备从该集合中筛选出第i次演化得到的神经网络的一种实现方式的流程示意图;
图7是本申请实施例提供的一种变异前后ResNet的结构示意图;
图8是本申请实施例提供的一种变异前后CNN的结构示意图;
图9A是本申请实施例提供的一种物体识别方法的流程示意图;
图9B是本申请实施例提供的一种手势识别方法的流程示意图;
图10A是本申请实施例提供的一种得到的模型的运行时间和top1精度的示意性说明图;
图10B是本申请实施例提供的一种得到的模型的参数量和top1精度的示意性说明图;
图11是本申请实施例提供的一种神经网络的搜索装置的结构示意图;
图12A是本申请实施例提供的一种物体识别装置的结构示意图;
图12B是本申请实施例提供的一种手势识别装置的结构示意图;
图13是本申请实施例提供的另一种神经网络的搜索装置的结构示意图;
图14是本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
首先对本申请涉及的自动机器学习(automatic machine learning,AutoML)的架构进行简单描述。
如图1所示,为本申请实施例提供的一种AutoML的系统架构图,AutoML的主要流程可以包括如下过程:
a)数据准备(date preparation)
数据准备可以包括数据采集(date collection)和数据清洗(date cleaning)。其中,数据采集包括接收用户设备发送的原始数据,也可以来源于已有数据库,如imageNet、Labelme等或者通过其他方式获取到;数据清洗主要包括对原始数据中的数据进行缺失值处理、判断数据类型、异常值检测、文本编码、数据分割等,以得到可以被机器学习模型运算的数据。原始数据可以是图像、语音、文本、视频或其组合等。
b)特征工程(feature engineering)
特征工程是利用数据领域的相关知识来创建能够使机器学习算法达到最佳性能的特征的过程,是将原始数据转变为特征的过程,其目的是从原始数据中最大化提取特征以供算法和模型使用。该过程可以包括特征构建、特征提取、特征选择等,其中:特征构建是从原始数据中人工的构建新的特征;特征提取是自动地构建新的特征,将原始特征转换为一组具有明显物理意义或者统计意义或核的特征,比如通过变换特征取值来减少原始数据中某个特征的取值个数等;特征选择是从特征集合中挑选一组最具统计意义的特征子集,把无关的特征删掉,从而达到降维的效果。在实际应用中,特征工程是一个迭代过程,需要不断的进行特征构建、特征提取、选择特征、模型选择、模型训练、评估模型,然后才能得到最终的机器学习模型。
原始数据经过上述特征工程后可以得到可以输入到机器学习模型的数据集。应理解,该数据集可以被划分为训练数据集和测试数据集,其中,训练数据集用于对构建的机器学习模型的训练,以得到训练后的机器学习模型;测试数据集用于对训练后的机器学习模型进行测试,以评估该训练后的机器学习模型的性能,例如准确性、运行时间等。
在一些实施例中,特征工程不是AutoML必须的过程,此时原始数据经过数据清洗即可得到数据集。
c)模型构建(model generation)
特征工程之后,需要从机器学习模型的搜索空间中选择机器学习模型,并为选择的机器学习模型设置超参数。其中,所有可能的机器学习模型组成了机器学习模型的搜索空间。搜索空间中的机器模型可以是构建好的,也可以是在搜索过程中构建的,此处不作限定。
d)模型训练(model training)和模型评估(model evaluation)
在选择出机器学习模型并设置其超参数后,可以通过训练数据集对初始化的机器学习模型进行训练,进而通过测试数据集对训练完成的机器学习模型进行评估,进而,由评估结果反馈指导机器学习模型的构建、选择、超参数的设置等,最终得到最优的一个或多个机器学习模型。
e)神经网络搜索(neural architecture search,NAS)
本申请实施例中机器学习模型为神经网络,可以是深度神经网络、比如卷积神经网络(convolutional neural network,CNN)、残差神经网络(deep residual network,ResNet)、循环神经网络等神经网络。通过NAS来实现模型的搜索和选择,NAS是一种搜索最佳神经网络体系结构的算法,该方法主要包括模型结构和模型参数的自动优化。本申请实施例中,在通过NAS进行神经网络模型的搜索和选择时,采用了演化算法,即:构建一个或多个神经网络;对该一个或多个神经网络进行随机变异,例如,随机增加或删除一层结构,随机对改变神经网络中的一个或多个层结构的通道数等;基于偏序假设从变异后的神经网络中筛选出网络结构比变异前的神经网络优的神经网络,即为候选神经网络;对候选神经网络中每一个神经网络进行训练和测试,得到每一个神经网络对应的P个评价参数;基于每一个神经网络对应的P个评价参数从候选神经网络中筛选出评价参数较优的神经网络;进而,基于筛选出的神经网络迭代执行变异、变异后的神经网络的筛选、候选神经网络的训练和测试、候选神经网络的筛选等过程,使得最终筛选出的神经网络越来越好。
需要说明的是,在为特定任务构建机器学习模型过程中,上述各个过程通常是相互依赖的。例如,模型的选择会影响某些特征的采用的特征变换。
本申请实施例主要针对神经网络的搜索方法进行介绍,应理解,该方法可以结合其他的步骤或过程,例如特征工程、超参数优化等,得到最优的模型,针对于其他过程的结合,可以参见现有技术中相关内容,对此,本申请实施例不作限定。
下面对本申请实施例涉及的部分关键术语进行说明。
(1)、帕雷托最优(Pareto optimality)
帕雷托最优是指资源的一种理想状态,给定固有的一群人和可分配的资源,如果从一种分配状态到另一种状态的变化中,在没有使任何人境况变坏的前提下,使得至少一个人变得更好,也称为帕雷托改善。帕雷托最优的状态就是不可能再有更多的帕雷托改善的状态;换句话说,不可能在不使任何其他人不受损的情况下再改善某些人的境况。
例如,给出一组模型其评价参数(精确度,运行时间(s))分别为(0.8,2)、(0.7,3)、(0.9,2.5)、(0.7,1)。由于,模型的精确度越高、模型的运行时间越低,则模型越优。可见,评价参数为(0.8,2)的模型优于评价参数为(0.7,3)的模型;而,评价参数为(0.8,2)、(0.9,2.5)、(0.7,1)、(0.8,2)的模型之间不能比较出优劣,此时,评价参数为(0.8,2)、(0.9,2.5)、(0.7,1)、(0.8,2)的模型为帕雷托最优的模型。
(2)、帕雷托前沿
本申请实施例中,模型的多个评价参数,如精确度、运行时间、参数量等在模型的优化过程中存在冲突和无法比较的现象,当模型的精确度最好时,模型的参数量或运行时间可能是最差的。在通过NAS改进模型的过程中,在改进一个评价参数的同时,会削弱其他评价参数。各个评价参数都最优的模型的集合即为帕雷托前沿,也就是说帕雷托前沿为帕雷托最优的模型的集合。
(3)、非主导排序
非主导排序是多目标常用的排序方法,假设优化的目标有(A,B,C),点1(A1,B1,C1)主导点2(A2,B2,C2)当仅且当A1≥A2,B1≥B2,C1≥C2且至少有一个等号不成立。点1主导点2意味着点1优于点2。没有被任何点主导的点就是帕雷托前沿上的点,即非主导点。
在本申请实施例中,优化的目标为模型的P个评价参数,模型1主导模型2,当且仅当模型1的P个评价参数都不劣于模型2且模型1的P个评价参数中至少存在一个评价参数优于模型2。
(4)、偏序假设
偏序假设是指,拓扑结构相近的网络,更窄更浅的网络比更深更宽的网络差,也就是说,更深更宽的网络优于更窄更浅的网络。这里,“宽”、“窄”分别形容网络的通道数;“深”、“浅”分别形容网络的层数。
(5)偏序剪枝算法
偏序剪枝算法是指应用偏序假设的原理来对缩小模型的搜索空间的算法。在本申请一些实施例中应用偏序假设的原理来对缩小模型的搜索空间,提高模型搜索效率。
(6)空洞卷积
空洞卷积就是在普通的卷积核中间插入0,得到更大的卷积核,但参数量保持不变,以获得更大范围的信息。
(7)深度可分离卷积
普通卷积过程是:M个特征图P1通过普通卷积核,如大小为(Dk,Dk,M,N)的高维矩阵卷积,可将M个特征图变成N个P2。然而,深度分离卷积则是:先用大小为(Dk,Dk,M,1)的矩阵,对M个特征图P1进行卷积,把M个特征图P1变成M个特征图P3,再用大小为(1,1,M,N)的卷积核对M个特征图P3进行卷积,得到N个个特征图P4,该方法能够大大减少参数量,且取得很好的效果。
(8)神经网络
神经网络可以是由神经单元组成的,神经单元可以是指以xs和截距1为输入的运算单元,该运算单元的输出可以为:
Figure BDA0002297703490000091
其中,s=1、2、……n,n为大于1的自然数,Ws为xs的权重,b为神经单元的偏置。f为神经单元的激活函数(activation functions),用于将非线性特性引入神经网络中,来将神经单元中的输入信号转换为输出信号。该激活函数的输出信号可以作为下一层卷积层的输入。激活函数可以是sigmoid函数。神经网络是将许多个上述单一的神经单元联结在一起形成的网络,即一个神经单元的输出可以是另一个神经单元的输入。每个神经单元的输入可以与前一层的局部接受域相连,来提取局部接受域的特征,局部接受域可以是由若干个神经单元组成的区域。
(9)深度神经网络
深度神经网络(deep neural network,DNN),也称多层神经网络,可以理解为具有很多层隐含层的神经网络,这里的“很多”并没有特别的度量标准。从DNN按不同层的位置划分,DNN内部的神经网络可以分为三类:输入层,隐含层,输出层。一般来说第一层是输入层,最后一层是输出层,中间的层数都是隐含层。层与层之间是全连接的,也就是说,第i层的任意一个神经元一定与第i+1层的任意一个神经元相连。虽然DNN看起来很复杂,但是就每一层的工作来说,其实并不复杂,简单来说就是如下线性关系表达式y=α(Wx+b),其中,x是输入向量,y是输出向量,b是偏移向量,W是权重矩阵(也称系数),α()是激活函数。每一层仅仅是对输入向量x经过如此简单的操作得到输出向量y。由于DNN层数多,则系数W和偏移向量b的数量也就很多了。这些参数在DNN中的定义如下所述:以系数W为例:假设在一个三层的DNN中,第二层的第4个神经元到第三层的第2个神经元的线性系数定义为
Figure BDA0002297703490000092
上标3代表系数W所在的层数,而下标对应的是输出的第三层索引2和输入的第二层索引4。总结就是:第L-1层的第k个神经元到第L层的第j个神经元的系数定义为
Figure BDA0002297703490000093
需要注意的是,输入层是没有W参数的。在深度神经网络中,更多的隐含层让网络更能够刻画现实世界中的复杂情形。理论上而言,参数越多的模型复杂度越高,“容量”也就越大,也就意味着它能完成更复杂的学习任务。训练深度神经网络的也就是学习权重矩阵的过程,其最终目的是得到训练好的深度神经网络的所有层的权重矩阵(由很多层的向量W形成的权重矩阵)。
(10)卷积神经网络
卷积神经网络(CNN,convolutional neuron network)是一种带有卷积结构的深度神经网络。卷积神经网络包含了一个由卷积层和子采样层构成的特征抽取器。该特征抽取器可以看作是滤波器,卷积过程可以看作是使用一个可训练的滤波器与一个输入的图像或者卷积特征平面(feature map)做卷积。卷积层是指卷积神经网络中对输入信号进行卷积处理的神经元层。在卷积神经网络的卷积层中,一个神经元可以只与部分邻层神经元连接。一层卷积层中,通常包含若干个特征平面,每个特征平面可以由一些矩形排列的神经单元组成。同一特征平面的神经单元共享权重,这里共享的权重就是卷积核。共享权重可以理解为提取图像信息的方式与位置无关。这其中隐含的原理是:图像的某一部分的统计信息与其他部分是一样的。即意味着在某一部分学习的图像信息也能用在另一部分上。所以对于图像上的所有位置,都能使用同样的学习得到的图像信息。在同一卷积层中,可以使用多个卷积核来提取不同的图像信息,一般地,卷积核数量越多,卷积操作反映的图像信息越丰富。
卷积核可以以随机大小的矩阵的形式初始化,在卷积神经网络的训练过程中卷积核可以通过学习得到合理的权重。另外,共享权重带来的直接好处是减少卷积神经网络各层之间的连接,同时又降低了过拟合的风险。
(11)深度残差网络(deep residual network,ResNet)
网络的深度对模型的性能至关重要,随着网络层数的增加,网络提取更加复杂的特征,网络的性能也不断提升,因此理论上,越深的网络,效果应该更好;但实际上,由于训练难度,过深的网络会产生退化问题,效果反而不如相对较浅的网络,这被称为退化问题(degradation problem)。其原因是随着网络越来越深,训练变得原来越难,网络的优化变得越来越难。
为解决该问题,引入了跳过连接(也称为快捷连接),ResNet,其中,ResNet可以包括多个级联的残差单元(也称为残差块)和若干个全连接层。在ResNet中,上一个残差单元的输出和输入被同时输入到下一个残差单元,对于第l个残差单元,xl+1=f(h(xl)+F(xl,Wl)),其中,F(xl,Wl)是第l个残差单元的输出,xl是第l个残差单元的输入,Wl为第l个残差单元包括的多层卷积层的成的权重矩阵,每个残差单元之间经过一个函数f()进行激活。
下面介绍本申请实施例涉及的应用场景。
如图2A和图2B为本申请实施例提供的二种应用场景的示意图,客户可以使用客户设备向计算设备,如云服务器,发送原始数据或数据集,并请求云服务器基于提供的原始数据或数据集训练得到可以完成特定任务的目标神经网络。云服务器可以利用其强大的计算资源和AutoML架构,利用客户提供的原始数据或数据集,自动生成客户需要的目标神经网络。其中,数据集为原始数据经过数据清洗、特征工程之后得到的数据,包括训练数据集和测试数据集,关于原始数据或数据集的描述可以参见上述图1中相关描述,此处不再赘述。该原始数据和数据集也可以是从现有的数据库获取的数据,如从imageNet中获取的图片。如下为本申请实施例提供的两种场景:
场景A:
如图2A所示,客户想要一个可以识别物体类型的神经网络,该神经网络应用于自动驾驶车辆或半自动驾驶车辆,以识别车辆的通过摄像头观测到的视野中的物体,由于,车辆处于不断运动过程中,且需要保证车辆的安全驾驶,因此对物体识别的实时性和对车辆周围环境中的物体的识别准确性要求高,此时,客户可以要求该神经网络预测的物体类型具有高的精确度和低耗时。客户通过客户设备向云服务器发送数据集,并请求采用多目标优化(即高精确度、低耗时)查找最优神经网络。其中,该数据集包括多类型的样本图像,每一个样本图像被标注其所属的物体类型;物体类型可以包括:人、狗、车辆、交通灯为红灯、建筑物、交通线、树木、路沿等。
云服务器可以利用上述数据集通过其AutoML架构,按照客户的高的精确度和低耗时的要求,在神经网络的搜索空间中选择神经网络、并对选择的神经网络进行训练、评估,在根据各个训练后的神经网络的精确度和耗时,进一步地筛选出精确度高且耗时低的神经网络,通过多次筛选得到客户需要的帕累托最优的物体识别神经网络。进而,云服务器将该物体识别神经网络发送至客户设备。客户设备可以将该物体识别神经网络发送至车辆。可选地,在客户设备为服务器时,车辆也可以从客户设备下载该物体识别神经网络。
车辆在接收到物体识别神经网络后,可以执行物体类型的识别方法,该方法可以包括如下步骤:车辆通过摄像头获取待识别图像,该待识别图像可以是车辆周围环境的图像;将该待识别图像输入到物体识别神经网络,预测得到该待识别图像对应的物体类型。进一步地,车辆还可以基于识别到的周围环境中的物体类型执行相应的安全驾驶方法,例如,在识别当前方有人时,减速或刹车,以提高车辆运行的安全性;又例如,在识别到前方路灯为绿灯时,则车辆可以通过交通路口。
场景B
如图2B所示,客户想要一个可以识别动态手势的神经网络,该神经网络应用于终端,如便携式设备,如手机、平板电脑等,或可穿戴设备,如智能手环、智能手表、VR眼镜等,或智能电视、智能音响、智能灯具、监控器等智能家居设备等,以识别上述设备通过摄像头观测到的视野中的手势。由于,终端的计算能力和存储资源有限,因此,要求应用于其上的神经网络具有高的精确度和低的参数量。客户通过客户设备向云服务器发送数据集,并请求采用多目标优化(即高精确度、低参数量)查找最优神经网络。其中,该数据集包括多种手势的样本图像,每一个样本图像被标注其所属的手势类型,手势类型可以包括多种不同的手势。
云服务器可以利用上述数据集通过其AutoML架构,按照客户的高的精确度和低耗时的要求,在神经网络的搜索空间中选择神经网络、并对选择的神经网络进行训练、评估,在根据各个训练后的神经网络的精确度和耗时,进一步地筛选出精确度高且耗时低的神经网络,通过多次筛选得到客户需要的帕累托最优的手势识别神经网络。进而,云服务器将该手势识别神经网络发送至客户设备。客户设备可以将该手势识别神经网络发送至终端。可选地,在客户设备为服务器时,终端也可以从客户设备下载该手势识别神经网络。
终端在接收到手势识别神经网络后,可以执行手势识别方法,该方法可以包括如下步骤:终端通过摄像头获取待识别图像;将该待识别图像输入到手势识别神经网络,预测得到该待识别图像对应的手势类型。进一步地,终端还可以基于识别到的手势类型执行相应的操作,例如,在识别到第一手势时,执行打开应用“相机”的操作。其中,第一手势可以是该手势识别神经网络可以识别的多种不同的手势中任意一种。
应理解,在场景A或场景B中,云服务器基于数据集通过自动生成物体识别神经网络或手势识别神经网络的具体实现可以参见下述方法实施例中相关描述,此处不再赘述。
下面介绍本申请实施例涉及的系统架构。如图3所示,图3是本申请实施例提供的一种系统的架构示意图,其中:
计算设备32可以包括上述图1所示的AutoML架构的部分或全部,计算设备32可以根据数据库33存储的原始数据或数据集,或客户设备31发送的原始数据或数据集,自动生成可以执行特定功能的机器学习模型,如上述场景A中物体识别神经网络、上述场景B中手势识别神经网络等。
计算设备32可以包括多个节点,一方面,计算设备32可以是分布式计算系统,计算设备32包括的多个节点可以分别为具备计算能力的计算机设备;另一方面,计算设备32可以是一个设备,其包括的多个节点可以是计算设备32中的功能模块/器件等。其中,预处理节点321用于对接收到的原始数据进行预处理,如数据清洗等;特征工程节点322对预处理后的原始数据进行特征工程,得到数据集。在另一些实施例中,预处理后的原始数据即为数据集。数据集可以划分为训练数据集和测试数据集。
模型构建节点323用于根据训练数据集随机生成神经网络的架构,为其配置超参数,得到初始化的神经网络;模型搜索节点324用于执行神经网络的搜索方法,对初始化的神经网络进行多次演化,以得到最终演化得到的神经网络。模型构建节点323用于对演化过程中的神经网络进行变异,得到候选神经网络;模型训练节点325可以对初始化的神经网络、候选神经网络等进行训练,以得到训练后的神经网络;模型评估节点326用于根据测试数据集对训练后的神经网络进行测试,得到该训练后的神经网络的评价参数,如精确度、运行时间、参数量等。模型搜索节点324在对神经网络进行训练和测试之前,基于偏序剪枝算法对候选神经网络进行筛选,仅对网络结构优于变异前的神经网络的进行训练和测试,以缩小神经网络的搜索空间,提高神经网络的搜索效率。模型搜索节点324还用于基于模型评估节点326得到的训练后的神经网络的评价参数筛选出最优的一个或多个神经网络或帕雷托最优的神经网络,作为进入下一次演化的神经网络。经过多次演化,得到一个或多个神经网络,将得到的神经网络与特征工程、预处理等模块结合可以组成目标神经网络。计算设备32可以将目标神经网络发送给客户设备31。
系统还可以包括用户设备34,在客户设备31或计算设备32得到目标神经网络后,用户设备34可以向客户设备31或计算设备32下载目标神经网络,以使用目标神经网络来对待预测数据进行预测,得到预测结果;或,用户设备34也可以向客户设备31发送待预测数据,客户数据31在接收到待预测数据后,将待预测数据输入到目标神经网络得到预测结果,进而向用户设备34发送该预测结果。目标神经网络可以是场景A中物体识别神经网络、上述场景B中手势识别神经网络,待预测数据可以是场景A中或场景B中的待识别图像。
上述计算设备32、计算设备32中的各个节点可以是云服务器、服务器、计算机设备、终端设备等,此处不再赘述。
上述客户设备31或用户设备34可以是手机、平板电脑、个人计算机、车辆、车载单元、销售终端(point of sales,POS)、个人数字助理(personal digital assistant,PDA)、无人机、智能手表、智能眼镜、VR设备等,此处不作限定。客户设备31还可以是服务器。
需要说明的是,预处理节点321、特种工程节点322、模型构建节点323、模型训练节点325、模型评估节点326等不是计算设备32必须的节点,上述预处理节点321、特种工程节点322、模型构建节点323、模型训练节点325、模型评估节点326等中一个或多个节点所实现的功能也可以集合在模型搜索节点324中。
系统中客户设备31、用户设备34、数据库33也不是系统必须的设备,系统不包括上述设备,或还可以包括其他设备或功能单元,本申请实施例不作限定。
如前文的基础概念介绍所述,卷积神经网络是一种带有卷积结构的深度神经网络,是一种深度学习(deep learning)架构,深度学习架构是指通过机器学习的算法,在不同的抽象层级上进行多个层次的学习。作为一种深度学习架构,CNN是一种前馈(feed-forward)人工神经网络,该前馈人工神经网络中的各个神经元可以对输入其中的图像作出响应。
如图4所示,卷积神经网络(CNN)200可以包括输入层210,卷积层/池化层220(其中池化层为可选的),以及神经网络层230。
卷积层/池化层220:
卷积层:
如图4所示卷积层/池化层220可以包括如示例221-226层,举例来说:在一种实现中,221层为卷积层,222层为池化层,223层为卷积层,224层为池化层,225为卷积层,226为池化层;在另一种实现方式中,221、222为卷积层,223为池化层,224、225为卷积层,226为池化层。即卷积层的输出可以作为随后的池化层的输入,也可以作为另一层卷积层的输入以继续进行卷积操作。
下面将以卷积层221为例,介绍一层卷积层的内部工作原理。
卷积层221可以包括很多个卷积算子,卷积算子也称为核,其在图像处理中的作用相当于一个从输入图像矩阵中提取特定信息的过滤器,卷积算子本质上可以是一个权重矩阵,这个权重矩阵通常被预先定义,在对图像进行卷积操作的过程中,权重矩阵通常在输入图像上沿着水平方向一个像素接着一个像素(或两个像素接着两个像素……这取决于步长stride的取值)的进行处理,从而完成从图像中提取特定特征的工作。该权重矩阵的大小应该与图像的大小相关,需要注意的是,权重矩阵的纵深维度(depth dimension)和输入图像的纵深维度是相同的,在进行卷积运算的过程中,权重矩阵会延伸到输入图像的整个深度。因此,和一个单一的权重矩阵进行卷积会产生一个单一纵深维度的卷积化输出,但是大多数情况下不使用单一权重矩阵,而是应用多个尺寸(行×列)相同的权重矩阵,即多个同型矩阵。每个权重矩阵的输出被堆叠起来形成卷积图像的纵深维度,这里的维度可以理解为由上面所述的“多个”来决定。不同的权重矩阵可以用来提取图像中不同的特征,例如一个权重矩阵用来提取图像边缘信息,另一个权重矩阵用来提取图像的特定颜色,又一个权重矩阵用来对图像中不需要的噪点进行模糊化等。该多个权重矩阵尺寸(行×列)相同,经过该多个尺寸相同的权重矩阵提取后的特征图的尺寸也相同,再将提取到的多个尺寸相同的特征图合并形成卷积运算的输出。
这些权重矩阵中的权重值在实际应用中需要经过大量的训练得到,通过训练得到的权重值形成的各个权重矩阵可以用来从输入图像中提取信息,从而使得卷积神经网络200进行正确的预测。
当卷积神经网络200有多个卷积层的时候,初始的卷积层(例如221)往往提取较多的一般特征,该一般特征也可以称之为低级别的特征;随着卷积神经网络200深度的加深,越往后的卷积层(例如226)提取到的特征越来越复杂,比如高级别的语义之类的特征,语义越高的特征越适用于待解决的问题。
池化层:
由于常常需要减少训练参数的数量,因此卷积层之后常常需要周期性的引入池化层,在如图4中220所示例的221-226各层,可以是一层卷积层后面跟一层池化层,也可以是多层卷积层后面接一层或多层池化层。在图像处理过程中,池化层的唯一目的就是减少图像的空间大小。池化层可以包括平均池化算子和/或最大池化算子,以用于对输入图像进行采样得到较小尺寸的图像。平均池化算子可以在特定范围内对图像中的像素值进行计算产生平均值作为平均池化的结果。最大池化算子可以在特定范围内取该范围内值最大的像素作为最大池化的结果。另外,就像卷积层中用权重矩阵的大小应该与图像尺寸相关一样,池化层中的运算符也应该与图像的大小相关。通过池化层处理后输出的图像尺寸可以小于输入池化层的图像的尺寸,池化层输出的图像中每个像素点表示输入池化层的图像的对应子区域的平均值或最大值。
神经网络层230:
在经过卷积层/池化层220的处理后,卷积神经网络200还不足以输出所需要的输出信息。因为如前所述,卷积层/池化层220只会提取特征,并减少输入图像带来的参数。然而为了生成最终的输出信息(所需要的类信息或其他相关信息),卷积神经网络200需要利用神经网络层230来生成一个或者一组所需要的类的数量的输出。因此,在神经网络层230中可以包括多层隐含层(如图4所示的231、232至23n)以及输出层240,该多层隐含层中所包含的参数可以根据具体的任务类型的相关训练数据进行预先训练得到,例如该任务类型可以包括图像识别,图像分类,图像超分辨率重建等等……
在神经网络层230中的多层隐含层之后,也就是整个卷积神经网络200的最后层为输出层240,该输出层240具有类似分类交叉熵的损失函数,具体用于计算预测误差,一旦整个卷积神经网络200的前向传播(如图5由210至240方向的传播为前向传播)完成,反向传播(如图4由240至210方向的传播为反向传播)就会开始更新前面提到的各层的权重值以及偏差,以减少卷积神经网络200的损失,及卷积神经网络200通过输出层输出的结果和理想结果之间的误差。
需要说明的是,如图4所示的卷积神经网络200仅作为一种卷积神经网络的示例,在具体的应用中,卷积神经网络还可以以其他网络模型的形式存在。
下面介绍本申请实施例提供的一种芯片硬件结构。
图5为本发明实施例提供的一种芯片硬件结构,该芯片包括神经网络处理器30。该芯片可以被设置在如图3所示的计算设备32中,用以完成神经网络的训练和测试的计算工作。该芯片也可以被设置在如图3所示的客户设备31或用户设备34中,用以完成通过目标神经网络对待预测数据的预测工作。如图4所示的卷积神经网络或深度残差神经网络中各层的算法均可在如图5所示的芯片中得以实现。
神经网络处理器30可以是NPU,TPU,或者GPU等一切适合用于大规模异或运算处理的处理器。以NPU为例:NPU可以作为协处理器挂载到主CPU(Host CPU)上,由主CPU为其分配任务。NPU的核心部分为运算电路303,通过控制器304控制运算电路303提取存储器(301和302)中的矩阵数据并进行乘加运算。
在一些实现中,运算电路303内部包括多个处理单元(Process Engine,PE)。在一些实现中,运算电路303是二维脉动阵列。运算电路303还可以是一维脉动阵列或者能够执行例如乘法和加法这样的数学运算的其它电子线路。在一些实现中,运算电路303是通用的矩阵处理器。
举例来说,假设有输入矩阵A,权重矩阵B,输出矩阵C。运算电路303从权重存储器302中取矩阵B的权重数据,并缓存在运算电路303中的每一个PE上。运算电路303从输入存储器301中取矩阵A的输入数据,根据矩阵A的输入数据与矩阵B的权重数据进行矩阵运算,得到的矩阵的部分结果或最终结果,保存在累加器(accumulator)308中。
统一存储器306用于存放输入数据以及输出数据。权重数据直接通过存储单元访问控制器(DMAC,Direct Memory Access Controller)305,被搬运到权重存储器302中。输入数据也通过DMAC被搬运到统一存储器306中。
总线接口单元(BIU,Bus Interface Unit)310,用于DMAC和取指存储器(Instruction Fetch Buffer)309的交互;总线接口单元301还用于取指存储器309从外部存储器获取指令;总线接口单元301还用于存储单元访问控制器305从外部存储器获取输入矩阵A或者权重矩阵B的原数据。
DMAC主要用于将外部存储器DDR中的输入数据搬运到统一存储器306中,或将权重数据搬运到权重存储器302中,或将输入数据搬运到输入存储器301中。
向量计算单元307多个运算处理单元,在需要的情况下,对运算电路303的输出做进一步处理,如向量乘,向量加,指数运算,对数运算,大小比较等等。向量计算单元307主要用于神经网络中非卷积层,或全连接层(FC,fully connected layers)的计算,具体可以处理:Pooling(池化),Normalization(归一化)等的计算。例如,向量计算单元307可以将非线性函数应用到运算电路303的输出,例如累加值的向量,用以生成激活值。在一些实现中,向量计算单元307生成归一化的值、合并值,或二者均有。
在一些实现中,向量计算单元307将经处理的向量存储到统一存储器306。在一些实现中,经向量计算单元307处理过的向量能够用作运算电路303的激活输入,例如用于神经网络中后续层中的使用,如图4所示,若当前处理层是隐含层1(231),则经向量计算单元307处理过的向量还可以被用到隐含层2(232)中的计算。
控制器304连接的取指存储器(instruction fetch buffer)309,用于存储控制器304使用的指令。
统一存储器306,输入存储器301,权重存储器302以及取指存储器309均为On-Chip存储器。外部存储器独立于该NPU硬件架构。
其中,图4所示的卷积神经网络中各层的运算或者深度残差网络中各个残差单元的计算可以由运算电路303或向量计算单元142执行。
实施例一:
如图6A所示为本申请实施例提供的一种的神经网络的搜索方法,可以用于搜索得到上述场景A中的物体识别神经网络或场景B中的手势识别神经网络,本申请实施例提供的神经网络的搜索方法可以应用于AutoML架构,以实现自动生成机器学习模型。该方法60可以由如图3所示的计算设备320执行,在另一种实现中,计算设备可以是分布式计算设备,包括预处理节点321、特征工程节点322、模型构建节点323、模型搜索节点324、模型训练节点325和模型评价节点326等。其中,该方法60中的步骤S602中获取数据集的步骤S6021等可以由预处理节点321或特征工程节点322执行;步骤S602中获取N个神经网络、步骤S6042可以由模型构建节点323执行;步骤S6022、S6046中训练过程可以由模型训练节点325执行,步骤S6022、S6046中测试过程可以由模型评价节点326执行,步骤S6023、S604、S6044 S6048可以由模型搜索节点324执行。可选地,步骤S602、步骤S6042也可以由模型评价节点326执行。可选的,所述方法60或方法中各个步骤可以分别由CPU处理,也可以由CPU和GPU共同处理,也可以不用GPU,而使用其他适合用于神经网络计算的处理器,例如,图4所示的神经网络处理器40,此处不作限定。本申请实施例以执行主体为计算设备为例来说明,该方法60可以包括如下部分或全部步骤:
S602:计算设备获取数据集和N个神经网络,N为正整数。
该方法60中的数据集可以是经过数据清洗的原始数据也可以是原始数据经过特征工程得到的数据集,原始数据或数据集可以来源于如图3所示的数据库330,也可以是客户设备310采集或获取的。
其中,数据集可以包括训练数据集和测试数据集,训练数据集用于对初始化的神经网络进行训练,测试数据集用于测试训练后的神经网络的性能,如精确度、运行时间等。训练数据集包括多个训练样本,测试数据集可以包括多个测试样本,一个训练样本或一个测试样本可以包括输入数据和标签。其中,训练样本的输入数据用于输入到初始化的神经网络,得到该输入数据对应的预测结果;标签即为该输入数据对应的真实结果,真实结果与预测结果的误差用于反馈调节初始化的神经网络的模型参数,以得到训练后的神经网络。而,测试样本的输入数据用于输入到训练后的神经网络,得到该输入数据对应的预测结果,根据预测结果与真实结果的误差来评价该训练后的神经网络的精确度,或者将输入数据输入到训练后的神经网络,测试训练后的神经网络的运行时间等。
在一些实施例中,N个神经网络可以是人工构建的1个或多个神经网络,也可以是计算设备一个随机生成的一个或多个神经网络。
在另一些实施例中,N个神经网络还可以是从随机生成的M个神经网络筛选出的N个神经网络,M为不小于N的正整数。计算设备获取N个神经网络的一种实现可以包括但不限于如下步骤:
S6021:计算设备随机生成M个神经网络,M为正整数。
其中,随机生成M个神经网络的具体实现可以参见下述随机生成神经网络的方法实施例中相关描述,此处不再赘述。
S6022:计算设备通过所述数据集对M个神经网络分别进行训练和测试,得到M个神经网络中每一个神经网络对应的P个评价参数。
S6023:计算设备根据M个神经网络的中每一个神经网络对应的P个评价参数,从M个神经网络中筛选出N个神经网络,N不大于M。
在一种具体实现中,计算设备从M个神经网络中筛选出P个评价参数满足预设条件的神经网络,例如,从M个神经网络中筛选出精确度大于预设阈值(如90%),运行时间小于第一时长(如2s)的神经网络,得到N个神经网络。
S604:计算设备对N个神经网络进行K次演化,得到第K次演化得到的神经网络,K为正整数。以第i次演化为例来说明K次演化的过程,i为不大于K的正整数,第i次演化包括但不限于如下步骤:
S6042:计算设备对第i-1次演化得到的神经网络的网络结构进行变异,得到变异后的神经网络,第0次演化得到的神经网络即为N个神经网络。
其中,计算设备可以对第i-1次演化得到的神经网络中的一个或多个神经网络进行变异,也可以对第i-1次演化得到的神经网络中每一个神经网络进行变异。对神经网络进行变异的具体实现可以参见下述神经网络的变异方法实施例中相关描述,此处不再赘述。
S6044:计算设备从变异后的神经网络中筛选出网络结构优于第i-1次演化得到的神经网络的选神经网络,得到候选神经网络。
应理解,一个神经网络与其变异后得到的神经网络属于拓扑结构相近的网络。而拓扑结构相近的网络中,更宽更深的网络优于更窄更浅的网络,因此,可以基于网络的深浅和宽窄初步筛选网络,以过滤差的网络。这里,“宽”、“窄”分别形容网络的通道数;“深”、“浅”分别形容网络的层数。也就是说,拓扑结构相近的网络中,层数越多、通道数越多的网络越优。例如,对于拓扑结构相近的CNN来说,层数越多,通道数越多,网络越优;对于拓扑结构相近的ResNet来说,残差单元的个数越多、通道数越多,网络越优。
本申请实施例中,第i-1次演化得到的神经网络中的每一个神经网络都可以进行变异,在针对其中一个神经网络变异后的神经网络进行筛选时,仅保留网络结构优于变异前的神经网络的网络,作为候选神经网络。应理解,候选神经网络即为筛选出的神经网络,包括至少一个神经网络。
可见,本申请实施例中,通过对神经网络进行变异,以产生与其拓扑结构相近的神经网络,利用拓扑结构相近的神经网络具备的特性,对神经网络的搜索空间进行剪枝,减少了需要训练和测试的神经网络的数量,提高自动机器学习的效率。
S6046:计算设备对候选神经网络中每一个神经网络进行训练和测试,得到候选神经网络中每一个神经网络对应的P个评价参数。P为正整数。
数据集可以划分为训练数据集和测试数据集。计算设备通过训练数据集对候选神经网络中的每一个神经网络进行训练,进而,利用测试数据集对训练后的神经网络进行评估,得到每一个神经网络分别对应的P个评价参数。评价参数用于评价通过训练数据集训练后的神经网络的性能,如,精确度、运行时间、参数量等中至少一种。
S6048:计算设备根据第i-1次演化得到的神经网络和候选神经网络的集合中每一个神经网络对应的P个评价参数,从该集合中筛选出第i次演化得到的神经网络。
在S6048之后,计算设备可以判断i是否等于K,即判断第i次演化是否为最后一次演化,如果是,则输出第K次演化得到的神经网络,否则,另i=i+1,重复执行S6042,以基于第i次演化得到的神经网络进行下一次演化。在本申请另一实施例中,也可以判断第i次演化得到的神经网络的评价参数是否满足条件,比如,第i次演化得到的神经网络的精确度是否都大于预设精确度且其运行时间都小于预设时长,如果是,则输出第K次演化得到的神经网络,否则,另i=i+1,重复执行S6042。其中,预设精确度和预设时长可以是客户设定的,由客户设备发送给计算设备的,用于指示其需要的目标神经网络的精确度、运行时间等。
应理解,第K次演化得到的神经网络可以是训练后的神经网络。计算设备可以根据客户对神经网络的P个评价参数的要求,从第K次演化得到的神经网络中或从第K次演化得到的神经网络分别与特征工程模块、数据预处理模块的组合得到的神经网络中选择满足客户要求的目标神经网络,进而,向客户设备发送该神经网络;计算设备也可以将第K次演化得到的神经网络或第K次演化得到的神经网络分别与特征工程模块、数据预处理模块的组合得到的神经网络作为目标神经网络发送至客户设备,此处不作限定。目标神经网络可以是场景A中物体识别神经网络,此时,数据集包括多个样本,每一个样本包括样本图像还该样本图像对应的物体类型。目标神经网络也可以是上述场景B中手势识别神经网络,此时,数据集包括多个样本,每一个样本包括样本图像还该样本图像对应的手势类型。
下面着重介绍S6048的具体实现方式:
应理解,第i-1次演化得到的神经网络在第i-1次演化过程中已经进行训练和测试,并得到第i-1次演化得到的神经网络中每一个神经网络对应的P个评价参数。应理解,第0次演化得到的神经网络为上述N个神经网络,在第一次演化过程中或第一次演之前,计算设备可以通过训练数据集对N个神经网络中的每一个神经网络进行训练,进而,利用测试数据集对训练后的神经网络进行评估,得到N个神经网络中每一个神经网络分别对应的P个评价参数。
在一种实现中,P=1,例如,P个评价参数为精确度。此时,可以根据精确度的高低从集合中筛选出第i次演化得到的神经网络,例如,从集合中筛选出精确度最高的前Q个神经网络作为第i次演化得到的神经网络;又例如,从集合中筛选出精确度大于预设值,如90%的神经网络作为第i次演化得到的神经网络。
在另一种实现中,P>1,计算设备根据集合中每一个神经网络对应的P个评价参数对该集合中的神经网络进行非主导排序;进而,确定第i次演化得到的神经网络为该集合中不被主导的神经网络。其中,主导的神经网络对应的P个评价参数中每一个评价参数都不劣于被主导的神经网络且所述主导的神经网络对应的P个评价参数中至少存在一个评价参数优于所述被主导的神经网络。例如,P个评价参数为精确度和运行时间,神经网络A和神经网络B是几何中的两个神经网络,在神经网络A、神经网络B满足如下2个条件中的至少一个,则神经网络A主导神经网络B:
①神经网络A的精确度高于神经网络B的精确度且神经网络A的运行时间不高于神经网络B的运行时间;
②神经网络A的运行时间低于神经网络B的运行时间且神经网络A的精确度不低于神经网络B。
在一种具体实现中,在第i-1次演化得到的神经网络中的每一个神经网络都不被第i-1次演化得到的神经网络中的其他神经网络所主导,此时,也称为第i-1次演化得到的神经网络为处于帕雷托前沿的神经网络。如图6B所示为,计算设备从该集合中筛选出第i次演化得到的神经网络的一种实现方式的流程示意图,该实现方式可以包括但不限于如下步骤:
S60481:确定从候选神经网络中的第j个神经网络,其中,j为正整数,j不大于候选神经网络中的神经网络的总数。
S60482:判断第j个神经网络与帕雷托前沿中的第k个神经网络的主导关系,其中,k为正整数,k不大于第i-1次演化得到的神经网络中的神经网络的总数。如果第k个神经网络主导第j个神经网络,第j个神经网络不可能处于帕雷托前沿,此时,不必将第j个神经网络与帕雷托前沿中的神经网络一一比较,则令j=j+1,重复执行S60482。如果第j个神经网络主导第k个神经网络,则执行S60483;如果第j个神经网络不主导第k个神经网络且第k个神经网络也不主导第j个神经网络,则执行S60484。
其中,在j=1,k=1时,帕雷托前沿中的神经网络即为第i-1次演化得到的神经网络。
当判断第j个神经网络与第k个神经网络的主导关系时,若第j个神经网络对应的P个评价参数中每一个评价参数都不劣于第k个神经网络且第j个神经网络对应的P个评价参数中存在至少一个评价参数优于第k个神经网络,则第j个神经网络主导第k个神经网络;反之,当判断第k个神经网络与第j个神经网络的主导关系时,若第k个神经网络对应的P个评价参数中每一个评价参数都不劣于第j个神经网络且第k个神经网络对应的P个评价参数中存在至少一个评价参数优于第j个神经网络,则第k个神经网络主导第j个神经网络;若第j个神经网络对应的P个评价参数中存在至少一个评价参数不劣于第k个神经网络且第k个神经网络对应的P个评价参数中存在至少一个评价参数不劣于第j个神经网络,那么,第j个神经网络与第k个神经网络互不主导。
S60483:将第k个神经网络从当前帕雷托前沿中删除。
S60484:判断第k个神经网络是否为帕雷托前沿中的最后一个网络,如果否,则需要继续将第j个神经网络与帕雷托前沿中的下一个网络进行比较,此时,令k=k+1,重复执行S60482;否则,第k个神经网络为帕雷托前沿中的最后一个网络,执行S60485。
S60485:将第j个神经网络加入到帕雷托前沿。
步骤S60485之后,进一步地,执行S60486。
S60486:判断第j个神经网络是否为候选神经网络中的最后一个网络,如果是,则第i次演化完成,可基于第i次演化得到的神经网络进行下一次演化;否则,则令j=j+1,重复执行S60482。
例如,以P个评价参数为精确度和运行时间为例来说明,若候选神经网络中神经网络NN1运行时间比帕雷托前沿上的神经网络NN2运行时间短且准确度高,则该神经网络NN1主导了排雷托前沿上的神经网络NN2,则将被主导的神经网络NN2从帕雷托前沿上去除,而将主导的神经网络NN1添加到帕雷托前沿;若神经网络NN1既不主导帕雷托前沿上的神经网络,也不被帕雷托前沿上的神经网络主导,则该神经网络NN1是一个新的帕雷托最优,直接将该神经网络NN1添加到帕雷托前沿;若神经网络NN1被帕雷托前沿上的神经网络主导,则不更新帕雷托前沿。
需要说明的是,在经过多次演化后,得到的神经网络越来越优。在经过固定次数(比如K=10次)演化后,或者,在K次演化后得到的神经网络的P个评价参数满足客户要求时,可以停止演化,输出第K次演化得到的神经网络。
而且,本申请实施例中采用了多目标优化方案,可以其得到的第K次演化得到的神经网络可以到达P个评价参数的平衡,进而,避免一个得到的第K次演化得到的神经网络中一个评价参数优,而其他评价参数差的情况。
下面以ResNet和CNN为例介绍本申请实施例涉及的随机生成神经网络的方法和对神经网络的变异方法。
上述第K次演化得到的神经网络是在搜索空间中通过上述实施例一所述的神经网络的搜索方法确定的网络。其中,搜索空间是通过基本单元和该基本单元的参数构建的,搜索空间用于搜索第K次演化得到的神经网络,该基本单元的参数包括基本单元的类型、通道数参数和尺寸参数中的至少一项,基本单元用于对输入该基本单元的特征图进行第一操作和第二操作,第一操作用于将输入基本单元的特征图的个数加倍或保持不变,第二操作用于将输入该基本单元的特征图的尺寸从原来的第一尺寸变为第二尺寸或维持第一尺寸不变,第一尺寸大于第二尺寸。这里尺寸可以是指特征图的边长或面积。通道数参数用于指示经过基本单元处理后的特征图的个数的变化,如加倍、保持不变;尺寸参数用于指示经过基本单元处理后的特征图的尺寸的变化,如缩小一倍、保持不变等。
在一些实施例中,神经网络可以是ResNet,基本单元也称为残差单元,ResNet可以包括多个残差单元和至少一个全连接层,每一个残差单元可以有至少两个(比如3)个卷积层组成,其中,全连接层的个数可以是预先设定的或变化的,此处不作限定。利用残差单元的参数对ResNet的网络结构进行编码。例如,通过有序的符号来指代ResNet中各个残差单元的次序,编码为“1”的残差单元,表示该残差单元的通道数保持不变,编码为“2”的残差单元表示该残差单元的通道数加倍,前方编码了“-”的残差单元表示,将该残差单元的特征图尺寸缩小一半。例如,编码“121-211-121”的ResNet的网络结构如图7所示。其中,图7中通过一个残差单元的宽度反映其通道的多少,一个残差单元的长度反映其特征图的尺寸。
利用若干个“1”、“2”和“-”的组合就得到一个ResNet。计算设备随机生成ResNet的过程,可以转换为随机生成字符串的过程。应理解,计算设备在随机生成字符串时,需要添加约束条件,或者需要对随机生成的字符串进行过滤,以去除不符合要求的ResNet。例如两个字符“-”不可能连续排列。
计算设备针对一个ResNet可以变异产生多个变异后的ResNet,其中,每一个变异后的神经网络都是ResNet通过一次变异产生的。本申请实施例中,计算设备对ResNet进行一次变异具体可以是如下实现方式中的一种:
(1)随机将一个残差单元的通道数由保持不变改变为通道数加倍,具体实现方式可以是随机将该ResNet的编码中的一个“1”变换成“2”。例如,如图7所示,将(a)图所示的ResNet第6个残差单元的通道数由原来的通道数保持不变改为通道数加倍,则编码“121-111-211”的ResNet变异为编码为“121-212-111”的ResNet,如(b)图所示,应理解,位于第6个残差单元后的所有残差单元的通道数在原来的基础上加倍。
(2)随机将一个残差单元的通道数由通道数加倍改变为通道数保持不变,具体实现方式可以是随机将该ResNet的编码中的一个“2”变换成“1”。例如,如图7所示,将(a)图所示的ResNet第7个残差单元的通道数由原来的通道数加倍改为通道数保持不变,则编码“121-211-111”的ResNet变异为编码为“121-111-111”的ResNet,如(c)图所示,应理解,位于第7个残差单元后的所有残差单元的通道数在原来的基础上减小50%。
(3)将一个残差单元的步长由原来的2变换为1,将另一个残差单元的步长由原来的1变为2,具体实现方式可以是随机改变ResNet的编码中的一个“-”的位置。如图7所示,将(a)图所示的编码为“121-211-111”的ResNet中第7个残差单元的步长由2变为1,而将第8个残差单元的步长由1变为2,得到变异后的ResNet,即编码为“121-1112-11”的ResNet,如(d)图所示。其中,残差单元的步长是由其包括的至少两层卷积层分别对应的卷积核的步长决定,例如,假设残差单元包括两层卷积层,每一层卷积层的对应的卷积核的步长1,则残差单元的步长为1;若将该残差单元的步长变为2,则需要将该两层卷积层中一层卷积层的步长改为2,若第一层卷积层步长改为2。
(4)在该ResNet中随机插入一个通道数不变的残差单元,具体实现方式可以是在该ResNet的编码中随机插入一个“1”,例如,如图7所示,将(a)图所示的ResNet第9个残差单元增加一个通道数不变的残差单元,即将编码为“121-111-211”的ResNet变异为编码为“121-111-2111”的ResNet,如(e)图所示。
(5)在该ResNet中随机删除一个通道数不变的残差单元,具体实现方式可以是在该ResNet的编码中随机删除一个“1”。例如,如图7所示,将(a)图所示的ResNet第5个残差单元删除,编码为“121-111-211”的ResNet变异为编码为“121-11-211”的ResNet,如(f)图所示。
不限于上述5中变异方式,本申请实施例还可以包括其他变异方式,例如,在ResNet的编码中随机增加一个“-”或随机减少一个“-”;又例如,在ResNet的编码中随机删除一个“2”或随机增加一个“2”等,其变异后的ResNet的具体结构,可参照各个残差单元的编码的含义来推断,此处不再赘述。
在一些实施例中,神经网络可以是卷积神经网络,基本单元可以称为层结构,该卷积神经网络由卷积层、池化层、全连接层组成。其中,全连接层的个数可以是预先设定的或变化的,此处不作限定。利用层结构的参数对CNN的网络结构进行编码,其中层结构可以是卷积层或池化层。例如,通过有序的符号来指代CNN中各个层结构的次序;编码为“1”的层结构,表示该层结构为卷积层且通道数保持不变;编码为“2”的层结构表示该层结构为卷积层且通道数加倍;前方编码了“-”的层结构表示该层结构中卷积核的步长由1变为2;编码为“3”的层结构表示该层结构为池化层,的特征图尺寸缩小一半;编码为“3”“4”、“5”的层结构表示该层结构为池化层,其中,编码为“3”的池化层采用平均池化,编码为“4”的池化层采用平均池化、编码为“5”的池化层采用LP池化。在本申请实施例中,以池化层选择对输入图像中2×2的区域进行池化操作,其作用是减小卷积产生的特征图的尺寸为原来的1/4为例来说明,在本申请其他实现方式中,还可以对其他种类的池化层进行编码,也可以通过编码区分池化操作的选择的区域,此处不作限定。
例如,编码“121-113-211”的CNN的网络结构如图8所示。其中,图8中通过一个层结构的宽度反映其通道的多少,一个层结构的长度反映其特征图的尺寸。
利用若干个“1”、“2”、“-”、“3”、“4”、“5”的组合就得到一个CNN。计算设备随机生成CNN的过程,可以转换为随机生成字符串的过程。应理解,计算设备在随机生成字符串时,需要添加约束条件,或者需要对随机生成的字符串进行过滤,以去除不符合要求的CNN。例如两个字符“-”不可能连续排列,“-”之后不会邻接“3”,池化层也不会连续出现,即“3”、“4”、“5”不相邻。
计算设备针对一个CNN可以变异产生多个变异后的CNN,其中,每一个变异后的神经网络都是CNN通过一次变异产生的。本申请实施例中,计算设备对CNN进行一次变异具体可以是如下实现方式中的一种:
(1)随机将CNN中一层卷积层的通道数由保持不变改变为通道数加倍,具体实现方式可以是随机将该CNN的编码中的一个“1”变换成“2”。例如,如图8所示,将(a)图所示的CNN第8个层结构的通道数由原来的通道数保持不变改为通道数加倍,则编码“121-113-211”的CNN变异为编码为“121-113-212”的CNN,如(b)图所示,应理解,位于第8个层结构后的所有层结构的通道数在原来的基础上加倍。应理解,也可以随机将CNN中的多个卷积层的通道数加倍,本申请实施例作限定。
(2)随机将CNN中一层卷积层的通道数由通道数加倍改变为通道数保持不变,具体实现方式可以是随机将该CNN的编码中的一个“2”变换成“1”。例如,如图8所示,将(a)图所示的CNN第7个层结构的通道数由原来的通道数加倍改为通道数保持不变,则编码“121-113-211”的CNN变异为编码为“121-113-111”的CNN,如(c)图所示,应理解,位于第7个层结构后的所有层结构的通道数在原来的基础上减小50%。
(3)随机将CNN中的两层卷积层的位置进行交换,具体的实现可以是随机交换CNN的编码中一个符合“1”和一个符号“2”之间的位置,得到变异后的CNN的编码。例如,编码“121-113-211”的CNN通过该变异过程,得到变异后的CNN的编码为“121-113-211”。
(4)随机将CNN中一层卷积层的步长由原来的2变换为1,将另一层卷积层的步长由原来的1变为2,具体实现方式可以是随机将CNN的编码中的一个符号“-”的位置从一层卷积层之前移动到另一层卷积层之前。如图8所示,将(a)图所示的编码为“121-123-211”的CNN中第3个层结构的步长由2变为1,而将第4个层结构的步长由1变为2,得到变异后的CNN,即编码为“121-1132-11”的CNN,如(d)图所示。
(5)随机将CNN中一层或多层卷积层的步长加倍,具体实现方式可以是将CNN的编码中随机插入一个或多个符号“-”,插入符号“-”后的CNN编码中不包括两个相邻的符号“-”,且符号-”之后不会邻接“3”。
(6)随机变换CNN中一层卷积层和一个池化层的位置,应理解,池化层不位于CNN的初始位置,编码为“121-123-211”的CNN中第5个卷积层与第1个池化层的位置进行交换,得到变异后的编码为“121-132-211”的CNN。
(7)在该CNN中随机插入一层卷积层,该插入的卷积层可以是通道数不变的卷积层,也可以是通道数加倍的卷积层,具体实现方式可以是在该CNN的编码中随机插入一个“1”或“2”,例如,如图8所示,将(a)图所示的CNN的编码中第5个卷积层后增加一个“1”,即将编码为“121-113-211”的CNN变异为编码为“121-1131-211”的CNN,如(e)图所示。
(8)在该CNN中随机删除一层卷积层,该卷积层可以是通道数不变的卷积层,也可以是通道数加倍的卷积层,具体实现方式可以是:在该CNN的编码中随机删除一个“1”或“2”。例如,将CNN第8个层结构删除,编码为“121-123-211”的CNN变异为编码为“121-21-11”的CNN,如(f)图所示。将CNN的编码中随机删除一个或多个符号“1”,或,随机删除一个或多个符号“2”。
(9)在该CNN中随机增加一个或多个池化层,或者随机删除一个或多个池化层,应理解,不会在池化层的之前后之后增加一个池化层,也就是说,变异后的CNN不会出现两个池化层相邻的情况,具体实现方式可以是:在该CNN的编码中随机删除一个“3”或随机增加一个“3”,得到变异后的CNN,应理解,增加在“3”之前或之后的“3”得到的CNN需要被过滤掉。如图8所示,将(a)图所示的CNN中CNN第8个层结构后增加一个池化层,即编码为“121-113-211”的CNN变异为编码为“121-113-2131”的CNN,如(f)图所示。
不限于上述变异操作,CNN还可以包括其他变异操作,此处不再赘述。
需要说明的是,上述ResNet中的残差单元可以包括普通卷积层、空洞卷积层、深度可分类卷积层、全连接层等中的一个或多个。上述CNN中的卷积层可以是普通卷积层、空洞卷积层、深度可分类卷积层等。ResNet中各个残差单元的内部网络结构可以相同或不同,CNN中的各个卷积层的种类可以相同或不同,本申请实施例不作限定。
在一种实现中,上述ResNet中的残差单元可以仅包括普通卷积层或包括普通卷积层与全连接层的组合;上述CNN的卷积层可以是普通卷积层,而不包括空洞卷积层、深度可分类卷积层,以避免NPU芯片不支持空洞卷积层、深度可分类卷积层,所导致的神经网络搜索方法无法应用于硬件平台,以使本申请提供的神经网络搜索方法可以普遍应用于各个设备或平台。
实施例二
在计算设备得到目标神经网络模型后,可以将目标神经网络模型发送给客户设备或用户设备,进而,客户设备和用于设备可以基于该目标神经网络模型实现相应的功能。
在一个实施例中,如图2A所示的场景A,本申请实施例的神经网络的搜索方法可以应用于自动驾驶领域,例如,车辆通过摄像头获取图像,以实时观测车辆周围环境中的障碍物,进而,车辆或与车辆通信连接的设备可以基于识别到的周围环境中物体,做出决策,以安全驾驶。如图9A所示,为本申请实施例提供的一种物体识别方法,该物体识别方法可以由如图2A中车辆、图3中客户设备31或用户设备34执行,该方法包括但不限于如下步骤:
S902:获取待识别图像。
S904:将待识别图像输入到物体识别神经网络,得到待识别图像对应的物体类型。
在一些实施例中,该待识别图像可以是车辆通过摄像头获取的周围环境的图像,通过物体识别神经网络对该待识别图像进行处理,以识别车辆的周围环境中的物体。
其中,物体识别神经网络可以是在搜索空间中通过上述实施例一所述的神经网络的搜索方法确定的网络,此时,上述实施例一中的数据集中的每一个样本包括样本图像和该样本图像对应的物体类型。
其中,搜索空间是通过基本单元和该基本单元的参数构建的,搜索空间用于搜索物体识别神经网络,该基本单元的参数包括基本单元的类型、通道数参数和尺寸参数等中的至少一项,基本单元用于对输入该基本单元的特征图进行第一操作和第二操作,此处特征图为待识别图像的特征图,第一操作用于将输入基本单元的特征图的个数加倍或保持不变,第二操作用于将输入该基本单元的特征图的尺寸从原来的第一尺寸变为第二尺寸或维持第一尺寸不变,第一尺寸大于第二尺寸,例如第一尺寸为第二尺寸的2倍,这里尺寸是指特征图的边长。通道数参数用于指示经过基本单元处理后的特征图的个数的变化,如加倍、保持不变;尺寸参数用于指示经过基本单元处理后的特征图的尺寸的变化,如缩小一倍、保持不变等。
在一种实现中,搜索空间中的神经网络可以是ResNet,此时,基本单元也称为残差单元,残差单元可以是至少2个是卷积层构成等。残差单元还包括残差模块,该残差模块用于将输入残差单元的特征图与所述输入残差单元的特征图经过残差单元处理后的特征图进行相加,并将相加结果输入到下一个残差单元。本申请实施例中,可以通过对残差单元进行编码构建神经网络,通过变异扩展搜索空间,具体实现可以参见上述图7中相关描述,此处不再赘述。
在一种实现中,搜索空间中的神经网络可以是CNN,此时,基本单元也称为层结构,层结构可以是卷积层、池化层等。可以通过编码构建神经网络,通过变异扩展搜索空间,具体实现可以参见上述图8中相关描述,此处不再赘述。
实施例三
在一个实施例中,如图2B所示的场景B,本申请实施例的神经网络的搜索方法可以应用于图像识别领域,例如,用户设备通过摄像头获取图像,进而,可以基于识别到的周围环境中物体,做出决策,以安全驾驶。如图9B所示,为本申请实施例提供的一种手势识别方法,该手势识别方法可以由如图2B中监控器、手机、智能电视等用户设备、图3中客户设备31或用户设备34执行,该方法包括但不限于如下步骤:
S906:获取待识别图像。
S908:将待识别图像输入到手势识别神经网络,以得到待识别图像对应的手势类型。
进一步地,用户设备还可以根据手势类型,执行该识别到的手势类型对应的操作,例如识别到第一手势时,打开音乐播放器;又例如,在来点时,若识别到第二手势时,则接通电话等。
其中,手势识别神经网络可以是在搜索空间中通过上述实施例一所述的神经网络的搜索方法确定的网络,此时,上述实施例一中的数据集中的每一个样本包括样本图像和该样本图像对应的手势类型。
同上述实施例二,本申请实施例中搜索空间是通过基本单元和该基本单元的参数构建的,搜索空间用于搜索物体识别神经网络,该基本单元的参数包括基本单元的类型、通道数参数和尺寸参数中的至少一项,基本单元用于对输入该基本单元的特征图进行第一操作和第二操作,此处特征图为待识别图像的特征图,第一操作用于将输入基本单元的特征图的个数加倍或保持不变,第二操作用于将输入该基本单元的特征图的尺寸从原来的第一尺寸变为第二尺寸或维持第一尺寸不变,第一尺寸大于第二尺寸,例如,第一尺寸为第二尺寸的2倍,这里尺寸是指特征图的边长。通道数参数用于指示经过基本单元处理后的特征图的个数的变化,如加倍、保持不变;尺寸参数用于指示经过基本单元处理后的特征图的尺寸的变化,如缩小一倍、保持不变等。
在一种实现中,搜索空间中的神经网络可以是ResNet,此时,基本单元也称为残差单元,残差单元可以是至少2个是卷积层构成等。残差单元还包括残差模块,该残差模块用于将输入残差单元的特征图与所述输入残差单元的特征图经过残差单元处理后的特征图进行相加,并将相加结果输入到下一个残差单元。本申请实施例中,可以通过对残差单元进行编码构建神经网络,通过变异扩展搜索空间,具体实现可以参见上述图7中相关描述,此处不再赘述。
在一种实现中,搜索空间中的神经网络可以是CNN,此时,基本单元也称为层结构,层结构可以是卷积层、池化层等。可以通过编码构建神经网络,通过变异扩展搜索空间,具体实现可以参见上述图8中相关描述,此处不再赘述。
需要说明的是,上述实施例二和实施例三中关于场景的描述可分别参见上述场景A或场景B中相关描述,此处不再赘述。
下面结合场景A和场景B介绍应用本申请中神经网络搜索的方法得到的模型。
图10A中横轴是架构在芯片平台的运行时间,纵轴是在数据集(ImageNet)上的top1精度。ResNet18是专家模型在芯片平台的运行时间和在数据集(ImageNet)上的top1精确度(训练40个epochs)。其他点是我们找到的在相同运行速度下找到的最好的模型。从图10A中可以看出,线框1001里的所有模型都在速度以及精确度上优于现有的ResNet18模型。以线框1001中最左侧的点为例,在保证相同的精确度的情况下,我们搜索的模型的速度是4.42毫秒一张,而ResNet是8.11毫秒一张。速度快了近2倍。由此可看出我们针对硬件平台设计的搜索空间确实可以搜索出很多比专家模型运行更快,精确更高的架构。如下为线框1001中的一些ResNet和专家模型ResNet18,在数据集(ImageNet)上完整训练,得到的模型的运行时间、Top-1精确度和Top-5精确度的比对表,如表1:
Figure BDA0002297703490000241
Figure BDA0002297703490000251
表1
从表1可以看出应用本申请中神经网络搜索的方法得到的模型经过完整训练均比原来的ResNet18更快更好。最快的模型从8.11毫秒缩短到4.29毫秒(速度提升48%),精度还有0.28%的提升。而且,这些模型只用了conv1x1以及conv3x3的常用操作(ResNet18里有的),没有使用特别的卷积操作,对硬件友好。
图10B中横轴是模型的参数量,纵轴是在数据集(ImageNet)上的top1精度。点B和点C分别是ResNet18-1/4和ResNet18-1/8是专家模型。其他点通过本申请神经网络搜索的方法得到的模型。从图10B中可以看出,线框1002里的所有模型都在速度以及精确度上优于现有的是ResNet18-1/8模型;线框1003的所有模型都在速度以及精确度上优于ResNet18-1/4模型。
有上述场景A和场景B可见,本申请实施例提供的神经网络搜索的方法在不同的场景下都能有效地提高专家模型的结果,该方法具有一定的通用性。
下面介绍本申请实施例涉及的装置、设备。
如图11所示,为本申请实施例提供的一种神经网络的搜索装置,该装置1100可以是图3所示的系统中的计算设备32,该装置1100可以包括但不限于如下功能单元:
获取模块1110,用于获取数据集和N个神经网络,N为正整数;
演化模块1120,用于对所述N个神经网络进行K次演化,得到第K次演化得到的神经网络,K为正整数;
其中,所述演化模块1120包括变异单元1121、第一筛选单元1122和第二筛选单元1123,其中,
所述变异单元1121用于:在第i次演化过程中,对第i-1次演化得到的神经网络的网络结构进行变异,得到变异后的神经网络;
所述第一筛选单元1122用于:在第i次演化过程中,从所述变异后的神经网络中筛选出网络结构优于所述第i-1次演化得到的神经网络的神经网络,得到候选神经网络;
所述第二筛选单元1123用于:在第i次演化过程中,根据所述第i-1次演化得到的神经网络和所述候选神经网络的集合中每一个神经网络对应的P个评价参数,从所述集合中筛选出第i次演化得到的神经网络;其中,所述P个评价参数用于评价所述集合中每一个神经网络的通过所述数据集训练和测试后的神经网络的性能,i、P为正整数,1≤i≤K。
在一种可能的实现中,所述变异单元1121具体用于对所述第i-1次演化得到的神经网络中的第一神经网络进行变异,所述变异单元1121在对所述第i-1次演化得到的神经网络中的第一神经网络进行变异执行如下至少一个步骤:
将所述第i-1次演化得到的神经网络中的一个或多个神经网络中的两层卷积层的位置进行交换;
将所述第i-1次演化得到的神经网络中的一个或多个神经网络中的一层或多层卷积层的通道数加倍;
在所述第i-1次演化得到的神经网络中的一个或多个神经网络中的一层或多层卷积层的卷积核的步长加倍;
在所述第i-1次演化得到的神经网络中的一个或多个神经网络中插入一层或多层卷积层;
在所述第i-1次演化得到的神经网络中的一个或多个神经网络中删除一层或多层卷积层;
在所述第i-1次演化得到的神经网络中的一个或多个神经网络中插入一层或多层池化层;
在所述第i-1次演化得到的神经网络中的一个或多个神经网络中删除一层或多层池化层。
在一种可能的实现中,所述变异单元1121具体用于对所述第i-1次演化得到的神经网络中的第一神经网络进行变异,所述变异单元1121在对所述第i-1次演化得到的神经网络中的第一神经网络进行变异执行如下至少一个步骤:
将所述第i-1次演化得到的神经网络中的一个或多个神经网络中的两个残差单元的位置进行交换;
将所述第i-1次演化得到的神经网络中的一个或多个神经网络中的一个或多个残差单元的通道数加倍;
在所述第i-1次演化得到的神经网络中的一个或多个神经网络中的一个或多个残差单元的卷积核的步长加倍;
在所述第i-1次演化得到的神经网络中的一个或多个神经网络中插入一个或多个残差单元;
在所述第i-1次演化得到的神经网络中的一个或多个神经网络中删除一个或多个残差单元。
在一种可能的实现中,所述第一筛选单元1122具体用于:从所述第一神经网络变异后的神经网络中筛选出网络结构优于所述第一神经网络的神经网络,候选神经网络包括所述第一神经网络变异后的神经网络中网络结构优于所述第一神经网络的神经网络,所述第一神经网络为所述第i-1次演化得到的神经网络中的任意一个神经网络。
在一种可能的实现中,在满足如下条件中的至少一种时,所述第一神经网络变异后的神经网络的网络结构优于所述第一神经网络的网络结构:
所述第一神经网络变异后的神经网络的通道数大于所述第一神经网络的通道数;
所述第一神经网络变异后的神经网络中卷积层的层数大于所述第一神经网络中是卷积层的层数。
在一种可能的实现中,所述第二筛选单元1123具体用于:根据所述集合中每一个神经网络对应的P个评价参数对所述集合中的神经网络进行非主导排序;确定所述第i次演化得到的神经网络为所述集合中不被主导的神经网络;其中,第二神经网络和第三神经网络为所述集合中的两个神经网络,若针对所述P个评价参数中每一个评价参数所述第二神经网络都不劣于所述第三神经网络且针对所述P个评价参数中的至少一个评价参数所述第二神经网络优于所述第三神经网络时,则所述第二神经网络主导所述第三神经网络。
在一种可能的实现中,所述获取模块1110具体用于:随机生成M个神经网络,M为正整数;通过所述数据集对所述M个神经网络分别进行训练和测试,得到所述M个神经网络中每一个神经网络对应的P个评价参数;以及,根据所述M个神经网络的中每一个神经网络对应的P个评价参数,从所述M个神经网络中选出N个神经网络,N不大于M。
在一种可能的实现中,所述P个评价参数包括运行时间、精确度、参数量中的至少一个。
需要说明的是,上述各个单元的具体实现可以参见上述实施例一所述的神经网络搜索方法中相关描述,此处不再赘述。
如图12A所示为本申请实施例提供的一种物体识别装置,该装置1200可以是图3所示的系统中客户设备31或用户设备34,该装置1200可以包括但不限于如下功能单元:
获取单元1210,用于获取待识别图像,所述待识别图像为车辆的周围环境的图像;
识别单元1220,用于将所述待识别图像输入到物体识别神经网络,得到所述待识别图像对应的物体类型;
其中,所述物体识别神经网络是在搜索空间中通过如实施例一所述的神经网络的搜索方法确定的网络,所述搜索空间是通过基本单元和所述基本单元的参数构建的。
可选地,所述基本单元的参数包括基本单元的类型、通道数参数和尺寸参数中的至少一项。
可选地,所述基本单元用于对输入所述基本单元的特征图进行第一操作和第二操作,所述特征图为所述待识别图像的特征图,所述第一操作用于将输入所述基本单元的特征图的个数加倍或保持不变,所述第二操作用于将输入所述基本单元的特征图的尺寸从原来的第一尺寸变为第二尺寸或维持所述第一尺寸不变,所述第一尺寸大于所述第二尺寸。
需要说明的是,上述各个单元的具体实现可以参见上述实施例二所述的物体识别方法中相关描述,此处不再赘述。
如图12B所示为本申请实施例提供的一种手势识别装置,该装置1201可以是图3所示的系统中客户设备31或用户设备34,该装置1201可以包括但不限于如下功能单元:
获取单元1230,用于获取待识别图像;
识别单元1240,用于将所述待识别图像输入到的手势识别神经网络,得到所述待识别图像中的手势类型;
其中,所述手势识别神经网络是在搜索空间中通过实施例一中所述的神经网络的搜索方法确定的网络,所述搜索空间是通过基本单元和所述基本单元的参数构建的。
可选地,所述基本单元的参数包括基本单元的类型、通道数参数和尺寸参数中的至少一项。
可选地,所述基本单元用于对输入所述基本单元的特征图进行第一操作和第二操作,所述特征图为所述待识别图像的特征图,所述第一操作用于将输入所述基本单元的特征图的个数加倍或保持不变,所述第二操作用于将输入所述基本单元的特征图的尺寸从原来的第一尺寸变为第二尺寸或维持所述第一尺寸不变,所述第一尺寸大于所述第二尺寸,在一个示例中,所述第一尺寸是所述第二尺寸的2倍。
需要说明的是,上述各个单元的具体实现可以参见上述实施例三所述的手势识别方法中相关描述,此处不再赘述。
图13是本申请实施例提供的一种神经网络的搜索装置的硬件结构示意图。图13所示的神经网络的训练装置1300(该装置1300具体可以是一种计算机设备)可以包括存储器1301、处理器1302、通信接口1303以及总线1304。其中,存储器1301、处理器1302、通信接口1303通过总线1304实现彼此之间的通信连接。
存储器1301可以是只读存储器(Read Only Memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(Random Access Memory,RAM)。存储器1301可以存储程序,当存储器1301中存储的程序被处理器1302执行时,处理器1302和通信接口1303用于执行本申请实施例的神经网络的搜索方法中的全部或部分步骤。
处理器1302可以采用通用的中央处理器(Central Processing Unit,CPU),微处理器,应用专用集成电路(Application Specific Integrated Circuit,ASIC),图形处理器(graphics processing unit,GPU)或者一个或多个集成电路,用于执行相关程序,以实现本申请实施例的神经网络的训练装置中的单元所需执行的功能,或者执行本申请方法实施例一中的神经网络的搜索方法中的全部或部分步骤。
处理器1302还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本申请的神经网络的训练方法的各个步骤可以通过处理器1302中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1302还可以是通用处理器、数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(ASIC)、现成可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1301,处理器1302读取存储器1301中的信息,结合其硬件完成本申请实施例的神经网络的搜索装置中包括的单元所需执行的功能,或者执行本申请方法实施例的神经网络的搜索方法中的全部或部分步骤。
通信接口1303使用例如但不限于收发器一类的收发装置,来实现装置1300与其他设备或通信网络之间的通信。例如,可以通过通信接口1303获取数据集。
总线1304可包括在装置1300各个部件(例如,存储器1301、处理器1302、通信接口1303)之间传送信息的通路。
应理解,神经网络的搜索装置1100中的获取模块1110可以相当于神经网络搜索装置1300中的通信接口1303,演化模块1120可以相当于处理器1302。
图14为本发明实施例中一种电子设备的示意性框图;图14所示的电子设备1400(该装置1400具体可以是一种终端、车辆、服务器或者其他设备)包括存储器1401、基带芯片1402、射频模块1403、外围系统1404和传感器1405。基带芯片1402包括至少一个处理器14021,例如CPU,时钟模块14022和电源管理模块14023;外围系统1404包括摄像头14041、音频模块14042、触摸显示屏14043等,进一步地,传感器1405可以包括光线传感器14051、加速度传感器14052、指纹传感器14053等;外围系统1404和传感器1405包括的模块可以视实际需要来增加或者减少。上述任意两个相连接的模块可以具体通过总线相连,该总线可以是工业标准体系结构(英文:industry standard architecture,简称:ISA)总线、外部设备互连(英文:peripheral component interconnect,简称:PCI)总线或扩展标准体系结构(英文:extended industry standard architecture,简称:EISA)总线等。
射频模块1403可以包括天线和收发器(包括调制解调器),该收发器用于将天线接收到的电磁波转换为电流并且最终转换为数字信号,相应地,该收发器还用于将该装置1400将要输出的数字信号据转换为电流然后转换为电磁波,最后通过该天线将该电磁波发射到自由空间中。射频模块1403还可包括至少一个用于放大信号的放大器。通常情况下,可以通过该射频模块1403进行无线传输,如蓝牙(英文:Bluetooth)传输、无线保证(英文:Wireless-Fidelity,简称:WI-FI)传输、第三代移动通信技术(英文:3rd-Generation,简称:3G)传输、第四代移动通信技术(英文:the 4th Generation mobile communication,简称:4G)传输等。
触摸显示屏14043可用于显示由用户输入的信息或向用户展示信息,触摸显示屏14043可包括触控面板和显示面板,可选的,可以采用液晶显示器(英文:Liquid CrystalDisplay,简称:LCD)、有机发光二极管(英文:Organic Light-Emitting Diode,简称:OLED)等形式来配置显示面板。进一步的,触控面板可覆盖显示面板,当触控面板检测到在其上或附近的触摸操作后,传送给处理器14021以确定触摸事件的类型,随后处理器14021根据触摸事件的类型在显示面板上提供相应的视觉输出。触控面板与显示面板是作为两个独立的部件来实现装置1400的输入和输出功能,但是在某些实施例中,可以将触控面板与显示面板集成而实现装置1400的输入和输出功能。
摄像头14041用于获取图像,以输入到物体识别神经网络。应理解,此情况下,物体识别神经网络是用于实现对图像进行处理的深度神经网络。
音频输入模块14042具体可以为麦克风,可以获取语音。本身实施例中,装置1400可以将语音转换为文本,进而将该文本输入到压缩后的神经网络。应理解,此情况下,压缩后的神经网络是用于实现对文本进行处理的深度神经网络。如,对场景C中文本意别网络压缩后的神经网络。
传感器1405用于可以包括光线传感器14051、加速度传感器14052、指纹传感器14052,其中,光线传感器14051用于获取环境的光强,加速度传感器14052(比如陀螺仪等)可以获取装置1400的运动状态,指纹传感器14053可以输入的指纹信息;传感器1405感应到相关信号后将该信号量化为数字信号并传递给处理器14021做进一步处理。
存储器1401可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。存储器1401可选的还可以包括至少一个位于远离前述处理器14021的存储装置,该存储器1401可以具体包括存储指令区和存储数据区,其中,存储指令区可存储操作系统、用户接口程序、通信接口程序等程序,该存储数据区可存储该处理在执行相关操作所需要的数据,或者执行相关操作所产生的数据。
处理器14021是装置1400的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行存储在存储器1401内的程序,以及调用存储在存储器1401内的数据,执行装置1400的各项功能。可选的,处理器14021可包括一个或多个应用处理器,该应用处理器主要处理操作系统、用户界面和应用程序等。在本申请实施例中,处理器14021读取存储器1401中的信息,结合其硬件完成本申请实施例的物体识别装置1200或手势识别装置1201中包括的单元所需执行的功能,或者执行本申请方法实施例的物体识别方法或手势识别方法。
通过射频模块1403用户实现该装置1400的通信功能,具体地,装置1400可以接收图3中的客户设备31或者计算设备32发送的目标神经网络或其他数据。
图14中所述的各个功能单元的具体实现可以参见上述实施例二或实施例三中相关描述,本申请实施例不再赘述。
应注意,尽管图13和图14所示的装置1300和1400仅仅示出了存储器、处理器、通信接口,但是在具体实现过程中,本领域的技术人员应当理解,装置1300和1400还包括实现正常运行所必须的其他器件。同时,根据具体需要,本领域的技术人员应当理解,装置1300和1400还可包括实现其他附加功能的硬件器件。此外,本领域的技术人员应当理解,装置1300和1400也可仅仅包括实现本申请实施例所必须的器件,而不必包括图13和图14中所示的全部器件。
可以理解,所述装置1300相当于图3中的所述计算设备32或计算设备32中的节点,所述装置1400相当于图3中的所述述客户设备31或用户设备34。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本领域技术人员能够领会,结合本文公开描述的各种说明性逻辑框、模块和算法步骤所描述的功能可以硬件、软件、固件或其任何组合来实施。如果以软件来实施,那么各种说明性逻辑框、模块、和步骤描述的功能可作为一或多个指令或代码在计算机可读媒体上存储或传输,且由基于硬件的处理单元执行。计算机可读媒体可包含计算机可读存储媒体,其对应于有形媒体,例如数据存储媒体,或包括任何促进将计算机程序从一处传送到另一处的媒体(例如,根据通信协议)的通信媒体。以此方式,计算机可读媒体大体上可对应于(1)非暂时性的有形计算机可读存储媒体,或(2)通信媒体,例如信号或载波。数据存储媒体可为可由一或多个计算机或一或多个处理器存取以检索用于实施本申请中描述的技术的指令、代码和/或数据结构的任何可用媒体。计算机程序产品可包含计算机可读媒体。
作为实例而非限制,此类计算机可读存储媒体可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置、快闪存储器或可用来存储指令或数据结构的形式的所要程序代码并且可由计算机存取的任何其它媒体。并且,任何连接被恰当地称作计算机可读媒体。举例来说,如果使用同轴缆线、光纤缆线、双绞线、数字订户线(DSL)或例如红外线、无线电和微波等无线技术从网站、服务器或其它远程源传输指令,那么同轴缆线、光纤缆线、双绞线、DSL或例如红外线、无线电和微波等无线技术包含在媒体的定义中。但是,应理解,所述计算机可读存储媒体和数据存储媒体并不包括连接、载波、信号或其它暂时媒体,而是实际上针对于非暂时性有形存储媒体。如本文中所使用,磁盘和光盘包含压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘利用激光以光学方式再现数据。以上各项的组合也应包含在计算机可读媒体的范围内。
可通过例如一或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其它等效集成或离散逻辑电路等一或多个处理器来执行指令。因此,如本文中所使用的术语“处理器”可指前述结构或适合于实施本文中所描述的技术的任一其它结构中的任一者。另外,在一些方面中,本文中所描述的各种说明性逻辑框、模块、和步骤所描述的功能可以提供于经配置以用于编码和解码的专用硬件和/或软件模块内,或者并入在组合编解码器中。而且,所述技术可完全实施于一或多个电路或逻辑元件中。
本申请的技术可在各种各样的装置或设备中实施,包含无线手持机、集成电路(IC)或一组IC(例如,芯片组)。本申请中描述各种组件、模块或单元是为了强调用于执行所揭示的技术的装置的功能方面,但未必需要由不同硬件单元实现。实际上,如上文所描述,各种单元可结合合适的软件和/或固件组合在编码解码器硬件单元中,或者通过互操作硬件单元(包含如上文所描述的一或多个处理器)来提供。
以上所述,仅为本申请示例性的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。

Claims (22)

1.一种神经网络的搜索方法,其特征在于,包括:
计算设备获取数据集和N个神经网络,N为正整数;
所述计算设备对所述N个神经网络进行K次演化,得到第K次演化得到的神经网络,K为正整数;
其中,第i次演化包括:
所述计算设备对第i-1次演化得到的神经网络的网络结构进行变异,得到变异后的神经网络;
所述计算设备从所述变异后的神经网络中筛选出网络结构优于所述第i-1次演化得到的神经网络的神经网络,得到候选神经网络;
所述计算设备根据所述第i-1次演化得到的神经网络和所述候选神经网络的集合中每一个神经网络对应的P个评价参数,从所述集合中筛选出第i次演化得到的神经网络;其中,所述P个评价参数用于评价所述集合中每一个神经网络的通过所述数据集训练和测试后的神经网络的性能,i、P为正整数,1≤i≤K。
2.如权利要求1所述的方法,其特征在于,所述计算设备对第i-1次演化得到的神经网络的网络结构进行变异,包括如下至少一个步骤:
将所述第i-1次演化得到的神经网络中的一个或多个神经网络中的两层卷积层的位置进行交换;
将所述第i-1次演化得到的神经网络中的一个或多个神经网络中的一层或多层卷积层的通道数加倍;
在所述第i-1次演化得到的神经网络中的一个或多个神经网络中的一层或多层卷积层的卷积核的步长加倍;
在所述第i-1次演化得到的神经网络中的一个或多个神经网络中插入一层或多层卷积层;
在所述第i-1次演化得到的神经网络中的一个或多个神经网络中删除一层或多层卷积层;
在所述第i-1次演化得到的神经网络中的一个或多个神经网络中插入一层或多层池化层;
在所述第i-1次演化得到的神经网络中的一个或多个神经网络中删除一层或多层池化层。
3.如权利要求1所述的方法,其特征在于,所述第i-1次演化得到的神经网络为深度残差网络,所述计算设备对第i-1次演化得到的神经网络的网络结构进行变异,包括如下至少一个步骤:
将所述第i-1次演化得到的神经网络中的一个或多个神经网络中的两个残差单元的位置进行交换;
将所述第i-1次演化得到的神经网络中的一个或多个神经网络中的一个或多个残差单元的通道数加倍;
在所述第i-1次演化得到的神经网络中的一个或多个神经网络中的一个或多个残差单元的卷积核的步长加倍;
在所述第i-1次演化得到的神经网络中的一个或多个神经网络中插入一个或多个残差单元;
在所述第i-1次演化得到的神经网络中的一个或多个神经网络中删除一个或多个残差单元。
4.如权利要求1-3任一项所述的方法,其特征在于,所述计算设备从所述变异后的神经网络中筛选出网络结构优于所述第i-1次演化得到的神经网络的神经网络,得到候选神经网络,包括:
所述计算设备从第一神经网络变异后的神经网络中筛选出网络结构优于所述第一神经网络的神经网络,所述候选神经网络包括所述第一神经网络变异后的神经网络中网络结构优于所述第一神经网络的神经网络,所述第一神经网络为所述第i-1次演化得到的神经网络中的任意一个神经网络。
5.如权利要求4所述的方法,其特征在于,在满足如下条件中的至少一种时,所述第一神经网络变异后的神经网络的网络结构优于所述第一神经网络的网络结构:
所述第一神经网络变异后的神经网络的通道数大于所述第一神经网络的通道数;
所述第一神经网络变异后的神经网络中卷积层的层数大于所述第一神经网络中卷积层的层数。
6.如权利要求1-5任一项所述的方法,其特征在于,所述计算设备根据所述第i-1次演化得到的神经网络和所述候选神经网络的集合中每一个神经网络对应的P个评价参数,从所述集合中筛选出第i次演化得到的神经网络,具体包括:
所述计算设备根据所述集合中每一个神经网络对应的P个评价参数对所述集合中的神经网络进行非主导排序;
所述计算设备确定所述第i次演化得到的神经网络为所述集合中不被主导的神经网络;
其中,第二神经网络和第三神经网络为所述集合中的两个神经网络,若针对所述P个评价参数中每一个评价参数所述第二神经网络都不劣于所述第三神经网络且针对所述P个评价参数中的至少一个评价参数所述第二神经网络优于所述第三神经网络时,则所述第二神经网络主导所述第三神经网络。
7.如权利要求1-6任一项所述的方法,其特征在于,所述计算设备获取N个神经网络,具体包括:
所述计算设备随机生成M个神经网络,M为正整数;
所述计算设备通过所述数据集对所述M个神经网络分别进行训练和测试,得到所述M个神经网络中每一个神经网络对应的P个评价参数;
所述计算设备根据所述M个神经网络的中每一个神经网络对应的P个评价参数,从所述M个神经网络中选出N个神经网络,N不大于M。
8.如权利要求1-7任一项所述的方法,其特征在于,所述P个评价参数包括运行时间、精确度、参数量中的至少一个。
9.一种神经网络的搜索装置,其特征在于,包括:
获取模块,用于获取数据集和N个神经网络,N为正整数;
演化模块,用于对所述N个神经网络进行K次演化,得到第K次演化得到的神经网络,K为正整数;
其中,所述演化模块包括变异单元、第一筛选单元和第二筛选单元,其中,
所述变异单元用于:在第i次演化过程中,对第i-1次演化得到的神经网络的网络结构进行变异,得到变异后的神经网络,所述第0次演化得到的神经网络为所述N个神经网络;
所述第一筛选单元用于:在第i次演化过程中,从所述变异后的神经网络中筛选出网络结构优于所述第i-1次演化得到的神经网络的神经网络,得到候选神经网络;
所述第二筛选单元用于:在第i次演化过程中,根据所述第i-1次演化得到的神经网络和所述候选神经网络的集合中每一个神经网络对应的P个评价参数,从所述集合中筛选出第i次演化得到的神经网络;其中,所述P个评价参数用于评价所述集合中每一个神经网络的通过所述数据集训练和测试后的神经网络的性能,i、P为正整数,1≤i≤K。
10.如权利要求9所述的装置,其特征在于,所述变异单元具体用于执行如下至少一个步骤:
将所述第i-1次演化得到的神经网络中的一个或多个神经网络中的两层卷积层的位置进行交换;
将所述第i-1次演化得到的神经网络中的一个或多个神经网络中的一层或多层卷积层的通道数加倍;
在所述第i-1次演化得到的神经网络中的一个或多个神经网络中的一层或多层卷积层的卷积核的步长加倍;
在所述第i-1次演化得到的神经网络中的一个或多个神经网络中插入一层或多层卷积层;
在所述第i-1次演化得到的神经网络中的一个或多个神经网络中删除一层或多层卷积层;
在所述第i-1次演化得到的神经网络中的一个或多个神经网络中插入一层或多层池化层;
在所述第i-1次演化得到的神经网络中的一个或多个神经网络中删除一层或多层池化层。
11.如权利要求9所述的装置,其特征在于,所述第i-1次演化得到的神经网络为深度残差网络,所述变异单元具体用于执行如下至少一个步骤:
将所述第i-1次演化得到的神经网络中的一个或多个神经网络中的两个残差单元的位置进行交换;
将所述第i-1次演化得到的神经网络中的一个或多个神经网络中的一个或多个残差单元的通道数加倍;
在所述第i-1次演化得到的神经网络中的一个或多个神经网络中的一个或多个残差单元的卷积核的步长加倍;
在所述第i-1次演化得到的神经网络中的一个或多个神经网络中插入一个或多个残差单元;
在所述第i-1次演化得到的神经网络中的一个或多个神经网络中删除一个或多个残差单元。
12.如权利要求9-11任一项所述的装置,其特征在于,所述第一筛选单元具体用于:
从第一神经网络变异后的神经网络中筛选出网络结构优于所述第一神经网络的神经网络,所述候选神经网络包括所述第一神经网络变异后的神经网络中网络结构优于所述第一神经网络的神经网络,所述第一神经网络为所述第i-1次演化得到的神经网络中的任意一个神经网络。
13.如权利要求12所述的装置,其特征在于,在满足如下条件中的至少一种时,所述第一神经网络变异后的神经网络的网络结构优于所述第一神经网络的网络结构:
所述第一神经网络变异后的神经网络的通道数大于所述第一神经网络的通道数;
所述第一神经网络变异后的神经网络中的卷积层的层数大于所述第一神经网络中卷积层的层数。
14.如权利要求9-13任一项所述的装置,其特征在于,所述第二筛选单元具体用于:
根据所述集合中每一个神经网络对应的P个评价参数对所述集合中的神经网络进行非主导排序;
确定所述第i次演化得到的神经网络为所述集合中不被主导的神经网络;
其中,第二神经网络和第三神经网络为所述集合中的两个神经网络,若针对所述P个评价参数中每一个评价参数所述第二神经网络都不劣于所述第三神经网络且针对所述P个评价参数中的至少一个评价参数所述第二神经网络优于所述第三神经网络时,则所述第二神经网络主导所述第三神经网络。
15.如权利要求9-14任一项所述的装置,其特征在于,所述获取模块具体用于:
随机生成M个神经网络,M为正整数;
通过所述数据集对所述M个神经网络分别进行训练和测试,得到所述M个神经网络中每一个神经网络对应的P个评价参数;
根据所述M个神经网络的中每一个神经网络对应的P个评价参数,从所述M个神经网络中选出N个神经网络,N不大于M。
16.如权利要求9-15任一项所述的装置,其特征在于,所述P个评价参数包括运行时间、精确度、参数量中的至少一个。
17.一种神经网络的搜索装置,其特征在于,包括:包括处理器和存储器,所述存储器用于存储程序,所述处理器执行所述存储器存储的程序,当所述存储器存储的程序被执行时,使得所述神经网络的搜索装置实现如权利要求1-9任一项所述的方法。
18.一种计算机可读存储介质,其特征在于,所述计算机可读介质用于存储有计算机可执行指令,所述计算机可执行指令在被所述计算机调用时用于使所述计算机实现如权利要求1-9任一项所述的方法。
19.一种物体识别方法,其特征在于,包括:
获取待识别图像;
将所述待识别图像输入到物体识别神经网络,得到所述待识别图像对应的物体类型;
其中,所述物体识别神经网络是在搜索空间中通过如权利要求1-8任一项所述的神经网络的搜索方法确定的网络,所述搜索空间是通过基本单元和所述基本单元的参数构建的。
20.如权利要求19所述的方法,其特征在于,所述基本单元的参数包括所述基本单元的类型、通道数参数和尺寸参数中的至少一项。
21.如权利要求19所述的方法,其特征在于,所述基本单元用于对输入所述基本单元的特征图进行第一操作和第二操作,所述特征图为所述待识别图像的特征图,所述第一操作用于将输入所述基本单元的特征图的个数加倍或保持不变,所述第二操作用于将输入所述基本单元的特征图的尺寸从原来的第一尺寸变为第二尺寸或维持所述第一尺寸不变,所述第一尺寸大于所述第二尺寸。
22.一种物体识别方法装置,其特征在于,包括:包括处理器和存储器,所述存储器用于存储程序,所述处理器执行所述存储器存储的程序,当所述存储器存储的程序被执行时,使得所述神经网络的搜索装置实现如权利要求19-21任一项所述的方法。
CN201911209275.5A 2019-11-30 2019-11-30 神经网络的搜索方法、装置及设备 Pending CN112884118A (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201911209275.5A CN112884118A (zh) 2019-11-30 2019-11-30 神经网络的搜索方法、装置及设备
PCT/CN2020/126795 WO2021103977A1 (zh) 2019-11-30 2020-11-05 神经网络的搜索方法、装置及设备
US17/826,873 US20220292357A1 (en) 2019-11-30 2022-05-27 Neural Network Search Method, Apparatus, And Device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911209275.5A CN112884118A (zh) 2019-11-30 2019-11-30 神经网络的搜索方法、装置及设备

Publications (1)

Publication Number Publication Date
CN112884118A true CN112884118A (zh) 2021-06-01

Family

ID=76039379

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911209275.5A Pending CN112884118A (zh) 2019-11-30 2019-11-30 神经网络的搜索方法、装置及设备

Country Status (3)

Country Link
US (1) US20220292357A1 (zh)
CN (1) CN112884118A (zh)
WO (1) WO2021103977A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113240055A (zh) * 2021-06-18 2021-08-10 桂林理工大学 基于宏操作变异神经架构搜索的色素性皮损图像分类方法

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115506783A (zh) * 2021-06-21 2022-12-23 中国石油化工股份有限公司 一种岩性识别方法
CN117668701B (zh) * 2024-01-30 2024-04-12 云南迅盛科技有限公司 Ai人工智能机器学习系统及方法

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6470261B1 (en) * 1998-07-31 2002-10-22 Cet Technologies Pte Ltd Automatic freeway incident detection system and method using artificial neural network and genetic algorithms
US20020174079A1 (en) * 1999-09-01 2002-11-21 Keith E. Mathias Method for improving neural network architectures using evolutionary algorithms
CN108334949A (zh) * 2018-02-11 2018-07-27 浙江工业大学 一种优化深度卷积神经网络结构的快速进化方法
CN108875904A (zh) * 2018-04-04 2018-11-23 北京迈格威科技有限公司 图像处理方法、图像处理装置和计算机可读存储介质
CN108960411A (zh) * 2018-06-27 2018-12-07 郑州云海信息技术有限公司 一种卷积神经网络调整及相关装置
CN108985386A (zh) * 2018-08-07 2018-12-11 北京旷视科技有限公司 获得图像处理模型的方法、图像处理方法及对应装置
US20190122119A1 (en) * 2017-10-25 2019-04-25 SparkCognition, Inc. Adjusting automated neural network generation based on evaluation of candidate neural networks
US20190138901A1 (en) * 2017-11-06 2019-05-09 The Royal Institution For The Advancement Of Learning/Mcgill University Techniques for designing artificial neural networks
WO2019206775A1 (de) * 2018-04-24 2019-10-31 Robert Bosch Gmbh Verfahren und vorrichtung zum ermitteln einer netzkonfiguration eines neurona-len netzes

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180365557A1 (en) * 2016-03-09 2018-12-20 Sony Corporation Information processing method and information processing apparatus
US20190057309A1 (en) * 2016-04-28 2019-02-21 Sony Corporation Information processing apparatus and information processing method
KR102532658B1 (ko) * 2016-10-28 2023-05-15 구글 엘엘씨 신경 아키텍처 검색
CA3085897C (en) * 2017-12-13 2023-03-14 Cognizant Technology Solutions U.S. Corporation Evolutionary architectures for evolution of deep neural networks

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6470261B1 (en) * 1998-07-31 2002-10-22 Cet Technologies Pte Ltd Automatic freeway incident detection system and method using artificial neural network and genetic algorithms
US20020174079A1 (en) * 1999-09-01 2002-11-21 Keith E. Mathias Method for improving neural network architectures using evolutionary algorithms
US20190122119A1 (en) * 2017-10-25 2019-04-25 SparkCognition, Inc. Adjusting automated neural network generation based on evaluation of candidate neural networks
US20190138901A1 (en) * 2017-11-06 2019-05-09 The Royal Institution For The Advancement Of Learning/Mcgill University Techniques for designing artificial neural networks
CN108334949A (zh) * 2018-02-11 2018-07-27 浙江工业大学 一种优化深度卷积神经网络结构的快速进化方法
CN108875904A (zh) * 2018-04-04 2018-11-23 北京迈格威科技有限公司 图像处理方法、图像处理装置和计算机可读存储介质
WO2019206775A1 (de) * 2018-04-24 2019-10-31 Robert Bosch Gmbh Verfahren und vorrichtung zum ermitteln einer netzkonfiguration eines neurona-len netzes
CN108960411A (zh) * 2018-06-27 2018-12-07 郑州云海信息技术有限公司 一种卷积神经网络调整及相关装置
CN108985386A (zh) * 2018-08-07 2018-12-11 北京旷视科技有限公司 获得图像处理模型的方法、图像处理方法及对应装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113240055A (zh) * 2021-06-18 2021-08-10 桂林理工大学 基于宏操作变异神经架构搜索的色素性皮损图像分类方法
CN113240055B (zh) * 2021-06-18 2022-06-14 桂林理工大学 基于宏操作变异神经架构搜索的色素性皮损图像分类方法

Also Published As

Publication number Publication date
US20220292357A1 (en) 2022-09-15
WO2021103977A1 (zh) 2021-06-03

Similar Documents

Publication Publication Date Title
CN110084281B (zh) 图像生成方法、神经网络的压缩方法及相关装置、设备
WO2022083536A1 (zh) 一种神经网络构建方法以及装置
CN110175671B (zh) 神经网络的构建方法、图像处理方法及装置
WO2021120719A1 (zh) 神经网络模型更新方法、图像处理方法及装置
WO2022042713A1 (zh) 一种用于计算设备的深度学习训练方法和装置
WO2021022521A1 (zh) 数据处理的方法、训练神经网络模型的方法及设备
WO2022068623A1 (zh) 一种模型训练方法及相关设备
CN113326930B (zh) 数据处理方法、神经网络的训练方法及相关装置、设备
CN113807399B (zh) 一种神经网络训练方法、检测方法以及装置
WO2021218517A1 (zh) 获取神经网络模型的方法、图像处理方法及装置
CN110222718B (zh) 图像处理的方法及装置
WO2021103977A1 (zh) 神经网络的搜索方法、装置及设备
KR20180004898A (ko) 딥러닝 기반의 이미지 처리 기술 및 그 방법
CN113705769A (zh) 一种神经网络训练方法以及装置
CN113449573A (zh) 一种动态手势识别方法及设备
CN111291809A (zh) 一种处理装置、方法及存储介质
WO2023231794A1 (zh) 一种神经网络参数量化方法和装置
CN112862828B (zh) 一种语义分割方法、模型训练方法及装置
CN112487217A (zh) 跨模态检索方法、装置、设备及计算机可读存储介质
CN113822951B (zh) 图像处理方法、装置、电子设备及存储介质
WO2024041479A1 (zh) 一种数据处理方法及其装置
CN110795618B (zh) 内容推荐方法、装置、设备及计算机可读存储介质
CN113191489B (zh) 二值神经网络模型的训练方法、图像处理方法和装置
WO2022012668A1 (zh) 一种训练集处理方法和装置
CN112529149B (zh) 一种数据处理方法及相关装置

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