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