系列部落格是博主學習神經網路中相關的筆記和一些個人理解,僅為作者記錄筆記之用,不免有很多細節不對之處。
我的這一階段目標是在學習完淺層bp神經網路的相關知識時,可以將手寫字的識別率達到98%。在前面的幾次實驗中,mnist手寫字的識別率始終未達到98%以上,這樣的結果是有些讓人沮喪的。
今天進過艱苦奮鬥,多次嘗試之後終於將mnist手寫字的識別率提高到了98%以上,最高識別率達到98.39%。這次的實驗是利用matlab**進行的,每次有放回的從訓練資料中取 mini_batch_size 樣本,下面是三組實驗結果:
第一組:網路結構 [784,80,80,10], mini_batch_size = 100,max_iteration = 50000, eta = 1, lambda = 5,最高識別率達到98.34%,下面是測試結果曲線
第二組:網路結構 [784,100,100,10], mini_batch_size = 100,max_iteration = 50000, eta = 1, lambda = 5,最高識別率達到98.39%,下面是測試結果曲線
第三組:網路結構 [784,120,120,10], mini_batch_size = 100,max_iteration = 50000, eta = 1, lambda = 5,最高識別率達到98.37%,下面是測試結果曲線
隱層啟用函式
輸出層函式
代價函式
校驗資料最高識別率
測試資料識別率
sigmoid
sigmoid
quadratic
97.30%
96.90%
sigmoid
sigmoid
cross-entropy
97.40%
96.93%
sigmoid
softmax
cross-entropy
97.23%
97.02%
relu
sigmoid
quadratic
98.30%
98.29%
relu
sigmoid
cross-entropy
98.38%
98.09%
relu
softmax
cross-entropy
溢位溢位
注:校驗資料最高識別率,在模型訓練時同時用 validation_data 進行的測試,其中最高的識別率;測試資料識別率,指利用 test_data 對最後訓練的模型的測試的識別率。
下面是對bp神經網路學習的乙個知識點總結:
神經網路和深度學習 淺層神經網路
乙個淺層神經網路示意圖 如圖所示,表示乙個單隱層的網路結構。這裡主要需要注意的是,層與層之間引數矩陣的規格大小 隱藏層和輸出層之間 由上面我們可以總結出,在神經網路中,我們以相鄰兩層為觀測物件,前面一層作為輸入,後面一層作為輸出,兩層之間的w引數矩陣大小為 n out,nin b引數矩陣大小為 n ...
神經網路和深度學習(二)淺層神經網路
1 計算神經網路的輸出 正向傳播 矩陣表示 向量化 2 多個樣本的向量化 正向傳播 3 啟用函式 1 sigmoid函式僅用於二分分類的情況,較少使用 2 tanh函式絕大多數情況下優於sigmoid函式 3 relu函式是預設的常用啟用函式 4 leaking relu 帶洩露的relu函式 4 ...
bp神經網路學習
import numpy as np 使用邏輯回歸進行分類 defnonlin x,deriv false if deriv true return x 1 x return 1 1 np.exp x 待分類的資料 x np.array 0,0,1 0,1,1 1,0,1 1,1,1 print x...