日本无码免费高清在线|成人日本在线观看高清|A级片免费视频操逼欧美|全裸美女搞黄色大片网站|免费成人a片视频|久久无码福利成人激情久久|国产视频一二国产在线v|av女主播在线观看|五月激情影音先锋|亚洲一区天堂av

  • 手機(jī)站
  • 小程序

    汽車測試網(wǎng)

  • 公眾號
    • 汽車測試網(wǎng)

    • 在線課堂

    • 電車測試

數(shù)據(jù)驅(qū)動的動態(tài)系統(tǒng)(Dynamical System)建模(一):深度學(xué)習(xí)

2022-04-06 19:39:18·  來源:劉海偉 MATLAB  
 
NARX(nonlinear autoregressive network with exogenous inputs)反饋神經(jīng)網(wǎng)絡(luò)

在深度學(xué)習(xí)網(wǎng)絡(luò)爆發(fā)之前,在淺層神經(jīng)網(wǎng)絡(luò)的場景中,NARX 反饋神經(jīng)網(wǎng)絡(luò)是經(jīng)常用于動態(tài)系統(tǒng)建模的,它具有反饋連接,即輸出 y(t) 依賴于系統(tǒng)之前時(shí)刻的輸出 y(t-1),y(t-2) 等等和輸入。

圖片

其中網(wǎng)絡(luò) F 主要是通過一個(gè)前饋神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)。

如下圖,其中F即為第一層隱含層前饋網(wǎng)絡(luò),其中輸入和輸出可以是多維的。

圖片

跟其他反饋神經(jīng)網(wǎng)絡(luò)類似(前面介紹的 LSTM),它的訓(xùn)練過程與推斷過程有些區(qū)別。網(wǎng)絡(luò)本身的輸出需要被反饋到前饋神經(jīng)網(wǎng)絡(luò)的輸入。在訓(xùn)練時(shí),因?yàn)槲覀兡軌蚰玫秸屋敵稣鎸?shí)的數(shù)據(jù),因此,我們會用當(dāng)前時(shí)刻真實(shí)的輸出值作為訓(xùn)練時(shí)模型輸入而不是反饋預(yù)測的輸出,換句話說,在訓(xùn)練時(shí)我們會把網(wǎng)絡(luò)作為開環(huán)去訓(xùn)練。

這有兩個(gè)好處。一是前饋網(wǎng)絡(luò)的輸入更準(zhǔn)確。第二,生成的網(wǎng)絡(luò)具有純前饋架構(gòu),靜態(tài)反向傳播變得可用。當(dāng)我們進(jìn)行未來多步推斷時(shí),因?yàn)檫@種情況我們只能用推斷的數(shù)據(jù)進(jìn)行下一時(shí)刻預(yù)測,所以這次我們才把網(wǎng)絡(luò)閉環(huán),用于推斷。

圖片

磁懸浮系統(tǒng)的 NARX 建模示例

接下來我們使用 narx 神經(jīng)網(wǎng)絡(luò)來對動態(tài)系統(tǒng)進(jìn)行建模的示例[鏈接7]。示例系統(tǒng)是一個(gè)磁懸浮系統(tǒng)。目標(biāo)是控制懸浮在電磁鐵上方的磁鐵的位置,在電磁鐵的位置上,磁鐵受到限制,只能在垂直方向上移動,如下圖所示,

圖片

系統(tǒng)的運(yùn)動方程為:

圖片

其中 y(t) 是磁鐵在電磁鐵上方的距離,i(t) 是經(jīng)過電磁鐵的電流,M 是磁鐵的質(zhì)量,g 是重力常數(shù)。其中 β 為粘性摩擦系數(shù),由磁體運(yùn)動材料決定;α 為場強(qiáng)常數(shù),由電磁鐵上導(dǎo)線匝數(shù)和磁體強(qiáng)度決定。我們搜集了系統(tǒng)輸入 u(t)-施加在電磁鐵上的電壓和系統(tǒng)輸出 y(t)-永磁體的位置,對應(yīng)兩個(gè)時(shí)間序列。

