测试优化数字识别程序

一、背景

在程序写完之后,我们发现,在程序中能够改变的值主要有以下几个:隐藏层层数,训练次数,学习率,权重次方。

在原来的程序中,我们的数据分别是:隐藏层层数:300,训练次数:5,学习率:0.1,权重次方,-0.5

得出来的准确率只有:54.5%

二、调试

因为初始数值准确率不高,所以,就到了关键的一步:不断测试并改变阈值,以提高准确率。

实验一:

首先我用的是每个参数都选择其能达到的最优准确率,看能否组合起来,最终形成一个总体最优准确率。



在权重次方、隐藏层层数、训练次数不变的前提下,在学习率区间为0.000088到0.001的条件下,准确率的总体趋势随着学习率的增大,先变大,后变小。

其准确率最大值为0.818,学习率为0.000088。



在权重次方、训练次数、学习率不变的前提下,在隐藏层数区间为200到350的条件下,准确率的总体趋势随着隐藏层数的增大,先变大,后变小。

其准确率最大值为0.818,隐藏层数为300/320.



在权重次方、隐藏层数、学习率不变的前提下,在训练次数区间为3到11的条件下,准确率的总体趋势随着训练次数的增大,先变小,后变大。

其准确率最大值为0.818,训练次数数为10.



在隐藏层数、学习率、训练次数不变的前提下,在权重次方区间为-0.8到-0.1的条件下,准确率的总体趋势随着权重的增大,先变大,后变小。

其准确率最大值为0.818,权重次方为-0.5.


实验二

在全部数据调试了一遍后,发现准确率不见上升,于是决定运用单一变量法,再进行调试:


初始值:权重次方为-0.5,训练次数为5,隐藏层数为300,学习率为0.5。

但发现,准确率仍无法上提。


实验三

根据实验一、二的启示,发现准确率一直处于0.818提不上去,经过研究,认为是由于训练集过少(89个),而测试集又仅有11个,数据过少,以致于无法达到理想状态。

于是,将训练集和测试集都提升到100个。

1.学习率:0.0005

2.学习率:0.005

经过调试发现,增多了数据集,可以在一定程度上提高准确率,达到了87%左右,但仍不够高。


实验四

为了使准确率能达到95%以上,最终从网上找了个10000的测试集,60000个训练集的数据集,再进行尝试。

最终,准确率达到了97%以上。

Q:为什么会有空格?

A:因为跑一次程序所需的时间较长,而我们的目标是准确率达到95%以上,而前面的一些结果,在经过多次调试后,仍然跟我们的预想相差甚远(只有85%左右)。于是乎决定放弃一些结果,直接选择更多的训练集来训练出准确率更高的程序。

你可能感兴趣的:(测试优化数字识别程序)