LSTM容易混淆的地方

2022-06-11 11:12:12 字數 782 閱讀 2490

1 如果只是學習怎麼用lstm,那麼可以這麼理解lstm

lstm可以看成乙個倉庫,而這個倉庫有三個門衛,他們的功能分別是

但這三個門外怎麼判斷遺忘什麼,輸入什麼和輸出什麼呢?這需要他們通過從歷史的資料中學習,這樣當未來輸入貨物時,就知道如何處理。

這就是為什麼lstm能夠從歷史資料中學習並記住知識的原因,就是有了這三個門。

我在學習lstm過程中一直混淆的幾個概念是

1 多時間步長

來自:也就是使用t-2,t-1,t 的去** t+1時刻的值

2 多變數

也就是使用多個特徵去**,上圖沒有用到多時間步長

這裡有一片的部落格,或許對你有幫助,其中需要注意的地方是:

他分別用多變數單步時長    和   多變數多步時長(multiple lag timesteps)。

它們最大的不同點在於:

下圖是單步時長:1

下面是多步時長:n_hours = 3 (可以設定為任何時長)

經過實踐,發現多步時長的訓練時間要長於單步的,準確率相比也有提高。相當於手動設定了要**的值和之前多長時間中的值相關。有中上下文相關的意味。

3 **未來多個時長

以上不管是多時步長還是單時步長,**是輸出值只有乙個,如果我想輸入當前值,**未來多個值呢?

mysql中容易混淆的地方

mysql的information schema資料庫的tables的data length列的數值的單位為位元組 b mysql資料庫的資料單位都為都是b 位元組 b 位元組 kb 千位元組 mb 兆 gb 千兆 1024 b 1 kb 1024 kb 1 mb 1024 mb 1 gb char...

結構體定義容易混淆的地方

第一種 struct student student為結構體名,相當於一種資料型別。可以和int char等一樣的用法。a.這種形式用在c語言中,要宣告該結構體型別的物件,應該寫為struct student stud1 b.這種形式用在c 語言中,要宣告其物件,直接寫student stud1 第...

VC裡一些容易混淆的地方

1.false true與false true的區別 false true是標準c 語言裡新增的要害字,而false true是通過 define,這要用途是解決程式在c與c 中環境的差異,以下是false true在windef.h的定義 ifndef false define false 0 e...