[发明专利]一种用于神经网络加速的渐进式块知识蒸馏方法在审
申请号: | 201810758814.X | 申请日: | 2018-07-11 |
公开(公告)号: | CN108921294A | 公开(公告)日: | 2018-11-30 |
发明(设计)人: | 李玺;赵涵斌;汪慧 | 申请(专利权)人: | 浙江大学 |
主分类号: | G06N3/08 | 分类号: | G06N3/08 |
代理公司: | 杭州求是专利事务所有限公司 33200 | 代理人: | 傅朝栋;张法高 |
地址: | 310058 浙江*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 蒸馏过程 网络 复杂网络 蒸馏 神经网络 块参数 学生 随机初始化 加速算法 模型压缩 网络模型 相关参数 硬件架构 最优参数 子网络 按块 教师 压缩 | ||
1.一种用于神经网络加速的渐进式块知识蒸馏方法,包括以下步骤:
S1、输入原复杂网络和相关参数,定义方法目标;
S2、将原复杂网络分成多个子网络块,基于学生子网络块设计准则,按块设计学生子网络块并随机初始化其参数;
S3、蒸馏第一个子网络块,将S1中输入的原复杂网络作为第一次块蒸馏过程的教师网络,一次块蒸馏过程完成后得到第一个学生网络,其中蒸馏完成的第一个学生子网络块具有最优参数;
S4、蒸馏下一个子网络块,将上一次块蒸馏过程得到的学生网络作为本次块蒸馏过程的教师网络,一次块蒸馏过程完成得到下一个学生网络,其中蒸馏完成的下一个学生子网络块具有最优参数;
S5、重复步骤S4直到所有子网络块蒸馏过程完成,将最后一次块蒸馏得到的学生网络和最优参数作为最终的简单学生网络以及最终参数。
2.根据权利要求1所述的一种用于神经网络加速的渐进式块知识蒸馏方法,其特征在于S1中所述的原复杂网络定义如下:
原复杂网络T由N个子网络块构成,表示如下:
ti是在T中的第i个子网络块,i∈{1,2,...,N},c是分类器的映射函数,为简化网络表达的符号;
该复杂网络的参数表示为Wc和是指c和ti的参数,i∈{1,2,...,N};
所述的子网络块定义如下:一个神经网络由卷积层、池化层和全连接层构成,将神经网络中两个相邻池化层间的子网络定义为一个子网络块。
3.根据权利要求1所述的一种用于神经网络加速的渐进式块知识蒸馏方法,其特征在于S1中所述的方法目标定义如下:设计一个具有高计算效率和低存储占用空间的学生网络,并学习训练得到最优的参数;所述学生网络由N个学生子网络块构成,用表示,其中si表示S中的第i个学生子网络块,i∈{1,2,...,N},c是分类器的映射函数;所述最优的参数用表示,Wc和是指c和si的参数。
4.根据权利要求1所述的一种用于神经网络加速的渐进式块知识蒸馏方法,其特征在于所述S2包含以下子步骤:
S21、将原复杂网络T分成N个子网络块{t1,t2,t3,...,tN};
S22、根据所述学生子网络块设计准则,按块设计得到N个学生子网络块{s1,s2,s3,...,sN};
S23、随机初始化学生子网络块的参数;
所述的学生子网络块设计准则具体操作如下:首先,根据子网络块的结构,将块中包含的所有卷积层的通道数剪枝一半来构建一个简单的学生子网络块,然后通过在块的末尾添加一层1×1的卷积层将输出的通道数量扩展为原子网络块的输出通道数量。
5.如权利要求1所述的一种用于神经网络加速的渐进式块知识蒸馏方法,S3中所述的一次块蒸馏过程表示如下:
其中Ak表示第k次块蒸馏的中间网络,sj是指蒸馏结束参数最优的学生子网络块,ti是教师子网络块;Ak的参数表示如下:
块蒸馏过程通过最小化目标损失函数得到学生子网络块的最优参数;蒸馏第k个子网络块时,对于单个输入数据样本对(I,y)的目标损失函数表示为:
其中λlocal是用来平衡目标损失函数的两项影响的参数,表示整个目标损失函数的第一项,表示整个目标损失函数的第二项,I是整个网络的单个输入数据样本,y是单个输入数据样本的真实标签,||·||F表示F范数,softmax(·)表示网络最终的输出和y的softmax损失值;
因此,针对共有M个输入数据样本对的训练数据集{(I(1),y(1)),...(I(M),y(M))},其最终的目标损失函数表示通过优化这个目标损失函数,得到对应子网络块的最优参数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江大学,未经浙江大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810758814.X/1.html,转载请声明来源钻瓜专利网。