[討論] 跑實驗數據要跑多次取平均嗎

看板graduate作者 (赤城我老婆)時間1年前 (2022/09/16 00:07), 1年前編輯推噓23(23040)
留言63則, 10人參與, 1年前最新討論串1/2 (看更多)
大家好 是這樣的 我在做深度學習相關領域的論文 架構差不多好了 但是跑實驗要很久 每做一個實驗就要花上大量的時間 所以我需要固定random seed 跑很多次(Ex.3-5次)取平均嗎 我看同領域其他論文提供的code 有些人會取五次 也有人只跑一次 問學長姐也沒什麼定論 所以請問這部分有什麼慣例或是規定嗎 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.136.235.174 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/graduate/M.1663258061.A.C7C.html ※ 編輯: jack1218 (114.136.235.174 臺灣), 09/16/2022 00:08:42

09/16 00:10, 1年前 , 1F
顯卡買起來就沒問題惹
09/16 00:10, 1F

09/16 00:17, 1年前 , 2F
K-Fold validation 瞭解一下
09/16 00:17, 2F

09/16 00:33, 1年前 , 3F
如果實驗上換seed就落差很大才要吧 跟kfold應該沒關係
09/16 00:33, 3F

09/16 01:08, 1年前 , 4F
看架構,但是我建議你取最好的那次xD
09/16 01:08, 4F

09/16 01:10, 1年前 , 5F
但是我沒有做過 random seed 差很多的架構,頂多統計值
09/16 01:10, 5F

09/16 01:10, 1年前 , 6F
落差千分之五左右
09/16 01:10, 6F

09/16 01:57, 1年前 , 7F
我每次審文章 沒做K-fold就發回重審 建議固定隨機種子
09/16 01:57, 7F

09/16 01:57, 1年前 , 8F
以8:2比例跑5次flod取平均 除非你能說服我為什麼你不
09/16 01:57, 8F

09/16 01:57, 1年前 , 9F
用做k-flod 但目前沒有學生說服成功
09/16 01:57, 9F
請問如果資料集太小 我做k-flod 但是把val set混入train set 這樣做法是可行的嗎 比方說做跑5次flod取平均 原本比例8:2 變成 10:2 ※ 編輯: jack1218 (114.136.235.174 臺灣), 09/16/2022 02:08:33

09/16 05:22, 1年前 , 10F
不可以 test set 或 Val set 不可加入訓練過程
09/16 05:22, 10F
感謝回答 我還有一個問題 如果當中使用一個component 不具備reproducibility (hugging face 的某些transformer固定random seed 還是不會有一樣的結果) 請問實驗上可以無視這個問題嗎 ※ 編輯: jack1218 (114.136.235.174 臺灣), 09/16/2022 13:00:24

09/16 13:23, 1年前 , 11F
固定seed 固定模型情況下 的確會有不一樣的結果 這是
09/16 13:23, 11F

09/16 13:24, 1年前 , 12F
梯度下降的現象 但不應相差太多
09/16 13:24, 12F

09/16 13:55, 1年前 , 13F
樓上認真!?kfold不就是把train set跟valid set混一
09/16 13:55, 13F

09/16 13:55, 1年前 , 14F
起後分成k份然後每次拿一份來做validation 嗎?
09/16 13:55, 14F

09/16 13:57, 1年前 , 15F
而且random seed沒什麼好取平均的吧,不就是找到最好
09/16 13:57, 15F

09/16 13:57, 1年前 , 16F
的seed然後用它就好
09/16 13:57, 16F

09/16 14:02, 1年前 , 17F
回樓上 如果把val混在train裡面一起練 那不管怎樣Val
09/16 14:02, 17F

09/16 14:02, 1年前 , 18F
的acc 都會是好的 那就沒有驗證的必要
09/16 14:02, 18F

09/16 14:02, 1年前 , 19F
Val要有意義就是不參與訓練過程
09/16 14:02, 19F

09/16 14:04, 1年前 , 20F
原po說的8:2 變成 10:2 訓練 這樣的方式是不恰當的 va
09/16 14:04, 20F

09/16 14:05, 1年前 , 21F
l不能參與訓練過程
09/16 14:05, 21F

09/16 14:06, 1年前 , 22F
再來 如果有做的完整交叉驗證 隨機種子的確不重要
09/16 14:06, 22F

09/16 14:06, 1年前 , 23F
希望我的回答對你來說夠認真
09/16 14:06, 23F

09/16 21:52, 1年前 , 24F
但我之前學到的以及網路查的到的k-fold都是k個部分輪
09/16 21:52, 24F

09/16 21:52, 1年前 , 25F
流當valid set來跑,而且原本valid set就是手動把
09/16 21:52, 25F

09/16 21:52, 1年前 , 26F
labeled data分一些出來不是嘛?如果不把valid set混
09/16 21:52, 26F

09/16 21:52, 1年前 , 27F
進去切那跑的時候不就有兩個valid set (train data的
09/16 21:52, 27F

09/16 21:52, 1年前 , 28F
1/k跟原本的valid set),這樣的意義是什麼?
09/16 21:52, 28F

09/16 21:53, 1年前 , 29F

