CN111367668A - 一种基于改进bp神经网络的云服务资源弹性伸缩方法 - Google Patents

一种基于改进bp神经网络的云服务资源弹性伸缩方法 Download PDF

Info

Publication number
CN111367668A
CN111367668A CN202010134500.XA CN202010134500A CN111367668A CN 111367668 A CN111367668 A CN 111367668A CN 202010134500 A CN202010134500 A CN 202010134500A CN 111367668 A CN111367668 A CN 111367668A
Authority
CN
China
Prior art keywords
layer
hidden layer
node
follows
output layer
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
CN202010134500.XA
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.)
Beijing University of Technology
Original Assignee
Beijing University of Technology
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 Beijing University of Technology filed Critical Beijing University of Technology
Priority to CN202010134500.XA priority Critical patent/CN111367668A/zh
Publication of CN111367668A publication Critical patent/CN111367668A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开一种基于改进BP神经网络的云服务资源弹性伸缩方法,该方法包括:一种优化的激励函数,增加调节因子,改进Sigmoid函数的不足。一种学习率动态调整算法,减少迭代次数,加快收敛速率。一种通过预测CPU未来使用趋势,对云服务资源进行弹性伸缩的方法,通过虚拟机动态的增加或释放,节省计算资源,保证云服务的安全与稳定。

Description

