最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

【視頻】LSTM神經(jīng)網(wǎng)絡架構(gòu)和原理及其在Python中的預測應用|數(shù)據(jù)分享

2022-03-06 13:21 作者:拓端tecdat  | 我要投稿

原文鏈接:http://tecdat.cn/?p=23544?

長短期記憶網(wǎng)絡——通常稱為“LSTM”——是一種特殊的RNN遞歸神經(jīng)網(wǎng)絡,能夠?qū)W習長期依賴關(guān)系。

視頻:LSTM神經(jīng)網(wǎng)絡架構(gòu)和工作原理及其在Python中的預測應用

LSTM神經(jīng)網(wǎng)絡架構(gòu)和原理及其在Python中的預測應用

什么是依賴關(guān)系?

假設您在觀看視頻時記得前一個場景,或者在閱讀一本書時您知道前一章發(fā)生了什么。

傳統(tǒng)的神經(jīng)網(wǎng)絡無法做到這一點,這是一個主要缺點。例如,假設您想對電影中每一點發(fā)生的事件進行分類。目前尚不清楚傳統(tǒng)的神經(jīng)網(wǎng)絡如何利用電影中先前事件來推理后來的事件。

遞歸神經(jīng)網(wǎng)絡解決了這個問題。它們是帶有循環(huán)的網(wǎng)絡,允許信息持續(xù)存在。循環(huán)神經(jīng)網(wǎng)絡有循環(huán)。

在上圖中,一大塊神經(jīng)網(wǎng)絡,查看一些輸入x并輸出一個值h. 循環(huán)允許信息從網(wǎng)絡的一個步驟傳遞到下一個步驟。

這些循環(huán)使循環(huán)神經(jīng)網(wǎng)絡看起來有點神秘。然而,如果你想得更多,就會發(fā)現(xiàn)它們與普通的神經(jīng)網(wǎng)絡并沒有什么不同。循環(huán)神經(jīng)網(wǎng)絡可以被認為是同一網(wǎng)絡的多個副本,每個副本都將消息傳遞給后繼者??紤]一下如果我們展開循環(huán)會發(fā)生什么:

這種鏈狀性質(zhì)表明循環(huán)神經(jīng)網(wǎng)絡與序列和列表密切相關(guān)。它們是用于此類數(shù)據(jù)的神經(jīng)網(wǎng)絡的自然架構(gòu)。在過去的幾年里,將 RNN 應用于各種問題取得了令人難以置信的成功:語音識別、語言建模、翻譯、圖像字幕……不勝枚舉。這些成功的關(guān)鍵是使用“LSTM”,這是一種非常特殊的循環(huán)神經(jīng)網(wǎng)絡,幾乎所有基于循環(huán)神經(jīng)網(wǎng)絡的令人興奮的結(jié)果都是用它們實現(xiàn)的。本文將探討的正是這些 LSTM。

長期依賴問題

下面是一個關(guān)于如何使用循環(huán)神經(jīng)網(wǎng)絡(RNN)來擬合語言模型的例子。

RNN 的吸引力之一是它們可能能夠?qū)⑾惹暗男畔⑴c當前任務聯(lián)系起來,例如使用先前的視頻幀可能會告知對當前幀的理解。如果 RNN 可以做到這一點,它們將非常有用。但他們可以嗎?

有時,我們只需要查看最近的信息即可執(zhí)行當前任務。例如,考慮一個語言模型試圖根據(jù)之前的單詞預測下一個單詞。如果我們試圖預測“云在天空”中的最后一個詞,我們不需要任何進一步的上下文——很明顯下一個詞將是天空。在這種情況下,相關(guān)信息與所需位置之間的差距很小,RNN 可以學習使用過去的信息。

但也有我們需要更多上下文的情況??紤]嘗試預測文本“我在中國長大……我說地道的中文”中的最后一個詞。最近的信息表明,下一個詞可能是一種語言的名稱,但如果我們想縮小哪種語言的范圍,我們需要中國的上下文,從更遠的地方。相關(guān)信息和需要的點之間的差距完全有可能變得非常大。

隨著差距的擴大,RNN 變得無法學習連接信息。

LSTM 網(wǎng)絡

