为了账号安全,请及时绑定邮箱和手机立即绑定

计算神经网络隐藏层节点数极小值

标签:
人工智能

神经网络的隐藏层的节点数越少网络的速度越快,那么神经网络的隐藏层的节点数是否有一个可以保证性能的极小值,本文用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的神经网络的隐藏层的极小值

原文出处

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消