[发明专利]一种高能效神经网络架构的搜索方法有效
申请号: | 202110147159.6 | 申请日: | 2021-02-03 |
公开(公告)号: | CN112784140B | 公开(公告)日: | 2022-06-21 |
发明(设计)人: | 杨良怀;沈承宗;范玉雷 | 申请(专利权)人: | 浙江工业大学 |
主分类号: | G06F16/953 | 分类号: | G06F16/953;G06N3/04;G06N3/08 |
代理公司: | 杭州天正专利事务所有限公司 33201 | 代理人: | 王兵 |
地址: | 310014 浙*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 能效 神经网络 架构 搜索 方法 | ||
1.一种人脸识别方法,具体包括如下步骤:
步骤1:使用公开的人脸数据集作为搜索过程使用的数据集,其中包括200人的58000多张人脸图像,以8:2的比例划分训练集和测试集,并将训练集对半拆分为所需的训练集和验证集;
数据集划分完成后,根据人脸的预处理技术,使用MTCNN检测面部标记用以将人脸对齐,然后减去每个通道的平均值对像素归一化处理,同时随机翻转图片,将图像填充后再随机裁剪,最后对所有数据进行重排序;
步骤2:层级能耗模型构建,采集神经网络推理过程中各层的运行时间T与功率P,包括卷积层、池化层和全连接层;首先对运行时间进行建模,记为模型分为两部分:KT阶常规多项式和特殊多项式公式为:
所建模型第一部分的KT阶常规多项式是一个与输入特征XT相关的函数,特征向量XT包含了神经网络每一层中的超参,不同类型的网络层超参有所区别,卷积层包含输入尺寸、输出尺寸、滤波器大小、填充值和步长这五个特征;池化层包含输入尺寸、输出尺寸、步长和卷积核大小这四个特征;全连接层包含输入尺寸和输出尺寸这两特征;其中xi表示XT中第i个分量,qij是其中xi在第j项中的指数,cj则是待学习的系数;
第二部分对应特殊多项式处理与每一层相关的物理运算,包括内存访问总数和浮点运算次数两个特征,但是如第一部分所述,不同类型的网络层对应的XT不同,所以内存访问总数和浮点运算次数时需要依据各层的特征进行计算;其中c′s是待学习的系数;
然后对功率进行建模,记为与上述运行时间模型类似,模型分为两部分:Kp阶常规多项式和特殊多项式公式为:
所建模型第一部分的Kp阶常规多项式是一个与输入特征向量XP相关的函数,由于功率模型最终的值必然有上限,特征向量XP在XT的基础上扩展了XT所有特征的对数,即卷积层包含输入尺寸、输入尺寸的对数、输出尺寸、输出尺寸的对数、滤波器大小、滤波器大小的对数、填充值、填充值的对数、步长和步长的对数;池化层包含输入尺寸、输入尺寸的对数、输出尺寸、输出尺寸的对数、步长、步长的对数、卷积核大小和卷积核大小的对数;全连接层包含输入尺寸、输入尺寸的对数、输出尺寸和输出尺寸的对数;mij是特征xi的第j项中的指数,zj是待学习的系数;第二部分的特殊多项式与上述同理;
第二部分对应特殊多项式所谓特殊即这部分主要处理与每一层相关的物理运算,包括内存访问总数和浮点运算次数两个特征,但是如第一部分所述,不同类型的网络层对应的XP不同,所以内存访问总数和浮点运算次数时需要依据各层的特征进行计算;其中z′k是待学习的系数;
最终根据采集的数据进行训练直至模型参数收敛;
步骤3:整体能耗模型构建,对于一个N层的网络架构,将每一层的运行时间求和,计算出神经网络总运行时间公式为:
接着通过每一层的运行时间和功率计算得到该层的功耗,N层功耗之和除以总运行时间得到平均功率公式为:
最后计算神经网络架构整体能耗其中表示神经网络一次推理的总时间,表示在推理过程中的平均功率,结合公式(2-1)和公式(2-2),整体能耗的计算公式为:
步骤4:为神经网络初始化一组候选操作集合其中每个操作附带初始权重α,即架构编码;使用Cell作为架构搜索的基础模块,一个Cell是由N个节点组成的有向无环图,每个节点就是一个隐表示,每条边表示一个混合操作;将节点i和节点j之间原本离散的一些操作松弛为所有可能的操作的softmax映射之和即混合操作,其中不同类型的线段表示不同操作;其中表示节点间的候选操作集合,表示节点i、j之间某个操作o的权重,公式为:
节点x(i)的值由其所有前驱节点经过各自的混合操作计算并求和后得到;其中x(j)表示前驱节点值,o(i,j)表示节点i、j之间的有向边代表的混合操作,公式为:
步骤5:设计用于寻找最优神经网络架构的损失函数L,选择交叉熵损失函数作为原损失函数L1,并在原损失函数之上加入与能耗相关的损失C,C由步骤3构建的网络整体能耗估测模型获得,其中λ为超参,公式为:
L=L1+λ·C (4-1)
先是固定神经网络自身的权重w,用梯度下降的方法优化架构编码α在验证集上的损失公式为;
其中m为学习率,表示α在上的梯度;
接着固定架构编码α,用梯度下降的方法优化权重w在训练集上的损失公式为:
其中n为学习率,表示w在上的梯度;
然后重复上述步骤2、3直至权重w和编码α收敛;最后从每一个混合操作中选出α值最大的操作替代原先的混合操作,其中两节点间颜色较深的箭头表示α值较大的那个操作;至此完成单个Cell的搜索;
整个神经网络架构将由多个如步骤4所述的Cell堆叠而成;堆叠完成后先初始化整个网络的权重,然后用原先8:2划分得到的训练集重新训练整个网络架构,并在测试集上验证其性能;
步骤6:将步骤5搜索得到的网络应用于人脸识别中,输入可能包含人脸的原始图像,使用OpenCV检测出图像中人脸位置,并用传统的回归树模型检测人脸中的关键点,然后根据这些关键点对人脸进行对齐与校准,其中关键点包括眼睛、鼻子和嘴角部位,接着将校准后的单张人脸图像作为最终搜索得到的网络架构的输入,最终网络会输出一个向量,相同或相似人脸的向量之间距离小,而不同人脸的向量之间距离大;当给定一张人脸图片,检测数据库中与之最相似的人时,即可转化为求与该张人脸图片的向量距离最近的图片。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江工业大学,未经浙江工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110147159.6/1.html,转载请声明来源钻瓜专利网。