長短期記憶網(wǎng)絡——通常稱為“LSTM”——是一種特殊的 RNN,能夠?qū)W習長期依賴關(guān)系。它們在解決各種各樣的問題時表現(xiàn)出色,現(xiàn)在被廣泛使用。LSTM 被明確設計為避免長期依賴問題。長時間記住信息實際上是他們的默認行為,而不是他們難以學習的東西!

所有循環(huán)神經(jīng)網(wǎng)絡都具有神經(jīng)網(wǎng)絡的重復模塊鏈的形式。在標準 RNN 中,此重復模塊將具有非常簡單的結(jié)構(gòu),例如單個 tanh 層。

LSTM 也有這種鏈狀結(jié)構(gòu),但重復模塊有不同的結(jié)構(gòu)。不是只有一個神經(jīng)網(wǎng)絡層,而是三個部分組成,以一種非常特殊的方式進行交互。

LSTM 的工作方式非常類似于 RNN 單元。這是 LSTM 網(wǎng)絡的內(nèi)部功能。LSTM 由三個部分組成,如圖所示,每個部分執(zhí)行一個單獨的功能。第一部分選擇來自前一個時間戳的信息是被記住還是不相關(guān)并且可以被遺忘。在第二部分中,單元嘗試從該單元的輸入中學習新信息。最后,在第三部分,單元將更新的信息從當前時間戳傳遞到下一個時間戳。LSTM 單元的這三個部分稱為門。第一部分稱為忘記門或遺忘門,第二部分稱為輸入門,最后一部分稱為輸出門。

Python用LSTM長短期記憶神經(jīng)網(wǎng)絡對不穩(wěn)定降雨量時間序列進行預測分析

每年的降雨量數(shù)據(jù)可能是相當不平穩(wěn)的。與溫度不同,溫度通常在四季中表現(xiàn)出明顯的趨勢,而雨量作為一個時間序列可能是相當不平穩(wěn)的。夏季的降雨量與冬季的降雨量一樣多是很常見的。

下面是某地區(qū)2020年11月降雨量數(shù)據(jù)查看文末了解數(shù)據(jù)獲取方式的圖解。

作為一個連續(xù)的神經(jīng)網(wǎng)絡,LSTM模型可以證明在解釋時間序列的波動性方面有優(yōu)勢。

使用Ljung-Box檢驗,小于0.05的p值表明這個時間序列中的殘差表現(xiàn)出隨機模式,表明有明顯的波動性。

>>>?sm.stats.acorr_ljungbox(res.resid,?lags=\[10\])

Ljung-Box檢驗

Dickey-Fuller 檢驗

數(shù)據(jù)操作和模型配置

該數(shù)據(jù)集由722個月的降雨量數(shù)據(jù)組成。

選擇712個數(shù)據(jù)點用于訓練和驗證,即用于建立LSTM模型。然后,過去10個月的數(shù)據(jù)被用來作為測試數(shù)據(jù),與LSTM模型的預測結(jié)果進行比較。

下面是數(shù)據(jù)集的一個片段。

然后形成一個數(shù)據(jù)集矩陣,將時間序列與過去的數(shù)值進行回歸。

#?形成數(shù)據(jù)集矩陣 ????for?i?in?range(len(df)-previous-1): ????????a?=?df\[i:(i+previous),?0\] ????????dataX.append(a) ????????dataY.append(df\[i?+?previous,?0\])

然后用MinMaxScaler對數(shù)據(jù)進行標準化處理。

將前一個參數(shù)設置為120,訓練和驗證數(shù)據(jù)集就建立起來了。作為參考,previous = 120說明模型使用從t - 120到t - 1的過去值來預測時間t的雨量值。

前一個參數(shù)的選擇要經(jīng)過試驗,但選擇120個時間段是為了確保識別到時間序列的波動性或極端值。

#?訓練和驗證數(shù)據(jù)的劃分 train_size?=?int(len(df)?*?0.8) val\_size?=?len(df)?-?train\_size train,?val?=?df\[0:train\_size,:\],?df\[train\_size:len(df),:\]#?前期的數(shù)量 previous?=?120

然后,輸入被轉(zhuǎn)換為樣本、時間步驟、特征的格式。

