我最近一次關於ANN的講座是前一陣子,但我目前正面臨着一個我想要使用它的項目。因此,基礎 - 像什麼類型(多層前饋網絡),由進化算法(即由項目給出)訓練,有多少輸入神經元(8)和多少輸出神經元(多個輸入神經元) 7) - 被設置。 但我目前正在試圖弄清楚我應該使用多少個隱藏層以及每個層中有多少個神經元(ea不會修改網絡本身,但只是權重)。人工神經網絡應該有多大才有規則/好建議?
有沒有一個通用的規則或者可能是一個關於如何解決這個問題的指導方針?
我最近一次關於ANN的講座是前一陣子,但我目前正面臨着一個我想要使用它的項目。因此,基礎 - 像什麼類型(多層前饋網絡),由進化算法(即由項目給出)訓練,有多少輸入神經元(8)和多少輸出神經元(多個輸入神經元) 7) - 被設置。 但我目前正在試圖弄清楚我應該使用多少個隱藏層以及每個層中有多少個神經元(ea不會修改網絡本身,但只是權重)。人工神經網絡應該有多大才有規則/好建議?
有沒有一個通用的規則或者可能是一個關於如何解決這個問題的指導方針?
一個典型的神經網絡依賴於隱藏層來收斂於一個特定問題的解決方案。大約10個神經元的隱藏層是輸入和輸出神經元很少的網絡的標準。然而,試錯法往往效果最好。由於神經網絡將通過遺傳算法進行訓練,所以隱藏的神經元的數量可能不會發揮重要作用,尤其是在訓練中,因爲其對神經元的權重和偏差將通過諸如回傳的算法進行修改。
正如rcarter建議的那樣,反覆試驗可能會很好,但還有一件事可以嘗試。
您可以使用遺傳算法來確定隱藏層的數量或神經元的數量。
我做了一堆隨機森林類似的事情,試圖找到給每棵樹的樹,樹枝,參數的最佳數量等
此問題的最好的辦法,是落實級聯相關算法,其中根據需要依次添加隱藏節點以降低網絡的錯誤率。這已被證明在實踐中非常有用。
當然,替代方案是對各種值的蠻力測試。我不認爲諸如「10或20好」這樣的簡單答案是有意義的,因爲你直接用基函數來解決高維空間中數據的可分性問題。
我同意試錯法。隱藏層中的更多神經元有時可以幫助網絡獲得更準確的答案,但需要更長的時間來訓練和傳播。其他隱藏層增加了複雜性。對不同數量的隱藏神經元繪製隨時間變化的總誤差(迭代)可以幫助您瞭解隱藏神經元的最佳數量以用於獲得準確答案,但是太多神經元需要更長的時間才能得到稍好的答案。 – Narthring
這可能來得相當晚,但我最近有時間繼續在這件事上工作。對於固定的問題集,這是解決它的最簡單的方法,經過一些試驗後,我也對如何調整大小有了一種「感覺」。 – mageta