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−−−
−−−−
−−−√
其中hk和
hk+1
分別是權值所連線的前後層的神經元個數。
batch size:100表一:驗證 資料預處理和模型初始化對mlp影響
epochs
normalized
initializing
training error
testing error1n
n4.5000
0.902010n
n4.5000
0.90201y
n1.5924
0.823410y
n0.1511
0.19431n
y0.0788
0.081210n
y0.0296
0.03811y
y0.0668
0.083210y
y0.0243
0.0496
注:initializing為y時指用benjio等人發明的方法進行引數初始化,而n代表直接用matlab的rand函式隨機賦值。
表二:驗證 bp過程中新增衝量項對mlp影響
epochs
momentum
training error
testing error
50.0
0.0354
0.0574
100.0
0.0243
0.0496
150.0
0.0185
0.0475
200.0
0.0150
0.0455
50.5
0.0265
0.0509
100.5
0.0168
0.0439
150.5
0.0123
0.0445
200.5
0.00998
0.0429
注:以下試驗中的mlp同試驗一和試驗二相比結構並無改變,但改變了隱層的啟用函式的型別,同樣情形下結果稍有偏差。
表三:驗證無監督預訓練對mlp影響
該試驗將通過自動編碼器(autoencoder)預訓練mlp隱層的引數,特別地通過denoising autoencoder改變小部分原始資料為0來訓練了引數(類似dropout)。
ae epochs
noise rate
sae training error
training error
testing error
10.00
/0.4460
0.8293
10.05
4.6184
0.0912
0.1007
10.10
4.5282
0.0895
0.0971
10.15
4.7982
0.0883
0.0955
10.20
4.8888
0.0908
0.1005
10.30
6.0715
0.1337
0.1824
10.40
7.8429
0.0991
0.1047
10.50
9.8934
0.1529
0.2058
20.50
9.1333
0.0948
0.1002
30.50
8.7382
0.1323
0.1825
40.50
8.8314
0.0888
0.0946
注:網路訓練過程中沒有對原始資料作任何預處理措施,衝量為0.5, ae epoches是指自動編碼器的訓練時代數,mlp均為1 epoch。
機器學習之多層感知器
keras是乙個用python編寫的用於神經網路開發的應用介面,呼叫介面可以實現神經網路 卷積神經網路 迴圈神經網路等常用深度學習演算法的開發 特點 tensorflow是乙個採用資料流圖,用於數值計算的開源軟體庫,可自動計算模型相關的微分導數 非常適合用於神經網路模型的求解。keras可看作為te...
多層感知器
在介紹單層感知器的時候,我們提到對於非線性可分問題,單層感知器是很難解決的,比如下面這個例子 很簡單的乙個分布,但事實上就是無法用直線進行分類,後來就出現了多層感知器,主要改變的地方是把第一層的感知器的輸出作為第二層感知器的輸入,即使只是簡單新增一層感知器,也足以解決xor問題,關鍵的原因是,多了一...
多層感知器(MLP)
一.簡述多層感知器 mlp 1.深度前饋網路 deep feedforward network 也叫前饋神經網路 feedforward neuarl network 或者多層感知機 multilayer perceptron,mlp 是典型的深度學習模型。這種模型被稱為前向 feedforward...