#?轉(zhuǎn)換輸入為\[樣本、時間步驟、特征\]。 np.reshape(X_train,?(shape\[0\],?1,?shape\[1\]))

模型訓練和預測

該模型在100個歷時中進行訓練,并指定了712個批次的大?。ǖ扔谟柧毢万炞C集中的數(shù)據(jù)點數(shù)量)。

#?生成LSTM網(wǎng)絡 model?=?tf.keras.Sequential() #?列出歷史中的所有數(shù)據(jù) print(history.history.keys()) #?總結(jié)準確度變化 plt.plot(history.history\['loss'\])

下面是訓練集與驗證集的模型損失的關(guān)系圖。

預測與實際降雨量的關(guān)系圖也被生成。

#?繪制所有預測圖 plt.plot(valpredPlot)

預測結(jié)果在平均方向準確性(MDA)、平均平方根誤差(RMSE)和平均預測誤差(MFE)的基礎上與驗證集進行比較。

?mda(Y_val,?predictions)0.9090909090909091 >>>?mse?=?mean\_squared\_error(Y_val,?predictions) >>>?rmse?=?sqrt(mse) >>>?forecast_error >>>?mean\_forecast\_error?=?np.mean(forecast_error)

  • MDA:?0.909

  • RMSE:?48.5

  • MFE:?-1.77

針對測試數(shù)據(jù)進行預測

雖然驗證集的結(jié)果相當可觀,但只有將模型預測與測試(或未見過的)數(shù)據(jù)相比較,我們才能對LSTM模型的預測能力有合理的信心。

如前所述,過去10個月的降雨數(shù)據(jù)被用作測試集。然后,LSTM模型被用來預測未來10個月的情況,然后將預測結(jié)果與實際值進行比較。

至t-120的先前值被用來預測時間t的值。

#?測試(未見過的)預測 np.array(\[tseries.iloctseries.iloc,t

獲得的結(jié)果如下

  • MDA:?0.8

  • RMSE:?49.57

  • MFE:?-6.94

過去10個月的平均降雨量為148.93毫米,預測精度顯示出與驗證集相似的性能,而且相對于整個測試集計算的平均降雨量而言,誤差很低。

結(jié)論

在這個例子中,你已經(jīng)看到:

  • 如何準備用于LSTM模型的數(shù)據(jù)

  • 構(gòu)建一個LSTM模型

  • 如何測試LSTM的預測準確性

  • 使用LSTM對不穩(wěn)定的時間序列進行建模的優(yōu)勢

數(shù)據(jù)獲取

在下面公眾號后臺回復“降雨量數(shù)據(jù)”,可獲取完整數(shù)據(jù)。

本文摘選Python用LSTM長短期記憶神經(jīng)網(wǎng)絡對不穩(wěn)定降雨量時間序列進行預測分析,點擊“閱讀原文”獲取全文完整資料。

點擊標題查閱往期內(nèi)容

深度學習實現(xiàn)自編碼器Autoencoder神經(jīng)網(wǎng)絡異常檢測心電圖ECG時間序列

spss modeler用決策樹神經(jīng)網(wǎng)絡預測ST的股票

Python中TensorFlow的長短期記憶神經(jīng)網(wǎng)絡(LSTM)、指數(shù)移動平均法預測股票市場和可視化

RNN循環(huán)神經(jīng)網(wǎng)絡 、LSTM長短期記憶網(wǎng)絡實現(xiàn)時間序列長期利率預測

結(jié)合新冠疫情COVID-19股票價格預測:ARIMA,KNN和神經(jīng)網(wǎng)絡時間序列分析

深度學習:Keras使用神經(jīng)網(wǎng)絡進行簡單文本分類分析新聞組數(shù)據(jù)

用PyTorch機器學習神經(jīng)網(wǎng)絡分類預測銀行客戶流失模型

PYTHON用LSTM長短期記憶神經(jīng)網(wǎng)絡的參數(shù)優(yōu)化方法預測時間序列洗發(fā)水銷售數(shù)據(jù)

Python用Keras神經(jīng)網(wǎng)絡序列模型回歸擬合預測、準確度檢查和結(jié)果可視化

R語言深度學習卷積神經(jīng)網(wǎng)絡 (CNN)對 CIFAR 圖像進行分類:訓練與結(jié)果評估可視化