一种基于改进BP神经网络的云服务资源弹性伸缩方法
技术领域
本发明涉及深度学习和云计算领域,具体涉及一种基于改进BP神经网络的云服务资源弹性伸缩方法。
背景技术
深度学习领域快速发展,BP神经网络得到了广泛应用。BP算法的核心是将产生的结果与正确的结果进行比较,得到误差,再逆推对神经网中的权重进行反馈修正,从而完成学习的过程。但传统BP算法也存在一定局限,激励函数的选取,固定的学习率,原始的权值梯度计算方式使BP神经网络出现训练过程震荡、收敛缓慢、训练时间过长等问题。
弹性伸缩策略是云计算的关键技术之一。目前主流云计算***的自动伸缩为基于阈值确定,即当服务负载达到某个阈值将增加相应的资源,或者当负载低于某个阈值减少资源。这种固定的策略不够完善,存在计算资源浪费与服务器稳定性缺失等问题。
发明内容
为解决上述技术问题,提出一种基于改进BP神经网络的云服务资源弹性伸缩方法。提出一种改进后的激励函数,增加调节因子,克服梯度消失问题。一种优化的学习率动态调整算法,加速收敛,缩短训练时间。提出一种计算方法,根据预测后的CPU使用情况,提前进行虚拟机资源的动态伸缩,节省资源,稳定高效。
本发明包括以下技术方案及步骤:
步骤1、监控各虚拟机CPU使用量,每12分钟记录一次,形成数据集合。数据集合中的数据个数作为输入层和输出层的节点个数。
确定隐含层节点个数。n为输入层节点个数,m为输出层节点个数。s为调节项,初始值为1,采用节点扩张法,取值区间[1,10]。l表示隐含层节点个数,公式表达如下:
Figure BDA0002396181950000021
随机函数生成[-1,1]内随机数,作为权值和阈值的初始值。初始化输入层到隐含层权值ωij,隐含层到输出层权值ωjk。初始化隐含层节点阈值θj,输出层节点阈值θk
步骤2、计算隐含层节点数值。i为输入层节点,j为输出层节点,m为输出层节点个数。θj表示隐含层节点阈值,Oj表示隐含层节点数值,公式表达如下:
Figure BDA0002396181950000022
传统BP算法中激励函数Sigmoid存在饱和区,使网络陷入局部最小,梯度更新速度缓慢。提出一种激活函数,保证权值更新的稳定性。调节因子λ的取值区间为(0,1)。取值方式为,当输入数据的绝对值位于区间[0,10b],λ取值10-b
b为正整数。x为输入数值,公式记为f,表达如下:
Figure BDA0002396181950000031
步骤3、计算输出层节点数值。j为隐含层节点,k为输出层节点,l为隐含层节点个数。θk表示输出层节点阈值,Oj表示隐含层节点数值,ωjk表示隐含层到输出层权值。Ok表示输出层节点数值,公式表达如下:
Figure BDA0002396181950000032
步骤4、计算误差。k为输出层节点,l为隐含层节点个数,dk为期望输出值。误差表示为E,公式表达如下:
Figure BDA0002396181950000033
步骤5、更新输入层到隐含层权值梯度Δωij,隐含层到输出层权值梯度Δωjk。x为输入数值,η为学习率。k为输出层节点,m为输出层节点个数。ωij表示输入层到隐含层权值,ωjk表示隐含层到输出层权值,Oj表示隐含层节点数值,E表示误差,公式表达如下:
Figure BDA0002396181950000034
Δωjk=ηOjE (7)
固定的学习率的存在诸多局限。提出一种学习率动态更新算法,在迭代过程中自适应调整,减小震荡趋势,加快网络的收敛速度。公式表达如下:
Figure BDA0002396181950000041
其中,h为迭代次数,E为误差。学习率η初始值为0.1,若本次误差较上次有所增加,0.85倍减小学习率。若本次误差较上次有所减少,1.15倍增加学习率。若两次相等,则不变化。
步骤6、更新隐含层阈值梯度Δθj,输出层阈值梯度Δθk。η为学习率,Oj表示隐含层节点数值,ωjk表示隐含层到输出层权值。E表示误差,公式表达如下:
Figure BDA0002396181950000042
Δθk=E (10)
步骤7、更新输入层到隐含层权值ωij,隐含层到输出层权值ωjk。更新隐含层阈值θj,输出层阈值θk。h为迭代次数,公式表达式如下:
Figure BDA0002396181950000043
步骤8、对云服务资源进行弹性伸缩。提出一种动态弹性伸缩计算方法,使用改进后神经网络预测下一个12分钟的CPU使用量。根据使用量,计算CPU利用率和CPU使用系数。结合可接受的CPU利用率,决定是否伸缩。
虚拟机a的CPU利用率表示为Ua
Figure BDA0002396181950000051
为虚拟机a下个12分钟的CPU使用量,
Figure BDA0002396181950000052
表示虚拟机a的CPU总量,公式表达如下:
Figure BDA0002396181950000053
CPU使用系数表示为Ucoe,b为虚拟机运行数量,Utar为预设可接受的CPU利用率,公式表达如下:
Figure BDA0002396181950000054
若虚拟机CPU利用率Ua大于CPU使用系数Ucoe与可接受CPU利用率Utar之和,则进行扩容,增加虚拟机,公式表达为:
Ua>Ucoe+Utar (14)
若虚拟机CPU利用率Ua小于CPU使用系数Ucoe与可接受CPU利用率Utar之和,则进行缩容,释放虚拟机,公式表达为:
Ua<Ucoe+Utar (15)
需要伸缩的虚拟机数量表示为Nexp,Ncur为当前启动的CPU数量,
Figure BDA0002396181950000055
表示向上取整,公式表达如下:
Figure BDA0002396181950000056
若虚拟机CPU利用率Ua和CPU使用系数Ucoe与可接受CPU利用率Utar之和相等,则不进行伸缩,返回步骤1进行下一轮预测。
附图说明
图1为本发明的神经网络结构图
图2为本发明的执行流程图
具体实施方式
下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地述。
本发明提出一种基于改进BP神经网络的云服务资源弹性伸缩方法,具体实施步骤如下:
步骤1、使用OpenStack或其他云计算服务平台,在虚拟机中编写定时执行脚本,监控虚拟机CPU使用数量,每隔12分钟记录一次,形成相关日志文件。文件中的数据清洗后作为神经网络的输入层数据集合,数据集合中的数据个数作为输入层和输出层的节点个数。
参阅图1,确定隐含层节点个数。n为输入层节点个数,m为输出层节点个数。s为调节项,取值为3。l表示隐含层节点个数,公式表达如下:
Figure BDA0002396181950000061
随机函数生成[-1,1]内随机数,作为权值和阈值的初始值。初始化输入层到隐含层权值ωij,隐含层到输出层权值ωjk。初始化隐含层节点阈值θj,输出层节点阈值θk
步骤2、计算隐含层节点数值。i为输入层节点,j为输出层节点,m为输出层节点个数。θj表示隐含层节点阈值,Oj表示隐含层节点数值,公式表达如下:
Figure BDA0002396181950000071
传统BP算法中激励函数Sigmoid存在饱和区,使网络陷入局部最小,降低梯度更新速度。提出一种激活函数,保证权值更新的稳定性。调节因子λ取值0.01。x为输入数值,公式记为f,表达如下:
Figure BDA0002396181950000072
步骤3、计算输出层节点数值。j为隐含层节点,k为输出层节点,l为隐含层节点个数。θk表示输出层节点阈值,Oj表示隐含层节点数值,ωjk表示隐含层到输出层权值。Ok表示输出层节点数值,公式表达如下:
Figure BDA0002396181950000073
步骤4、计算误差。k为输出层节点,l为隐含层节点个数,dk为期望输出值。误差表示为E,公式表达如下:
Figure BDA0002396181950000074
步骤5、更新输入层到隐含层权值梯度Δωij,隐含层到输出层权值梯度Δωjk。x为输入数值,η为学习率。k为输出层节点,m为输出层节点个数。ωij表示输入层到隐含层权值,ωjk表示隐含层到输出层权值,Oj表示隐含层节点数值,E表示误差,公式表达如下:
Figure BDA0002396181950000081
Δωjk=ηOjE (7)
固定的学习率的存在诸多局限。提出一种学习率动态更新算法,在迭代过程中自适应调整,减小震荡趋势,加快网络的收敛速度。公式表达如下:
Figure BDA0002396181950000082
其中,h为迭代次数,E为误差。学习率η取值0.1,若本次误差较上次有所增加,0.85倍减小学习率。若本次误差较上次有所减少,1.15倍增加学习率。若两次相等,则不变化。
步骤6、更新隐含层阈值梯度Δθj,输出层阈值梯度Δθk。η为学习率,Oj表示隐含层节点数值,ωjk表示隐含层到输出层权值,E表示误差,公式表达如下:
Figure BDA0002396181950000091
Δθk=E (10)
步骤7、更新输入层到隐含层权值ωij,隐含层到输出层权值ωjk。更新隐含层阈值θj,输出层阈值θk。h为迭代次数,公式表达式如下:
Figure BDA0002396181950000092
步骤8、参阅图2,对云服务资源进行弹性伸缩。提出一种动态弹性伸缩计算方法,使用改进后神经网络预测下一个12分钟的CPU使用量。根据使用量,计算CPU利用率和CPU使用系数。结合可接受的CPU利用率,决定是否伸缩。
虚拟机a的CPU利用率表示为Ua
Figure BDA0002396181950000093
为虚拟机a下一个12分钟的CPU使用量,
Figure BDA0002396181950000094
为虚拟机a的CPU总量,公式表达如下:
Figure BDA0002396181950000095
CPU使用系数表示为Ucoe,b为虚拟机运行数量,Utar为预设可接受的CPU利用率,公式表达如下:
Figure BDA0002396181950000101
若虚拟机CPU利用率Ua大于CPU使用系数Ucoe与可接受CPU利用率Utar之和,则进行扩容,增加虚拟机,公式表达为:
Ua>Ucoe+Utar (14)
若虚拟机CPU利用率Ua小于CPU使用系数Ucoe与可接受CPU利用率Utar之和,则进行缩容,释放虚拟机,公式表达为:
Ua<Ucoe+Utar (15)
需要伸缩的虚拟机数量表示为Nexp,Ncur为当前启动的CPU数量,
Figure BDA0002396181950000102
表示向上取整,公式表达如下:
Figure BDA0002396181950000103
若虚拟机CPU利用率Ua和CPU使用系数Ucoe与可接受CPU利用率Utar之和相等,则不进行伸缩,返回步骤1进行下一轮预测。
本发明能够克服现有BP算法学习速度慢、网络稳定性差等缺点。改进后的算法能够避免神经网络陷入局部最小,加快神经网络的学习速度和收敛速度。有效减少震荡,使神经网络的训练过程更加稳定高效。
与现有云计算中虚拟资源的固定阈值伸缩方法相比,本发明提出的动态伸缩方法更加灵活,在降低资源消耗的同时提高了用户满意度,使云计算***运行时更加稳定,具有较高优越性。

