风机桨叶故障诊断(五) 修改隐含层神经元个数的尝试
風機槳葉故障診斷(五) 修改隱含層神經元個數的嘗試
? ? ?我們已經為訓練一個更為穩健的神經網絡做好了樣本的準備工作,那么我們開始下一步的工作吧!
? ? ?我們已經有了樣本集,目前我篩選出來了247個正樣本,652個負樣本。這樣的樣本的規模是否夠用?是處在高方差還是高偏差?需不需要增加隱含層神經元個數以增加算法的復雜程度?這些問題都可以歸結到一個問題,我們的算法現在處在什么樣的狀態?
? ? ?下面一步我打算進行模型選擇,通過選擇不同隱含層神經元個數時算法的不同表現來進行分析我們的算法現在處在什么樣的狀態,并且選擇出最適合我們問題的隱含層神經元個數。
? ? ?所以接下來的任務很簡單,在已經寫好的訓練BP神經網絡的代碼基礎上外面套一層for循環,我從25個隱含層節點開始運行,每次增加25個節點,一直運行到625個節點結束(事實證明這個上限選的有點大了,浪費了很多時間)。對于每次的訓練,記錄下神經網絡在訓練集和測試集上的預測準確率。全部運算完畢后將會繪出圖來。
? ? ?接下來的任務就是等待了
? ? ?...
? ? ?...
? ? ?漫長的等待終于運行完了,沒想到居然跑了14個小時。其實像這樣浪費時間的事情這些天一直在發生,因為之前沒有過完整的機器學習系統開發的經驗,神經網絡這么細致的使用也是第一次,循環的上限選大了沒想到會跑這么久,再加上本來電腦就慢。不管怎樣終于運行完了,來看看結果(橫坐標是隱含層神經元個數):
? ? ?
? ? ?可以看到,模型在訓練集上的預測準確率一直在非常高的水平,但隨著隱含層神經元數量的上升,測試集上的準確率卻在下降。這說明我們的算法過擬合了,由此圖我們得出以下結論:
? ? ?1.隱含層個數選取在25-100是當前情況下比較好的。
? ? ?2.we need more data! 算法過擬合了,說明獲取更好更多的數據能夠幫到我們
? ? ?看了我們當前的神經網絡的結構(25個隱含層節點)已經是比較合理的了,樣本我們暫時也獲取不了更多,看了下一步要想辦法從特征選取上入手嘗試一下了,今天就到這里~
總結
以上是生活随笔為你收集整理的风机桨叶故障诊断(五) 修改隐含层神经元个数的尝试的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python 除法取模_跟我一起学pyt
- 下一篇: PID控制器改进笔记之一:改进PID控制