深度學習:Keras使用神經(jīng)網(wǎng)絡進行簡單文本分類分析新聞組數(shù)據(jù)

Python用LSTM長短期記憶神經(jīng)網(wǎng)絡對不穩(wěn)定降雨量時間序列進行預測分析

R語言深度學習Keras循環(huán)神經(jīng)網(wǎng)絡(RNN)模型預測多輸出變量時間序列

R語言KERAS用RNN、雙向RNNS遞歸神經(jīng)網(wǎng)絡、LSTM分析預測溫度時間序列、 IMDB電影評分情感

Python用Keras神經(jīng)網(wǎng)絡序列模型回歸擬合預測、準確度檢查和結(jié)果可視化

Python用LSTM長短期記憶神經(jīng)網(wǎng)絡對不穩(wěn)定降雨量時間序列進行預測分析

R語言中的神經(jīng)網(wǎng)絡預測時間序列:多層感知器(MLP)和極限學習機(ELM)數(shù)據(jù)分析報告

R語言深度學習:用keras神經(jīng)網(wǎng)絡回歸模型預測時間序列數(shù)據(jù)

Matlab用深度學習長短期記憶(LSTM)神經(jīng)網(wǎng)絡對文本數(shù)據(jù)進行分類

R語言KERAS深度學習CNN卷積神經(jīng)網(wǎng)絡分類識別手寫數(shù)字圖像數(shù)據(jù)(MNIST)

MATLAB中用BP神經(jīng)網(wǎng)絡預測人體脂肪百分比數(shù)據(jù)

Python中用PyTorch機器學習神經(jīng)網(wǎng)絡分類預測銀行客戶流失模型

R語言實現(xiàn)CNN(卷積神經(jīng)網(wǎng)絡)模型進行回歸數(shù)據(jù)分析

SAS使用鳶尾花(iris)數(shù)據(jù)集訓練人工神經(jīng)網(wǎng)絡(ANN)模型

【視頻】R語言實現(xiàn)CNN(卷積神經(jīng)網(wǎng)絡)模型進行回歸數(shù)據(jù)分析

Python使用神經(jīng)網(wǎng)絡進行簡單文本分類

R語言用神經(jīng)網(wǎng)絡改進Nelson-Siegel模型擬合收益率曲線分析

R語言基于遞歸神經(jīng)網(wǎng)絡RNN的溫度時間序列預測

R語言神經(jīng)網(wǎng)絡模型預測車輛數(shù)量時間序列

R語言中的BP神經(jīng)網(wǎng)絡模型分析學生成績

matlab使用長短期記憶(LSTM)神經(jīng)網(wǎng)絡對序列數(shù)據(jù)進行分類

R語言實現(xiàn)擬合神經(jīng)網(wǎng)絡預測和結(jié)果可視化

用R語言實現(xiàn)神經(jīng)網(wǎng)絡預測股票實例

使用PYTHON中KERAS的LSTM遞歸神經(jīng)網(wǎng)絡進行時間序列預測

python用于NLP的seq2seq模型實例:用Keras實現(xiàn)神經(jīng)網(wǎng)絡機器翻譯

用于NLP的Python:使用Keras的多標簽文本LSTM神經(jīng)網(wǎng)絡分類

欲獲取全文文件,請點擊左下角“閱讀原文”。


【視頻】LSTM神經(jīng)網(wǎng)絡架構(gòu)和原理及其在Python中的預測應用|數(shù)據(jù)分享的評論 (共 條)

分享到微博請遵守國家法律
龙门县| 德令哈市| 凤山县| 锡林郭勒盟| 塔城市| 晋宁县| 温泉县| 璧山县| 渑池县| 原平市| 礼泉县| 桂东县| 南京市| 绥化市| 军事| 宜章县| 额尔古纳市| 麦盖提县| 宜昌市| 霸州市| 揭东县| 曲周县| 渑池县| 遂平县| 张掖市| 句容市| 合阳县| 萍乡市| 巴塘县| 孟州市| 泾川县| 吕梁市| 伊川县| 黔西县| 成安县| 新源县| 绥阳县| 敦煌市| 军事| 平果县| 乃东县|