Claims (1)

1.一种基于改进BP神经网络的云服务资源弹性伸缩方法,其特征在于:
步骤1、监控各虚拟机CPU使用量,每12分钟记录一次,形成数据集合;数据集合中的数据个数作为输入层和输出层的节点个数;
确定隐含层节点个数;n为输入层节点个数,m为输出层节点个数;s为调节项,取值区间[1,10];l表示隐含层节点个数,公式表达如下:
Figure FDA0002396181940000011
随机函数生成[-1,1]内随机数,作为权值和阈值的初始值;初始化输入层到隐含层权值ωij,隐含层到输出层权值ωjk;初始化隐含层节点阈值θj,输出层节点阈值θk
步骤2、计算隐含层节点数值;i为输入层节点,j为隐含层节点;m为输出层节点个数,θj表示隐含层节点阈值;Oj表示隐含层节点数值,公式表达如下:
Figure FDA0002396181940000012
提出一种激活函数,增加调节因子λ,λ取值区间为(0,1);x为输入数值,公式记为f,表达如下:
Figure FDA0002396181940000021
步骤3、计算输出层节点数值;j为隐含层节点,k为输出层节点,l为隐含层节点个数;θk表示输出层节点阈值,Oj表示隐含层节点数值,ωjk表示隐含层到输出层权值;Ok表示输出层节点数值,公式表达如下:
Figure FDA0002396181940000022
步骤4、计算误差;k为输出层节点,l为隐含层节点个数;dk表示期望输出值,Ok表示输出层节点数值;误差表示为E,公式表达如下:
Figure FDA0002396181940000023
步骤5、更新输入层到隐含层权值梯度Δωij,隐含层到输出层权值梯度Δωjk;x为输入数值,η为学习率;k为输出层节点,m为输出层节点个数;ωij表示输入层到隐含层权值,ωjk表示隐含层到输出层权值,Oj表示隐含层节点数值,E表示误差,公式表达如下:
Figure FDA0002396181940000031
Δωjk=ηOjE (7)
学习率动态更新,在迭代过程中自适应调整;η为学习率,h为迭代次数,E表示误差,公式表达如下:
Figure FDA0002396181940000032
步骤6、更新隐含层阈值梯度Δθj,输出层阈值梯度Δθk;η为学习率,Oj表示隐含层节点数值,ωjk表示隐含层到输出层权值,E表示误差,公式表达如下:
Figure FDA0002396181940000033
Δθk=E (10)
步骤7、更新输入层到隐含层权值ωij,隐含层到输出层权值ωjk;更新隐含层阈值θj,输出层阈值θk;h为迭代次数,公式表达式如下:
Figure FDA0002396181940000034
θk(h+1)=θk(h)+Δθk(h)
步骤8、对云服务资源进行弹性伸缩;预测下一个12分钟的CPU使用量;根据使用量,计算CPU利用率和CPU使用系数;结合可接受的CPU利用率,决定是否伸缩;
虚拟机a的CPU利用率表示为Ua
Figure FDA0002396181940000041
为虚拟机a下个12分钟的CPU使用量,
Figure FDA0002396181940000042
为虚拟机a的CPU总量,公式表达如下:
Figure FDA0002396181940000043
CPU使用系数表示为Ucoe,b为虚拟机运行数量,Utar为预设可接受的CPU利用率,公式表达如下:
Figure FDA0002396181940000044
扩容条件为:
Ua>Ucoe+Utar (14)
缩容条件为:
Ua<Ucoe+Utar (15)
需要伸缩的虚拟机数量表示为Nexp,Ncur为当前启动的CPU数量,
Figure FDA0002396181940000045
表示向上取整,公式表达如下:
Figure FDA0002396181940000051
若相等则不进行伸缩,返回步骤1进行下一轮预测。
CN202010134500.XA 2020-02-29 2020-02-29 一种基于改进bp神经网络的云服务资源弹性伸缩方法 Pending CN111367668A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010134500.XA CN111367668A (zh) 2020-02-29 2020-02-29 一种基于改进bp神经网络的云服务资源弹性伸缩方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010134500.XA CN111367668A (zh) 2020-02-29 2020-02-29 一种基于改进bp神经网络的云服务资源弹性伸缩方法

