深度学习试验之 多层感知器

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 满足:

b=46Hk+Hk+1

其中 HkHk+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。

你可能感兴趣的:(机器学习)