09/16 21:54, 1年前 , 30F
附個網路找到圖,還是你說的是圖中的testing set
09/16 21:54, 30F

09/16 23:37, 1年前 , 31F
我理解你會誤會我的原因了 我是指是在一開始不將test
09/16 23:37, 31F

09/16 23:37, 1年前 , 32F
集固定 所有資料集8:2分 2=test或Val 但不論如何 Val
09/16 23:37, 32F

09/16 23:37, 1年前 , 33F
或test都不能被訓練 你的解釋是對的 但你可能誤解我
09/16 23:37, 33F

09/16 23:37, 1年前 , 34F
的意思 導致你覺得我是錯的
09/16 23:37, 34F

09/16 23:39, 1年前 , 35F
回到原po的案例 用多種RS取平均沒有意義 因為無法證
09/16 23:39, 35F

09/16 23:39, 1年前 , 36F
明所有RS有使test集遍歷資料集
09/16 23:39, 36F

09/16 23:41, 1年前 , 37F
所以我提出不要用多個RS 而是使用fold 8:2 得到五次
09/16 23:41, 37F

09/16 23:41, 1年前 , 38F
平均結果 會比多個RS有意義
09/16 23:41, 38F

09/16 23:44, 1年前 , 39F
接著原po提出因為資料集小 切8:2 可能會讓原本資料集
09/16 23:44, 39F

09/16 23:44, 1年前 , 40F
更小 但我很懷疑 因為小資料集跟原po說的大量時間是
09/16 23:44, 40F

09/16 23:44, 1年前 , 41F
互斥的
09/16 23:44, 41F
我的資料集雖然只有8000多筆 但是input有影片 文字和聲音 分別使用transformer 效能需求頗高 使用的設備也不盡理想 再加上要跑不少實驗 所以才需要花不少時間

09/16 23:45, 1年前 , 42F
不管如何 我就直接假設他的網路非常複雜
09/16 23:45, 42F

09/16 23:51, 1年前 , 43F
回到你提出的圖 我認為更嚴謹的處理方式依然是不將TES
09/16 23:51, 43F

09/16 23:51, 1年前 , 44F
T固定 並分train:Val:test 然後跑fold 這邊Val可以用
09/16 23:51, 44F

09/16 23:51, 1年前 , 45F
於earlystop 但依然不能成為訓練集
09/16 23:51, 45F

09/16 23:52, 1年前 , 46F
TEST會被固定的場景大概就數據競賽或kaggle
09/16 23:52, 46F
請問若官方有切分好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

09/17 04:42, 1年前 , 47F
這樣說吧 因為你開頭說是論文 所以我說明論文該怎麼設
09/17 04:42, 47F

09/17 04:42, 1年前 , 48F
計實驗 如果是競賽設計好的train val test 當然以大
09/17 04:42, 48F

09/17 04:42, 1年前 , 49F
賽規定為主
09/17 04:42, 49F
是論文 我說官方提供是發dataset的人有切分好了

09/17 08:38, 1年前 , 50F
你跑5fold出來就5個model拿去測test一樣5筆沒意義啊
09/17 08:38, 50F

09/17 08:39, 1年前 , 51F
切了train val test情況,標準做法是挑val高的測test
09/17 08:39, 51F

09/17 08:40, 1年前 , 52F
要發paper的話直接無腦測test挑最高的也大有人在
09/17 08:40, 52F
我就是看有人的是這樣做的 所以才問這個問題~ 但總覺得哪裡怪怪的 ※ 編輯: jack1218 (114.136.235.174 臺灣), 09/17/2022 09:47:23

09/17 09:48, 1年前 , 53F
答案是沒有 只要足以說明你提出的方法就好
09/17 09:48, 53F

09/17 10:23, 1年前 , 54F
你要用5fold挑weight去測那你test result就要用範圍表示
09/17 10:23, 54F

09/17 10:23, 1年前 , 55F
跟要對比的文獻採用一樣做法就可以了
09/17 10:23, 55F

09/17 10:25, 1年前 , 56F
但現在實paper跑kfold的人很少了,因為耗時又不能偷雞
09/17 10:25, 56F

09/17 11:28, 1年前 , 57F
所以其實要發paper 不做k fold可以 不要被我審到就好X
09/17 11:28, 57F

09/17 11:28, 1年前 , 58F
D
09/17 11:28, 58F

09/17 11:30, 1年前 , 59F
總之沒有正確答案 只有更嚴謹的做法而已
09/17 11:30, 59F
真是太感謝你了 請受小弟一拜

09/17 12:25, 1年前 , 60F
多看幾篇頂級會議的做法吧
09/17 12:25, 60F

09/17 17:06, 1年前 , 61F
感謝上面討論
09/17 17:06, 61F
※ 編輯: jack1218 (114.136.235.174 臺灣), 09/17/2022 23:12:34

09/19 00:00, 1年前 , 62F
train valid test 三個彼此要獨立
09/19 00:00, 62F

09/19 08:33, 1年前 , 63F
選最好的那次
09/19 08:33, 63F
文章代碼(AID): #1Z8qtDny (graduate)
文章代碼(AID): #1Z8qtDny (graduate)