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

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

Matlab用深度學(xué)習(xí)循環(huán)神經(jīng)網(wǎng)絡(luò)RNN長(zhǎng)短期記憶LSTM進(jìn)行波形時(shí)間序列數(shù)據(jù)預(yù)測(cè)|附代碼數(shù)據(jù)

2023-02-13 23:11 作者:拓端tecdat  | 我要投稿

全文鏈接:http://tecdat.cn/?p=27279

最近我們被客戶要求撰寫關(guān)于循環(huán)神經(jīng)網(wǎng)絡(luò)RNN的研究報(bào)告,包括一些圖形和統(tǒng)計(jì)輸出。

此示例說(shuō)明如何使用長(zhǎng)短期記憶 (LSTM) 網(wǎng)絡(luò)預(yù)測(cè)時(shí)間序列

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

LSTM 網(wǎng)絡(luò)是一種循環(huán)神經(jīng)網(wǎng)絡(luò) (RNN),它通過循環(huán)時(shí)間步長(zhǎng)和更新網(wǎng)絡(luò)狀態(tài)來(lái)處理輸入數(shù)據(jù)。網(wǎng)絡(luò)狀態(tài)包含在所有先前時(shí)間步長(zhǎng)中記住的信息。您可以使用 LSTM 網(wǎng)絡(luò)使用先前的時(shí)間步長(zhǎng)作為輸入來(lái)預(yù)測(cè)時(shí)間序列或序列的后續(xù)值。要訓(xùn)練 LSTM 網(wǎng)絡(luò)進(jìn)行時(shí)間序列預(yù)測(cè),請(qǐng)訓(xùn)練具有序列輸出的回歸 LSTM 網(wǎng)絡(luò),其中響應(yīng)(目標(biāo))是訓(xùn)練序列,其值偏移了一個(gè)時(shí)間步長(zhǎng)。換句話說(shuō),在輸入序列的每個(gè)時(shí)間步,LSTM 網(wǎng)絡(luò)學(xué)習(xí)預(yù)測(cè)下一個(gè)時(shí)間步的值。

有兩種預(yù)測(cè)方法:開環(huán)預(yù)測(cè)和閉環(huán)預(yù)測(cè)。

  • 開環(huán)預(yù)測(cè)僅使用輸入數(shù)據(jù)預(yù)測(cè)序列中的下一個(gè)時(shí)間步長(zhǎng)。在對(duì)后續(xù)時(shí)間步進(jìn)行預(yù)測(cè)時(shí),您會(huì)從數(shù)據(jù)源中收集真實(shí)值并將其用作輸入。
  • 閉環(huán)預(yù)測(cè)通過使用先前的預(yù)測(cè)作為輸入來(lái)預(yù)測(cè)序列中的后續(xù)時(shí)間步長(zhǎng)。在這種情況下,模型不需要真實(shí)值來(lái)進(jìn)行預(yù)測(cè)。

此圖顯示了一個(gè)示例序列,其中包含使用閉環(huán)預(yù)測(cè)的預(yù)測(cè)值。

此示例使用波形數(shù)據(jù)集,其中包含 2000 個(gè)具有三個(gè)通道的不同長(zhǎng)度的綜合生成波形。該示例訓(xùn)練 LSTM 網(wǎng)絡(luò)以使用閉環(huán)和開環(huán)預(yù)測(cè)在給定先前時(shí)間步長(zhǎng)的值的情況下預(yù)測(cè)波形的未來(lái)值。

點(diǎn)擊標(biāo)題查閱往期內(nèi)容

Python用RNN神經(jīng)網(wǎng)絡(luò):LSTM、GRU、回歸和ARIMA對(duì)COVID19新冠疫情人數(shù)時(shí)間序列預(yù)測(cè)

左右滑動(dòng)查看更多

01

02

03

04

加載數(shù)據(jù)

查看前幾個(gè)序列的大小。

data(1:5)

查看聲道數(shù)量。為了訓(xùn)練網(wǎng)絡(luò),每個(gè)序列必須具有相同數(shù)量的聲道。

nufdmChahgnnhels?=?3

可視化圖中的前幾個(gè)序列。

