伴隨企業(yè)業(yè)務(wù)的不斷擴(kuò)大,業(yè)務(wù)IT支撐系統(tǒng)規(guī)模及平臺(tái)組件架構(gòu)數(shù)量對(duì)應(yīng)激增,其中作為基礎(chǔ)資源之一的主機(jī)數(shù)量也程指數(shù)級(jí)增加,與此同時(shí)業(yè)務(wù)對(duì)系統(tǒng)資源的需求和敏感度也伴隨業(yè)務(wù)規(guī)模的增加而越發(fā)的苛刻。運(yùn)維團(tuán)隊(duì)對(duì)系統(tǒng)可用性的保障也如履薄冰,每一個(gè)可能的異常情況都應(yīng)該被及時(shí)發(fā)現(xiàn),及時(shí)響應(yīng),及時(shí)處理,以保障系統(tǒng)和服務(wù)的穩(wěn)定高效運(yùn)行,給客戶良好的使用體驗(yàn)。為了保障基礎(chǔ)資源之一主機(jī)的穩(wěn)定可靠,筆者對(duì)運(yùn)行中的主機(jī)健康度做了基于LSTM循環(huán)神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè)。
本次分享分為四個(gè)部分:
1、LSTM簡(jiǎn)介
2、基本數(shù)據(jù)準(zhǔn)備
3、多元LSTM預(yù)測(cè)
4、模型優(yōu)化
隨著深度學(xué)習(xí)技術(shù)發(fā)展,相關(guān)深度學(xué)習(xí)模型逐漸被應(yīng)用到時(shí)序數(shù)據(jù)研究中。深度學(xué)習(xí)模型是擁有多個(gè)非線性映射層級(jí)的深度神經(jīng)網(wǎng)絡(luò)模型,對(duì)輸入信號(hào)逐層抽象并提取特征,挖掘出更深層次的潛在規(guī)律,以達(dá)到提前預(yù)知預(yù)警的效果。
眾多深 度 學(xué) 習(xí) 模 型 中,循 環(huán) 神 經(jīng) 網(wǎng) 絡(luò) ( RecurrentNeural Network,RNN) 將時(shí)序的概念引入到網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)中,使其在時(shí)序數(shù)據(jù)分析中表現(xiàn)出更強(qiáng)的適應(yīng)性。
RNN 變體中,長(zhǎng)短期記憶( Long Short-Term Memory,LSTM) 模型彌補(bǔ)了RNN 的梯度消失、梯度爆炸和長(zhǎng)期記憶能力不足等問題,使循環(huán)神經(jīng)網(wǎng)絡(luò)能夠真正有效地利用長(zhǎng)距離的時(shí)序信息。
LSTM 模型在不同領(lǐng)域的時(shí)序數(shù)據(jù)研究中已有不少成功的應(yīng)用案例,包括文字語(yǔ)言相關(guān)的語(yǔ)言建模、語(yǔ)音識(shí)別、機(jī)器翻譯,多媒體相關(guān)的音頻和視頻數(shù)據(jù)分析、圖片標(biāo)題建模,道路運(yùn)輸相關(guān)的交通流速預(yù)測(cè),以及醫(yī)學(xué)相關(guān)的蛋白質(zhì)二級(jí)結(jié)構(gòu)序列預(yù)測(cè)等。
但在可靠性領(lǐng)域,LSTM 模型的應(yīng)用非常有限,尤其是對(duì)故障時(shí)間序列預(yù)測(cè)的相關(guān)問題研究,目前還未發(fā)現(xiàn)更多的案例。本文針對(duì)系統(tǒng)級(jí)故障時(shí)間序列數(shù)據(jù),提出了一種基于 LSTM 循環(huán)神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè)方法,該方法包括3 層( 輸入層、隱藏層和輸出層) 網(wǎng)絡(luò)結(jié)構(gòu)的詳細(xì)設(shè)計(jì),以及網(wǎng)絡(luò)訓(xùn)練和網(wǎng)絡(luò)預(yù)測(cè)的具體實(shí)現(xiàn)算法等。在此基礎(chǔ)上,以預(yù)測(cè)誤差最小化為目標(biāo),進(jìn)一步提出了基于多層網(wǎng)格搜索的 LSTM 預(yù)測(cè)模型參數(shù)優(yōu)選算法。
LSTM模型網(wǎng)絡(luò)拓?fù)?/span>
例用數(shù)據(jù)采用某場(chǎng)地實(shí)時(shí)數(shù)據(jù)999條作為樣本數(shù)據(jù)進(jìn)行訓(xùn)練和測(cè)試。樣本中主要采集了四個(gè)現(xiàn)場(chǎng)的主機(jī)指標(biāo)數(shù)據(jù)(1分鐘系統(tǒng)負(fù)載、CPU使用率、等待CPU進(jìn)程個(gè)數(shù)、內(nèi)存利用率)。
對(duì)樣本進(jìn)行清洗后截取前6個(gè)樣本數(shù)據(jù)如下圖:
對(duì)數(shù)據(jù)進(jìn)行歸一化處理并對(duì)每個(gè)樣本數(shù)據(jù)行生成一個(gè)模擬健康度,將新樣本數(shù)保存到test_health.csv文件中。
新生成test_health.csv文件截取前6個(gè)樣本數(shù)據(jù)如下圖所示:
我們可以使用這些數(shù)據(jù)來構(gòu)建預(yù)測(cè)問題,在此數(shù)據(jù)基準(zhǔn)下,使用前幾個(gè)小時(shí)的主機(jī)指標(biāo)情況和健康度,依此預(yù)測(cè)下一個(gè)小時(shí)的主機(jī)指標(biāo)及健康度情況。
我們已經(jīng)以易于使用的形式獲得了數(shù)據(jù),創(chuàng)建了每個(gè)系列的快速繪圖并查看所擁有的數(shù)據(jù)。
下面代碼加載新的“test_health.csv”文件,并將每個(gè)系列繪制為多帶帶的子圖。
運(yùn)行示例將創(chuàng)建一個(gè)包含5個(gè)子圖的趨勢(shì)圖,顯示每個(gè)變量999個(gè)小時(shí)的數(shù)據(jù)。如下圖所示:
第一步是為L(zhǎng)STM準(zhǔn)備主機(jī)數(shù)據(jù)集,將數(shù)據(jù)集構(gòu)建為有監(jiān)督的學(xué)習(xí)問題,并對(duì)輸入變量進(jìn)行歸一化。
考慮到前面時(shí)間步驟的主機(jī)指標(biāo)測(cè)量和主機(jī)健康度情況,我們將監(jiān)督學(xué)習(xí)問題設(shè)計(jì)為預(yù)測(cè)當(dāng)前小時(shí)(t)的主機(jī)健康度。
根據(jù)主機(jī)健康度情況和最近24小時(shí)的主機(jī)指標(biāo)情況,預(yù)測(cè)下一個(gè)小時(shí)的主機(jī)健康度情況。
如上預(yù)測(cè)下一個(gè)小時(shí)的主機(jī)健康度,并根據(jù)下一個(gè)小時(shí)的“預(yù)期”主機(jī)健康度狀況進(jìn)行預(yù)測(cè)。我們可以使用開發(fā)的series_to_supervised()函數(shù)來轉(zhuǎn)換數(shù)據(jù)集。接下來,將所有特征標(biāo)準(zhǔn)化,然后將數(shù)據(jù)集轉(zhuǎn)換為監(jiān)督學(xué)習(xí)問題。
轉(zhuǎn)化監(jiān)督學(xué)習(xí)問題代碼:
我們?cè)诘谝浑[藏層中定義50個(gè)神經(jīng)元,在輸出層中定義1個(gè)神經(jīng)元來定義LSTM,以預(yù)測(cè)主機(jī)健康度。輸入形狀為1個(gè)時(shí)間步長(zhǎng),具有5個(gè)特征。我們使用平均絕對(duì)誤差(MAE)損失函數(shù)和隨機(jī)梯度下降的有效Adam版本。該模型將適合于50個(gè)訓(xùn)練周期,每批次的數(shù)量為72。請(qǐng)記住,每批結(jié)束時(shí)都會(huì)重置Keras中LSTM的內(nèi)部權(quán)重,因此,內(nèi)部狀態(tài)可能是幾天的函數(shù),嘗試對(duì)此進(jìn)行測(cè)試,有助于模型的成熟度完善。最后,我們通過在fit()函數(shù)中設(shè)置validate_data參數(shù)來跟蹤訓(xùn)練過程中的訓(xùn)練和測(cè)試損失。在運(yùn)行結(jié)束時(shí),繪制訓(xùn)練損失和測(cè)試損失。
首先,我們必須將準(zhǔn)備好的數(shù)據(jù)集分為訓(xùn)練集和測(cè)試集。為了加快對(duì)本演示模型的訓(xùn)練,我們將僅在360的數(shù)據(jù)上擬合模型,然后在剩余639的數(shù)據(jù)上對(duì)其進(jìn)行評(píng)估。
下面的示例將數(shù)據(jù)集分為訓(xùn)練集和測(cè)試集,然后將訓(xùn)練集和測(cè)試集分為輸入和輸出變量。最后,將輸入(X)整形為L(zhǎng)STM期望的3D格式,即[樣本,時(shí)間步長(zhǎng),特征]。
運(yùn)行此示例將打印訓(xùn)練數(shù)據(jù)以及測(cè)試輸入和輸出集,其中約有360個(gè)小時(shí)的數(shù)據(jù)用于訓(xùn)練,約有637小時(shí)的測(cè)試數(shù)據(jù)。
現(xiàn)在,我們可以定義和擬合我們的LSTM模型。
我們將在第一隱藏層中定義50個(gè)神經(jīng)元,在輸出層中定義1個(gè)神經(jīng)元來定義LSTM,以預(yù)測(cè)主機(jī)健康度。輸入形狀將是1個(gè)時(shí)間步長(zhǎng),具有5個(gè)特征。我們將使用平均絕對(duì)誤差(MAE)損失函數(shù)和隨機(jī)梯度下降的有效Adam版本。該模型將適合于50個(gè)訓(xùn)練周期,每批次的數(shù)量為72。請(qǐng)記住,每批結(jié)束時(shí)都會(huì)重置Keras中LSTM的內(nèi)部權(quán)重,因此,內(nèi)部狀態(tài)可能是幾天的函數(shù),嘗試對(duì)此進(jìn)行測(cè)試,有助于模型的成熟度。最后,我們通過在fit()函數(shù)中設(shè)置validate_data參數(shù)來跟蹤訓(xùn)練過程中的訓(xùn)練和測(cè)試損失。在運(yùn)行結(jié)束時(shí),繪制訓(xùn)練損失和測(cè)試損失。
模型擬合后,我們可以預(yù)測(cè)整個(gè)測(cè)試數(shù)據(jù)集。我們將預(yù)測(cè)與測(cè)試數(shù)據(jù)集結(jié)合起來,然后換算比例。我們還使用預(yù)期的主機(jī)健康度對(duì)測(cè)試數(shù)據(jù)集進(jìn)行換算。利用原始比例的預(yù)測(cè)和實(shí)際值,我們可以為模型計(jì)算一個(gè)誤差分?jǐn)?shù)。在這種情況下,我們計(jì)算均方根誤差(RMSE),該均方根誤差與變量本身的單位相同。
首先運(yùn)行示例創(chuàng)建一個(gè)圖,顯示訓(xùn)練期間的訓(xùn)練和測(cè)試損失。
我們需要對(duì)此模型進(jìn)行進(jìn)一步優(yōu)化。訓(xùn)練和測(cè)試損失在每個(gè)訓(xùn)練時(shí)期的末尾打印,以便于我們知道模型數(shù)據(jù)。運(yùn)行結(jié)束時(shí),將打印測(cè)試數(shù)據(jù)集上模型的最終RMSE。我們可以看到,該模型實(shí)現(xiàn)的RMSE 3.700
首先,在調(diào)用series_to_supervised()時(shí)必須適當(dāng)?shù)亟鉀Q問題。我們將使用3個(gè)小時(shí)的數(shù)據(jù)作為輸入。還要注意,我們不再將所有其他字段的列都明確地放在ob(t)處,我們?cè)谥付ㄝ斎牒洼敵隽袝r(shí)需要更加小心。
我們的框架數(shù)據(jù)集中有3 * 5 + 5列。我們將使用3 * 5或15列作為前3個(gè)小時(shí)內(nèi)所有功能的obs的輸入。我們將預(yù)測(cè)下一個(gè)小時(shí)主機(jī)各個(gè)指標(biāo)作為輸出,如下所示:
接下來,我們可以正確地重塑輸入數(shù)據(jù)以反映時(shí)間步長(zhǎng)和功能。.
此外,我們可以通過增大神經(jīng)元個(gè)數(shù),及增大每個(gè)神經(jīng)元計(jì)算次數(shù)。來最大量減小優(yōu)化在神經(jīng)網(wǎng)絡(luò)傳遞時(shí)的加權(quán)值。如下圖所示:
其他變化是如何評(píng)估模型那?具體來說,在我們?nèi)绾沃貥?gòu)具有5列的行的過程中,這些行適合于反轉(zhuǎn)縮放操作以將y和yhat還原為原始比例,以便于我們計(jì)算RMSE。
更改的要點(diǎn)是我們將y或yhat列與測(cè)試數(shù)據(jù)集的后4個(gè)特征連接起來,以求反比例,如下所示:
運(yùn)行優(yōu)化后,顯示訓(xùn)練期間的訓(xùn)練和測(cè)試損失,模型已不存在測(cè)試損失,損失降至訓(xùn)練損失以下,如下圖所示:
最后,打印出測(cè)試RMSE:
模型優(yōu)化完成!當(dāng)然最終此次分享只是參考!具體模型調(diào)優(yōu)還需要按照各位的各自業(yè)務(wù)進(jìn)行調(diào)優(yōu)操作!
主機(jī)負(fù)載數(shù)據(jù)可能會(huì)存在周期化數(shù)據(jù),比如正常業(yè)務(wù)系統(tǒng)存在忙時(shí)和閑時(shí)兩種狀態(tài),如果上午十點(diǎn)為主機(jī)業(yè)務(wù)量最大時(shí)期(即主機(jī)系統(tǒng)忙時(shí)),那輸入數(shù)據(jù)是否要以前一天十點(diǎn)為輸入數(shù)據(jù)?
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/130226.html
摘要:令人驚訝的是,創(chuàng)作出了一個(gè)有一定含義的故事。再次聲明,本文中的示例只為了簡(jiǎn)化討論。這是由于精度依賴于初始參數(shù)的隨機(jī)設(shè)定。訓(xùn)練次數(shù)越多超過次精度也會(huì)相應(yīng)提高。 在深度學(xué)習(xí)中,循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)是一系列善于從序列數(shù)據(jù)中學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò)。由于對(duì)長(zhǎng)期依賴問題的魯棒性,長(zhǎng)短期記憶(LSTM)是一類已經(jīng)有實(shí)際應(yīng)用的循環(huán)神經(jīng)網(wǎng)絡(luò)?,F(xiàn)在已有大量關(guān)于 LSTM 的文章和文獻(xiàn),其中推薦如下兩篇:Goodfel...
摘要:摘要在年率先發(fā)布上線了機(jī)器翻譯系統(tǒng)后,神經(jīng)網(wǎng)絡(luò)表現(xiàn)出的優(yōu)異性能讓人工智能專家趨之若鶩。目前在阿里翻譯平臺(tái)組擔(dān)任,主持上線了阿里神經(jīng)網(wǎng)絡(luò)翻譯系統(tǒng),為阿里巴巴國(guó)際化戰(zhàn)略提供豐富的語(yǔ)言支持。 摘要: 在2016年Google率先發(fā)布上線了機(jī)器翻譯系統(tǒng)后,神經(jīng)網(wǎng)絡(luò)表現(xiàn)出的優(yōu)異性能讓人工智能專家趨之若鶩。本文將借助多個(gè)案例,來帶領(lǐng)大家一同探究RNN和以LSTM為首的各類變種算法背后的工作原理。 ...
摘要:對(duì)于以比特幣為首的數(shù)字貨幣近期的表現(xiàn),只能用瘋狂來形容。比特幣的成交記錄就是事件序列上的加個(gè)數(shù)據(jù),可以基于過去的成交記錄序列來對(duì)未來的價(jià)格作出預(yù)測(cè),和的模型比較合適。最后采用了,用爬取,它包含比特幣的個(gè)交易記錄。 簡(jiǎn)介 TensorFlow-Bitcoin-Robot:一個(gè)基于 TensorFlow LSTM 模型的 Bitcoin 價(jià)格預(yù)測(cè)機(jī)器人。 文章包括一下幾個(gè)部分:1.為什么要...
摘要:有能力對(duì)元胞狀態(tài)添加或者刪除信息,這種能力通過一種叫門的結(jié)構(gòu)來控制。一個(gè)有個(gè)這種門,來保護(hù)和控制元胞狀態(tài)。輸出將會(huì)基于目前的元胞狀態(tài),并且會(huì)加入一些過濾。同時(shí)也將元胞狀態(tài)和隱狀態(tài)合并,同時(shí)引入其他的一些變化。 循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)人們的每次思考并不都是從零開始的。比如說你在閱讀這篇文章時(shí),你基于對(duì)前面的文字的理解來理解你目前閱讀到的文字,而不是每讀到一個(gè)文字時(shí),都拋棄掉前面的思考,從頭開始...
閱讀 1459·2023-01-11 13:20
閱讀 1814·2023-01-11 13:20
閱讀 1263·2023-01-11 13:20
閱讀 2006·2023-01-11 13:20
閱讀 4226·2023-01-11 13:20
閱讀 2879·2023-01-11 13:20
閱讀 1488·2023-01-11 13:20
閱讀 3807·2023-01-11 13:20