BP神經網路學習筆記

2021-09-09 07:33:03 字數 2145 閱讀 4209

sklearn中的bp神經網路就是mlp包

scikit-learn模組包括公開的屬性coefs_ and intercepts_. coefs_是乙個權矩陣列表,矩陣裡的索引 ii 代表第 ii 層與 i+1i+1 層之間的權。intercepts_是乙個偏差向量列表,索引 ii 的向量代表增加到第 i+1i+1 層的偏差值。

多層感知器的優勢是:

學習非線性模型的能力

多層感知器的不足包括:

mlp有乙個非凸損失函式,它存在多個區域性最小值。因此,不同的隨機權初始化能導致不同的驗證準確率。

mlp需要調整很多超引數,諸如隱層神經元的數量、層數、迭代次數等。

mlp對於特徵縮放(feature scaling)是敏感的。

分類

類mlpclassifier執行乙個多層感知器演算法,該演算法使用向後傳播訓練。mlp訓練兩個陣列:(n_samples, n_features)陣列x, 裝載表示浮點特徵向量的樣本。(n_samples,)陣列y, 裝載訓練樣本的目標變數,即類標籤。

from sklearn.neural_network import mlpclassifier

x = [[0., 0.], [1., 1.]]

y = [0, 1]

clf = mlpclassifier(solver='lbfgs', alpha=1e-5,

hidden_layer_sizes=(5, 2), random_state=1)

clf.fit(x, y)

在擬合後,模型就能**新樣本的標籤了。

clf.predict([[2., 2.], [-1., -2.]])

mlp能在訓練資料上擬合乙個非線性模型,clf.coefs_屬性包括由模型引數組成的權矩陣。

[coef.shape for coef in clf.coefs_]

當前,mlpclassifier僅支援交叉熵損失函式,通過執行predict_proba方法,可以估計概率。

mlp使用向後傳播法訓練,更確切地說,它使用經向後傳播計算的梯度下降訓練模型。對於分類問題,它最小化交叉熵損失,給出每個樣本的概率估計向量 p(y|x)

print(clf.predict_proba([[2., 2.], [1., 2.]]))

通過應用softmax作為輸出函式,mlpclassifier支援多類別分類。進一步,模型支援多標籤分類,即,乙個樣本能夠屬於多個類。對於每乙個類,原始輸出經歷logistic函式。大於等於0.5的值,記為1;否則,記為0. 對於乙個樣本的**輸出,值是1的索引代表分派給那個樣本的類。 

回歸類mlpregressor執行乙個多層感知器,使用向後傳播法訓練,在輸出層無啟用函式。它使用平方誤差作為損失函式,輸出是乙個連續值集。mlpregressor也支援多輸出回歸,即,乙個樣本可以有多個目標值。

正則化mlpregressor and mlpclassifier使用引數 αα 作為正則項(l2正則),通過懲罰數量級大的權,避免過度擬合。下圖顯示了 αα 取不同值的決策函式。 

實際使用提示

多層感知器對特徵縮放是敏感的,因此強烈建議scale資料。例如,scale輸入向量x的每個屬性到[0, 1]或[-1, 1], 或者歸一化成0均值、1方差。注意,為了得到有意義的結果,你必須在訓練集上採用相同的縮放標準。你可以使用standardscaler標準化,我們建議在乙個pipeline裡使用它。

注意:可以看到,x_test用的也是經過x_train 訓練的scalar,而不是自己訓練乙個

最好使用gridsearchcv找到乙個合理的正則引數 αα, 通常在10.0 ** -np.arange(1, 7)範圍內。

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...

BP神經網路

基本bp神經網路演算法包括 訊號的前向傳播 誤差的反向傳播 也即計算實際輸出時按照輸入到輸出的方向進行,權值閾值調整則相反。bp是一種多層前饋神經網路,由輸入層 隱含層和輸出層組成。層與層之間有兩種訊號在流動 一種是從輸入流向輸出的工作訊號,是輸入和權值的函式 另一種是輸入流向輸出的訊號,即誤差。隱...

BP神經網路

x 為輸入向量,y為隱藏層的神經元,z 為輸出層,d為目標真實值,本文預設 z 不經過sigmod處理。x y的權重為 w,y z的權重為 v yj ix iwij 1 oyi f y j 2 其中激勵函式f x 1 1 e x f x f x 1 f x 3 z k j f yj vjk 此時系統...