線性擬合matlab編程「matlab直線擬合函數」

上次討論了基於Hopfield神經網路的數字識別,BP(Back Propagation)神經網路也可以進行相關的數字識別如手寫數字識別等,由於BP神經網路的特性,該網路需要一定的樣本進行對網路進行訓練、測試以及校驗。本次不再贅述數字識別,而是將目光集中於基於BP神經網路的數據擬合。

本次所採用的神經網路為BP神經網路,是一個誤差反向傳播訓練(Error Back Propagation Training)的多層前饋網路,主要包含輸入層、隱含層和輸出層。數據由輸入層輸入,經過標準化處理後,傳到第二層即隱含層,隱含層進行輸入數據的權值計算、轉換,然後傳輸到輸出層,輸出層將給出神經網路的預測值。 由於人工神經網路不需要事先給定輸入量與輸出量之間的映射關係,BP網路需要通過範例進行學習。因此,給定一個包含了輸入量樣本以及已知的正確輸出量樣本是必須的。利用給定的示例,BP神經網路可以得知什麼是所期望達到的行為並且BP演算法也能支持網路進行調整來達到預期。

BP網路包含正向計算和反向計算兩個過程,其學習過程是通過循環步驟來實現的。當接收到範例時,該網路會先進行正向計算過程,隨機輸出一些數據。這個輸出的結果將會與已知的正確樣本進行比較,然後一個含有其均方誤差的信號將會通過建立的神經網路進行反向傳遞。隱含層接收到信號後,會「分攤」給各個神經單元,每個單元的權值因此將根據接收到的誤差進行相應的調整。這個過程將會不斷循環,直到誤差達到規定的閾值或完成了規定的學習次數而停止。此時該神經網路被認為已經學習成功,完成了訓練過程。BP神經網路模擬雖然無法達到最理想的功能,但是其結果已經接近了完美。

在BP演算法中採用的激活函數是S型(Sigmoid)函數,該函數應用於隱含層的輸出中。S函數有效地將非線性變化引入到了神經網路中,使得每一層權值得變化呈現非線性趨勢而不是直接承接上一層的線性變化輸出結果。此外,S型函數具有將小信號放大、大信號縮小的特徵,可以保證輸出結果在(0,1)之間,如下圖所示。然而在輸出層中,需要直接保障輸出端能接收到輸出層輸出的任何值,故採用線性函數。該特徵也將在MATLAB生成網路結構視圖中體現。基於Matlab平台的BP神經網路進行數據擬合

圖1. Sigmoid函數曲線示意圖

現在開始使用MATLAB中的函數feedforwardnet創建BP神經網路結構。如圖2所示,綠色圖標代表的輸入端(Input)和輸出端(Output)各為1個,藍色圖標代表著隱含層和輸出層。其中20代表著隱含層神經元數為20,1指代輸出層只有一個神經元。代表隱含層的方框中其中一個含有S曲線的圖標指激活函數為S函數,輸出層中的直線代表著輸出層使用的線性函數。此外,w指權值(weight,b為偏置(bias)。基於Matlab平台的BP神經網路進行數據擬合

圖2. 創建BP網路視圖

本次神經網路的訓練方法採用默認的Levenberg-Marquardt方法,誤差指標為均方差(MSE),設置的訓練次數為1000次,期望達到的誤差目標為10-10。訓練結果完成的示意圖如圖3所示。在進展(Progress)項中,Epoch為訓練次數,綠色指標顯示1000 iterations意為已經完成了設置的1000次循環。性能指(Performance)為均方差中的最大值,藍色精度條顯示地為當前均方差,當該值小於設定的指標時,則停止訓練。和性能指一樣,當梯度值(Gradient)小於目標值時,也會停止訓練。泛化能力檢查(Validation Checks)在訓練中始終為0,這個是指在訓練過程中沒有出現過誤差不降反升的情況,如果超過6次誤差不降反升,為防止出現過度擬合的情況,訓練將會強行停止。

訓練過程中生成的訓練結果可以繪出如回歸線圖、性能指圖等來體現該次訓練的特徵,以及為輸出的擬合結果提供判斷可靠性的有力佐證。當回歸率R越接近於1時,則證明數據擬合效果越好。基於Matlab平台的BP神經網路進行數據擬合

圖3. 訓練結果信息圖

本次數據擬合的結果如圖4所示,採用的樣本數據為MATLAB自帶的資料庫(simplefit_dataset),可以看出擬合曲線與樣本值的趨勢完美重合。不同於Hopfield神經網路輸出結果的不穩定性,BP神經網路每次訓練的迭代過程中產生的誤差以及權值等會變化但是輸出結果總是可靠的。除了使用MATLAB自帶的資料庫進行數據擬合測試外,也可以自己創建樣本矢量,進行對多項式、正餘弦函數以及其他函數映射等的數據擬合分析。基於Matlab平台的BP神經網路進行數據擬合

圖4. 數據擬合結果

最後,有機器學習相關需求,歡迎通過微信公眾號聯繫我們。

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/255860.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-15 12:31
下一篇 2024-12-15 12:31

相關推薦

發表回復

登錄後才能評論