本次对mnist数据集采用单隐层的BP神经网络,在对参数初始化,激活函数,学习率,正则系数选择,隐层神经元数量选择,随机采样样本数量进行调优后,模型在测试集上的正确率可以达到98%。
1、 参数初始化方式
首先调优w和b的初始化,对比了0矩阵赋值tf.zero,均值和方差为0的正太分布赋值tf.random_normal,发现随机赋值可以收敛速度更快更好,故而选择了随机赋值。
2、 激活函数
在选择0.3作为学习率时,sigmoid最慢,50k时仅0.97,到200k步时准确率才达到0.9722;而relu较快但正确率在50k时时0.978左右,selu在50k就可以达到0.9804
三种常用激活函数的特点
使用不同模型在minist测试集上,学习率取0.3时,正确率随步数变化 |
|||
步数(k步) |
sigmoid |
relu |
selu |
5 |
0.9426 |
0.9491 |
0.954 |
10 |
0.9641 |
0.9687 |
0.9715 |
15 |
0.9668 |
0.9796 |
0.9748 |
20 |
0.9618 |