一种边
‑
云协同的深度神经网络模型训练方法
技术领域
1.本发明属于边缘智能技术领域,涉及一种在边缘云
‑
中心云系统中对深度神经网络模型进行训练以提升模型预测准确率的方法。
背景技术:
2.边缘智能是指结合边缘计算实现的人工智能,将深度学习应用的大部分计算任务部署到边缘云而非中心云,既可以满足深度学习应用对于低时延的需求,又能保证深度学习应用的服务质量,从而实现了边缘计算和人工智能的双赢。边缘智能的发展对边缘计算和人工智能具有双向共赢的优势:一方面,边缘数据可以借助智能算法释放潜力,提供更高的可用性。另一方面,边缘计算能为智能算法提供更多的数据和应用场景。
3.由于深度神经网络模型的训练过程需要大量的计算存储资源,而边缘云的计算存储资源相对有限,和中心云无法比拟,另外,边缘数据具有单一性,用单一数据训练得到的模型通常性能不佳,因此边缘云独自进行模型训练往往不能得到较高的模型准确率。边
‑
云协同进行模型训练是一种高效的模型训练方式,这种方式可以共同利用中心云和边缘云的优势,先在中心云训练得到一个高准确率的普适化模型,再将该模型迁移至边缘云加以微调和再训练,构建一个更符合边缘场景需求的个性化模型。
技术实现要素:
4.为了解决边缘数据单一且边缘云服务器计算能力有限,无法训练一个高准确率的深度神经网络模型问题,本发明提出了一种在边缘云
‑
中心云系统中,通过边
‑
云协同训练深度神经网络模型的方案。该方案借助中心云的力量为边缘云提供强大的计算存储资源,能够预训练得到一个准确率较高的普适化模型,边缘云在普适化模型的基础上再训练得到一个符合自身场景特点的准确率更高的个性化模型。
5.为了实现上述过程,本发明提供以下的技术方案:
6.一种边
‑
云协同的深度神经网络模型训练方法,包括如下步骤:
7.步骤1:中心云资源丰富,存有分类广泛且全面的海量数据,这些数据均经过有效标记,十分适合普适化模型的训练,首先根据任务类型选取输入数据集用来进行模型训练,将这些数据定义为input_c;
8.步骤2:根据任务的类型选取合适的深度神经网络模型框架,将选取的神经网络模型框架定义为model_pre;
9.步骤3:将input_c按比例k:1划分为训练集train_c和测试集validate_c;
10.步骤4:选择或定义一个当前网络的误差损失函数lossfunction_c,选择或定义一个适合当前网络的优化器optimizer_c,并选择一个迭代次数epoch_c,开始model_pre的迭代优化训练;
11.步骤5:首先随机初始化model_pre中的各个参数;
12.步骤6:在train_c数据集上进行model_pre的优化训练,并用lossfunction_c计算
其输出值与期望值的误差loss,随后将误差loss进行反向传播,并用optimizer_c进行model_pre中各个参数的优化;
13.步骤7:结束一次网络训练后使用validate_c数据集对训练后的model_pre进行性能测试,计算其测试准确率accuracy_c;
14.步骤8:将步骤6和步骤7重复epoch_c次循环,并选择保留accuracy_c最高的一组模型参数为最终在中心云预训练得到的普适化模型model_pre;
15.步骤9:中心云将model_pre发送给边缘云;
16.步骤10:边缘云根据任务类型选取输入数据集用来进行模型训练,该数据集是存储在边缘云的个性化数据集,从处在这个边缘网络中的用户中收集得到,将这些数据定义为input_e;
17.步骤11:边缘云在model_pre的基础上进行模型的微调和再训练,首先冻结model_pre中第1层至第n
‑
1层的参数,并根据input_e的特点调整最后一层全连接层的参数,将修改后的model_pre定义为model_e;
18.步骤12:将input_e按比例k:1划分为训练集train_e和测试集validate_e;
19.步骤13:选择或定义一个当前网络的误差损失函数lossfunction_e,选择或定义一个适合当前网络的优化器optimizer_e,并选择一个合适的迭代次数epoch_e,开始model_e的迭代优化训练;
20.步骤14:在train_e数据集上进行model_e的优化训练,并用lossfunction_e计算其输出值与期望值的误差loss,随后将误差loss进行反向传播,并用optimizer_e进行model_e中各个参数的优化;
21.步骤15:结束一次网络训练后使用validate_e数据集对训练后的model_e进行性能测试,计算其测试准确率accuracy_e;
22.步骤16:将步骤14和步骤15重复epoch_e次循环,并选择保留accuracy_e最高的一组模型参数为最终在边缘云经过微调和再训练得到的个性化模型model_e;
23.步骤17:结束。
24.进一步,所述步骤2中,针对图像识别任务,选取resnet。
25.本发明提出的一种边
‑
云协同的深度神经网络模型训练方法,先由中心云训练得到一个普适化模型,相较于从零开始在边缘云训练完整的深度神经网络模型,该普适化模型借助中心云强大的计算能力和丰富的存储资源,能够得到较高的准确率;随后将该模型迁移到边缘服务器上,边缘服务器根据自身特点对该普适化模型进行微调,然后以存储在边缘云上的个性化数据为训练数据集,再训练该普适化模型,得到一个能够表征当前场景个性化特点的深度神经网络模型,该网络模型的准确率较之普适化模型又有了明显的提高。
26.本发明的有益效果为:能够有效地、大幅度地提升模型的准确率。
附图说明
27.图1为中心云
‑
边缘云系统模型。
具体实施方式
28.下面结合附图对本发明做进一步说明。
29.参照图1,一种边
‑
云协同的深度神经网络模型训练方法,包括如下步骤:
30.步骤1:中心云资源丰富,存有分类广泛且全面的海量数据,这些数据均经过有效标记,十分适合普适化模型的训练。如图1所示,在本中心云
‑
边缘云系统中解决的是图像分类问题,首先选取适合图像分类的输入数据集用来进行模型训练,本系统选择的是imagenet数据集,将该数据集定义为input_c;
31.步骤2:针对图像识别任务,选取resnet作为深度神经网络模型框架;
32.步骤3:将input_c按比例10:1划分为训练集train_c和测试集validate_c;
33.步骤4:选择误差损失函数lossfunction_c为交叉熵损失函数,它主要用于度量两个概率分布间的差异性。选择优化器optimizer_c为adam优化器,其优点是参数的更新不受梯度的伸缩变换影响,超参数具有很好的解释性,且通常无需调整或仅需很少的微调,并选择一个合适的迭代次数epoch_c为50次,开始model_pre的迭代优化训练;
34.步骤5:首先随机初始化model_pre中的各个参数;
35.步骤6:在train_c数据集上进行model_pre的优化训练,并用lossfunction_c计算其输出值与期望值的误差loss,随后将误差loss进行反向传播,并用optimizer_c进行model_pre中各个参数的优化;
36.步骤7:结束一次网络训练后使用validate_c数据集对训练后的model_pre进行性能测试,计算其测试准确率accuracy_c;
37.步骤8:将步骤6和步骤7重复epoch_c次循环,并选择保留accuracy_c最高的一组模型参数为最终在中心云预训练得到的普适化模型model_pre;
38.步骤9:中心云将model_pre发送给边缘云;
39.步骤10:边缘云将该边缘场景中有关图像分类的数据作为输入数据集,用来进行图像分类模型训练,将这些数据定义为input_e;
40.步骤11:边缘云在model_pre的基础上进行模型的微调和再训练,首先冻结model_pre中第1层至第n
‑
1层的参数,并根据input_e的特点调整最后一层全连接层的参数,例如该场景中共有10类图像,则将最后一层全连接层的输出个数改为10,将修改后的model_pre定义为model_e;
41.步骤12:将input_e按比例10:1划分为训练集train_e和测试集validate_e;
42.步骤13:选择误差损失函数lossfunction_c为交叉熵损失函数,选择优化器optimizer_c为adam优化器,并选择一个合适的迭代次数epoch_c为20次,开始model_e的迭代优化训练;
43.步骤14:在train_e数据集上进行model_e的优化训练,并用lossfunction_e计算其输出值与期望值的误差loss,随后将误差loss进行反向传播,并用optimizer_e进行model_e中各个参数的优化;
44.步骤15:结束一次网络训练后使用validate_e数据集对训练后的model_e进行性能测试,计算其测试准确率accuracy_e;
45.步骤16:将步骤14和步骤15重复epoch_e次循环,并选择保留accuracy_e最高的一组模型参数为最终在边缘云经过微调和再训练得到的个性化模型model_e;
46.步骤17:结束。
47.本说明书的实施例所述的内容仅仅是对发明构思的实现形式的列举,仅作说明用途。本发明的保护范围不应当被视为仅限于本实施例所陈述的具体形式,本发明的保护范围也及于本领域的普通技术人员根据本发明构思所能想到的等同技术手段。
技术特征:
1.一种边
‑
云协同的深度神经网络模型训练方法,其特征在于,所述方法包括如下步骤:步骤1:中心云资源丰富,存有分类广泛且全面的海量数据,这些数据均经过有效标记,十分适合普适化模型的训练,首先根据任务类型选取输入数据集用来进行模型训练,将这些数据定义为input_c;步骤2:根据任务的类型选取深度神经网络模型框架,将选取的神经网络模型框架定义为model_pre;步骤3:将input_c按比例k:1划分为训练集train_c和测试集validate_c;步骤4:选择或定义一个当前网络的误差损失函数lossfunction_c,选择或定义一个适合当前网络的优化器optimizer_c,并选择一个迭代次数epoch_c,开始model_pre的迭代优化训练;步骤5:首先随机初始化model_pre中的各个参数;步骤6:在train_c数据集上进行model_pre的优化训练,并用lossfunction_c计算其输出值与期望值的误差loss,随后将误差loss进行反向传播,并用optimizer_c进行model_pre中各个参数的优化;步骤7:结束一次网络训练后使用validate_c数据集对训练后的model_pre进行性能测试,计算其测试准确率accuracy_c;步骤8:将步骤6和步骤7重复epoch_c次循环,并选择保留accuracy_c最高的一组模型参数为最终在中心云预训练得到的普适化模型model_pre;步骤9:中心云将model_pre发送给边缘云;步骤10:边缘云根据任务类型选取输入数据集用来进行模型训练,该数据集是存储在边缘云的个性化数据集,从处在这个边缘网络中的用户中收集得到,将这些数据定义为input_e;步骤11:边缘云在model_pre的基础上进行模型的微调和再训练,首先冻结model_pre中第1层至第n
‑
1层的参数,并根据input_e的特点调整最后一层全连接层的参数,将修改后的model_pre定义为model_e;步骤12:将input_e按比例k:1划分为训练集train_e和测试集validate_e;步骤13:选择或定义一个适合当前网络的误差损失函数lossfunction_e,选择或定义一个适合当前网络的优化器optimizer_e,并选择一个合适的迭代次数epoch_e,开始model_e的迭代优化训练;步骤14:在train_e数据集上进行model_e的优化训练,并用lossfunction_e计算其输出值与期望值的误差loss,随后将误差loss进行反向传播,并用optimizer_e进行model_e中各个参数的优化;步骤15:结束一次网络训练后使用validate_e数据集对训练后的model_e进行性能测试,计算其测试准确率accuracy_e;步骤16:将步骤14和步骤15重复epoch_e次循环,并选择保留accuracy_e最高的一组模型参数为最终在边缘云经过微调和再训练得到的个性化模型model_e;步骤17:结束。2.如权利要求1所述的一种边
‑
云协同的深度神经网络模型训练方法,其特征在于,所
述步骤2中,针对图像识别任务,选取resnet。3.如权利要求1所述的一种边
‑
云协同的深度神经网络模型训练方法,其特征在于,所述步骤2中,针对目标检测任务,选取yolo。
技术总结
一种边
技术研发人员:田贤忠 朱娟 许婷
受保护的技术使用者:浙江工业大学
技术研发日:2021.03.23
技术公布日:2021/6/24
转载请注明原文地址:https://doc.8miu.com/read-250064.html