王鹤琴
(1.安徽警官职业学院信息管理系,安徽 合肥 230031;2.安徽师范大学计算机科学与技术研究所,安徽 芜湖 241000)
近年来,云服务在全世界范围内迅速发展起来,基于对云服务的研究发现价格和成本模型仍然是一个持续的研究热点[1].
优化的云服务定价模型可减少用户的消费成本,同时是提升云服务商业价值的一个至关重要的因素.一旦在市场中应用,能够改变用户的行为并有助于提高云服务提供商在市场中的地位.因此,云服务定价模型的研究对于云服务提供商和云服务的发展具有深远的意义[2].
目前比较典型的云服务价格预测模型有基于市场定价的方法、基于博弈定价的方法以及基于拍卖定价的方法等[3].传统定价模型难以满足云服务的市场需求.从云服务提供商的角度看,希望提高市场占有率的同时并赢取更多的利益[3].从用户的角度看,在服务水平一样的情况下,价格尽可能低.如果把价格设定过高,则可能会造成失去用户的风险,市场占有率就会下降;如果把价格设定过低,则可能会造成利润不佳.因此,如何设定云服务的价格,既能满足用户需求,又能保证云服务提供商利润最大化,是亟需解决的问题.
影响云服务价格的因素较多,且部分因素对价格的影响程度不同.考虑影响云服务价格因素既不够全面也未考虑元素与价格之间的关系,因此,本文针对这一问题提出在改进人工神经网络的基础上进行云服务价格预测模型的研究.本文从蒂布特模型中提炼出影响定价的政策干预、用户偏好、业内竞争这些因素,将改进的人工神经网络算法用于研究云服务价格预测的定量研究上,与BP神经网络、RBF神经网络以及人工神经网络预测模型分别进行比较分析,以论证本文提出的基于Tiebout模型和改进的人工神经网络的云服务价格预测模型更优化.
在先前的研究中发现影响云服务价格的因素一般都是由多种因素共同影响,而这些因素与价格之间关系较为复杂,且各因素对价格的影响程度不同.为了提高对云服务价格预测的准确性,对因素的影响重要程度进行了分析,但考虑到原始数据集数量大且繁杂,要从中发现规律,并不容易.而人工神经网络具有高度的自适应性、非线性、善于处理复杂关系的优点,在初始化阶段选取的权值和阈值不当,就比较容易陷入局部极小值.布谷鸟算法(Cuckoo Search Algorithm)具有比较好的跳出局部搜索的优点,故采用布谷鸟算法改进人工神经网络的模型对云服务价格进行预测是行之有效的.
美国经济学家蒂布特(Charles Tiebout)认为各个地方政府之间的相互“竞争”,也会促使其更有效地提供人们所需要的公共产品和服务.从蒂布特模型中,我们可以提炼出影响云服务价格的因素主要包括政策干预x1,用户偏好x2和业内竞争x3.剑桥大学Xin-SheYang等学者于2009年提出布谷鸟搜索算法(CS),通过模拟某些种属布谷鸟的寄生育雏来有效地求解最优化问题.其主要优点是参数少、容易实现、随机搜索路径、寻优能力强,同时具有的Levy特性能够有效地扩大搜索范围,是一种高效的全局随机搜索算法[4].其全局可以随机游走使用Levy飞行,记作:
xi(t+1)=xi(t)+αL(s,λ)
(1)
(2)
其中,α>0是缩放因子.
根据解的适应度,计算解的选择概率,其公式如下:
(3)
将适应度考虑到以Pa 概率发现并丢弃解的策略中,如公式如下所示:
(4)
CS算法在以Pa 概率发现并丢弃解时,可能保留适应度较差的解,而丢弃适应度较好的解.因此提出ICS 算法,其主要思想是:在发现并丢弃解时,同时考虑解的适应度,将解的适应度作为评判是否丢弃解的一个度量.
人工神经网络(Artificial Neural Network,即ANN)算法由正向传播和误差的反向传播两个阶段组成[5].多层神经网络可任意精度逼近连续函数[6].由于云服务价格预测问题本身比较复杂,较多的因素与价格之间关系复杂,数据量大且繁杂,很难发现内部规律,考虑到人工神经网络特点为对非线性关系有很强的适用性,且能够从大量的数据中发现规律,因此本文将使用改进的人工神经算法对云服务价格预测问题进行研究.改进的人工神经网络的云服务价格预测模型的影响因素为:国家政策干预、业内竞争、用户偏好、服务类型、VCPU、ECU、内存大小和实例存储.
将改进的人工神经网络算法用于云服务价格预测模型的制定问题,主要建模步骤如图1.
图1 基于改进人工神经网络云服务价格预测流程图
1)数据采集
数据主要分为两类,内部因素和宏观经济.其中内部因素有:服务类型、虚拟CPU核数、ECU、内存大小、以及实例存储.
根据Amazon官网给出的信息把服务类型,以国际评价标准SLA由低到高分别抽象为数字1~5用以评价服务类型对价格的影响.虚拟机CPU核数、ECU和内存大小来源于Amazon官网给出的实际数据,而实例存储的数据是根据当前网上售卖价格.属于宏观因素的是国家政策干预、业内竞争和用户偏好.国家政策干预不能直接得到,因此,我们通过所在地区的GDP间接得到国家政策干预对云服务价格的影响.用户偏好数据信息通过某社管平台给出的Amazon云服务的下载量从而间接反映对价格的影响.业内竞争数据信息通过Amazon云服务的下载量与百度云的下载量的比值体现,若比值大于1说明Amazon云服务比百度云占优势;若比值小于1说明百度云比Amazon云服务占优势.
2)数据预处理
设计人工神经网络时,首先需对输入变量和输出变量进行归一化处理,归一化公式如下:
(5)
(6)
3)构建ANN网络
对于CS-ANN神经网络采用四层的人工神经网络,该模型由每组数据的8项元素指标作为输入,以价格作为输出,则输入层神经元个数为8,输出层神经元个数为1,layer1层神经元个数设置为2,layer2神经元个数设置为4,所以建立8-2-4-1的网络结构.网络结构示意图如图2.
图2 改进人工神经网络结构示意图
4)CS解码
在初始化人工神经网络时,初始化的过程来近似地满足维持激活方差和反向传播grad的目标,当网络向上或向下移动时,会发生变化.因此为了避免变化浮动过大,我们通过Cuckoo Search算法计算得到最合适的鸟窝的位置best,把这些最佳鸟窝的位置作为输入层的初始权值.
5)训练网络
为了提高收敛速度,我们需要选择高效的训练方法.现有的人工神经网络的训练方法有:Gradient descent、Newton’s method、Conjugate gradient、Quasi-Newton method和Levenberg-Marquardt(LM算法)等.LM算法是介于Newton’s method与Gradient descent之间的一种非线性优化方法,对于过参数化问题不敏感且能有效处理冗余参数问题,从而大大降低代价函数陷入局部极小值的机会.因此,我们采用LM算法作为训练算法,当满足终止条件后,得到训练好的改进的人工神经网络.
6)误差分析
将测试集代入训练后的ANN网络,得到测试结果,进行反归一化处理,将结果与真实数据比较,进行误差分析.
1)算法1 改进布谷鸟算法(Improved Cuckoo Search Algorithm,ICS)
输入:鸟巢的数量n
输出:最佳巢穴的位置best
1. begin
2.初始化鸟巢的位置xi(t),(i=1,2,...,n)
3.计算适应度fi
对照组中,20例患者的年龄范围为26~41岁,年龄均值为(33.02±3.55)岁,其子宫肌瘤直径范围为 4.0~11.0 cm,均值为(6.20±1.33)cm,其中 14 例患者为单发肌瘤,6例患者为多发肌瘤。
4.whilet 5. for i=1 ton 6.利用Levy飞行生成新解vi(t+1) 7.ifvi(t+1)优于xi(t) 8.xi(t+1)=vi(t+1) 9.else 10.xi(t+1)=vi(t) 11.end 12.fori=1 ton 13.根据式(3)和式(4)计算新的ri' 14.ifri'≥pa 15.利用偏好游走得到新解xi(t+1) 16.end 17.保留目前为止发现的最优解 18.end 19.输出最优解 20.end 算法2 改进人工神经网络算法(Improved Artificial Neural Network Algorithm,IANNA) 输入:原始数据集data 输出:预测价格outputy 1.begin 2.输入原始数据集p=data(1∶8,1∶150)和t=data(9,1∶150) 3.对p和t利用式(5)进行归一化处理 4.依据系统时钟种子产生随机数rand和噪音强度NoiseVar 5.将噪音添加到输出样本上记为out 6.设置参数MaxEpochs,lr,e,w1=best,b1, w2,b2,w3,b3 7.for i=1:MaxEpochs%正向传播 8.layer1=tansig(w1 * pn+repmat(b1,150)) 9.layer2=tansig(w2*layer1+repmat(b2,1,150)) 10.netOut=w3*layer2+repmat(b3,1,150) 11.end 12.error=out-netOut 13.sse=sumsqr(error) 14.errHistory=[errHistory,sse] 15. if sse 16.%反向传播Delta3=error;Delta2=w3'*Delta3.*layer2.*(1-layer2) 17.Delta1=w2'*Delta2.*layer1.*(1-layer1) 18.对w3、b3、w2、b2、w1、b1求偏导数 19.对各层之间的权值和阈值进行修正 20.layer1=tansig(w1*pn + repmat(b1,1,150)) layer2=tansig(w2*layer1+repmat(b2,1,150)) netOut=w3*layer2+repmat(b3,1,150) 21.a=mapminmax('reverse',tn,ts);%还原输出层的结果 22.end 为了验证本文方法的可行性,重点针对Amazon公司提供的有关云服务定价的内部数据和酷传网站提供的宏观经济的数据进行预处理.根据预处理后的数据,通过人工神经网络的方法,构造云服务定价预测模型.由于数据比较繁多,根据随机抽取的原则从原始数据中抽取200组数据作为本实验的样本空间,对其进行研究分析. 将200组有效的云服务价格数据划分为训练样本和测试样本,其中,训练样本150组,主要用于建立云服务价格预测模型,测试样本50组,主要验证云服务价格预测模型的优劣性.改进的人工神经网络参数设置如下:最大的迭代次数Iteration=5 000,输入神经元数量inputNum=8,隐含层1神经元数量hiddenNum1=2,隐含层2神经元数量hiddenNum2=4和输出层神经元数量outputNum=1,训练目标误差goal=5×10-6. 为了探究各因素对价格影响的关系,进行了如下试验分析. 图3表示VCPU核数对价格的影响,从其趋势可知,云服务价格随着VCPU核数的增加而增加,且VCPU与云服务价格之间并不是线性关系.VCPU核数对于云服务价格的影响程度较大,故VCPU核数是云服务价格预测不可忽略的因素之一. 图3 VCPU的核数对价格影响的折线图 图4表示ECU的大小对云服务价格的影响,从图4可知云服务价格随着ECU的增加而增加,随着ECU的减小而减少,且ECU大小对云服务价格产生了较大的影响.故ECU大小是云服务定价的重要因素之一. 图4 ECU大小对价格影响的折线图 图5表示内存大小对云服务价格的影响.从图5的基本趋势可知,云服务价格随着内存空间大小的增加而增加,且占用内存空间的大小与云服务价格之间并不是简单的线性关系.故内存空间大小是云服务价格预测不可忽略的因素之一. 图5 内存空间大小对价格影响的折线图 图6表示实例存储对云服务价格的影响.从图6基本趋势可知,云服务价格随着实例存储的增加而增加,且实例存储对于云服务价格的影响程度较大,故实例存储是云服务价格预测不得不考虑的因素. 图6 实例存储大小对价格影响的折线图 图7表示服务类型对云服务价格的影响.服务类型分别有内存优化、存储优化、GPU实例、计算优化、通用性按逆序排列.从图7可知,对于内存优化的价格最高,其次是存储优化的服务价格比较高,最后是GPU实例服务高于计算优化服务和通用服务的价格,计算优化的服务高于通用服务的价格.服务类型对于云服务价格产生一定的影响,故服务类型是云服务价格预测的一个重要因素. 图7 服务类型对价格影响的折线图 图8表示GDP对云服务价格的影响,从其基本趋势可知,云服务价格随着GDP金额的增加而增加,且GDP对于云服务价格产生一定的影响,故GDP是云服务价格预测参考因素之一. 图8 GDP对价格影响的折线图 图9表示偏好程度对云服务价格的影响,且从图9可知云服务价格随着偏好程度的增加而增加,且偏好程度对云服务价格造成部分影响.故偏好程度是云服务定价的重要因素之一. 图9 偏好程度对价格影响的折线图 为了验证本文模型运行云服务价格预测的优越性,将其与BP神经网络、RBF神经网络、ANN神经网络的预测结果分别进行对比,对比结果如图10、11所示.将处理过的数据分别带入BP神经网络、RBF神经网络、人工神经网络(ANN)和改进的人工神经网络(CS-ANN)模型当中,将云服务预测价格与原始云服务价格进行对比,训练集学习进行模拟预测云服务价格图像如图10所示.由图10可以看出,针对云服务价格预测问题而言,改进人工神经网络的学习能力最好,非常接近原始价格,人工神经网络的学习能力次之,之后是BP神经网络的学习能力较强,而RBF神经网络的学习能力较弱.利用原始数据的151~200的数据集进行模拟预测价格,其结果如图11所示.从图11可得出,改进的人工神经网络的云服务预测价格几乎接近实际价格,BP神经网络和人工神经网络预测云服务价格的能力次之,预测能力较差的是RBF神经网络. 图10 训练集预测云服务价格折线图 图11 测试集预测云服务价格折线图 为了进一步评价云服务价格预测效果,我们选择平均绝对误差(MAE)、均方根误差(RMSE)和平均绝对百分比误差(MAPE)作为评价指标.由于RMSE用于衡量实际值与预测值之间的误差,计算RMSE的值越小,表示云服务价格预测精度越高,反之,云服务价格预测精度越低.平均绝对误差MAE能够更好地反映云服务预测价格误差的实际情况,计算MAE的值越小表示云服务预测价格的能力越好.平均绝对百分比误差可以衡量模型预测结果的好坏,其值越小说明云服务预测价格的效果越好. (7) (8) (9) 结合图10、图11和表1不同神经网络的云服务价格预测结果(其数据将精确到万分位)可知,在MAE、RMSE和MAPE三个指标上,本文提出的基于Tiebout模型和改进人工神经网络预测模型的精度最高,优于BP神经网络、RBF神经网络和人工神经网络预测模型;其次,人工神经网络的预测效果优于BP神经网络、RBF神经网络;最后,BP神经网络的预测效果优于RBF神经网络预测,且RBF预测模型在MAE、RMSE和MAPE分别比CS-ANN预测模型低2.474 8、3.806 5和0.233 8%,且本文提出的模型计算MAE、RMSE和MAPE的值都较小,表示其云服务预测价格非常精确. 表1 不同算法云服务价格预测结果对比 通过对比可知,本文提出的CS-ANN预测模型可有效的提高云服务价格预测精度. 针对现有算法进行云服务价格预测存在精度低和滞后性大的缺点,提出一种基于Tiebout模型和改进人工神经网络的云服务价格预测模型.通过运用人工神经网络对价格进行预测,实现云服务价格的预测.实验结果表明,本文提出的Tiebout model和改进人工神经网络的组合模型可有效提高云服务价格预测精度,以期为云服务价格预测提供新的方法和途径.3 验证实验
3.1 因素分析
3.2 对比试验
4 结论