计算神经网络隐藏层节点数极小值
神經網絡的隱藏層的節點數越少網絡的速度越快,那么神經網絡的隱藏層的節點數是否有一個可以保證性能的極小值,本文用mnist數據集做了實驗。
首先制作一個784*n*2的神經網絡,用于測試0-9中的任意兩個數的隱藏層的極小值。后經實驗證明0-9中任意兩個數的784*n*2的神經網絡的隱藏層的極小值都是2,也就是說784*2*2的神經網絡可以區分從0-9的任意兩個數的組合。
比如這組數據,表明可以用784*2*2的網絡來區分5和8,0.91是可以達到的準確率,統計方法是當準確率>0.98時停止,或者取幾次計算得到的最大值,5-8這個結果0.91,表明mnist的5和8的圖片看起來很像,相比較其他數字的組合特征要模糊一些。
由此很容易推算如果計算0,1,2三個數的784*n*3的神經網絡的隱藏層的節點數的極小值一定是一個小于等于6的數,經實測這個數是4.說明0-1,0-2,1-2這幾組神經網絡的特征有重疊。
用實驗數據去驗證這個方法
測試集4,是0,1,2,3
比如制作一個784*2*4的神經網絡用來區分mnist的0,1,2,3可能達到的最大值是53.07,當n=9時,準確率可以達到90.56,這個不是最大值,只是可以達到的值。或許有n<9的點也可以達到>90%的準確率。784*9*4只是可能的最小網絡,是理論最小值的9/(4*3)*2/2 =75%,
同樣784*n*5網絡測得的隱藏層節點數的可能最小值是15,是理論值的75%。
用這種方法估算784*n*6的網絡的隱藏層節點數的最小值應該小于等于30個,實測值是16個,是理論值的53%。
所以一個神經網絡的任意兩個測試元素的隱藏層的極小值的平均值是a,目標函數的數量是y個,那這個神經網絡的隱藏層節點數的極小值是一個小于等于
y*(y-1)*a/2的值.
?
實驗數據784*n*3,784*n*4,784*n*5,784*n*6的n的極小值
實驗測量0-9中任意兩組數據的784*n*2的神經網絡的隱藏層的極小值
總結
以上是生活随笔為你收集整理的计算神经网络隐藏层节点数极小值的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用神经网络学习Fe原子光谱并反向求导计算
- 下一篇: 加速神经网络收敛的萃取精馏权重法