CN111367668A - 一种基于改进bp神经网络的云服务资源弹性伸缩方法 - Google Patents
一种基于改进bp神经网络的云服务资源弹性伸缩方法 Download PDFInfo
- 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
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 17
- 238000000034 method Methods 0.000 title claims abstract description 15
- 230000006870 function Effects 0.000 claims abstract description 12
- 230000004913 activation Effects 0.000 claims description 3
- 230000008602 contraction Effects 0.000 claims description 3
- 238000012544 monitoring process Methods 0.000 claims description 3
- 238000004422 calculation algorithm Methods 0.000 abstract description 10
- 230000005284 excitation Effects 0.000 abstract description 5
- 230000007547 defect Effects 0.000 abstract description 2
- 238000004364 calculation method Methods 0.000 description 4
- 238000012549 training Methods 0.000 description 4
- 230000003247 decreasing effect Effects 0.000 description 3
- 230000010355 oscillation Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 238000012804 iterative process Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000004140 cleaning Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000008034 disappearance Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution 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神经网络的云服务资源弹性伸缩方法。提出一种改进后的激励函数,增加调节因子,克服梯度消失问题。一种优化的学习率动态调整算法,加速收敛,缩短训练时间。提出一种计算方法,根据预测后的CPU使用情况,提前进行虚拟机资源的动态伸缩,节省资源,稳定高效。
本发明包括以下技术方案及步骤:
步骤1、监控各虚拟机CPU使用量,每12分钟记录一次,形成数据集合。数据集合中的数据个数作为输入层和输出层的节点个数。
确定隐含层节点个数。n为输入层节点个数,m为输出层节点个数。s为调节项,初始值为1,采用节点扩张法,取值区间[1,10]。l表示隐含层节点个数,公式表达如下:
随机函数生成[-1,1]内随机数,作为权值和阈值的初始值。初始化输入层到隐含层权值ωij,隐含层到输出层权值ωjk。初始化隐含层节点阈值θj,输出层节点阈值θk。
步骤2、计算隐含层节点数值。i为输入层节点,j为输出层节点,m为输出层节点个数。θj表示隐含层节点阈值,Oj表示隐含层节点数值,公式表达如下:
传统BP算法中激励函数Sigmoid存在饱和区,使网络陷入局部最小,梯度更新速度缓慢。提出一种激活函数,保证权值更新的稳定性。调节因子λ的取值区间为(0,1)。取值方式为,当输入数据的绝对值位于区间[0,10b],λ取值10-b,
b为正整数。x为输入数值,公式记为f,表达如下:
步骤3、计算输出层节点数值。j为隐含层节点,k为输出层节点,l为隐含层节点个数。θk表示输出层节点阈值,Oj表示隐含层节点数值,ωjk表示隐含层到输出层权值。Ok表示输出层节点数值,公式表达如下:
步骤4、计算误差。k为输出层节点,l为隐含层节点个数,dk为期望输出值。误差表示为E,公式表达如下:
步骤5、更新输入层到隐含层权值梯度Δωij,隐含层到输出层权值梯度Δωjk。x为输入数值,η为学习率。k为输出层节点,m为输出层节点个数。ωij表示输入层到隐含层权值,ωjk表示隐含层到输出层权值,Oj表示隐含层节点数值,E表示误差,公式表达如下:
Δωjk=ηOjE (7)
固定的学习率的存在诸多局限。提出一种学习率动态更新算法,在迭代过程中自适应调整,减小震荡趋势,加快网络的收敛速度。公式表达如下:
其中,h为迭代次数,E为误差。学习率η初始值为0.1,若本次误差较上次有所增加,0.85倍减小学习率。若本次误差较上次有所减少,1.15倍增加学习率。若两次相等,则不变化。
步骤6、更新隐含层阈值梯度Δθj,输出层阈值梯度Δθk。η为学习率,Oj表示隐含层节点数值,ωjk表示隐含层到输出层权值。E表示误差,公式表达如下:
Δθk=E (10)
步骤7、更新输入层到隐含层权值ωij,隐含层到输出层权值ωjk。更新隐含层阈值θj,输出层阈值θk。h为迭代次数,公式表达式如下:
步骤8、对云服务资源进行弹性伸缩。提出一种动态弹性伸缩计算方法,使用改进后神经网络预测下一个12分钟的CPU使用量。根据使用量,计算CPU利用率和CPU使用系数。结合可接受的CPU利用率,决定是否伸缩。
CPU使用系数表示为Ucoe,b为虚拟机运行数量,Utar为预设可接受的CPU利用率,公式表达如下:
若虚拟机CPU利用率Ua大于CPU使用系数Ucoe与可接受CPU利用率Utar之和,则进行扩容,增加虚拟机,公式表达为:
Ua>Ucoe+Utar (14)
若虚拟机CPU利用率Ua小于CPU使用系数Ucoe与可接受CPU利用率Utar之和,则进行缩容,释放虚拟机,公式表达为:
Ua<Ucoe+Utar (15)
若虚拟机CPU利用率Ua和CPU使用系数Ucoe与可接受CPU利用率Utar之和相等,则不进行伸缩,返回步骤1进行下一轮预测。
附图说明
图1为本发明的神经网络结构图
图2为本发明的执行流程图
具体实施方式
下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地述。
本发明提出一种基于改进BP神经网络的云服务资源弹性伸缩方法,具体实施步骤如下:
步骤1、使用OpenStack或其他云计算服务平台,在虚拟机中编写定时执行脚本,监控虚拟机CPU使用数量,每隔12分钟记录一次,形成相关日志文件。文件中的数据清洗后作为神经网络的输入层数据集合,数据集合中的数据个数作为输入层和输出层的节点个数。
参阅图1,确定隐含层节点个数。n为输入层节点个数,m为输出层节点个数。s为调节项,取值为3。l表示隐含层节点个数,公式表达如下:
随机函数生成[-1,1]内随机数,作为权值和阈值的初始值。初始化输入层到隐含层权值ωij,隐含层到输出层权值ωjk。初始化隐含层节点阈值θj,输出层节点阈值θk。
步骤2、计算隐含层节点数值。i为输入层节点,j为输出层节点,m为输出层节点个数。θj表示隐含层节点阈值,Oj表示隐含层节点数值,公式表达如下:
传统BP算法中激励函数Sigmoid存在饱和区,使网络陷入局部最小,降低梯度更新速度。提出一种激活函数,保证权值更新的稳定性。调节因子λ取值0.01。x为输入数值,公式记为f,表达如下:
步骤3、计算输出层节点数值。j为隐含层节点,k为输出层节点,l为隐含层节点个数。θk表示输出层节点阈值,Oj表示隐含层节点数值,ωjk表示隐含层到输出层权值。Ok表示输出层节点数值,公式表达如下:
步骤4、计算误差。k为输出层节点,l为隐含层节点个数,dk为期望输出值。误差表示为E,公式表达如下:
步骤5、更新输入层到隐含层权值梯度Δωij,隐含层到输出层权值梯度Δωjk。x为输入数值,η为学习率。k为输出层节点,m为输出层节点个数。ωij表示输入层到隐含层权值,ωjk表示隐含层到输出层权值,Oj表示隐含层节点数值,E表示误差,公式表达如下:
Δωjk=ηOjE (7)
固定的学习率的存在诸多局限。提出一种学习率动态更新算法,在迭代过程中自适应调整,减小震荡趋势,加快网络的收敛速度。公式表达如下:
其中,h为迭代次数,E为误差。学习率η取值0.1,若本次误差较上次有所增加,0.85倍减小学习率。若本次误差较上次有所减少,1.15倍增加学习率。若两次相等,则不变化。
步骤6、更新隐含层阈值梯度Δθj,输出层阈值梯度Δθk。η为学习率,Oj表示隐含层节点数值,ωjk表示隐含层到输出层权值,E表示误差,公式表达如下:
Δθk=E (10)
步骤7、更新输入层到隐含层权值ωij,隐含层到输出层权值ωjk。更新隐含层阈值θj,输出层阈值θk。h为迭代次数,公式表达式如下:
步骤8、参阅图2,对云服务资源进行弹性伸缩。提出一种动态弹性伸缩计算方法,使用改进后神经网络预测下一个12分钟的CPU使用量。根据使用量,计算CPU利用率和CPU使用系数。结合可接受的CPU利用率,决定是否伸缩。
CPU使用系数表示为Ucoe,b为虚拟机运行数量,Utar为预设可接受的CPU利用率,公式表达如下:
若虚拟机CPU利用率Ua大于CPU使用系数Ucoe与可接受CPU利用率Utar之和,则进行扩容,增加虚拟机,公式表达为:
Ua>Ucoe+Utar (14)
若虚拟机CPU利用率Ua小于CPU使用系数Ucoe与可接受CPU利用率Utar之和,则进行缩容,释放虚拟机,公式表达为:
Ua<Ucoe+Utar (15)
若虚拟机CPU利用率Ua和CPU使用系数Ucoe与可接受CPU利用率Utar之和相等,则不进行伸缩,返回步骤1进行下一轮预测。
本发明能够克服现有BP算法学习速度慢、网络稳定性差等缺点。改进后的算法能够避免神经网络陷入局部最小,加快神经网络的学习速度和收敛速度。有效减少震荡,使神经网络的训练过程更加稳定高效。
与现有云计算中虚拟资源的固定阈值伸缩方法相比,本发明提出的动态伸缩方法更加灵活,在降低资源消耗的同时提高了用户满意度,使云计算***运行时更加稳定,具有较高优越性。
Claims (1)
1.一种基于改进BP神经网络的云服务资源弹性伸缩方法,其特征在于:
步骤1、监控各虚拟机CPU使用量,每12分钟记录一次,形成数据集合;数据集合中的数据个数作为输入层和输出层的节点个数;
确定隐含层节点个数;n为输入层节点个数,m为输出层节点个数;s为调节项,取值区间[1,10];l表示隐含层节点个数,公式表达如下:
随机函数生成[-1,1]内随机数,作为权值和阈值的初始值;初始化输入层到隐含层权值ωij,隐含层到输出层权值ωjk;初始化隐含层节点阈值θj,输出层节点阈值θk;
步骤2、计算隐含层节点数值;i为输入层节点,j为隐含层节点;m为输出层节点个数,θj表示隐含层节点阈值;Oj表示隐含层节点数值,公式表达如下:
提出一种激活函数,增加调节因子λ,λ取值区间为(0,1);x为输入数值,公式记为f,表达如下:
步骤3、计算输出层节点数值;j为隐含层节点,k为输出层节点,l为隐含层节点个数;θk表示输出层节点阈值,Oj表示隐含层节点数值,ωjk表示隐含层到输出层权值;Ok表示输出层节点数值,公式表达如下:
步骤4、计算误差;k为输出层节点,l为隐含层节点个数;dk表示期望输出值,Ok表示输出层节点数值;误差表示为E,公式表达如下:
步骤5、更新输入层到隐含层权值梯度Δωij,隐含层到输出层权值梯度Δωjk;x为输入数值,η为学习率;k为输出层节点,m为输出层节点个数;ωij表示输入层到隐含层权值,ωjk表示隐含层到输出层权值,Oj表示隐含层节点数值,E表示误差,公式表达如下:
Δωjk=ηOjE (7)
学习率动态更新,在迭代过程中自适应调整;η为学习率,h为迭代次数,E表示误差,公式表达如下:
步骤6、更新隐含层阈值梯度Δθj,输出层阈值梯度Δθk;η为学习率,Oj表示隐含层节点数值,ωjk表示隐含层到输出层权值,E表示误差,公式表达如下:
Δθk=E (10)
步骤7、更新输入层到隐含层权值ωij,隐含层到输出层权值ωjk;更新隐含层阈值θj,输出层阈值θk;h为迭代次数,公式表达式如下:
θk(h+1)=θk(h)+Δθk(h)
步骤8、对云服务资源进行弹性伸缩;预测下一个12分钟的CPU使用量;根据使用量,计算CPU利用率和CPU使用系数;结合可接受的CPU利用率,决定是否伸缩;
CPU使用系数表示为Ucoe,b为虚拟机运行数量,Utar为预设可接受的CPU利用率,公式表达如下:
扩容条件为:
Ua>Ucoe+Utar (14)
缩容条件为:
Ua<Ucoe+Utar (15)
若相等则不进行伸缩,返回步骤1进行下一轮预测。
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)
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模型预测弹性云计算资源的方法 |
-
2020
- 2020-02-29 CN CN202010134500.XA patent/CN111367668A/zh active Pending
Patent Citations (2)
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)
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 |