各位小伙伴們大家好,今天讓我們聊聊在做好了自己的神經網絡以后來如何評價自己的神經網絡的并且如何從評價當中如何改進我們的神經網絡。
其實評價神經網絡的方法和評價其他的機器學習的方法大同小異,那么你可能會想,機器學習如此精準,為什么我們要去檢驗這個神經網絡呢?其實在神經網絡的訓練中,神經網絡可能會和我們一樣會出現各種各樣的問題,出現學習的效率不高,或者是學習的干擾太多,學到最好并沒有很好地學到這些數據所得到的規(guī)律,但是這其中的原因可能是多方面的,可能是數據問題,也可能是數據網絡參數的問題,因此,為了檢驗評價神經網絡,為了改善或者規(guī)避這些問題。我們通常會把收集到的數據分為訓練數據和測試數據。一般用于訓練的數據可以是所有數據的7成,剩下的3成可以作為測試數據用來檢驗訓練結果。
這個時候,你可能會想,我們?yōu)槭裁磿堰@些數據分為兩批。那么,現在請你回想一下你讀書的日子。我們考試的題目和我們平時作業(yè)的題目平時都是不一樣的吧。其實,這個也是同樣的一個道理。緊接著,對于神經網絡的這個評價很大程度上其實就是基于這三成的數據的運行結果。想想我們最可怕的期末考試吧。雖然花費的時間少,但是得到的總成績可是往往比你的作業(yè)的分多吧。要是期末考試考不好那可就掛科了。所以說這個三成的數據雖然少,但是這個數據很重要,然后跑完數據后,我們就可以根據數據畫圖了。
首先,評價機器學習首先可以從誤差這個層度開始,隨著訓練時間的變長,優(yōu)秀的神經網絡可以預測到更加精準的答案,預測誤差也會更少,最后能夠提升的空間變小,所繪制的曲線也會變得水平,就好比我們班上的差生從不及格到達80分已經很不容易了,再往上沖刺一百分就變得更難得事。機器學習也是一樣,因此如果你的機器學習的曲線是我下圖這樣的一張曲線,就已經是很不錯的學習成果了。
除了誤差曲線,我們也可以看他的精確度曲線,最好的精度是趨向于百分之百的精度,比如在神經網絡的分類問題中,有一百個樣本,有90張樣本分類正確,那么就可以說我們的預測精度就是百分之90,不過大家有沒有想過對于回歸的問題呢?怎樣去預測連續(xù)數字參與的精度呢? 這個時候我們就可以引入一個R2分數,再去測量回歸問題的精度。R2分數所得出的結果精度也是百分之百,因此這樣的回歸的問題就有了一個統一的精度的標準。除了上述的那些評分標準,我們還有很多的測量標準。比如F1分數,用來測量不均衡數據的精度。因為篇幅有限,所以我想在日后的文章中和大家好好地聊聊這些問題。
當然,有時候意外也是猝不及防的, 比如說有時候我們明明每一道作業(yè)習題都會做,可是考試分數為什么總是比作業(yè)分低呢?原來我們只復習了作業(yè)題,并沒有深入研究拓展處理作業(yè)所延伸的知識。這些事情也發(fā)生在機器學習中,我們就把這個事情稱作為過擬合。我們這時候回到誤差曲線,如果這個時候我們也把訓練的誤差劃出來,紅色的是訓練誤差,黑色的是測試誤差,訓練的誤差比測試的誤差小,神經網絡雖然學到了知識,但是對于神經網絡太過于依賴,以至于考試的時候不能夠隨機應變,沒有成功的吧作業(yè)的知識拓展開來,在機器學習中解決過擬合的方法也有很多,比如L1,L2的正規(guī)化,Dropout方法,神經網絡中有很多的參數,那么我們應該如何更加有效的解決現有的問題呢?這個時候交叉驗證或許就是最好的途徑了,交叉驗證不僅可以用于神經網絡的調參,同時也可以用于其他的機器學習方法中進行調參,同樣是觀測你想看的誤差值或者精確度,不過橫坐標不再是你要學習測試的時間,而是你現在所要測試訓練的參數,比如說神經網絡的層數,我們逐步增加神經網絡的神經層,然后對每個層數的神經網絡進行測量求出最終的誤差值或者精確度,然后表示表示在圖中,我們可以知道,神經層層數越多,計算機所消耗的時間或者資源也就越多,所以我們只需要找到那層滿足誤差要求并且滿足實驗的要求的那一層結構,比如說誤差在0.005一下都可以接受,那我們就可以采用這個0.005所對應的神經網絡結構。
好,這些就是這篇文章對于檢驗神經網絡的一些方法,如果你對機器學習感興趣的話,歡迎關注我的簡書和知乎專欄,也希望可以和大家多多交流,謝謝大家!