BP神经网络的搭建
1. BP神經網絡的簡介和結構參數
神經網絡是機器學習中一種常見的數學模型,通過構建類似于大腦神經突觸聯接的結構,來進行信息處理。在應用神經網絡的過程中,處理信息的單元一般分為三類:輸入單元、輸出單元和隱含單元。 顧名思義:輸入單元接受外部給的信號與數據;輸出單元實現系統處理結果的輸出;隱含單元處在輸入和輸出單元之間,從網絡系統外部是無法觀測到隱含單元的結構的。除了上述三個處理信息的單元之外,神經元間的連接強度大小由權值等參數來決定。
1.1 BP神經網絡的結構組成
下圖是訓練神經網絡時經常出現的一個界面,從這部分我們可以看到,這是一個2輸入1輸出,8個隱含層的BP網絡,稱為2-8-1網絡結構
1.2 BP神經網絡訓練界面的參數解讀
需要注意的是:
????????1. 泛化性:表示BP神經網絡在訓練過程中,如果均方誤差(MSE)連續6次不降反升,則網絡停止訓練。
????????2. 誤差精度:關于mu參數含義的一種理解是,mu是誤差精度參數,用于給神經網絡的權重再加一個調制,這樣可以避免在BP網絡訓練的過程中陷入局部最小值,mu的范圍為0到1。
2. 實現BP網絡的步驟
首先以這個最簡單是前饋神經網絡為例子:
1.前饋
前饋代表了所有的信息都從輸入?經過某些中間的計算而最終輸出到?,而不存在從模型的輸出到輸入的反饋(feedback),對于有反饋的情況即為循環神經網絡(recurrent neural network)前饋網絡已經廣泛應用在工業界,其重要性不言而喻,而且它也是理解在自然語言處理中應用廣泛的循環神經網絡的基礎。
2.網絡
而網絡則代表了該模型是將不同的基本函數組合在一起形成的模型。
例如通過將三個函數?串聯起來構成最終的函數??,??就是網絡的第一層,?就是網絡的第二層,以此類推。這個鏈的長度又被稱作網絡的深度(depth),深度學習也因此得名。
而前饋網絡的最后一層被稱作輸出層(output layer),對于我們的訓練數據,每一個輸入??都有相應的標記??,而網絡的輸出層的結果需要盡量接近??。
但對于其它層來說,和訓練數據沒有這樣的直接對應關系,即我們的算法只要求最后的輸出接近于真實的標記,而對于中間每層的目的并沒有明確定義,所以這些層又被稱作隱藏層(hidden layer)。
3.神經
神經代表了它的靈感部分受到了神經科學的影響。每一隱藏層通常是矢量值,而這些隱藏層的維度定義了網絡的寬度。我們可以將每層看做從一個大的從矢量到矢量的函數映射,但從另一方面也可以將矢量的每個元素看做一個小的神經元,每個神經元進行了矢量到標量的映射操作(這一操作又被稱作激活函數,activation function),而每一層是不同的神經元并行運算的綜合。
前饋神經網絡是
1.讀取數據
%%簡單的前饋神經網絡 x = [0 1 2 3 4 5 6 7 8]; %初始數據輸入,x坐標值t = [0 0.84 0.91 0.14 -0.77 -0.96 -0.28 0.66 0.99];%輸出,y坐標值plot(x,t,'o') %x,y值一一對應運行結果如下:
2.構建前饋型神經網絡
net = feedforwardnet(10);%前饋型神經網絡net = configure(net,x,t);% 配置網絡輸入和輸出,以達到最好的匹配輸入和目標數據.y1 = net(x)plot(x,t,'o',x,y1,'x')?
?3.訓練網絡
net = train(net,x,t);y2 = net(x)plot(x,t,'o',x,y1,'x',x,y2,'*')總結
- 上一篇: 通信行业最齐全的英语缩语手册
- 下一篇: CES直击:戴尔连发多款ALIENWAR