[問題] val_loss < loss

看板DataScience作者 (感恩師傅)時間5年前 (2019/03/06 08:26), 5年前編輯推噓8(8017)
留言25則, 7人參與, 5年前最新討論串1/1
各位有遇到過這個問題嗎(如標題) 我的loss history如下圖上方圖表 https://i.imgur.com/Zfp0YvK.jpg
從頭到尾都val_loss < loss, 若繼續train下去也是會overfitting(val_loss > loss), 但前面val_loss, val_acc都表現比較好感覺蠻奇怪的 實際預測的分數慘不忍賭, 比訓練/驗證的分數低很多, 不知道哪裡出問題QQ 作業系統:win10 問題類別:ML,DL,RNN 使用工具:python -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.72.2.184 ※ 文章網址: https://www.ptt.cc/bbs/DataScience/M.1551831975.A.428.html

03/06 08:33, 5年前 , 1F
原因應該很簡單,你的val_dataset有很高比例被包在train_
03/06 08:33, 1F

03/06 08:33, 5年前 , 2F
dataset底下,也就是train的時候會吃到和val_dataset相近
03/06 08:33, 2F

03/06 08:34, 5年前 , 3F
的資料,而val_dataset的多樣性又比train_dataset低所致
03/06 08:34, 3F

03/06 08:36, 5年前 , 4F
假設code沒問題,test慘的原因單純就是「資料太不一樣」
03/06 08:36, 4F

03/06 08:37, 5年前 , 5F
你可能分資料的時候,sample取得不夠random,或是量太少
03/06 08:37, 5F

03/06 09:35, 5年前 , 6F
推s
03/06 09:35, 6F

03/06 13:34, 5年前 , 7F
ML/DL常見問題,若資料不夠多可試試K-fold驗證
03/06 13:34, 7F

03/06 23:17, 5年前 , 8F
應該是資料分布的問題 train跟test很不像
03/06 23:17, 8F

03/06 23:19, 5年前 , 9F
可以回頭看一下兩組資料特徵的分布是否相似
03/06 23:19, 9F
感謝各位指點,思考了一下有點頭緒: 我描述一下我的dataset , binary output只有0和1, 1很少,比例懸殊(約1:19) model訓練時容易往0靠近, 如果val dataset被分配到較少的1, val_loss比train loss好應該是可以理解的 延伸請教一下, 若要train這種比例懸殊的binary dataset, train data的0,1比例要維持原本的懸殊比例嗎? 或是0,1比例1:1效果會比較好? 我的想法是1:1 model比較不會往某邊靠, 但和實際data比例不符感覺又會失真 ※ 編輯: keven92110 (114.136.206.180), 03/07/2019 00:19:25 ※ 編輯: keven92110 (114.136.206.180), 03/07/2019 00:24:05 ※ 編輯: keven92110 (114.136.206.180), 03/07/2019 00:35:04 ※ 編輯: keven92110 (114.136.206.180), 03/07/2019 01:14:15

03/07 07:30, 5年前 , 10F
通常資料分類比例太過懸殊有兩種作法:1.弄成你說的1:1
03/07 07:30, 10F

03/07 07:31, 5年前 , 11F
2.把量少的那方loss權重乘以一個大於1的倍數,讓model在
03/07 07:31, 11F

03/07 07:31, 5年前 , 12F
training過程無法忽略量少的資料,你可以考慮看那個適合
03/07 07:31, 12F

03/07 13:04, 5年前 , 13F
比較常看到的是,用真實比例
03/07 13:04, 13F

03/07 13:04, 5年前 , 14F
最後在判斷 0 or 1 的機率上,不要用 0.5
03/07 13:04, 14F

03/07 13:05, 5年前 , 15F
試試看用 0.1 or 0.2 去調整你的邊界
03/07 13:05, 15F

03/07 13:06, 5年前 , 16F
imbalance 的問題很常見
03/07 13:06, 16F

03/07 13:06, 5年前 , 17F
我之前做生產線分析,不良品只有0.5%
03/07 13:06, 17F

03/07 13:07, 5年前 , 18F
就是用調整邊界的方法
03/07 13:07, 18F

03/07 21:29, 5年前 , 19F
Imbalanced data 可以用smote解解看
03/07 21:29, 19F

03/07 21:30, 5年前 , 20F
或是先cluster 各抓同數目的兩類別train看看
03/07 21:30, 20F

03/07 21:31, 5年前 , 21F
Binary問題最好還是輸出0~1之後再切thresholds
03/07 21:31, 21F

03/09 00:11, 5年前 , 22F
應該說今天小類別對你來說是不是很重要 如果是的話才是
03/09 00:11, 22F

03/09 00:11, 5年前 , 23F
問題(如何提升recall) 類別不平衡可以over/under sampli
03/09 00:11, 23F

03/09 00:11, 5年前 , 24F
ng或是在training 前調整class weight等等 也可以試試
03/09 00:11, 24F

03/09 00:11, 5年前 , 25F
看切資料集的時候維持原類別比例(val也是維持1:19)
03/09 00:11, 25F
文章代碼(AID): #1SVnEdGe (DataScience)
文章代碼(AID): #1SVnEdGe (DataScience)