for?i?=?1:4????nexttsdile????staasdcgafdgkedplot(dadgta{i}')

將數(shù)據(jù)劃分為訓(xùn)練集和測(cè)試集。將 90% 的觀察結(jié)果用于訓(xùn)練,其余用于測(cè)試。

準(zhǔn)備訓(xùn)練數(shù)據(jù)

要預(yù)測(cè)序列的未來(lái)時(shí)間步長(zhǎng)的值,請(qǐng)將目標(biāo)指定為訓(xùn)練序列,其值移動(dòng)一個(gè)時(shí)間步長(zhǎng)。換句話說(shuō),在輸入序列的每個(gè)時(shí)間步,LSTM 網(wǎng)絡(luò)學(xué)習(xí)預(yù)測(cè)下一個(gè)時(shí)間步的值。預(yù)測(cè)變量是沒有最終時(shí)間步長(zhǎng)的訓(xùn)練序列。

for?n?=?1:nasumel(dddataTrainsf) ????Xd?=?dataTrgainsg{n};????XgfTrdfain{n}?=?dfX(:,1:efgdnd-1);????TTraign{n}?=?gXd(:,2:efnd);end

為了更好地?cái)M合并防止訓(xùn)練發(fā)散,請(qǐng)將預(yù)測(cè)變量和目標(biāo)歸一化以具有零均值和單位方差。進(jìn)行預(yù)測(cè)時(shí),還必須使用與訓(xùn)練數(shù)據(jù)相同的統(tǒng)計(jì)數(shù)據(jù)對(duì)測(cè)試數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化。要輕松計(jì)算所有序列的均值和標(biāo)準(zhǔn)差,請(qǐng)?jiān)跁r(shí)間維度上連接序列。

定義 LSTM 網(wǎng)絡(luò)架構(gòu)

創(chuàng)建一個(gè) LSTM 回歸網(wǎng)絡(luò)。

  • 使用輸入大小與輸入數(shù)據(jù)的通道數(shù)相匹配的序列輸入層。
  • 使用具有 128 個(gè)隱藏單元的 LSTM 層。隱藏單元的數(shù)量決定了層學(xué)習(xí)了多少信息。使用更多隱藏單元可以產(chǎn)生更準(zhǔn)確的結(jié)果,但更有可能導(dǎo)致對(duì)訓(xùn)練數(shù)據(jù)的過度擬合。
  • 要輸出與輸入數(shù)據(jù)具有相同通道數(shù)的序列,請(qǐng)包含一個(gè)輸出大小與輸入數(shù)據(jù)的通道數(shù)相匹配的全連接層。
  • 最后,包括一個(gè)回歸層。

指定訓(xùn)練選項(xiàng)

指定訓(xùn)練選項(xiàng)。

  • 使用 Adam 優(yōu)化進(jìn)行訓(xùn)練。
  • 訓(xùn)練 200 個(gè) epoch。對(duì)于更大的數(shù)據(jù)集,您可能不需要訓(xùn)練盡可能多的 epoch 來(lái)獲得良好的擬合。
  • 在每個(gè)小批量中,左填充序列,使它們具有相同的長(zhǎng)度。

