具体实施方式
下面将结合附图,对本申请的技术方案进行清楚、完整的描述。
实施例1
图8示出了根据本申请的第一实施例的适用于LSTM神经网络的压缩方法,其中通过多次迭代操作来实现神经网络的压缩。每次迭代操作具体包括敏感度分析、剪枝、重训三个步骤。下面对每个步骤进行具体说明。
步骤8100,敏感度测试(Sensitivity analysis)
在该步骤中,例如,针对LSTM网络中所有矩阵进行敏感度分析,以确定不同矩阵的初始稠密度(或者初始压缩率)。
图9示出了敏感度测试的具体步骤。
如图9所示,在步骤8110,例如,对LSTM网络中的各个矩阵尝试按照不同稠密度进行压缩(所选择的稠密度例如是0.1,0.2,…,0.9,对矩阵的具体压缩方法参考步骤8200)。然后,测量以不同稠密度压缩的神经网络的词错误率(Word Error Rate,WER)。
在识别一段单词序列时,可能存在一些单词被错误地插入、删除或替换。例如,对于包含N个单词的一段初始识别文字而言,如果有I个单词被插入、D个单词被删除以及S个文字被替换,那么WER为:
WER=(I+D+S)/N,
其中,WER通常由百分比表示。通常而言,压缩后网络的WER会变大,这意味着压缩后神经网络的精度会变差。
在步骤8120,对于一个矩阵,以稠密度为横坐标,WER为纵坐标,绘制神经网络中该矩阵在不同压缩率下的WER曲线。针对每个矩阵都绘制所述WER曲线。
在步骤8130,对于一个矩阵,从曲线中寻找WER剧烈变化的点所对应的稠密度为该矩阵的初始稠密度。针对每个矩阵都获得所述初始稠密度。
在本实施例中,选取稠密度-WER曲线的拐点所对应的稠密度作为该矩阵的初始稠密度。具体而言,在一次迭代中拐点以如下方法确定:
已知压缩前(即,稠密度为1)的初始网络WER为:WER(initial);
针对不同稠密度得到相应的压缩后的网络WER为:WER(0.1)、WER(0.2)···WER(0.9);
计算ΔWER,即:WER(0.1)与WER(initial)进行比较、WER(0.2)与WER(initial)进行比较···WER(0.9)与WER(initial)进行比较;
基于计算得到的ΔWER,拐点指的是ΔWER小于一定阈值的所有点当中具有最小稠密度的那个点。应当理解,可以基于其他策略选取曲线中WER剧烈变化的点。
对于一个3层LSTM网络,其中每层有9个稠密矩阵需要压缩:Wix、Wfx、Wcx、Wox、Wir、Wfr、Wcr、Wor、Wrm,这样一共有27个稠密矩阵需要压缩。
首先,对每个矩阵,按照稠密度从0.1到0.9,以步长0.1做9次试验,测试整个网络在9次试验中的WER,并绘制相应稠密度-WER曲线。这样,针对27个矩阵,一共会获得27条曲线。
然后,针对每个矩阵,从该矩阵对应的WER曲线中(例如,针对第一层LSTM中的Wix矩阵绘制的曲线),找到WER剧烈变化的点。
这里,认为相比于本轮迭代的初始网络的WER,ΔWER变化小于1%的所有点当中具有最小稠密度的那个点为拐点。
例如,假设初始网络的WER为24%,则选取曲线中WER小于25%的所有点当中具有最小稠密度的那个点作为拐点。取拐点对应的稠密度作为该Wix的初始稠密度。
这样,可以得到一个长度为27的初始稠密度序列,分别对应每个矩阵的初始稠密度。因此可以以该初始稠密度序列指导压缩。
一个初始稠密度序列的例子如下(矩阵排列顺序为Wcx、Wix、Wfx、Wox、Wcr、Wir、Wfr、Wor、Wrm):
densityList=[0.2,0.1,0.1,0.1,0.3,0.3,0.1,0.1,0.3,
0.5,0.1,0.1,0.1,0.2,0.1,0.1,0.1,0.3,
0.4,0.3,0.1,0.2,0.3,0.3,0.1,0.2,0.5]
图10示出了一个单层LSTM网络中9个矩阵的相应稠密度-WER曲线。可以看到,不同矩阵对于压缩的敏感度大相径庭,其中,w_g_x,w_r_m,w_g_r相对于其他矩阵而言较为敏感,即在稠密度-WER曲线中存在max(ΔWER)>1的点。
步骤8200,确定最终稠密度序列(Density determination)并进行剪枝(Pruning)
图11示出了确定最终稠密度序列并进行剪枝的具体步骤。
如图11所示,图8的步骤8200可以包括若干子步骤。
首先,在步骤8210,基于步骤8100中确定的初始稠密度序列,指导每一个对应的矩阵进行初次压缩试验。
然后,在步骤8215,基于初次压缩试验的结果,测试压缩后网络的WER。如果压缩前后网络的ΔWER超过某一阈值ε(例如,4%),则进行到下一步骤8220。如果ΔWER未超过该阈值ε,则直接进行到步骤8225,初始稠密度序列即为最终稠密度序列。
在步骤8220,通过“压缩试验-稠密度序列调整”迭代来调整初始稠密度序列。在步骤8225,获得最终稠密度序列。
最后,在步骤8230,基于最终稠密度序列指导LSTM网络进行剪枝。
下面,对图11的各子步骤进行详细说明。
步骤8210,进行初次压缩试验
根据研究中获得的经验,矩阵中绝对值比较大的权值对应着比较强的神经元连接关系。因此,在该示例中,基于矩阵中元素的绝对值进行矩阵压缩。
具体地,对每个矩阵中的所有元素按照绝对值从小到大进行排序。然后,基于步骤8100中确定的该矩阵的初始稠密度对该矩阵进行压缩,只保留指定的稠密度所对应比例的绝对值较大的元素,并且将其余元素置零。例如,如果该矩阵的初始稠密度为0.4,那么,保留该矩阵中绝对值较大的前40%的元素,将剩余60%元素置零。
步骤8215,判断压缩前后网络的ΔWER是否超过某一阈值ε(例如,4%)。
步骤8220,如果压缩前后网络的ΔWER超过某一阈值ε(例如,4%),则通过“压缩试验-稠密度序列调整”迭代。如果没有,则从步骤8215直接转到步骤8225。
步骤8225,通过在步骤8220调整初始稠密度序列,获得最终稠密度序列。
图12示出了步骤8220的“压缩试验-稠密度序列调整”迭代调整初始稠密度序列的具体步骤。
如图12所示,在步骤8221,对相对敏感的矩阵的稠密度进行调整。即,上浮相对敏感的矩阵的稠密度,例如,上浮0.05。基于该稠密度,对相应矩阵进行压缩试验。
然后,计算压缩后的网络的WER,若WER仍不满足目标,则继续上浮相对敏感的矩阵的稠密度,例如上浮0.1。基于该稠密度,对相应矩阵进行压缩试验。以此类推,直到压缩前后网络的ΔWER在所述阈值ε(例如,4%)以下。
可选地或依次地,在步骤8222,可以继续对相对不敏感的矩阵的稠密度进行微调,从而使压缩前后网络的ΔWER在某一阈值ε’(例如,3.5%)以下。这样,可以进一步提高压缩后的网络的准确度。
如图12所示,对相对不敏感的矩阵的稠密度的微调过程类似于前述对相对敏感的矩阵的稠密度的微调过程。
例如,神经网络的原始WER为24.2%,步骤8100中获得的初始稠密度序列为:
densityList=[0.2,0.1,0.1,0.1,0.3,0.3,0.1,0.1,0.3,
0.5,0.1,0.1,0.1,0.2,0.1,0.1,0.1,0.3,
0.4,0.3,0.1,0.2,0.3,0.3,0.1,0.2,0.5]
按照初始稠密度序列对网络进行剪枝,压缩后的网络的WER恶化为32%,此时需要调整初始稠密度序列。具体步骤如下:
根据步骤8100的结果得知,第一层LSTM中的矩阵Wcx,Wcr,Wir,Wrm、第二层中矩阵的Wcx,Wcr,Wrm、和第三层中矩阵的Wcx,Wix,Wox,Wcr,Wir,Wor,Wrm相对敏感,其余矩阵相对不敏感。
首先,对上述相对敏感的矩阵,按0.05的步长增大其对应的初始稠密度。
然后,基于上浮的稠密度对神经网络阵进行压缩试验。通过计算得到压缩后网络的WER为27.7%。此时,满足压缩前后网络ΔWER<4的要求,停止调整相对敏感的矩阵的稠密度。
可选地,可以对相对不敏感的矩阵的初始稠密度进行微调,使压缩前后网络ΔWER<3.5。
因此,通过“压缩试验-稠密度序列调整”迭代调整得到的最终稠密度序列为:
densityList=[0.25,0.1,0.1,0.1,0.35,0.35,0.1,0.1,0.35,
0.55,0.1,0.1,0.1,0.25,0.1,0.1,0.1,0.35,
0.45,0.35,0.1,0.25,0.35,0.35,0.1,0.25,0.55]
此时,压缩后的神经网络的整体稠密度约为24%。
8230,基于最终稠密度进行剪枝。
具体地,对每个矩阵中的所有元素按照绝对值从小到大进行排序;然后,基于最终稠密度序列对各矩阵进行压缩,对于每个矩阵,只保留相应稠密度对应的绝对值较大的元素,并且将其余元素置零。
步骤8300,重训(Fine tuning)
对神经网络的训练和重训是对损失函数进行优化的过程。损失函数指的是在给定输入下,神经网络模型预测的结果与真实结果之间的差别。希望损失函数的值尽可能小。
对神经网络的训练的本质在于寻找最优解。重训则是指在已有的一个可能离最优解很近的次优解的情况下搜索最优解,即,在一定的基础上继续训练。
例如,对于经过训练的LSTM深度神经网络,我们认为其为最优解。在步骤8200剪枝操作以后,在保留下来的权值的基础上继续训练并寻找最优解的过程即为重训的过程。
图13a、13b示出了对神经网络进行重训的具体步骤。
如图13a所示,输入是在步骤8200剪枝操作之后的神经网络。
在步骤8310中,首先用训练集训练步骤8200得到的稀疏神经网络并进行权值矩阵更新。
在步骤8320中,判断该矩阵是否收敛到局部最优解。
如果未收敛到局部最优解,则返回步骤8310,重复训练集训练和权值矩阵更新的步骤。
如果收敛到最优解,则进行到步骤8330,获得达到要求的神经网络并输出。
在该实施例中,重训时采用梯度下降法来更新权值矩阵。具体地,梯度下降法基于这样的观察:
如果实值函数F(x)在点a处可微且有定义,那么函数F(x)在a点沿着梯度相反的方向-
下降最快。因而,如果:
对于γ>0为一个够小数值时成立,那么F(a)≥F(b),其中a是向量。
考虑到这一点,我们可以从函数F的局部极小值的初始估计x0出发,并考虑如下序列x0,x1,x2,…使得:
因此可得到:
F(x0)≥F(x1)≥F(x2)≥···
如果顺利的话,序列(xn)收敛到期望的极值。注意每次迭代步长γ可以改变。
这里,将F(x)理解为损失函数,就可以理解梯度下降法使得模型预测损失减小的原理。
在一个示例中,参考论文DSD:Regularizing Deep Neural Networks withDense-Sparse-Dense Training Flow in NIPS 2016,对LSTM深度神经网络的重训方法如下:
这里,W是权值矩阵,η代表学习率,也就是随机梯度下降法的步长,f是损失函数,
是对损失函数求梯度,x是训练数据,t+1代表更新权值。
上式的含义是:用权值矩阵减去学习率与损失函数梯度的乘积,来更新权值矩阵。
参见图13b,显示了利用梯度函数来更新权值矩阵的简要流程图。
在步骤8300中,可以采用各种方式来执行所述稀疏神经网络的重训及相应的权值矩阵更新。
在该示例中,使用掩码(mask)矩阵保持网络中各个矩阵压缩后非零元素的分布,该掩码矩阵仅包括0和1元素,用于记录压缩后矩阵非零元素的分布信息。其中,值为1的元素表示相应权值矩阵对应位置的元素被保留,而值为0的元素表示相应权值矩阵对应位置的元素被置零。
图14示出了使用掩码矩阵进行重训的过程。
如图14所示,在步骤1410中,对待压缩的网络nnet0剪枝,得到记录压缩后矩阵非零元素的分布信息的掩码矩阵M:
nnet0→M
在步骤1420中,将待压缩的网络与步骤1410中得到的掩码矩M点乘,完成剪枝操作,得到剪枝后的网络nneti:
nneti=M⊙nnet0
在步骤1430中,对剪枝后的网络nneti带掩码重训,得到最终输出网络nnet0。
nneto=Rmask(nneti,M)
其带掩码的重训过程具体可以表达为:
Mask=(W(0)≠0)
即,对计算出来的梯度乘以掩码矩阵,保证梯度矩阵变成与掩码矩阵相同的形状,用来更新权值矩阵。
通过重训,网络的WER下降,从而减少了压缩带来的精度损失。例如,通过重训,一个稠密度为0.24的LSTM网络的WER可以从27.7%下降到25.8%。
迭代步骤
返回参照图8,如上文所述,该压缩方法通过多次迭代操作、即重复上述步骤8100、8200、8300而将神经网络压缩至期望稠密度。
例如,在一个示例中,希望最终网络稠密度为0.14。
在第一轮迭代中,通过步骤8300得到稠密度为0.24,WER为25.8%的网络。
重复上述步骤8100、8200、8300对该网络继续进行多轮压缩。
例如,在第二轮压缩后,网络的稠密度为0.18,WER为24.7%。
继续第三轮压缩后,网络稠密度为0.14,WER为24.6%,达到目标。
实施例2
在上文实施例1中,提出了一种对训练好的稠密神经网络基于固定形状的掩码矩阵进行压缩处理从而得到稀疏化的神经网络的方法。
在本实施例2中,申请人提出一种新的神经网络压缩方法,在每轮压缩中,该方法使用用户设计的动态压缩策略对神经网络进行压缩。
具体地,动态压缩策略包括:每次剪枝操作的当前剪枝次数、最大剪枝次数以及针对该次剪枝的稠密度,以这三个参数确定本次需要剪枝的权值的比例(即,本次剪枝操作的压缩率),并基于此进行剪枝。
因此,在根据实施例2的方法的神经网络压缩过程中,每次剪枝的力度是剪枝次数(也可以理解为时间t)的函数。换言之,在神经网络的压缩过程中,神经网络的稠密度可以是随着每次剪枝操作而变化的可变参数,即神经网络的稠密度精确到每次剪枝处理,而非每轮压缩结束。
图15示出了根据实施例2的压缩方法的一轮压缩过程,其具体包括初始稠密神经网络训练、压缩策略确定、和剪枝及重训三个步骤。下面对每个步骤进行具体说明。
步骤1510:训练初始稠密神经网络
在步骤1510中,对初始稠密神经网络进行常规训练,以得到一个经过训练的稠密神经网络。
这里,经过训练的稠密神经网络可以是如实施例1所述的具有期望精度的训练好的稠密神经网络。
然而,不同于实施例1,在实施例2中,由于省略了实施例1的步骤8100,经过训练的稠密神经网络还可以是一个已经收敛但尚未达到期望精度的中间神经网络nnethalf。
步骤1520:确定压缩策略
在实施例2中,压缩策略包括本轮压缩的目标稠密度Dfinal和压缩函数fD(t,Dfinal),其中压缩函数fD(t,Dfinal)决定本轮压缩的剪枝次数,以及每次剪枝操作的稠密度Dt。
具体地,假设第t次剪枝操作前网络的权值矩阵为Wt,第t次剪枝操作的稠密度为Dt,那么剪枝操作后的权值矩阵为:
Wt+1=fW(Wt,Dt)
其中,fW(Wt,Dt)表示根据第t次剪枝操作的稠密度Dt对网络的权值矩阵Wt进行剪枝操作。这样,在神经网络的压缩过程中,神经网络的稠密度变化可以表示为剪枝次数(或时间t)的函数。
由于在整个压缩过程中,权值矩阵是通过训练/重训初始神经网络训练直接得到的,而不是自由参数,因此每次剪枝操作的稠密度只由稠密度随时间变化的参数决定,即:
Dt=fD(t,Dfinal)
其中,fD(t,Dfinal)是计算时刻t的稠密度Dt的函数(在下文中,也称为“压缩函数”),Dfinal为本轮压缩神经网络的目标稠密度。
因此,为了实现更好的压缩效果,在实际应用中,可以从两方面设计压缩策略:压缩函数fD(t,Dfinal),和目标稠密度Dfinal,以获得精度较高的稀疏化神经网络。
压缩函数fD(t,Dfinal)的设计
对压缩函数的不同设计可以产生不同的压缩效果。下面,以两个示例对其进行说明。
示例2.1:神经网络的稠密度恒定
在该示例中,在神经网络的一轮压缩中,保持每次剪枝操作的目标稠密度不变。相应地,压缩函数为:
fD(t)=Dfinal
即,在本轮压缩中,神经网络的稠密度始终保持为常数,但是权值大小和分布可以改变。
图16示出了示例2.1中的神经网络稠密度变化曲线。
图17示出了与图16对应的压缩过程中对应的神经网络权值分布变化。
图17的左侧示出了神经网络中各矩阵在每次剪枝操作中权值参数分布的变化,其中沿横轴示出了每个LSTM层中的9个矩阵,沿纵轴示出了剪枝操作的次数。可见,对应于图17,在该轮压缩中,一共进行了5次剪枝操作。
图17的右侧示出了与每次剪枝操作对应的简化的权值分布示意图,其中颜色(灰度)深浅表示权值大小(即,对应位置的权值被保留),白色则表示权值为0(即,对应位置的权值被置零)。
如图17所示,在5次剪枝操作中,有颜色的格子总数未发生改变(即,神经网络的稠密度保持不变),但是颜色深浅和分布都在变化(即,神经网络的权值大小和分布发生变化)。
实际上,实施例1提出的利用固定掩码矩阵进行重训的过程可以理解为该示例2.1的特例,其对应的压缩函数亦为:
fD(t)=Dfinal
并且通过固定掩码对神经网络的权值分布进行限制。
图18示出了利用固定掩码矩阵进行剪枝操作时,对应的神经网络权值分布变化。
如图18所示,其与图17的区别在于,尽管格子的颜色(灰度)发生变化,但有颜色的格子始终有颜色,即对应位置处的权值大小发生变化,但不会被置零。
可见,在实施例1中,神经网络的权值大小可以变化,但其分布受到限制,即失去了部分(形状变化)的自由度。
示例2.2:神经网络稠密度线性下降
在该示例中,在神经网络的一轮压缩中,每次剪枝操作的稠密度逐渐减小。压缩函数为:
Dt=1-(tcurrent-tstart)/(tend-tstart)×(1-Dfinal)
即,神经网络的稠密度在指定剪枝操作次数内,线性减少到目标稠密度Dfinal。
图19示出了示例2.2中的稠密度变化曲线。
图20示出了与图19对应的压缩过程中对应的神经网络权值分布变化。
图20的左侧示出了神经网络中各矩阵在每次剪枝操作中权值参数分布的改变。可见,对应于图20,在该轮压缩中,一共进行了10次剪枝操作。
图20的右侧示出了对应的简化的权值分布示意图。从图20右侧的变化可以看出,在10次剪枝操作过程中,有颜色的格子数量逐渐减少(即,稠密度逐渐下降),同时各个格子颜色的深浅和分布也在变化(即,权值的大小和分布也在变化)。
图21示出了示例2.2对应的词错误率(WER)变化。
如图21所示,经过10次剪枝操作,神经网络的词错误率逐渐下降,即,神经网络的精度不断升高
当然,应理解,对于压缩函数fD(t,Dfinal)的设计,可以选择如上文所述的两种函数,也可以选择其他高次函数。本申请不对压缩函数的种类进行限制。
此外,还可以通过深度学习来确定压缩函数fD(t,Dfinal)。
例如,使用带有时效的神经网络(例如,循环神经网络RNN)学习网络参数。即:
Dt+1=WtDt+bt
Wt+1=WuwWt
bt+1=Wubbt
因此,只需要通过训练得到相应的初始矩阵Wt和转移矩阵Wuw、Wub,就可以基于第t-1时刻的稠密度来确定第t时刻的稠密度。这样,压缩函数本身也可以经过训练得到。
目标稠密度Dfinal的设计
对于目标稠密度Dfinal的设计,可以根据经验预先设定某一目标稠密度。
此外,还可以根据实施例1的步骤8100所述的方法,确定一轮压缩的目标稠密度Dfinal。
具体地,对步骤1510获得的稠密神经网络进行敏感度测试,然后将获得的可接受稠密度作为本轮压缩的目标稠密度。
应理解,本申请不对目标稠密度的设计方法进行限制。
步骤1530:剪枝及重训
在步骤1530中,基于步骤1520确定的压缩策略,对步骤1510获得的稠密神经网络进行剪枝及重训操作,直到神经网络达到本轮压缩的最终稠密度Dfinal。
如上文所述,根据压缩策略,可以确定剪枝操作的次数以及本次剪枝操作的稠密度Dt。针对每一次剪枝操作,由于神经网络的压缩会导致精度下降,在每次剪枝操作后需要进行一次重训,用于恢复神经网络的精度。
因此,步骤1530进一步包括:剪枝步骤1531和重训步骤1532。
在本实施例中,剪枝步骤1531的操作方法可以例如参照实施例1的步骤8230。
具体地,在剪枝步骤1531中,对每个矩阵中的所有元素按照绝对值从小到大进行排序;然后,基于本次剪枝操作的稠密度Dt对各矩阵进行压缩,对于每个矩阵,只保留相应稠密度对应的绝对值较大的元素,并且将其余元素置零。
在本实施例中,重训步骤1532的操作方法可以例如参照实施例1的步骤8300,即,使用掩码矩阵对剪枝操作后的压缩神经网络进行重训。
具体地,首先,获得记录本次剪枝操作后矩阵非零元素的分布信息的掩码矩阵;然后,对剪枝后的神经网络带掩码重训,以恢复因本次剪枝操作造成的精度损失。
应理解,还可以通过其他方式进行剪枝步骤1531和重训步骤1532。本申请不对剪枝步骤和重训步骤的具体操作方法进行限制。
最后,根据压缩策略确定的剪枝操作次数迭代执行剪枝步骤1531和重训步骤1532,直到神经网络达到本轮压缩的目标稠密度Dfinal。
压缩迭代步骤
继续参照图15,根据实施例2的压缩方法可以包括多轮压缩过程。
具体地,可以分别设定每轮(或每个周期)压缩过程的目标稠密度Dfinal1、Dfinal2、…、Dfinaln,以及相应的压缩函数fD(t,Dfinal1)、fD(t,Dfinal2)、…、fD(t,Dfinaln),迭代执行上述步骤1520和1530,最终将神经网络压缩至最终期望稠密度。
例如,对一个待压缩的稠密神经网络,假设最终的目标压缩率为Doutput=0.2,可以例如进行三轮压缩(即,存在3个压缩周期),每轮压缩周期的目标压缩率Dfinal分别为0.6,0.4,0.2。
首先,进行第一轮压缩,该轮压缩过程的目标压缩率为Dfinal1=0.6。
具体地,参照上文所述的步骤1520,设定该轮压缩的压缩策略,例如,压缩策略可以设定为上文示例2.2中的压缩率线性递减并且剪枝次数为4次。相应地,每次剪枝操作的压缩率分别为D1=0.9,D2=0.8,D3=0.7,D4=0.6。随后,基于每次剪枝操作的压缩率进行四次剪枝及重训操作,以将稠密神经网络压缩到该压缩周期的目标压缩率。
然后,以相同的方式进行第二轮压缩和第三轮压缩,在每个压缩周期中可以分别设定相应的压缩策略,直到将稠密神经网络被压缩到最终的目标压缩率0.2。
图22示出了应用根据实施例2的边训练边压缩方法和未应用实施例2的压缩方法的稠密度变化曲线。
如图22所示,在目标稠密度相同情况下,根据实施例2的压缩方法可以自由设计稠密度下降的路径,所以可以在训练过程中在初始稠密网络尚未完全收敛到所需精度时就开始压缩,并逐渐提高压缩程度(即逐渐降低稠密度),从而更快地达到目标稠密度。
有益效果
综上,根据实施例2的压缩方法可以从神经网络初始状态开始进行渐进式的稀疏化训练,最终得到符合精度要求的稀疏网络,而不必须在训练好的稠密神经网络基础上再进行稀疏化压缩。
因此,根据实施例2的压缩方法可以在保证最终神经网络的精度的同时,有效地缩短训练和压缩时间。
以上实施例仅以LSTM神经网络作为说明本发明的例子。应当理解,本发明可以不限于LSTM神经网络,而是可以应用到其他各种神经网络。
还应理解,上文示例仅为本申请的具体实施方式,而不旨在限制本申请的保护范围,本申请的保护范围应以权利要求的保护范围为准。