2 回答

TA貢獻(xiàn)1878條經(jīng)驗(yàn) 獲得超4個(gè)贊
您犯了一個(gè)非?;镜腻e(cuò)誤:由于您處于回歸設(shè)置中,因此您不應(yīng)在最后一層使用sigmoid
激活(這用于二元分類情況);將最后一層更改為
model.add(Dense(1,activation='linear'))
甚至
model.add(Dense(1))
因?yàn)?,根?jù)文檔,如果您不指定activation
參數(shù),則默認(rèn)為linear
.
其他答案中已經(jīng)提供了各種其他建議,并且評(píng)論可能很有用(較低的 LR、更多層、其他優(yōu)化器,例如Adam
),您當(dāng)然需要增加批量大小;但是sigmoid
您當(dāng)前用于最后一層的激活功能將無法使用。
與問題無關(guān),但在回歸設(shè)置中,您不需要將損失函數(shù)作為指標(biāo)重復(fù);這個(gè)
model.compile(loss='mse', optimizer='sgd')

TA貢獻(xiàn)1909條經(jīng)驗(yàn) 獲得超7個(gè)贊
如果您可以在整個(gè)訓(xùn)練過程中發(fā)布損失和 MSE(訓(xùn)練和驗(yàn)證/測試集)的進(jìn)展,那將非常有用。更好的是,如果您可以按照https://machinelearningmastery.com/display-deep-learning-model-training-history-in-keras/將其可視化并在此處發(fā)布可視化,那將是最好的。
同時(shí),根據(jù)事實(shí):1)您說損失沒有減少(我假設(shè)在訓(xùn)練集上,在訓(xùn)練期間,根據(jù)您的編譯參數(shù))。2)您說您的測試集上的預(yù)測“準(zhǔn)確性”很差。3)我的經(jīng)驗(yàn)/直覺(不是經(jīng)驗(yàn)評(píng)估)告訴我,你的兩層密集模型太小了,無法捕捉數(shù)據(jù)中固有的復(fù)雜性。AKA 你的模型偏差過高https://towardsdatascience.com/understanding-the-bias-variance-tradeoff-165e6942b229
您可以嘗試的最快和最簡單的方法是嘗試向每一層添加更多層和更多節(jié)點(diǎn)。
但是,我應(yīng)該注意到,除了兩個(gè)坐標(biāo)之間的距離之外,還有很多因果信息會(huì)影響行駛距離和行駛時(shí)間,這可能是您的神經(jīng)網(wǎng)絡(luò)最容易提取的特征。例如,無論您是在高速公路上行駛還是在小樹林、交通信號(hào)燈上行駛,無論道路是曲折還是直行……僅從數(shù)據(jù)中就可以推斷出所有這些,您將需要大量數(shù)據(jù)(示例)在我的觀點(diǎn)。如果您可以添加輸入列,例如從兩個(gè)點(diǎn)到最近的高速公路的距離,您也許可以用更少的數(shù)據(jù)進(jìn)行訓(xùn)練
我還建議您仔細(xì)檢查您是否輸入了您認(rèn)為輸入的內(nèi)容(及其形狀),并且您應(yīng)該使用函數(shù)sklearn的一些標(biāo)準(zhǔn)化,這可能有助于模型更快地學(xué)習(xí)并更快地收斂到更高“準(zhǔn)確性”。
如果以及當(dāng)您發(fā)布更多代碼或培訓(xùn)歷史時(shí),我可以為您提供更多幫助(以及多少培訓(xùn)樣本)。
編輯1:batch_size=32
如果它適合您的記憶, 最好嘗試將批量大小更改為更大的數(shù)字。當(dāng)使用像圖像這樣的“信息豐富”輸入時(shí),您可以使用小批量大?。ɡ?1),但是當(dāng)使用像 4 個(gè)浮點(diǎn)數(shù)(2 個(gè)坐標(biāo))這樣非?!靶畔⒇毞Α钡臄?shù)據(jù)時(shí),漸變將指向每個(gè)批次( with batch_size=1
) 到一個(gè)幾乎隨機(jī)的(偽...)方向,而不一定更接近局部最小值。只有在對(duì)較大批次(例如 32 個(gè),甚至更多)的集體損失進(jìn)行梯度計(jì)算時(shí),您才會(huì)得到一個(gè)至少近似指向局部最小值方向的梯度,并收斂到更好的結(jié)果。另外,我建議你不要手動(dòng)弄亂學(xué)習(xí)率,也許改用像“adam”或“RMSProp”這樣的優(yōu)化器。
編輯 2:@Desertnaut 提出了一個(gè)很好的觀點(diǎn),我完全錯(cuò)過了,沒有它的更正,你的代碼將無法正常工作。他應(yīng)得的榮譽(yù),所以我不會(huì)在這里包括它。請(qǐng)參考他的回答。另外,不要忘記提高批量大小,不要“手動(dòng)弄亂”你的學(xué)習(xí)率,例如“adam”會(huì)為你做這件事。
添加回答
舉報(bào)