圖片

搭建網(wǎng)絡(luò)和準(zhǔn)備數(shù)據(jù)

d1 = [1:2];

d2 = [1:2];

narx_net =narxnet(d1,d2,10); 使用narxnet功能創(chuàng)建NARX開環(huán)串聯(lián)網(wǎng)絡(luò),10個(gè)隱藏層神經(jīng)元

[p,Pi,Ai,t] =preparets(narx_net,u,{},y); preparets準(zhǔn)備數(shù)據(jù)

其中 y(t) 是一個(gè)反饋信號,既是輸入,也是輸出,訓(xùn)練時(shí)我們既可以拿到當(dāng)前時(shí)刻數(shù)據(jù),也可以拿到后面時(shí)刻的數(shù)據(jù),所以可以用于開環(huán)訓(xùn)練,當(dāng)推斷時(shí)我們會將輸出接到輸入作為閉環(huán)進(jìn)行推斷。

訓(xùn)練網(wǎng)絡(luò)

narx_net =train(narx_net,p,t,Pi); 訓(xùn)練網(wǎng)絡(luò)得到訓(xùn)練好的網(wǎng)絡(luò)

驗(yàn)證開環(huán)網(wǎng)絡(luò)推斷效果

yp =sim(narx_net,p,Pi);

e =cell2mat(yp)-cell2mat(t);

圖片

可以看到誤差很小。因?yàn)槲覀冇玫拈_環(huán)訓(xùn)練,所以推斷結(jié)果是用前面時(shí)刻的真實(shí)輸出數(shù)據(jù)(而非推斷輸出反饋),所以這里的誤差是 one-step-ahead 推斷誤差。

測試閉環(huán)推斷效果

如果要看網(wǎng)絡(luò)真實(shí)準(zhǔn)確度的表現(xiàn),需要將開環(huán)的輸出作為反饋接到輸入,然后進(jìn)行多步預(yù)測。

narx_net_closed =closeloop(narx_net);

現(xiàn)在可以使用閉環(huán)執(zhí)行 900 個(gè)時(shí)間步的迭代預(yù)測。在這個(gè)閉環(huán)網(wǎng)絡(luò)中只需要兩個(gè)初始輸入和兩個(gè)初始輸出作為初始條件

y1 = y(1700:2600);

u1 = u(1700:2600);

[p1,Pi1,Ai1,t1] = preparets(narx_net_closed,u1,{},y1);

yp1 =narx_net_closed(p1,Pi1,Ai1);

圖片

從閉環(huán)預(yù)測的結(jié)果看,藍(lán)線是磁鐵的實(shí)際位置,紅線是 NARX 神經(jīng)網(wǎng)絡(luò)預(yù)測的位置。即使網(wǎng)絡(luò)預(yù)測的時(shí)間步預(yù)測了 900 步,預(yù)測依然是非常準(zhǔn)確的。閉環(huán)多步預(yù)測準(zhǔn)確的前提就是開環(huán)下單步推斷誤差要小。

總結(jié)

本文主要介紹了動態(tài)系統(tǒng)的特性和用于動態(tài)系統(tǒng)建模的神經(jīng)網(wǎng)絡(luò)模型從而可以實(shí)現(xiàn)模型降階(Reduced Order Modeling),包括前饋神經(jīng)網(wǎng)絡(luò),TCN,循環(huán)神經(jīng)網(wǎng)絡(luò),神經(jīng)網(wǎng)絡(luò) ODE, NARX 網(wǎng)絡(luò)和相應(yīng)的一些手段,并結(jié)合示例與場景進(jìn)行了說明這些手段的有效性。

在后續(xù)文章我會來介紹系統(tǒng)辨識(System Identification)的一些示例,歡迎繼續(xù)關(guān)注。

分享到:
 
反對 0 舉報(bào) 0 收藏 0 評論 0
滬ICP備11026917號-25