作者keven92110 (感恩師傅)
看板DataScience
標題[問題] val_loss < loss
時間Wed Mar 6 08:26:12 2019
各位有遇到過這個問題嗎(如標題)
我的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://webptt.com/m.aspx?n=bbs/DataScience/M.1551831975.A.428.html
1F:推 sma1033: 原因應該很簡單,你的val_dataset有很高比例被包在train_03/06 08:33
2F:→ sma1033: dataset底下,也就是train的時候會吃到和val_dataset相近03/06 08:33
3F:→ sma1033: 的資料,而val_dataset的多樣性又比train_dataset低所致03/06 08:34
4F:→ sma1033: 假設code沒問題,test慘的原因單純就是「資料太不一樣」03/06 08:36
5F:→ sma1033: 你可能分資料的時候,sample取得不夠random,或是量太少03/06 08:37
6F:推 yougigun: 推s03/06 09:35
7F:推 keepxha: ML/DL常見問題,若資料不夠多可試試K-fold驗證03/06 13:34
8F:推 Luluemiko: 應該是資料分布的問題 train跟test很不像03/06 23:17
9F:→ Luluemiko: 可以回頭看一下兩組資料特徵的分布是否相似03/06 23:19
感謝各位指點,思考了一下有點頭緒:
我描述一下我的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
10F:推 sma1033: 通常資料分類比例太過懸殊有兩種作法:1.弄成你說的1:1 03/07 07:30
11F:→ sma1033: 2.把量少的那方loss權重乘以一個大於1的倍數,讓model在 03/07 07:31
12F:→ sma1033: training過程無法忽略量少的資料,你可以考慮看那個適合 03/07 07:31
13F:推 f496328mm: 比較常看到的是,用真實比例 03/07 13:04
14F:→ f496328mm: 最後在判斷 0 or 1 的機率上,不要用 0.5 03/07 13:04
15F:→ f496328mm: 試試看用 0.1 or 0.2 去調整你的邊界 03/07 13:05
16F:→ f496328mm: imbalance 的問題很常見 03/07 13:06
17F:→ f496328mm: 我之前做生產線分析,不良品只有0.5% 03/07 13:06
18F:→ f496328mm: 就是用調整邊界的方法 03/07 13:07
19F:推 ruokcnn: Imbalanced data 可以用smote解解看 03/07 21:29
20F:→ ruokcnn: 或是先cluster 各抓同數目的兩類別train看看 03/07 21:30
21F:→ ruokcnn: Binary問題最好還是輸出0~1之後再切thresholds 03/07 21:31
22F:推 luli0034: 應該說今天小類別對你來說是不是很重要 如果是的話才是 03/09 00:11
23F:→ luli0034: 問題(如何提升recall) 類別不平衡可以over/under sampli 03/09 00:11
24F:→ luli0034: ng或是在training 前調整class weight等等 也可以試試 03/09 00:11
25F:→ luli0034: 看切資料集的時候維持原類別比例(val也是維持1:19) 03/09 00:11