神經網路學習(十)淺層BP神經網路總結

2021-08-17 05:20:15 字數 1522 閱讀 1905

系列部落格是博主學習神經網路中相關的筆記和一些個人理解,僅為作者記錄筆記之用,不免有很多細節不對之處。

我的這一階段目標是在學習完淺層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...