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...