譚宇寧,黨偉超,白尚旺,潘理虎
(太原科技大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,太原 030024)
軟件老化是指軟件(特別是大訪問(wèn)量、大數(shù)據(jù)量的服務(wù)器軟件)在長(zhǎng)期不間斷地運(yùn)行一段時(shí)間后系統(tǒng)的性能持續(xù)下降、占用的資源不斷增加、錯(cuò)誤不斷累積,最終導(dǎo)致軟件失效或系統(tǒng)宕機(jī)的現(xiàn)象[1].為盡可能地減少甚至避免損失,提高軟件的可靠性和可用性,Huang 等人提出一種主動(dòng)性的容錯(cuò)策略—軟件再生技術(shù)[2](Software Rejuvenation,SR),通過(guò)周期性地清除老化狀態(tài),使得運(yùn)行環(huán)境恢復(fù)正常,從而避免因軟件老化引起突發(fā)性失效.盡管通過(guò)抗衰操作可以消除軟件老化帶來(lái)的影響,然而對(duì)一個(gè)正常運(yùn)行的系統(tǒng)執(zhí)行抗衰操作勢(shì)必會(huì)帶來(lái)直接或間接的損失[3],因此如何能夠準(zhǔn)確地對(duì)軟件老化趨勢(shì)進(jìn)行預(yù)測(cè),并及時(shí)采取相應(yīng)恢復(fù)策略是當(dāng)前預(yù)防軟件老化的研究重點(diǎn).
目前對(duì)于軟件老化趨勢(shì)的預(yù)測(cè)主要是對(duì)影響軟件系統(tǒng)相關(guān)參數(shù)的資源損耗進(jìn)行分析.梁佩[4]使用時(shí)間序列分析法以及馬爾可夫模型對(duì)軟件老化的資源消耗進(jìn)行預(yù)測(cè);蘇莉[5]等人使用非線性有源自回歸網(wǎng)絡(luò)模型來(lái)檢測(cè)軟件系統(tǒng)的老化現(xiàn)象;Jia[6]等人則使用多元線性回歸算法來(lái)分析和預(yù)測(cè)軟件老化問(wèn)題;淵嵐[7]則建立了一個(gè)基于AdaBoost 算法的BP 神經(jīng)網(wǎng)絡(luò)模型來(lái)預(yù)測(cè)資源的消耗.盡管很多學(xué)者使用回歸分析法、時(shí)間序列法以及BP 神經(jīng)網(wǎng)絡(luò)算法等方法來(lái)預(yù)測(cè)遭受軟件老化影響的系統(tǒng)資源消耗情況,然而已有的單一模型很難達(dá)到理想的預(yù)測(cè)效果[8],因此文獻(xiàn)[8]提出使用混合模型,即將自回歸累積移動(dòng)平均模型(Autoregressive Integrated Moving Average Model,ARIMA)和人工神經(jīng)網(wǎng)絡(luò)結(jié)合來(lái)預(yù)測(cè)Web 服務(wù)器中的資源消耗.然而混合方法的構(gòu)建過(guò)程復(fù)雜、人工依賴性強(qiáng),不利于在實(shí)際中推廣和使用.
近年來(lái),隨著深度學(xué)習(xí)技術(shù)的不斷發(fā)展,越來(lái)越多的深度學(xué)習(xí)模型逐漸被應(yīng)用到各個(gè)領(lǐng)域.深度學(xué)習(xí)模型是一種擁有多個(gè)非線性映射層級(jí)的深度神經(jīng)網(wǎng)絡(luò)模型,能夠?qū)斎胄盘?hào)逐層抽象并提取特征,挖掘出更深層次的潛在規(guī)律[9].其中循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)模型在結(jié)構(gòu)設(shè)計(jì)中引入了時(shí)序概念,在學(xué)習(xí)具有內(nèi)在依賴性的時(shí)序數(shù)據(jù)時(shí)能夠產(chǎn)生對(duì)過(guò)去數(shù)據(jù)的記憶狀態(tài),能從原始數(shù)據(jù)中獲取更多的數(shù)據(jù)波動(dòng)以及規(guī)律性特征,它的誕生解決了傳統(tǒng)神經(jīng)網(wǎng)絡(luò)在處理序列信息方面的局限性.作為近年來(lái)深度學(xué)習(xí)領(lǐng)域熱點(diǎn)技術(shù)之一,在機(jī)器翻譯、語(yǔ)音識(shí)別及圖像識(shí)別領(lǐng)域都取得了巨大成功[10],然而在軟件可靠性領(lǐng)域?qū)τ谫Y源消耗的預(yù)測(cè)目前還未發(fā)現(xiàn)展開(kāi)過(guò)相關(guān)研究.
基于上述分析,本文提出了一種基于LSTM 的Web 資源消耗預(yù)測(cè)模型,該模型充分考慮了Web 資源損耗的時(shí)間特性,將當(dāng)前的資源損耗情況動(dòng)態(tài)的與歷史數(shù)據(jù)相關(guān)聯(lián)并將其與傳統(tǒng)模型進(jìn)行實(shí)驗(yàn)對(duì)比.結(jié)果表明該資源消耗預(yù)測(cè)模型在處理老化數(shù)據(jù)的時(shí)間序列建模問(wèn)題上預(yù)測(cè)精度更高,能夠有效地應(yīng)用于軟件老化趨勢(shì)的預(yù)測(cè).
RNN 是一類由各神經(jīng)元相互連接形成的有向循環(huán)人工神經(jīng)網(wǎng)絡(luò),其基于時(shí)序展開(kāi)后的結(jié)構(gòu)如下圖1所示.與傳統(tǒng)的前饋神經(jīng)網(wǎng)絡(luò)(Feedforward Neural Network,FNN)不同,RNN 不僅通過(guò)層與層間的連接進(jìn)行信息的傳遞,而且通過(guò)在網(wǎng)絡(luò)中引入環(huán)狀結(jié)構(gòu),建立了神經(jīng)元到自身的連接.每一步的輸出不僅包括當(dāng)前所見(jiàn)的輸入樣例,還包括網(wǎng)絡(luò)在上一個(gè)時(shí)刻所感知到的信息即當(dāng)前時(shí)刻的ht不僅僅取決于當(dāng)前時(shí)刻的輸入xt,而且與上一時(shí)刻的ht-1也相關(guān).
圖1 按照時(shí)序展開(kāi)的RNN 結(jié)構(gòu)圖
簡(jiǎn)單的循環(huán)神經(jīng)網(wǎng)絡(luò)由1 個(gè)輸入層、1 個(gè)隱含層以及1 個(gè)輸出層組成.給定輸入向量序列x=[x1,x2,…,xT],通過(guò)迭代下列公式(1)首先計(jì)算出t=1 至t=T的隱含層狀態(tài)序列h=[h1,h2,…,hT],然后根據(jù)公式(2)計(jì)算出輸出序列o=[o1,o2,…,oT].
式中,U為輸出層到隱含層的權(quán)重矩陣;W為隱含層到隱含層的權(quán)重矩陣;V為隱含層到輸出層的權(quán)重矩陣,f和b分別表示輸入層到隱含層的激活函數(shù)以及偏置,g和b分別表示隱含層到輸出層的激活函數(shù)以及偏置.相比于FNN 需要n個(gè)時(shí)刻來(lái)幫助學(xué)習(xí)一次權(quán)重,RNN 可以用n個(gè)時(shí)刻學(xué)習(xí)n次W和U,實(shí)現(xiàn)了在時(shí)間結(jié)構(gòu)上的共享特性.
將式(1)帶入式(3)可得:
由式(3)可知循環(huán)神經(jīng)網(wǎng)絡(luò)在計(jì)算過(guò)程中雖然加入了上一時(shí)刻的輸入,但隨著時(shí)間的推移,后面節(jié)點(diǎn)對(duì)前面節(jié)點(diǎn)的感知能力下降,即RNN 存在梯度消失問(wèn)題.
與傳統(tǒng)RNN 結(jié)構(gòu)相比,LSTM 在其基礎(chǔ)上增加了一個(gè)細(xì)胞狀態(tài)(cell state).在傳遞過(guò)程中,通過(guò)當(dāng)前輸入、上一時(shí)刻隱藏層狀態(tài)、上一時(shí)刻細(xì)胞狀態(tài)以及三個(gè)基于Sigmod 函數(shù)的門結(jié)構(gòu)來(lái)增加或刪除細(xì)胞狀態(tài)中的信息,其具體單元結(jié)構(gòu)如下圖2所示.其中門結(jié)構(gòu)用來(lái)控制即時(shí)信息對(duì)歷史信息的影響程度,通過(guò)線性積累,使得網(wǎng)絡(luò)模型能夠較長(zhǎng)時(shí)間保存并傳遞信息[11].
圖2 LSTM 單元結(jié)構(gòu)圖
一個(gè)典型的LSTM 單元共有三個(gè)門:遺忘門、輸入門以及輸出門[12].其中遺忘門和輸入門主要用來(lái)控制上一時(shí)刻細(xì)胞狀態(tài)Ct-1以及當(dāng)前輸入新生成的中有多少信息可以加入到當(dāng)前的細(xì)胞狀態(tài)Ct中來(lái),通過(guò)遺忘門和輸入門的輸出,更新細(xì)胞狀態(tài),輸出門基于更新后的細(xì)胞狀態(tài)輸出隱藏狀態(tài)ht,各門計(jì)算公式如式(4).
其中:ft、it、ot分別表示遺忘門、輸入門、輸出門的結(jié)算結(jié)果;Wf、Wi、Wo分別為遺忘門、輸入門、輸出門的權(quán)重矩陣;bf、bi、bo分別為遺忘門、輸入門、輸出門的偏置項(xiàng).最終的輸出由輸出門和單元狀態(tài)共同確定,具體計(jì)算公式如式(5)所示.
式中,xt為t時(shí)刻輸入的單元狀態(tài);Wc為輸入單元狀態(tài)權(quán)重矩陣;bc為輸入單元狀態(tài)偏置項(xiàng);tanh()為激活函數(shù),⊙表示hadamard 乘積.
Web 服務(wù)器資源消耗預(yù)測(cè)就是根據(jù)前t時(shí)刻老化指標(biāo)的資源使用特征來(lái)預(yù)測(cè)t+1 或者t+x時(shí)間內(nèi)的資源損耗,以此判斷Web 服務(wù)器的老化狀況.因此通過(guò)使用老化數(shù)據(jù)對(duì)LSTM 神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,構(gòu)建基于LSTM 網(wǎng)絡(luò)的軟件老化資源預(yù)測(cè)模型,其具體構(gòu)建步驟如下所示:
(1)首先將原始老化數(shù)據(jù)清洗后進(jìn)行特征表示和特征提取:定義老化資源損耗時(shí)間序列F={f1,f2,…,f},將其劃分為測(cè)試集Ftrain={f1,f2,…,fm}和訓(xùn)練集Ftest={fm+1,fm+2,…,fn},其中m<n且m,n∈N,對(duì)Ftrain集合中的元素max-min 標(biāo)準(zhǔn)化,處理后的訓(xùn)練集表示為式(6).
(2)構(gòu)建訓(xùn)練輸入以及對(duì)應(yīng)的訓(xùn)練輸出:對(duì)數(shù)據(jù)集進(jìn)行時(shí)間融合,按照滑動(dòng)窗口的大小s 進(jìn)行分割,則模型輸入、輸出分別變?yōu)槭?7)、式(8).通過(guò)設(shè)置s 的值,旨在訓(xùn)練LSTM 網(wǎng)絡(luò)學(xué)習(xí)樣本數(shù)據(jù)前后的關(guān)聯(lián)及規(guī)律.
(3)確定網(wǎng)絡(luò)結(jié)構(gòu)并初始化LSTM 網(wǎng)絡(luò):確定每層激活函數(shù)的選擇、每層網(wǎng)絡(luò)節(jié)點(diǎn)的舍棄率以及誤差計(jì)算方式、權(quán)重參數(shù)迭代的更新方式.給定初始權(quán)值矩陣,設(shè)置最大迭代訓(xùn)練次數(shù)和最小誤差值,通過(guò)改變網(wǎng)絡(luò)的各項(xiàng)參數(shù)來(lái)訓(xùn)練網(wǎng)絡(luò).
(4)前向計(jì)算:將X輸入網(wǎng)絡(luò),根據(jù)前向計(jì)算公式(4)-(5)計(jì)算遺忘門、輸入門以及輸出門的值,經(jīng)過(guò)隱藏層后的輸出結(jié)果可表示為:其中CP-1和HP-1分別表示上一個(gè)LSTM 細(xì)胞的狀態(tài)以及隱含層的輸出.
(5)誤差反向傳播:采用批量梯度下降算法對(duì)訓(xùn)練數(shù)據(jù)進(jìn)行批次(batch)劃分,通過(guò)對(duì)當(dāng)前批次的損失函數(shù)進(jìn)行優(yōu)化,實(shí)時(shí)調(diào)整LSTM 網(wǎng)絡(luò)的權(quán)值和偏置,使網(wǎng)絡(luò)誤差不斷減小,既保證了參數(shù)的更新又減少了模型收斂所需要的迭代次數(shù).
(6)將訓(xùn)練好的模型用于預(yù)測(cè):當(dāng)?shù)螖?shù)和最小誤差值滿足要求時(shí)停止訓(xùn)練模型,并將未知的樣本數(shù)據(jù)通過(guò)迭代輸入模型得到預(yù)測(cè)序列Pte={pm+1,pm+2,…,pn},并對(duì)其進(jìn)行反標(biāo)準(zhǔn)化處理得到最終預(yù)測(cè)序如式11.
為評(píng)估基于LSTM 的Web 資源消耗預(yù)測(cè)模型的性能,運(yùn)用平均絕對(duì)誤差(Mean Absolute Error,MAE) 和均方根誤差(Root Mean Squared Error,RMSE)作為評(píng)價(jià)指標(biāo)來(lái)衡量模型的預(yù)測(cè)精度,其計(jì)算公式分別如式(12)和式(13)所示.
其中,n為Web 老化資源參數(shù)的樣本數(shù)目,pt為老化資源參數(shù)的預(yù)測(cè)值,yt為老化資源參數(shù)的真實(shí)值或觀測(cè)值,MAE 和RMSE 越小,模型預(yù)測(cè)能力越好.
由于軟件老化是一個(gè)錯(cuò)誤不斷累積的過(guò)程,一個(gè)Web 系統(tǒng)出現(xiàn)老化現(xiàn)象時(shí)并不會(huì)立刻失效,需要耗費(fèi)很長(zhǎng)時(shí)間才能觀察到系統(tǒng)故障.當(dāng)前絕大多數(shù)的老化實(shí)驗(yàn)只是簡(jiǎn)單識(shí)別老化效應(yīng),很難準(zhǔn)確把握軟件老化的整體趨勢(shì)[13].因此針對(duì)軟件老化的特性,本文根據(jù)R.Matias 等人提出的系統(tǒng)化方法,將工業(yè)領(lǐng)域已成熟應(yīng)用的加速測(cè)試?yán)碚揫14]引入到軟件領(lǐng)域,通過(guò)監(jiān)測(cè)軟件系統(tǒng)的運(yùn)行狀況,根據(jù)采集到的老化數(shù)據(jù),建立一個(gè)基于LSTM 的Web 資源消耗預(yù)測(cè)模型.
為研究因內(nèi)存泄漏而導(dǎo)致應(yīng)用程序故障的老化效應(yīng),本文以一個(gè)典型的Web 應(yīng)用服務(wù)器為研究對(duì)象,搭建了一個(gè)引入內(nèi)存泄漏的軟件老化測(cè)試實(shí)驗(yàn)平臺(tái).該平臺(tái)由一個(gè)Web 服務(wù)器,一個(gè)數(shù)據(jù)庫(kù)服務(wù)器以及一組模擬的客戶端組成,具體配置如表1所示.
服務(wù)器端實(shí)現(xiàn)了一個(gè)符合TPC-W 基準(zhǔn)測(cè)試規(guī)范的多層電子商務(wù)網(wǎng)站系統(tǒng).該系統(tǒng)模擬了一個(gè)在線售書網(wǎng)站,包括主頁(yè)、暢銷頁(yè)面、新書頁(yè)面、搜索頁(yè)面、購(gòu)物車和訂單狀態(tài)頁(yè)面等14 種不同類型的網(wǎng)頁(yè),并規(guī)定了一系列模擬真實(shí)環(huán)境下顧客的訪問(wèn)規(guī)則.客戶端則是一系列模擬瀏覽器(Emulated Browser,EB),以會(huì)話(Session)為單位與服務(wù)器端建立邏輯請(qǐng)求,按照上述規(guī)則訪問(wèn)服務(wù)器.模擬瀏覽器可以產(chǎn)生三種不同類型的工作負(fù)載,分別是Browsing 類型、Shopping類型以及Ordering 類型[15].因Shopping 類型的工作負(fù)載處于Browsing 和Ordering 之間,因此本實(shí)驗(yàn)客戶端主要模擬Shopping 這種類型的工作負(fù)載,以隨機(jī)生成的概率對(duì)不同頁(yè)面進(jìn)行訪問(wèn).
表1 實(shí)驗(yàn)環(huán)境配置描述
內(nèi)存泄漏是造成軟件老化的一個(gè)重要原因,因此內(nèi)存使用情況是衡量軟件老化的一個(gè)重要指標(biāo),通過(guò)使用采集到的Java 虛擬機(jī)(Java Virtual Machine,JVM) 可用內(nèi)存對(duì)Web 資源消耗進(jìn)行預(yù)測(cè)來(lái)驗(yàn)證LSTM 預(yù)測(cè)模型的準(zhǔn)確性.為產(chǎn)生軟件老化現(xiàn)象,修改了服務(wù)器端商品查詢請(qǐng)求的TPC-W_search_request_servlet 類,為其注入內(nèi)存泄漏代碼.由于JVM 有垃圾回收(Garbage Collection,GC)機(jī)制,任何不再被引用的對(duì)象都會(huì)被垃圾回收器回收,其占用的內(nèi)存也會(huì)被釋放以便新對(duì)象使用.為模擬內(nèi)存泄漏現(xiàn)象,增加了一個(gè)HeapLeak 類,使得Tomcat 的整個(gè)生命周期保持對(duì)該類HeapLeak 對(duì)象的引用,HeapLeak 對(duì)象在程序運(yùn)行期間不會(huì)被垃圾回收器回收.修改JVM 堆內(nèi)存的配置(表2),使實(shí)驗(yàn)在受控環(huán)境下進(jìn)行操作.由于Java 堆存的是對(duì)象實(shí)例,所以當(dāng)創(chuàng)建的對(duì)象實(shí)例數(shù)量達(dá)到最大堆容量限制后會(huì)造成堆溢出.
運(yùn)行客戶端,每隔1 秒采集一次JVM 內(nèi)存使用量,實(shí)驗(yàn)持續(xù)14 400 s,共4 個(gè)小時(shí),采集到樣本14 400 個(gè).每30 s 取一次均值,得到實(shí)驗(yàn)數(shù)據(jù)(圖3).
本文使用Keras 框架搭建并訓(xùn)練LSTM 預(yù)測(cè)模型,所使用的網(wǎng)絡(luò)主要由循環(huán)層(Recurrent)中的LSTM 層和全連接層(Dense)組成.取前9650 個(gè)點(diǎn)(真實(shí)時(shí)間近似2.6 個(gè)小時(shí))對(duì)未來(lái)4750 個(gè)點(diǎn)(真實(shí)時(shí)間近似1.4 小時(shí)) 進(jìn)行建模預(yù)測(cè),即使用67% 的數(shù)據(jù)作為訓(xùn)練集,33%的數(shù)據(jù)作為測(cè)試集.根據(jù)2.3 節(jié)提出的模型具體構(gòu)建過(guò)程對(duì)標(biāo)準(zhǔn)化后的JVM 內(nèi)存序列建立一個(gè)含30 個(gè)隱藏神經(jīng)元的單層LSTM 老化資源消耗預(yù)測(cè)模型,根據(jù)網(wǎng)格搜索參數(shù)尋優(yōu)法確定模型參數(shù),設(shè)置迭代次數(shù)epoch=20,batch=10,time steps=10,lr=0.001,損失函數(shù)為MSE.采用Adam(Adaptive Moment Estimation)算法對(duì)lr 進(jìn)行優(yōu)化,利用梯度的一階矩和二階矩估計(jì)動(dòng)態(tài)調(diào)整每個(gè)參數(shù)的學(xué)習(xí)率,使得lr 平穩(wěn)迭代,模型參數(shù)有效更新.由于深度神經(jīng)網(wǎng)絡(luò)含有多個(gè)網(wǎng)絡(luò)層以及大量參數(shù),為防止模型發(fā)生過(guò)擬合現(xiàn)象,采用Dropout對(duì)數(shù)據(jù)進(jìn)行正則化處理即在每輪權(quán)重更新時(shí)隨機(jī)選擇隱去一些節(jié)點(diǎn),從而限制模型單元之間的協(xié)同更新[16].該模型使用的Dropout 為0.5,即含有Dropout 的網(wǎng)絡(luò)層在訓(xùn)練過(guò)程中,會(huì)有50%的節(jié)點(diǎn)被拋棄.
表2 JVM 堆內(nèi)存配置描述
為驗(yàn)證LSTM 模型在循環(huán)神經(jīng)網(wǎng)絡(luò)中的優(yōu)勢(shì),將LSTM 中的隱含層單元替換為RNN 結(jié)構(gòu),按照上述相同參數(shù)進(jìn)行實(shí)驗(yàn),結(jié)果如圖4所示.該圖從整體上反映出了RNN 以及LSTM 資源消耗預(yù)測(cè)模型的預(yù)測(cè)能力,其中實(shí)線表示真實(shí)值,虛線表示測(cè)試值.由圖4可知兩種預(yù)測(cè)模型測(cè)試值與真實(shí)值接近,預(yù)測(cè)趨勢(shì)與實(shí)際資源消耗趨勢(shì)基本一致,對(duì)于出現(xiàn)較大波動(dòng)處的點(diǎn)也有較好的擬合,說(shuō)明RNN 以及LSTM 模型能有效地對(duì)軟件老化趨勢(shì)進(jìn)行預(yù)測(cè).
圖3 實(shí)驗(yàn)數(shù)據(jù)
圖4 實(shí)驗(yàn)預(yù)測(cè)結(jié)果圖
由2 種模型對(duì)應(yīng)的損失函數(shù)圖5(a)、5(b)可知:在老化資源時(shí)序預(yù)測(cè)問(wèn)題上,相比于RNN,LSTM 算法訓(xùn)練過(guò)程相對(duì)穩(wěn)定,測(cè)試集上的誤差波動(dòng)較小.
為進(jìn)一步驗(yàn)證LSTM 的預(yù)測(cè)能力,將其與傳統(tǒng)預(yù)測(cè)方法:ARIMA 以及BP 神經(jīng)網(wǎng)絡(luò)做對(duì)比,實(shí)驗(yàn)結(jié)果如下圖6所示,由圖可知LSTM 模型的擬合程度更好.通過(guò)對(duì)3 種不同預(yù)測(cè)模型的評(píng)價(jià)指標(biāo)進(jìn)行對(duì)比,由表3可知,采用LSTM 網(wǎng)絡(luò)預(yù)測(cè)算法在預(yù)測(cè)Web 老化資源時(shí),預(yù)測(cè)精度明顯高于其他兩種算法.
圖5 實(shí)驗(yàn)損失函數(shù)圖
圖6 實(shí)驗(yàn)對(duì)比結(jié)果預(yù)測(cè)圖
表3 預(yù)測(cè)精度對(duì)比
軟件老化是影響軟件系統(tǒng)可靠性的重要潛在因素,本文以一個(gè)典型的Web 應(yīng)用服務(wù)器為實(shí)例,通過(guò)隨機(jī)注入內(nèi)存泄漏的方式設(shè)計(jì)加速壽命測(cè)試實(shí)驗(yàn)來(lái)加速系統(tǒng)老化過(guò)程,根據(jù)獲取的老化數(shù)據(jù)構(gòu)建了基于LSTM 的Web 服務(wù)器資源消耗預(yù)測(cè)模型.結(jié)果證明該預(yù)測(cè)模型與Web 服務(wù)器資源老化趨勢(shì)一致,擬合度很高,能準(zhǔn)確地描述軟件老化現(xiàn)象.與ARIMA 以及BP神經(jīng)網(wǎng)絡(luò)相比預(yù)測(cè)度高、泛化能力好、誤差較小,說(shuō)明LSTM 網(wǎng)絡(luò)模型能夠很好地描述Web 服務(wù)器資源的動(dòng)態(tài)、非線性變化規(guī)律,適用于老化參數(shù)的時(shí)間序列建模.