作者jack1218 (赤城我老婆)
看板graduate
標題[討論] 跑實驗數據要跑多次取平均嗎
時間Fri Sep 16 00:07:39 2022
大家好
是這樣的
我在做深度學習相關領域的論文
架構差不多好了 但是跑實驗要很久
每做一個實驗就要花上大量的時間
所以我需要固定random seed 跑很多次(Ex.3-5次)取平均嗎
我看同領域其他論文提供的code
有些人會取五次 也有人只跑一次
問學長姐也沒什麼定論
所以請問這部分有什麼慣例或是規定嗎
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.136.235.174 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/graduate/M.1663258061.A.C7C.html
※ 編輯: jack1218 (114.136.235.174 臺灣), 09/16/2022 00:08:42
1F:推 jason90814: 顯卡買起來就沒問題惹09/16 00:10
2F:推 zxp9505007: K-Fold validation 瞭解一下09/16 00:17
3F:推 ok8752665: 如果實驗上換seed就落差很大才要吧 跟kfold應該沒關係09/16 00:33
4F:推 wuyiulin: 看架構,但是我建議你取最好的那次xD09/16 01:08
5F:→ wuyiulin: 但是我沒有做過 random seed 差很多的架構,頂多統計值09/16 01:10
6F:→ wuyiulin: 落差千分之五左右09/16 01:10
7F:推 zxp9505007: 我每次審文章 沒做K-fold就發回重審 建議固定隨機種子09/16 01:57
8F:→ zxp9505007: 以8:2比例跑5次flod取平均 除非你能說服我為什麼你不09/16 01:57
9F:→ zxp9505007: 用做k-flod 但目前沒有學生說服成功09/16 01:57
請問如果資料集太小
我做k-flod 但是把val set混入train set 這樣做法是可行的嗎
比方說做跑5次flod取平均
原本比例8:2 變成 10:2
※ 編輯: jack1218 (114.136.235.174 臺灣), 09/16/2022 02:08:33
10F:推 zxp9505007: 不可以 test set 或 Val set 不可加入訓練過程09/16 05:22
感謝回答
我還有一個問題
如果當中使用一個component 不具備reproducibility
(hugging face 的某些transformer固定random seed 還是不會有一樣的結果)
請問實驗上可以無視這個問題嗎
※ 編輯: jack1218 (114.136.235.174 臺灣), 09/16/2022 13:00:24
11F:推 zxp9505007: 固定seed 固定模型情況下 的確會有不一樣的結果 這是09/16 13:23
12F:→ zxp9505007: 梯度下降的現象 但不應相差太多 09/16 13:24
13F:推 jason90814: 樓上認真!?kfold不就是把train set跟valid set混一 09/16 13:55
14F:→ jason90814: 起後分成k份然後每次拿一份來做validation 嗎? 09/16 13:55
15F:→ jason90814: 而且random seed沒什麼好取平均的吧,不就是找到最好 09/16 13:57
16F:→ jason90814: 的seed然後用它就好 09/16 13:57
17F:推 zxp9505007: 回樓上 如果把val混在train裡面一起練 那不管怎樣Val 09/16 14:02
18F:→ zxp9505007: 的acc 都會是好的 那就沒有驗證的必要 09/16 14:02
19F:→ zxp9505007: Val要有意義就是不參與訓練過程 09/16 14:02
20F:推 zxp9505007: 原po說的8:2 變成 10:2 訓練 這樣的方式是不恰當的 va 09/16 14:04
21F:→ zxp9505007: l不能參與訓練過程09/16 14:05
22F:→ zxp9505007: 再來 如果有做的完整交叉驗證 隨機種子的確不重要09/16 14:06
23F:→ zxp9505007: 希望我的回答對你來說夠認真09/16 14:06
24F:推 jason90814: 但我之前學到的以及網路查的到的k-fold都是k個部分輪09/16 21:52
25F:→ jason90814: 流當valid set來跑,而且原本valid set就是手動把09/16 21:52
26F:→ jason90814: labeled data分一些出來不是嘛?如果不把valid set混09/16 21:52
27F:→ jason90814: 進去切那跑的時候不就有兩個valid set (train data的09/16 21:52
28F:→ jason90814: 1/k跟原本的valid set),這樣的意義是什麼?09/16 21:52
30F:→ jason90814: 附個網路找到圖,還是你說的是圖中的testing set 09/16 21:54
31F:推 zxp9505007: 我理解你會誤會我的原因了 我是指是在一開始不將test09/16 23:37
32F:→ zxp9505007: 集固定 所有資料集8:2分 2=test或Val 但不論如何 Val09/16 23:37
33F:→ zxp9505007: 或test都不能被訓練 你的解釋是對的 但你可能誤解我09/16 23:37
34F:→ zxp9505007: 的意思 導致你覺得我是錯的 09/16 23:37
35F:推 zxp9505007: 回到原po的案例 用多種RS取平均沒有意義 因為無法證 09/16 23:39
36F:→ zxp9505007: 明所有RS有使test集遍歷資料集 09/16 23:39
37F:推 zxp9505007: 所以我提出不要用多個RS 而是使用fold 8:2 得到五次09/16 23:41
38F:→ zxp9505007: 平均結果 會比多個RS有意義09/16 23:41
39F:推 zxp9505007: 接著原po提出因為資料集小 切8:2 可能會讓原本資料集09/16 23:44
40F:→ zxp9505007: 更小 但我很懷疑 因為小資料集跟原po說的大量時間是 09/16 23:44
41F:→ zxp9505007: 互斥的09/16 23:44
我的資料集雖然只有8000多筆
但是input有影片 文字和聲音 分別使用transformer 效能需求頗高
使用的設備也不盡理想
再加上要跑不少實驗 所以才需要花不少時間
42F:→ zxp9505007: 不管如何 我就直接假設他的網路非常複雜09/16 23:45
43F:推 zxp9505007: 回到你提出的圖 我認為更嚴謹的處理方式依然是不將TES09/16 23:51
44F:→ zxp9505007: T固定 並分train:Val:test 然後跑fold 這邊Val可以用 09/16 23:51
45F:→ zxp9505007: 於earlystop 但依然不能成為訓練集 09/16 23:51
46F:→ zxp9505007: TEST會被固定的場景大概就數據競賽或kaggle 09/16 23:52
請問若官方有切分好train val test
先將train val 合併
並且固定random seed 跑5-fold
這樣是比較嚴謹的做法嗎
※ 編輯: jack1218 (114.136.235.174 臺灣), 09/17/2022 02:53:33
※ 編輯: jack1218 (114.136.235.174 臺灣), 09/17/2022 02:58:02
47F:推 zxp9505007: 這樣說吧 因為你開頭說是論文 所以我說明論文該怎麼設 09/17 04:42
48F:→ zxp9505007: 計實驗 如果是競賽設計好的train val test 當然以大 09/17 04:42
49F:→ zxp9505007: 賽規定為主09/17 04:42
是論文
我說官方提供是發dataset的人有切分好了
50F:→ Mchord: 你跑5fold出來就5個model拿去測test一樣5筆沒意義啊09/17 08:38
51F:→ Mchord: 切了train val test情況,標準做法是挑val高的測test09/17 08:39
52F:→ Mchord: 要發paper的話直接無腦測test挑最高的也大有人在09/17 08:40
我就是看有人的是這樣做的
所以才問這個問題~
但總覺得哪裡怪怪的
※ 編輯: jack1218 (114.136.235.174 臺灣), 09/17/2022 09:47:23
53F:→ DLHZ: 答案是沒有 只要足以說明你提出的方法就好 09/17 09:48
54F:→ Mchord: 你要用5fold挑weight去測那你test result就要用範圍表示09/17 10:23
55F:→ Mchord: 跟要對比的文獻採用一樣做法就可以了09/17 10:23
56F:→ Mchord: 但現在實paper跑kfold的人很少了,因為耗時又不能偷雞09/17 10:25
57F:推 zxp9505007: 所以其實要發paper 不做k fold可以 不要被我審到就好X09/17 11:28
58F:→ zxp9505007: D09/17 11:28
59F:推 zxp9505007: 總之沒有正確答案 只有更嚴謹的做法而已09/17 11:30
真是太感謝你了
請受小弟一拜
60F:推 tommytyc: 多看幾篇頂級會議的做法吧 09/17 12:25
61F:推 jacksoncsie: 感謝上面討論 09/17 17:06
※ 編輯: jack1218 (114.136.235.174 臺灣), 09/17/2022 23:12:34
62F:推 a26833765: train valid test 三個彼此要獨立 09/19 00:00
63F:推 Informatik: 選最好的那次 09/19 08:33
64F:推 charliebitme: 論文的話選最好的那次 記得設seed到時發表才可符合r 09/22 02:29
65F:→ charliebitme: eproducibility 09/22 02:29