神經網絡相關知識積累

1基本概念

(1)前饋神經網絡就是數據是一層層向前傳播的
(2)BP網絡是最常見的一種前饋網絡,數據輸入後,一層層向前傳播,然後計算損失函數,得到損失函數的殘差,然後把殘差向後一層層傳播。

2數值優化的BP網絡訓練算法

2.1擬牛頓法

擬牛頓法克服了梯度下降算法收斂慢以及牛頓法計算複雜的缺點。(以matlab2016a爲例)
(1)BFGS你牛頓法

  • BFGS擬牛頓法在每次迭代中都要存儲近似的海森陣,海森陣是一個n*n的矩陣,n是網絡中所有的權值和偏置的總數。因此,當網絡參數很多時,要求極大的存儲量,計算也較爲複雜。
  • 在matlab中對應的訓練算法爲‘trainbfg’
    (2)正割擬牛頓算法
  • 不需要存儲完整的海森陣,除第一次迭代外
  • 相比於BFGS,其減少了存儲和計算量。
  • 它是近似計算海森陣的擬牛頓法與共軛梯度法的一種折中。
  • 在matlab中對應的是‘trainoss’

2.2共軛梯度法

共軛梯度法力圖克服梯度下降法收斂慢和擬牛頓法計算複雜的問題。
(1)Flectcher-Reeves共軛梯度法和Polak-Ribiere共軛梯度法

  • 其比絕大多數常規的梯度下降算法收斂的都要快,而且增加很少的存儲量和計算量。
  • 分別是‘traincgf’和‘traincgp’

2.3Levenberg-Marquardt法

其實際是梯度下降算法和牛頓法的結合。

  • LM需要的存儲量很大,雅可比矩陣使用Q*n矩陣,Q爲訓練樣本數,n爲網絡中的權值和偏差的總數。
  • 在網絡權值數目較少時收斂非常迅速。
  • ‘trainlm’

2.4小結

LM法 擬牛頓法 共軛梯度法
存儲量 較大 較大 較小
收斂速度 較快 較快 較慢
適用範圍 網絡參數很少 網絡參數很少或網絡參數適中 網絡參數很多,需要考慮存儲容量問題時

3 具體matlab中的訓練函數

(1)train
[NET,TR] = train(NET,X,T) takes a network NET, input data X
and target data T and returns the network after training it, and a
a training record TR.

對於無監督訓練如下,只有輸入X,沒有目標T:
[NET,TR] = train(NET,X) takes only input data, in cases where
the network’s training function is unsupervised (i.e. does not require target data).

(2)compet
compet 競爭傳遞函數.
A=compet(M),轉換後的矩陣A中只保留M矩陣中每一列中的最大值,並置爲1,即使相等也只保留第一個,每一列中的其他值,均爲0;即每一種分類只對應一個結果。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章