91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 5KB
    文件類型: .m
    金幣: 1
    下載: 0 次
    發布日期: 2024-01-31
  • 語言: Matlab
  • 標簽: DeepLearning??

資源簡介

MATLAB復現LSTM網絡學習預測,此示例說明如何使用長期短期記憶 (LSTM) 網絡預測時序數據。要預測序列在將來時間步的值,您可以訓練“序列到序列”回歸 LSTM 網絡,其中響應是將值移位了一個時間步的訓練序列。也就是說,在輸入序列的每個時間步,LSTM 網絡都學習預測下一個時間步的值。

資源截圖

代碼片段和文件信息

clc;
clear;
data?=?chickenpox_dataset;%加載數據集?chickenpox_dataset是一個函數
data?=?[data{:}];%將數據集變為數組的形式,此時得到的是一個1*n維的數組,n代表n個時刻,其中存儲的是每個時刻的值,即對于時序預測,只有發生的順序,不存在實際的時間?
figure;?%創建一個用來顯示圖形輸出的一個窗口對象。各種屬性都使用的默認設置??
plot(data);?%若data是向量,則以data的分量為縱坐標,以元素序號為橫坐標,用直線以此連接數據點,繪制曲線。若y為實矩陣,則按列繪制每列對應的曲線?
xlabel(“Month“);?%縱坐標的名稱?
ylabel(“Cases“);?%橫坐標的名稱?
title(“Monthy?Cases?of?Chickenpox“);?%曲線圖的標題

%對訓練數據和測試數據進行分區。序列的前?90%?用于訓練,后?10%?用于測試
numTimeStepsTrain?=?floor(0.9*numel(data));%將90%的數據設定為訓練集
dataTrain?=?data(1:numTimeStepsTrain+1);%定義訓練集?
dataTest?=?data(numTimeStepsTrain+1:end);%定義測試集

%為了獲得較好的擬合并防止訓練發散,將訓練數據標準化為具有零均值和單位方差。在預測時,您必須使用與訓練數據相同的參數來標準化測試數據。
mu?=?mean(dataTrain);%求均值,為以后的歸一化做準備
sig?=?std(dataTrain);%求均差,為以后的歸一化做準備
dataTrainStandardized?=?(dataTrain?-?mu)?/?sig;%歸一化,這里方式數據發散

%要預測序列在將來時間步的值,請將響應指定為將值移位了一個時間步的訓練序列。
%也就是說,在輸入序列的每個時間步,LSTM?網絡都學習預測下一個時間步的值。預測變量是沒有最終時間步的訓練序列。
XTrain?=?dataTrainStandardized(1:end-1);
YTrain?=?dataTrainStandardized(2:end);

%創建LSTM回歸網絡。指定LSTM層有200個隱含單元。
numFeatures?=?1;%輸入特征維數?
numResponses?=?1;%輸出特征維數?
numHiddenUnits?=?200;%每一層lsmt網絡中存在多少神經單元?
layers?=?[?...?????
????sequenceInputlayer(numFeatures)%輸入層,參數是輸入特征維數?????
????lstmlayer(numHiddenUnits)%lsmt層,如果想要構建多層lstm修改參數即可???
????fullyConnectedlayer(numResponses)%全連接層?也就是輸出的維數????
????regressionlayer];%該參數說明是在進行回歸問題,而不是分類問題

%指定訓練選項。將求解器設置為?‘adam‘?并進行?250?輪訓練。要防止梯度爆炸,請將梯度閾值設置為?1。
%指定初始學習率?0.005,在?125?輪訓練后通過乘以因子?0.2?來降低學習率。
options?=?trainingOptions(‘adam‘?...???
????‘MaxEpochs‘250?...?%這個參數是最大迭代次數,即進行250次訓練,每次訓練后更改神經網絡參數?
????‘GradientThreshold‘1?...%設置梯度閥值為1?,防止梯度爆炸???
????‘InitialLearnRate‘0.005?...?%設置初始學習率????
????‘LearnRateSchedule‘‘piecewise‘?...???
????‘LearnRateDropPeriod‘125?...?%訓練125次后學習率下降,衰落因子為0.2?
????‘LearnRateDropFactor‘0.2?...?%訓練125次后的學習率的衰落因子為0.2??
????‘Verbose‘0?...????
????‘Plots‘‘training-progress‘);?%構建曲線圖

%使用?trainNetwork?以指定的訓練選項訓練?LSTM?網絡。
net?=?trainNetwork(XTrainYTrainlayersoptions);

%要預測將來多個時間步的值,請使用?predictAndUpdateState?函數一次預測一個時間步,并在每次預測時更新網絡狀態。對于每次預測,使用前一次預測作為函數的輸入。
%使用與訓練數據相同的參數來標準化測試數據。
dataTestStandardized?=?(dataTest?-?mu)?/?sig;?%歸一化處理,防止數據發散
XTest?=?dataTe

評論

共有 條評論