Make your own Neural NetWork之代码详解下

本文介绍了如何通过调整学习率、增加迭代次数和更改神经网络的隐藏层节点数量来改进神经网络性能。实验结果显示,学习率在0.1和0.3之间,200个隐藏节点,以及6个迭代次数可以获得最佳的MNIST数据集识别效果。
摘要由CSDN通过智能技术生成

这篇博客接上一篇博客Make Your Own Neural Network之代码详解中。本文也是出自Make your own Neural NetWork这本书。上一篇博客讲了如何对这个神经网络类进行训练和测试,本文将介绍对神经网络做一些改进并测试效果。

声明:

  1. 代码用的Python编写
  2. 红字部分为后面要讲的内容的中心句

一些改进:调整学习率

  使用我们之前用到的MNIST数据集,仅使用简单的算法和简单的Python,得到95%的性能得分并不是很糟糕,如果你想到此为止,非常合理~~但是让我们看看能否做一些简单的改进。
  我们可以尝试的第一个改进就是调整学习率。现在让我们尝试将其倍增到0.6,看看实际上对整体网络学习是有所帮助或有害。测试结果是,我们的性能得分:0.9047。这比以前更糟,所以看起来像较大的学习率会导致一些弹跳和梯度下降过度。我们再来一次,学习率为0.1。这一次的表现是0.9523的改善,它的性能与该网站上列出的具有1000个隐藏节点的性能相似。很好!如果我们继续努力,设定一个更小的0.01的学习率会发生什么?表现不是很好,准确率为0.9241,所以似乎学习速度太小是有害的。这是有道理的,因为我们限制了梯度下降的速度,我们使步长太小了。以下绘制了这些结果的图表:
PS:这不是一个非常科学的方法,因为我们应该多次做这些实验,以减少随机性和“奇异的地形”在渐变下降中的影响,但是学习率仍然有一个比较好的建议值。
这里写图片描述

可以看到:在0.1和0.3之间的学习率可能会有更好的表现,所以我们尝试一个学习率0.2。表现为0.9537。这确实比0.1和0.3时好一点点。所以我们会坚持0.2的学习率,这似乎是MNIST数据集和神经网络的最佳选择。
PS:如果你自己运行这个代码,你自己的分数会稍有不同,因为整个过程有点随

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值