推 choral: 我過去的經驗是打亂的表現會比較好,不過也得看hidden s04/12 01:15
→ choral: ize和 layer number的搭配,這種應該一層就很有效了04/12 01:15
→ choral: 我沒講到重點,RNN的bp只在[n1…n20]間執行,所以到下一04/12 01:24
→ choral: 個index時,grad會重新計算,RNN不會記錄跨index的因果關04/12 01:24
→ choral: 係,差別在於訓練時index打亂讓權重比較不會容易往某一個04/12 01:24
→ choral: 趨向靠攏04/12 01:24
→ choral: 如有錯誤 還請大德們不吝指正 感謝04/12 01:26
謝謝合唱大的分享,
您提到RNN不會紀錄跨index的關係,
那如果我今天是以CNN來訓練這樣的資料
(MAE又會少一個數量級)
請問這樣子打亂後,
模型是不是反而會學到不應該學到的東西呢?
會這樣問是我將0:784打亂後訓練出的CNN模型,
在INDEX 784後的表現比baseline還要差勁的關係。
※ 編輯: avonasac0800 (42.73.12.202), 04/12/2019 08:55:17
推 choral: 我猜測是learning rate 同時也注意一下 loss的起伏 也許 04/12 11:46
→ choral: 有overfitting的可能性 04/12 11:46
推 choral: 有個測試方法 你取訓練集最後100或200個來訓練,看看效果 04/12 11:52
→ choral: 是不是和整個訓練集差不多,如果是,代表這個dataset具有 04/12 11:52
→ choral: 短期時效性,遠期的資料根本用處不大 04/12 11:52
→ choral: 因此打亂的效果並不好 04/12 11:53
推 yougigun: 簡單來說 打亂就是偷看答案 而且不符合你想要預測模式 04/15 00:45
→ yougigun: 因為基本上你預測方式就是看歷史十筆預測第十一筆 但是 04/15 00:45
→ yougigun: 為什麼你隨機打亂mse低 就是因為model已經偷看過答案 在 04/15 00:45
→ yougigun: 訓練時 假設訓練到一組data 是看 第二筆倒地十一比預測 04/15 00:45
→ yougigun: 第十二筆 然候你test data 好死不死因為隨機抽 有一比是 04/15 00:45
→ yougigun: 看第一筆倒地十筆預測地十一比 因為這組data 跟 train 04/15 00:45
→ yougigun: data 相似度極高 預測的範圍基本不會差太多 導致mse較 04/15 00:45
→ yougigun: 低 但另一種切割方式 造時間切兩半 沒有這個問題 04/15 00:45
推 shaform: 你可以用 [785:] 當測試集,然後訓練集拿 [0:784] 中的 04/20 00:33
→ shaform: 80%,這樣就可以測試在同樣的測試集的情況下 04/20 00:33
→ shaform: 到底是拿不要打亂的 80% ([0:627]) 還是拿打亂的 80% 04/20 00:33
→ shaform: 來訓練,會在同樣的測試集 [784:] 表現最好呢? 04/20 00:34
→ shaform: 嗯,不要打亂的 80% 也可能是 [157:784] ,這樣跟測試集 04/20 00:35
→ shaform: 比較近一些 04/20 00:35
→ shaform: 假設這樣做之後打亂真的還表現比較好,就能反駁yougigun 04/20 00:37
→ shaform: 的偷看說了 04/20 00:37
推 shaform: 至於為何測試集一定要拿最後呢?因為你最後學完的模型 04/20 00:40
→ shaform: 拿出來用的時候本來就是拿來預測「未來」,所以本來就會 04/20 00:40
→ shaform: 是在所有訓練資料的後面 04/20 00:40
→ yougigun: s大 你提的兩種方式在他的定義點 都是屬於沒打亂 我想 04/23 06:47
→ yougigun: 解釋的是為什麼打亂MSE會下降的沒打亂多 再來不能因為下 04/23 06:47
→ yougigun: 降比較多 就選擇打亂的方式訓練模型 因為同你所說 是預 04/23 06:47
→ yougigun: 測未來 切資料應該要以時間點切 04/23 06:47