我正在研究一個涉及作為時間步序列的樣本的二元分類問題。我的模型應該為每個樣本的每個時間步提供一個預測, 0或1 。不確定是否相關,但我正在使用 LSTM 和密集的 w/sigmoid 激活函式。我沒有得到我期望的結果,我懷疑我的抽樣方法。
從標簽的角度來看,我的每個樣本看起來都像這樣:
y = [0,0,0,0,0,0,0,0,...,0,0,0,1,1,1,0,0,0,0,0,0] # usually it possesses around 4000 timesteps
我正在考慮一個正樣本是一個包含至少一個標簽為1的時間步長的樣本。從邏輯上講,負樣本是不包含任何1的樣本,其標簽向量中僅包含0值。考慮到這一點,我有 1300 個正樣本和 6200 個負樣本。所以,我的樣本中只有大約20%至少有一個我想分類為1的標簽,而其余的則完全是0值。然后,我按照通常的做法將我的樣本分布在訓練、驗證和測驗集中 - 某種 0.80 - 0.10 - 0.10 - 確保它們之間保持相似百分比的正樣本和負樣本。
關于我的訓練,盡管嘗試了批量大小、學習率等的多種配置,但它似乎非常不穩定......我的損失函式和指標“趨于”減少,但它們非常不穩定并且經常突然達到峰值。毫無疑問,調優/優化階段可能會有一些改進,但我懷疑最大的問題可能不在于這里,而在于采樣。該模型仍然能夠在訓練期間學習一些東西,但我希望它遠未達到指標值。
有了這個背景,我想就以下問題獲得一些指導:
- 碰巧這個采樣比例與這個問題所源自的場景是一致的。因此,與標簽1相關聯的事件相對于它的缺失而言非常罕見……即使我的樣本反映了表征標簽1出現的稀疏性- 也可能有許多“樣本/時間步長”在沒有絕對沒有1的現實生活,我是否仍然應該通過不考慮我擁有的過多負樣本來選擇均衡資料集中正樣本和負樣本的數量?那么,例如,考慮到我的 1300 個正樣本和大約 1300 個負樣本?
- 我的一些樣本實際上只有很少的時間步長。如果正常長度是 4000 個時間步,我的一些樣本實際上只包含大約 5-20 個時間步。將此類樣本輸入模型是否不好?我擔心他們不會帶來任何額外的學習,實際上會通過“混亂”用于更新引數的批次樣本來影響學習程序——不確定這是否有意義,或者是否沒有區別。如果提供這些無意義的樣本確實有所不同,那么使用第 1 點中的邏輯并從洗掉同樣為負的較小樣本開始可能是一個好主意?
你對這個問題有什么看法?真的很好奇聽到他們的聲音!
uj5u.com熱心網友回復:
是的,50 / 50 的平衡訓練集是有意義的。
是的,拒絕每個短序列,甚至在檢查它是正面還是負面之前,都是有道理的。
這個問題的問題是不可重現/不可測驗。 https://stackoverflow.com/help/minimal-reproducible-example
不要掉入這個陷阱:
0, 0, 0, ..., 0, 1, 1, 1, 0, ..., 0, 0, 0
A B C D
一些訓練方法可能會將 A..C 和 B..D 繪制為兩個“不同”的樣本,盡管中間有共享的正拉伸。避免這樣做。
鑒于您將其設計為 LSTM 解決方案,這表明對樣本 B..D 的訓練可能不是很有幫助,因為在我們看到積極因素之前狀態沒有太多時間發展。考慮將正樣本限制為在樣本的初始 N% 中始終為負。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/491854.html
