bp神經網路學習 matlab問題隨手記1

2021-10-01 04:35:04 字數 3484 閱讀 3538

一、matlab中clc和clear命令的作用:

1.clc命令是命令視窗顯示的內容,但並不清除工作空間,對工作環境中的全部變數無任何影響 ;

2. clear命令是用來清除工作空間的內容,即清除工作空間的所有變數 。

二、其它常用命令:

1.close是關閉當前的figure視窗; 

2.close all是關閉所有的figure視窗 ;

3.clear all是清除工作空間的所有變數,函式,和mex檔案;

4. figure是建立乙個用來顯示圖形輸出的乙個視窗物件,所有引數採用預設命令,每乙個這樣的視窗都有一些屬性,例如視窗的尺寸、位置等,可通過figure進行指定修改。

三、matlab的省略號三個點「...」的意思:

三個點叫做續行符,意思為該行寫太多了,不想在該行繼續往下寫,又希望格式統一,或看著方便,於是重新另開一行來寫。

如:d=[-0.9602 -0.5770 -0.0729 0.3771 0.6405 0.6600 0.4609...

0.1336 -0.2013 -0.4344 -0.5000 -0.3930 -0.1647 -.0988...

0.3072 0.3960 0.3449 0.1816 -0.312 -0.2189 -0.3201];

四、newff:前饋網路建立函式 語法:

net = newff(a,b,,』trainfun』,』blf』,』pf』)。 

a:newff的第乙個變數,用來設定輸入特徵的範圍,使用minmax來輸入也可以,即乙個n*2的矩陣,第i行元素為輸入訊號xi的最大最小值。

b:newff的第二個變數,用來設定隱含層和輸出層神經元的數目,即乙個k維行向量,其元素為網路中各個節點的數量。 

c:newff的第三個變數,乙個k維字串行向量,每乙個分量為對應層的神經元的啟用函式,預設為「tansig」,且通常在輸出層選擇乙個線性函式「purelin」 。

trainfun:為學習規則的採用的訓練演算法,預設為有動量的梯度下降法 :「trainlm」 。

blf:bp權值/偏差學習函式,預設為:「learngdm」 。

pf:效能函式,預設為「mse」。

五、matlab中plot函式的用法:

功能:使用plot繪製二維影象。

plot函式的一般呼叫形式如下:

plot(x, y, linespec)

其中x由所有輸入點座標的x值組成,y是由與x中包含的x對應的y所組成的向量。linespec是使用者指定的繪圖樣式。

舉例如下:

%定義x為0到2pi之間的一組向量,且x向量中相鄰兩個值之間的增量為pi/1000。定義y向量中的值為x向量的sin值。

x = 0:pi/1000:2*pi;

y = sin(x);

figure % 開啟新的繪畫視窗,可省略該句

plot(x,y) %採用預設樣式,繪製實線

執行結果截圖:

六、有關mapminmax的用法簡介:

結合matlab例項來看:定義輸入 x1 = [1 2 4], x2 = [5 2 3];

有如下結果:

(1)[y,ps] = mapminmax(x)用法:

>> x1 = [1 2 4]

x1 =

1     2     4

>> [y,ps] = mapminmax(x1)   %[y,ps] = mapminmax(x)函式介面

y =-1.0000   -0.3333    1.0000

ps = 

name: 'mapminmax'

xrows: 1

xmax: 4

xmin: 1

xrange: 3

yrows: 1

ymax: 1

ymin: -1

yrange: 2

no_change: 0

gain: 0.6667

xoffset: 1

分析即結論:y是對x1進行某種規範化後得到的資料,這種規範化的對映記錄在結構體ps中.

執行結果截圖:

(2)[y,ps] = mapminmax(x,fp)用法:

對於上面algorithm演算法中的對映函式mapminmax(x1),該函式求得的是x1中的最大值ymax和最小值ymin,其中ymin,和ymax是引數,可以自己設定,預設為-1,1;如這裡我們也可以指定ymin值為0,則有

>> x1 = [1 2 4];

>> ps.ymin = 0;

>> [y,ps] = mapminmax(x1,ps)     %[y,ps] = mapminmax(x,fp)函式介面

執行結果截圖:

例項:>>  x1 = [1 2 4], x2 = [5 2 3];

x1 =

1     2     4

>> [y1,ps] = mapminmax(x1);

y2 =

1.6667   -0.3333    0.3333

執行結果截圖:

(4)x = mapminmax('reverse',y,ps)函式介面用法:

x = mapminmax(『reverse』,y,ps)的作用就是進行反歸一化,講歸一化的資料反歸一化再得到原來的資料:

例項:>>  x1 = [1 2 4], x2 = [5 2 3];

x1 =

1     2     4

>> [y1,ps] = mapminmax(x1);

y2 =

1.6667   -0.3333    0.3333

>>  xt = mapminmax('reverse',y1,ps)

xt =

1     2     4

>>  xt2 = mapminmax('reverse',y2,ps)

xt2 =

5     2     3

執行結果及截圖:

上述問題均來自研讀「bp神經網路的matlab實現——人工智慧演算法」該篇部落格時所遇到,參考部落格:

Matlab實現BP神經網路

該實現為 資料探勘 課程的一次作業。資料在 上,所以資料為csv格式。但bp神經網路演算法為最一般的實現,所以有參考價值。close all 關閉開啟的檔案 clear 清除記憶體中的資料 echo on 顯示執行的每一條命令 clc 清除命令列視窗 pause 敲任意鍵開始 定義訓練樣本 p為輸入...

BP神經網路(基於MATLAB)

clc clear all 匯入資料 load s data.mat s含量所用資料 n 12 n 是自變數的個數 m 1 m 是因變數的個數 讀取訓練資料 train num 1600 訓練樣本數 train data s data 1 train num,特徵值歸一化 train input,m...

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