Publications (1)

Publication Number Publication Date
CN111367668A true CN111367668A (zh) 2020-07-03

Family

ID=71208403

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010134500.XA Pending CN111367668A (zh) 2020-02-29 2020-02-29 一种基于改进bp神经网络的云服务资源弹性伸缩方法

Country Status (1)

Country Link
CN (1) CN111367668A (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015172560A1 (zh) * 2014-05-16 2015-11-19 华南理工大学 基于bp神经网络的中央空调冷负荷的预测方法
CN108304355A (zh) * 2018-02-08 2018-07-20 北京工业大学 一种基于sarima-wnn模型预测弹性云计算资源的方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015172560A1 (zh) * 2014-05-16 2015-11-19 华南理工大学 基于bp神经网络的中央空调冷负荷的预测方法
CN108304355A (zh) * 2018-02-08 2018-07-20 北京工业大学 一种基于sarima-wnn模型预测弹性云计算资源的方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
LIANG JIN等: "Research on optimization algorithm of BP neural network for permanent magnet synchronous motor based on Cloud Computing", 《2017 20TH INTERNATIONAL CONFERENCE ON ELECTRICAL MACHINES AND SYSTEMS (ICEMS)》 *
徐建中等: "一种基于预测的云计算的弹性伸缩策略", 《计算机与数字工程》 *
潘文婵等: "BP神经网络的优化研究与应用", 《计算机技术与发展》 *

Similar Documents

Publication Publication Date Title
CN114756383B (zh) 一种分布式计算方法、***、设备及存储介质
CN108416465B (zh) 一种移动云环境下的工作流优化方法
CN107330516A (zh) 模型参数训练方法、装置及***
CN113794748B (zh) 一种性能感知的服务功能链智能部署方法及装置
CN115237580B (zh) 面向智能计算的流水并行训练自适应调整***、方法
CN110795246A (zh) 资源利用率的预测方法及装置
CN106528270A (zh) 一种基于OpenStack云平台的虚拟机自动迁移方法及***
Cui et al. Distributed training of deep neural network acoustic models for automatic speech recognition: a comparison of current training strategies
Tanaka et al. Automatic graph partitioning for very large-scale deep learning
CN112732444A (zh) 一种面向分布式机器学习的数据划分方法
CN111860867B (zh) 一种混合异构***的模型训练方法、***及相关装置
US20230306236A1 (en) Device and method for executing lstm neural network operation
CN112131089B (zh) 软件缺陷预测的方法、分类器、计算机设备及存储介质
CN112862083B (zh) 一种边缘环境下的深度神经网络推断方法及装置
CN111367668A (zh) 一种基于改进bp神经网络的云服务资源弹性伸缩方法
CN113627519A (zh) 具有压缩和延迟补偿的分布式随机梯度下降方法
CN111274111B (zh) 一种用于微服务老化的预测与抗衰方法
CN117852653A (zh) 用于模型推理的空间分配方法、装置、设备和介质
CN109347900B (zh) 基于改进狼群算法的云服务***自适应演化方法
CN116484979A (zh) 一种面向信息驱动的分布式图表示学习方法及***
CN115454611A (zh) 一种基于改进粒子群优化算法的任务调度方法
KR102442891B1 (ko) 인공 신경망의 웨이트 갱신 시스템 및 방법
Ji et al. Performance prediction for distributed graph computing
CN116501502B (zh) 一种基于Pytorch框架的数据并行优化方法
CN117077726B (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