在线神经网络数字识别可视化

计算机

写了个神经网络数字识别的在线可视化运行工具(运行前请务必查看本文章).

神经网络数字识别https://ai.xecades.xyz/

属性


基础设置

共设置三个神经元层,分为: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% 数据https://pan.xecades.xyz/%E5%85%AC%E5%BC%80/Blog/NeuralNetwork/5TestData.txt 100% 数据 #1https://pan.xecades.xyz/%E5%85%AC%E5%BC%80/Blog/NeuralNetwork/100TestData.txt 100% 数据 #2https://pan.xecades.xyz/%E5%85%AC%E5%BC%80/Blog/NeuralNetwork/100TestData2.txt

在运行完学习后,可以点击保存数据.


训练神经网络

点就完事.


测试神经网络

批量测试

在加载完测试数据之后,可以点击测试,左侧为训练日志,右侧为正确率的可视化显示.


指定测试

选择数据编号,可显示图像、值和神经网络判断的数据可能性 (右侧柱状图,值越大,越有可能是该数字).


选择测试

加载完测试数据后,可以点击图像测试该数据,鼠标移上图像会以 #a => b 的格式显示编号和数值,其中,a 为编号,b 为数值.

本文作者:Xecades

本文链接:https://blog.xecades.xyz/articles/neuralNetwork/

文章默认使用 CC BY-NC-SA 4.0 协议进行许可,使用时请注意遵守协议。

评论