神經(jīng)網(wǎng)絡對訓練數(shù)據(jù)的要求 用同一數(shù)據(jù)集訓練神經(jīng)網(wǎng)絡,每次訓練結(jié)果不一樣,有時正確率很高,有時很低,為什么?
用同一數(shù)據(jù)集訓練神經(jīng)網(wǎng)絡,每次訓練結(jié)果不一樣,有時正確率很高,有時很低,為什么?其實這個問題的實質(zhì)是,如果我們用機器學習算法在數(shù)據(jù)集上訓練一次數(shù)據(jù)模型,保存模型,然后用同樣的算法和同樣的數(shù)據(jù)集和數(shù)據(jù)排
用同一數(shù)據(jù)集訓練神經(jīng)網(wǎng)絡,每次訓練結(jié)果不一樣,有時正確率很高,有時很低,為什么?
其實這個問題的實質(zhì)是,如果我們用機器學習算法在數(shù)據(jù)集上訓練一次數(shù)據(jù)模型,保存模型,然后用同樣的算法和同樣的數(shù)據(jù)集和數(shù)據(jù)排序再訓練一遍,第一個模型和第二個模型是一樣的嗎?
這可能是因為神經(jīng)網(wǎng)絡用增益或權(quán)重的隨機值初始化,然后每個模擬在訓練階段有不同的起點。如果您希望始終保持相同的初始權(quán)重,可以嘗試為初始權(quán)重修復種子以消除問題。
如果我們深入研究這個問題,我們可以根據(jù)ml算法的“確定性”來對其進行分類。當從同一個數(shù)據(jù)集進行訓練時:
一個是總是生成相同的模型,并且記錄以相同的順序呈現(xiàn);
另一個是總是生成不同的模型,并且記錄順序不同。
在實踐中,大多數(shù)是“不確定的”。模型變化的原因可能是機器學習算法本身存在隨機游走、不同權(quán)值的隨機初始化、不同分量的概率分布抽樣來分配優(yōu)化函數(shù)。
雖然模型的“不確定性”可能會對單個訓練結(jié)果造成干擾,但我們也可以用“不確定性”來確認模型的穩(wěn)定性,如決策樹、支持向量機(SVM)、神經(jīng)網(wǎng)絡等,最終可以通過多次迭代來確認模型的穩(wěn)定性。
BP神經(jīng)網(wǎng)絡的訓練集需要大樣本嗎?一般樣本個數(shù)為多少?
訓練集樣本的不同必然會影響權(quán)重的變化。您要訓練的數(shù)據(jù)是您希望系統(tǒng)在輸入某些數(shù)據(jù)時獲得的數(shù)據(jù)。如果訓練集是隨機的,那么它將毫無意義。神經(jīng)網(wǎng)絡權(quán)值的初始值可以是隨機的,但隨著訓練的繼續(xù),權(quán)值會趨于穩(wěn)定,從而達到神經(jīng)網(wǎng)絡的效果。