[問題] 有關LSTM的粗淺觀念疑問
各位大大好
我之前有接觸一些傳統的ML和Data mining的方法
最近開始接觸Deep learning
主要嘗試用LSTM處理數值資料的預測
在 LSTM 觀念和實作上遇到一些問題
想要請教各位
觀念上面的建立我是看李宏毅教授的影片
和以下幾篇文章
ref1:http://colah.github.io/posts/2015-08-Understanding-LSTMs/
ref2:(WILDML) https://tinyurl.com/y9xgqbg9
一、以下是我現在嘗試做的預測問題描述
1.資料:289個月的稅收金額,data shape就
很單純的是 289 列(row),1欄(column)
2.目標:用前六個月的稅收當作輸入,預測下一個月的稅收。
例:用2017年7月到2017年12月的稅收預測2018年1月的稅收。
3.處理方式:
(1)將資料用min-max正規化到0跟1之間。
(2)分出30%做測試資料。
(3)產生六個月一組的lookback資料(*1 原始碼)及預測目標資料。
(4)將輸入資料轉換成[samples, time steps, features]形式,
其shape變成(225,1, 6)。
(5)建立LSTM model並訓練(用keras Sequential)。
程式參考:
ref3:(kaggle tutorial) https://tinyurl.com/ybuoqe4q
ref4:(machinelearningmastery) https://tinyurl.com/y7pn2bb8
二、觀念上的問題
疑問1:LSTM是根據我所丟進去的input shape長出所需要的cell嗎?
外界看來模型的樣子(設只有一個輸出):
https://imgur.com/XQxtiaX.png
LSTM根據我的輸入展開的樣子:
https://imgur.com/PrjDsnJ.png
疑問2:LSTM的輸出(units)。
(1)下面是用keras 實作的程式碼,不知道我對輸出的理解是否正確
(都只考慮LSTM這一層)
a.輸出(units)為1,故輸出同前面的圖。
model.add(LSTM(units = 1,
input_shape=(trainX.shape[1], trainX.shape[2])))
https://imgur.com/PrjDsnJ.png
b.輸出(units)為4,結果如下圖
model.add(LSTM(units = 4,
input_shape=(trainX.shape[1], trainX.shape[2])))
https://imgur.com/gYLAJ3o.png
疑問3:如果今天要用多個特徵去做單一數字的預測,要怎麼設計?
(1)舉例:前面只用一個稅的金額用類似自迴歸的方式來預測自己,
但如果要引入另一個稅收的數字做為特徵,
模型的應該會長什麼樣子。
(2)我的理解:因為不像MLP一層可以設定多個節點,
LSTM一層就是一個LSTM,
只是它內部會依據輸入的shape去長出對應數目cell,
所以我在輸入的第一層就要有兩個LSTM,
假設直接用兩個LSTM與輸出層間不再加入隱藏層,
網路的形狀就會變成下圖:
https://imgur.com/GOIgCU9.png
*1. 產生look back資料的code
def create_dataset(dataset, look_back=1):
dataX, dataY = [], []
for i in range(len(dataset) - look_back):
a = dataset[i:(i + look_back), 0]
dataX.append(a)
dataY.append(dataset[i + look_back, 0])
return np.array(dataX), np.array(dataY)
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.194.133.122
※ 文章網址: https://www.ptt.cc/bbs/DataScience/M.1521739843.A.519.html
※ 編輯: HYDE1986 (123.194.133.122), 03/23/2018 01:39:40
→
03/23 02:17,
6年前
, 1F
03/23 02:17, 1F
→
03/23 02:17,
6年前
, 2F
03/23 02:17, 2F
→
03/23 02:17,
6年前
, 3F
03/23 02:17, 3F
→
03/23 02:23,
6年前
, 4F
03/23 02:23, 4F
→
03/23 02:23,
6年前
, 5F
03/23 02:23, 5F
→
03/23 02:23,
6年前
, 6F
03/23 02:23, 6F
→
03/23 02:23,
6年前
, 7F
03/23 02:23, 7F
推
03/23 03:25,
6年前
, 8F
03/23 03:25, 8F
→
03/23 03:25,
6年前
, 9F
03/23 03:25, 9F
→
03/23 03:28,
6年前
, 10F
03/23 03:28, 10F
→
03/23 03:29,
6年前
, 11F
03/23 03:29, 11F
→
03/23 03:29,
6年前
, 12F
03/23 03:29, 12F
→
03/23 03:31,
6年前
, 13F
03/23 03:31, 13F
→
03/23 03:31,
6年前
, 14F
03/23 03:31, 14F
→
03/23 03:33,
6年前
, 15F
03/23 03:33, 15F
推
03/23 03:42,
6年前
, 16F
03/23 03:42, 16F
→
03/23 03:42,
6年前
, 17F
03/23 03:42, 17F
→
03/23 03:44,
6年前
, 18F
03/23 03:44, 18F
→
03/23 03:44,
6年前
, 19F
03/23 03:44, 19F
→
03/23 03:48,
6年前
, 20F
03/23 03:48, 20F
→
03/23 03:48,
6年前
, 21F
03/23 03:48, 21F
→
03/23 03:48,
6年前
, 22F
03/23 03:48, 22F
→
03/23 10:39,
6年前
, 23F
03/23 10:39, 23F
推
03/23 11:58,
6年前
, 24F
03/23 11:58, 24F
→
03/23 11:58,
6年前
, 25F
03/23 11:58, 25F
DataScience 近期熱門文章
PTT數位生活區 即時熱門文章