写了个神经网络数字识别的在线可视化运行工具(运行前请务必查看本文章).
神经网络数字识别属性
基础设置
共设置三个神经元层,分为:input,hidden,output
其中,input 层是输入层,由于数据所限,输入层神经元数为 $28 \times 28 = 784$ 个.
hidden 层是隐藏层,神经元数可以自定义,推荐设置为 200,以在保证较大效率的前提下得到较大正确率.
output 层是输出层,输出是 0 ~ 9 十个数字,故限制神经元数为 10 个.
学习设置
设定学习率用于防止过度学习,即对某特定数据能 100% 正确,而对全局数据无法保证正确率.
学习率一般设置为 0.1,太低学习慢,太高学习过度.
学习世代,即每个数据学习多少次,一般设置为 5,设置太低正确率低,太高学习过度,且学习慢.
数据规模,即学习给定学习数据的前千分之几项 (MNIST 的学习数据共 60000 项),例如,设置为 10 表示前 10‰ 的数据,即600项.
数据规模越大,正确率越高,但学习越慢.
测验设置
测试规模,即测试给定测试数据的前千分之几项 (MNIST 的测试数据共 10000 项),该项只是对正确率检测的精度设置,对神经网络无影响.
错误显示,即完成测验后显示多少项神经网络所得与标准答案不符的数据 (用于测试),该项不是比例,而是错误显示的确切最大值,设置为 0 则不限数量,最多设置为 10000.
加载数据
数据采用 MNIST 库的 CSV 优化版本,其中训练数据 (mnist_train.csv) 共 60000 项,测试数据 (mnist_test.csv) 共 10000 项.
训练数据和测试数据无重复部分,这样保证神经网络是真正的认到了数字而不是记下了数据.
由于两文件太大,无法嵌入网页中,故请自行下载:
点击两加载按钮,选择对应文件,稍等片刻即完成加载.
读取数据
选择或拖动之前保存的数据文件到网页中,即可加载相应数据,免去学习的过程 (若对该数据不再次学习,可以不加载训练数据).
这里我提供自己花 5 个小时训练的全数据和几分钟训练的 5% 数据,供参考:
5% 数据 100% 数据 #1 100% 数据 #2在运行完学习后,可以点击保存数据.
训练神经网络
点就完事.
测试神经网络
批量测试
在加载完测试数据之后,可以点击测试,左侧为训练日志,右侧为正确率的可视化显示.
指定测试
选择数据编号,可显示图像、值和神经网络判断的数据可能性 (右侧柱状图,值越大,越有可能是该数字).
选择测试
加载完测试数据后,可以点击图像测试该数据,鼠标移上图像会以 #a => b
的格式显示编号和数值,其中,a 为编号,b 为数值.
本文作者:Xecades
本文链接:https://blog.xecades.xyz/articles/neuralNetwork/
文章默认使用 CC BY-NC-SA 4.0 协议进行许可,使用时请注意遵守协议。
评论