trainingOptions("adam",?...????MaxEpochs=200,?...

訓(xùn)練神經(jīng)網(wǎng)絡(luò)

指定的訓(xùn)練選項(xiàng)訓(xùn)練 LSTM 網(wǎng)絡(luò)?。

測(cè)試網(wǎng)絡(luò)

使用與訓(xùn)練數(shù)據(jù)相同的步驟準(zhǔn)備用于預(yù)測(cè)的測(cè)試數(shù)據(jù)。

使用從訓(xùn)練數(shù)據(jù)計(jì)算的統(tǒng)計(jì)數(shù)據(jù)對(duì)測(cè)試數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化。將目標(biāo)指定為測(cè)試序列,其值偏移一個(gè)時(shí)間步,將預(yù)測(cè)變量指定為沒有最終時(shí)間步的測(cè)試序列。

for?n?=?1:sifze(dsdatagsdTest,1) ????Xsdg?=?datsdagesdt{n};????XTdsgsst{n}?=?(Xd(:,1:dend-1)?-?muX)?./?sdgdigmaX;????TTedgst{n}?=?(X(:,2:enddg)?-?muT)?./?sisggaT;end

使用測(cè)試數(shù)據(jù)進(jìn)行預(yù)測(cè)。指定與訓(xùn)練相同的填充選項(xiàng)。

YTasedst?=?prsdfdict(nedst,fXTsdest,SeqfuencePaddfsdingDidfrecdtionf="ledfft");

為了評(píng)估準(zhǔn)確性,對(duì)于每個(gè)測(cè)試序列,計(jì)算預(yù)測(cè)和目標(biāo)之間的均方根誤差 (RMSE)。

????rmse(i)?=?sqrt(mean((YTesdst{i}?-?TTfedft{i}).^2,"all"));

在直方圖中可視化錯(cuò)誤。較低的值表示較高的準(zhǔn)確性。

計(jì)算所有測(cè)試觀測(cè)值的平均 RMSE。

mean(rmse)

預(yù)測(cè)未來(lái)時(shí)間步長(zhǎng)

給定輸入時(shí)間序列或序列,要預(yù)測(cè)多個(gè)未來(lái)時(shí)間步的值。對(duì)于每個(gè)預(yù)測(cè),使用之前的預(yù)測(cè)作為函數(shù)的輸入。

在圖中可視化其中一個(gè)測(cè)試序列。

figurestfackddefdsplot(X'

開環(huán)預(yù)測(cè)

開環(huán)預(yù)測(cè)僅使用輸入數(shù)據(jù)預(yù)測(cè)序列中的下一個(gè)時(shí)間步長(zhǎng)。在對(duì)后續(xù)時(shí)間步進(jìn)行預(yù)測(cè)時(shí),您會(huì)從數(shù)據(jù)源中收集真實(shí)值并將其用作輸入。例如,假設(shè)您想使用在時(shí)間步 1 到 t-1 中收集的數(shù)據(jù)來(lái)預(yù)測(cè)序列的時(shí)間步 t 的值。要對(duì)時(shí)間步 t+1 進(jìn)行預(yù)測(cè),請(qǐng)等到您記錄時(shí)間步 t 的真實(shí)值并將其用作輸入以進(jìn)行下一個(gè)預(yù)測(cè)。當(dāng)您在進(jìn)行下一次預(yù)測(cè)之前有真實(shí)值要提供給網(wǎng)絡(luò)時(shí),請(qǐng)使用開環(huán)預(yù)測(cè)。

使用輸入數(shù)據(jù)的前 75 個(gè)時(shí)間步更新網(wǎng)絡(luò)狀態(tài)。

ngdfget?=?resasegftSdtsfte(net);offssdet?=?75;[nefgt,~]?=?predfgdictAndUpdateStdfgate(nfget,X(:,1:offsedfd));

為了預(yù)測(cè)進(jìn)一步的預(yù)測(cè),更新網(wǎng)絡(luò)狀態(tài)。通過循環(huán)輸入數(shù)據(jù)的時(shí)間步并將它們用作網(wǎng)絡(luò)的輸入來(lái)預(yù)測(cè)測(cè)試觀察的剩余時(shí)間步的值。

將預(yù)測(cè)值與目標(biāo)值進(jìn)行比較。

for?i?=?1:numCashdananels ????nexdttdfgileg ????ploft(T(i,:)) ????holfgd?on ????plot(offfset:gnumTimeSdfghjteps,[T(i,ofkklkset)?Y(i,:)],'--')

閉環(huán)預(yù)測(cè)

閉環(huán)預(yù)測(cè)通過使用先前的預(yù)測(cè)作為輸入來(lái)預(yù)測(cè)序列中的后續(xù)時(shí)間步長(zhǎng)。在這種情況下,模型不需要真實(shí)值來(lái)進(jìn)行預(yù)測(cè)。例如,假設(shè)您想僅使用在時(shí)間步 1 到 t-1 中收集的數(shù)據(jù)來(lái)預(yù)測(cè)序列的時(shí)間步 t 到 t+k 的值。要對(duì)時(shí)間步 i 進(jìn)行預(yù)測(cè),請(qǐng)使用時(shí)間步 i-1 的預(yù)測(cè)值作為輸入。使用閉環(huán)預(yù)測(cè)來(lái)預(yù)測(cè)多個(gè)后續(xù)時(shí)間步長(zhǎng),或者當(dāng)您在進(jìn)行下一個(gè)預(yù)測(cè)之前沒有向網(wǎng)絡(luò)提供真實(shí)值時(shí)。

通過首先使用函數(shù)重置狀態(tài)來(lái)初始化網(wǎng)絡(luò)狀態(tài)?,然后?使用輸入數(shù)據(jù)的前幾個(gè)時(shí)間步長(zhǎng)resetState?進(jìn)行初始預(yù)測(cè)?。Z使用輸入數(shù)據(jù)的前 75 個(gè)時(shí)間步更新網(wǎng)絡(luò)狀態(tài)。

newt?=?resetyeriuiutState(net);ofrfstydet?=?sizety(X,2);[nest,h]?=?peeredictAnytdUpdtateState(net,X);

為了預(yù)測(cè)進(jìn)一步的預(yù)測(cè),循環(huán)時(shí)間步長(zhǎng)并更新網(wǎng)絡(luò)狀態(tài)。通過迭代地將先前的預(yù)測(cè)值傳遞給網(wǎng)絡(luò)來(lái)預(yù)測(cè)接下來(lái)的 200 個(gè)時(shí)間步長(zhǎng)。由于網(wǎng)絡(luò)不需要輸入數(shù)據(jù)來(lái)進(jìn)行任何進(jìn)一步的預(yù)測(cè),因此您可以指定任意數(shù)量的時(shí)間步長(zhǎng)進(jìn)行預(yù)測(cè)。

numPreddshictihgonTimeshgSteps?=?200;dghXt?=?Z(:,endesrgs);Ysf?=?zergfsos(sfgsnumChannels,numPrhedictionTimlhelhhjSteps);for?t?=?1:numPredicthjjionlkjTimeSteps ????[nexfdt,Y(:,t)]?=?predic'ltAndUpdatlkeStak;lte(net,Xt);????gXt?=?Y(:,t);end

在圖中可視化預(yù)測(cè)值。

numTimdgegSteps?=?offset?+?numPralkjedicltionTimeSteps;figuret?=?tiledlayjout(numklChannels,1);for?i?=?1:numChannselgs ????nextgtilgfhe ????plogghft(T(i,1:ogfhvset)) ????hobld?bvon ????plot(offsenbt:nmnumTimesbn,Stesdps,[T(i,a)?Y(i,:)],'--')

閉環(huán)預(yù)測(cè)允許您預(yù)測(cè)任意數(shù)量的時(shí)間步長(zhǎng),但與開環(huán)預(yù)測(cè)相比可能不太準(zhǔn)確,因?yàn)榫W(wǎng)絡(luò)在預(yù)測(cè)過程中無(wú)法訪問真實(shí)值。

點(diǎn)擊文末?“閱讀原文”

獲取全文完整資料。

本文選自《Matlab用深度學(xué)習(xí)循環(huán)神經(jīng)網(wǎng)絡(luò)RNN長(zhǎng)短期記憶LSTM進(jìn)行波形時(shí)間序列數(shù)據(jù)預(yù)測(cè)》。

點(diǎn)擊標(biāo)題查閱往期內(nèi)容

RNN循環(huán)神經(jīng)網(wǎng)絡(luò) 、LSTM長(zhǎng)短期記憶網(wǎng)絡(luò)實(shí)現(xiàn)時(shí)間序列長(zhǎng)期利率預(yù)測(cè)
結(jié)合新冠疫情COVID-19股票價(jià)格預(yù)測(cè):ARIMA,KNN和神經(jīng)網(wǎng)絡(luò)時(shí)間序列分析
深度學(xué)習(xí):Keras使用神經(jīng)網(wǎng)絡(luò)進(jìn)行簡(jiǎn)單文本分類分析新聞組數(shù)據(jù)
用PyTorch機(jī)器學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)分類預(yù)測(cè)銀行客戶流失模型
PYTHON用LSTM長(zhǎng)短期記憶神經(jīng)網(wǎng)絡(luò)的參數(shù)優(yōu)化方法預(yù)測(cè)時(shí)間序列洗發(fā)水銷售數(shù)據(jù)
Python用Keras神經(jīng)網(wǎng)絡(luò)序列模型回歸擬合預(yù)測(cè)、準(zhǔn)確度檢查和結(jié)果可視化
Python用LSTM長(zhǎng)短期記憶神經(jīng)網(wǎng)絡(luò)對(duì)不穩(wěn)定降雨量時(shí)間序列進(jìn)行預(yù)測(cè)分析
R語(yǔ)言中的神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)時(shí)間序列:多層感知器(MLP)和極限學(xué)習(xí)機(jī)(ELM)數(shù)據(jù)分析報(bào)告
R語(yǔ)言深度學(xué)習(xí):用keras神經(jīng)網(wǎng)絡(luò)回歸模型預(yù)測(cè)時(shí)間序列數(shù)據(jù)
Matlab用深度學(xué)習(xí)長(zhǎng)短期記憶(LSTM)神經(jīng)網(wǎng)絡(luò)對(duì)文本數(shù)據(jù)進(jìn)行分類
R語(yǔ)言KERAS深度學(xué)習(xí)CNN卷積神經(jīng)網(wǎng)絡(luò)分類識(shí)別手寫數(shù)字圖像數(shù)據(jù)(MNIST)
MATLAB中用BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)人體脂肪百分比數(shù)據(jù)
Python中用PyTorch機(jī)器學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)分類預(yù)測(cè)銀行客戶流失模型
R語(yǔ)言實(shí)現(xiàn)CNN(卷積神經(jīng)網(wǎng)絡(luò))模型進(jìn)行回歸數(shù)據(jù)分析
SAS使用鳶尾花(iris)數(shù)據(jù)集訓(xùn)練人工神經(jīng)網(wǎng)絡(luò)(ANN)模型
【視頻】R語(yǔ)言實(shí)現(xiàn)CNN(卷積神經(jīng)網(wǎng)絡(luò))模型進(jìn)行回歸數(shù)據(jù)分析
Python使用神經(jīng)網(wǎng)絡(luò)進(jìn)行簡(jiǎn)單文本分類
R語(yǔ)言用神經(jīng)網(wǎng)絡(luò)改進(jìn)Nelson-Siegel模型擬合收益率曲線分析
R語(yǔ)言基于遞歸神經(jīng)網(wǎng)絡(luò)RNN的溫度時(shí)間序列預(yù)測(cè)
R語(yǔ)言神經(jīng)網(wǎng)絡(luò)模型預(yù)測(cè)車輛數(shù)量時(shí)間序列
R語(yǔ)言中的BP神經(jīng)網(wǎng)絡(luò)模型分析學(xué)生成績(jī)
matlab使用長(zhǎng)短期記憶(LSTM)神經(jīng)網(wǎng)絡(luò)對(duì)序列數(shù)據(jù)進(jìn)行分類
R語(yǔ)言實(shí)現(xiàn)擬合神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)和結(jié)果可視化
用R語(yǔ)言實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)股票實(shí)例
使用PYTHON中KERAS的LSTM遞歸神經(jīng)網(wǎng)絡(luò)進(jìn)行時(shí)間序列預(yù)測(cè)
python用于NLP的seq2seq模型實(shí)例:用Keras實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)機(jī)器翻譯
用于NLP的Python:使用Keras的多標(biāo)簽文本LSTM神經(jīng)網(wǎng)絡(luò)分類


Matlab用深度學(xué)習(xí)循環(huán)神經(jīng)網(wǎng)絡(luò)RNN長(zhǎng)短期記憶LSTM進(jìn)行波形時(shí)間序列數(shù)據(jù)預(yù)測(cè)|附代碼數(shù)據(jù)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
布尔津县| 盘山县| 开封县| 富宁县| 马关县| 东港市| 天等县| 榆社县| 长乐市| 延庆县| 青川县| 盱眙县| 湄潭县| 晋中市| 遂平县| 高雄市| 平南县| 平利县| 巴彦淖尔市| 田林县| 顺平县| 武义县| 福建省| 曲松县| 凌海市| 富阳市| 溧阳市| 东光县| 依兰县| 诏安县| 宣恩县| 施甸县| 出国| 阿拉善盟| 睢宁县| 云阳县| 晴隆县| 九寨沟县| 大关县| 楚雄市| 施甸县|