1、试验平台
MLP Structure:input layer:
28×28
,hidden layer:
100
, output layer:10
Dataset :MNIST
Programming:MATLAB
Pre-processing of raw data:原始图像归一化、原始图像规格化,规格化的具体方式为: (原始图像-平均图像)/标准差图像,值得注意的是对于标准差图像像素小于MATLAB默认最小浮点数精度 eps的用eps代替。
Initialization:采用Glorot和Bengio等人提出的初始化方法,即在
[−b,b]
随机取值,其中
b
满足:
其中 Hk和Hk+1 分别是权值所连接的前后层的神经元个数。
batch size:100
2、实验结果
表一:验证 数据预处理和模型初始化对MLP影响
epochs | normalized | initializing | training error | testing error |
---|---|---|---|---|
1 | N | N | 4.5000 | 0.9020 |
10 | N | N | 4.5000 | 0.9020 |
1 | Y | N | 1.5924 | 0.8234 |
10 | Y | N | 0.1511 | 0.1943 |
1 | N | Y | 0.0788 | 0.0812 |
10 | N | Y | 0.0296 | 0.0381 |
1 | Y | Y | 0.0668 | 0.0832 |
10 | Y | Y | 0.0243 | 0.0496 |
注:initializing为Y时指用Benjio等人发明的方法进行参数初始化,而N代表直接用Matlab的rand函数随机赋值。
表二:验证 BP过程中添加冲量项对MLP影响
epochs | momentum | training error | testing error |
---|---|---|---|
5 | 0.0 | 0.0354 | 0.0574 |
10 | 0.0 | 0.0243 | 0.0496 |
15 | 0.0 | 0.0185 | 0.0475 |
20 | 0.0 | 0.0150 | 0.0455 |
5 | 0.5 | 0.0265 | 0.0509 |
10 | 0.5 | 0.0168 | 0.0439 |
15 | 0.5 | 0.0123 | 0.0445 |
20 | 0.5 | 0.00998 | 0.0429 |
注:以下试验中的MLP同试验一和试验二相比结构并无改变,但改变了隐层的激活函数的类型,同样情形下结果稍有偏差。
表三:验证无监督预训练对MLP影响
该试验将通过自动编码器(Autoencoder)预训练MLP隐层的参数,特别地通过Denoising Autoencoder改变小部分原始数据为0来训练了参数(类似dropout)。
AE epochs | noise rate | SAE training error | training error | testing error |
---|---|---|---|---|
1 | 0.00 | / | 0.4460 | 0.8293 |
1 | 0.05 | 4.6184 | 0.0912 | 0.1007 |
1 | 0.10 | 4.5282 | 0.0895 | 0.0971 |
1 | 0.15 | 4.7982 | 0.0883 | 0.0955 |
1 | 0.20 | 4.8888 | 0.0908 | 0.1005 |
1 | 0.30 | 6.0715 | 0.1337 | 0.1824 |
1 | 0.40 | 7.8429 | 0.0991 | 0.1047 |
1 | 0.50 | 9.8934 | 0.1529 | 0.2058 |
2 | 0.50 | 9.1333 | 0.0948 | 0.1002 |
3 | 0.50 | 8.7382 | 0.1323 | 0.1825 |
4 | 0.50 | 8.8314 | 0.0888 | 0.0946 |
注:网络训练过程中没有对原始数据作任何预处理措施,冲量为0.5, AE epoches是指自动编码器的训练时代数,MLP均为1 epoch。