我正在訓練一個神經網絡,並從隨機權重開始。訓練後,權重發生變化,但神經網絡的準確性與起始權重相同。無論如何改變網絡的體系結構。隱藏層中的節點數量,迭代次數和特徵數量(使用PCA降維)它具有與開始時相同的精度。這可能是因爲關於功能數量的例子數量很少? (我有675個例子和9000個特徵)。或者這是因爲別的嗎?此外,我嘗試了使用logistic迴歸的相同數據集,它能夠達到64%的準確率,而不是比我在神經網絡訓練之前和之後得到的50%好得多。神經網絡權重和成本變化,但不是它的準確性
1
A
回答
3
一般來說,你的訓練樣例應該超過你的特徵數量級,而不是相反。除非您的PCA將事情降低很多,否則這將會傷害您。
你確實記得規範你的功能,對吧?這通常在PCA中處理,但有時您必須首先進行標準化,具體取決於您使用的軟件。
除此之外,你沒有提到改變學習率,使用自適應學習率,或使用動量項,所以我會建議你看看這些。此外,還有更多的權重更新算法,而不僅僅是普通的老式後備程序。 Levenberg-Marquardt Algorithm可能值得一試。假設你不是自己寫的,你的實現可能已經有了。
早期停止的某種形式也可能有用。
您沒有提及您是否嘗試分類或迴歸。如果您正在進行分類,請確保輸出節點上的激活功能與您正在使用的類標籤類型相匹配。 Logsig的範圍是0到1,而Tansig的範圍是-1到1.如果您正在進行迴歸,請確保輸出具有線性激活,或者至少可能的輸出範圍與您的訓練示例相匹配。
0
如果您正在進行分類,問題可能出現在您的標籤中。
我在用Octave訓練神經網絡時遇到了類似的問題。準確度約爲50%。我有兩個標籤0和1.我的準確度很低,因爲八度音階從1開始索引而不是0.您可能想要查看標籤。
0
首先,分類的準確性取決於數據集。所有人工智能方法都試圖在矢量空間中分離數據。但是,數據可能無法分開,有些情況下64%可能非常接近最佳結果。你使用的是什麼樣的數據集(它是衆所周知的基準之一,還是你試圖解決的某個特定問題?)
其次,權重變化並不一定意味着網絡是正在訓練。訓練結束後,您不應檢查權重是否改變,但如果總平方誤差減小。如果它沒有顯着減少,您的網絡可能根本沒有受過培訓。在你的情況下,如果訓練後精度仍然保持50%(我想你說的是兩級問題),但很可能這種方法根本不起作用。您應該首先嚐試一個更簡單的數據集,以檢查它是否有效。
此外:
- 9000的功能太多,如果你想培養一個多層感知。您可能需要SVM來解決這樣一個複雜的問題。
- 實例的數量,最有可能的,太小了這樣的問題(但是,如果兩個類之間的模式是太遠的問題空間)
相關問題
- 1. 神經網絡準確性優化
- 2. 經常性神經網絡的權重
- 3. 神經網絡的準確性
- 4. Rapidminer神經網絡準確性
- 5. OpenCV神經網絡權重
- 6. 如何解決神經網絡的準確性成爲不變的問題?
- 7. 如何測試經常性神經網絡的準確性
- 8. 神經網絡中權重的意義和規範化函數
- 9. 多層神經網絡中的權重
- 10. MNIST神經網絡:準確度很低
- 11. Matlab的神經網絡權
- 12. 人工神經網絡標準化
- 13. 神經網絡反向傳播不能正確計算權重
- 14. 神經網絡加權
- 15. 更多的神經網絡結果的準確性與MATLAB
- 16. 如何不同的是SVM和神經網絡的成本函數優化
- 17. 神經網絡(CNN)的解釋結果/準確性
- 18. 卷積神經網絡的驗證準確性
- 19. 真的很差準確性與神經網絡
- 20. 在Keras的零準確性訓練神經網絡
- 21. 使用遺傳算法的神經網絡權重優化
- 22. 神經網絡性能優化
- 23. 準確性降低卷積神經網絡
- 24. 訪問神經網絡權和神經元激活
- 25. 通過神經網絡的權重和偏差推導方程
- 26. 關於和神經網絡權重矢量的一般查詢
- 27. 卷積神經網絡中權重和輸出的值
- 28. 建立一個已知權重和偏差的神經網絡
- 29. 構建神經網絡的標準
- 30. 非標準輸入的神經網絡
潤通信息存在的。 PCA似乎降低了一些例子的特徵數量。這是分類。我在matlab中使用fmincg,我相信它具有自適應學習速率。我確實規範了它。 – cubearth