.net一个函数要用另一个函数的值_MATLAB中的神经网络工具箱(2)函数命令及模型搭建...
生活随笔
收集整理的這篇文章主要介紹了
.net一个函数要用另一个函数的值_MATLAB中的神经网络工具箱(2)函数命令及模型搭建...
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前面介紹了神經網絡工具箱GUI的使用,它功能強大可以直接生成腳本。但是函數命令的靈活性是GUI所不及的。也應該有所了解。
表中的函數使用語法基本一致,調用格式為:變量名=網絡名稱(隱含層維數,傳遞函數)但是,具有延遲結構的網絡還需要設置其延遲信息。
神經網絡函數命令
1、網絡創建函數
| 函數名稱 | 功能 |
| fitnet | 創建函數擬合網絡 |
? ?cascadeforwardnet ? | ?串級,前饋神經網絡 |
| ?competlayer | 競爭神經層 |
| distdelaynet? | 分布時滯的神經網絡 |
| feedforwardnet? | 前饋神經網絡 |
| layrecnet | 分層遞歸神經網絡 |
| patternnet | 創建模式識別網絡 |
2、網絡訓練函數
所有的網絡均可以使用函數train進行訓練(1)使用語法[net,tr]= train(net, X,T,Xi.Ai)(2)功能描述輸入列表中,net為表示網絡的結構體變量,X為網絡輸入,T表示網絡的期望,xi和Ai分別為輸入延遲和層延遲的初始條件。返回列表中,net表示新生成的網絡,tr為訓練記錄(包含訓練性能等)。通過對 net. train Fcn和 net. train Param的修改,可以設置訓練算法以及其他參數。一般來說,訓練算法有 trainlm、 trainbr、 trainscg和 trainrp四種可供選擇,它們分別為LM反饋、Bayesian校準反饋、共軛梯度反饋和彈性反饋。3、網絡評定函數網絡的評定,一般是指計算其平方誤差均值和線性回歸,以判斷訓練后網絡的性能。平方誤差均值越小越好,線性回歸的判斷標準為數據是否沿45°線,越靠近表示實際輸出與期望輸出之間的差距越小。(1) msemse函數通過測量平方誤差的均值來判斷網絡的性能。其使用語法為perf= mse(net, t, y, ew)其中,net為表示網絡的結構體變量,t為期望輸出,y為實際輸出,ew表示誤差權重。(2) regression基本使用語法為[r,m,b]= regression(t,y)其中,t和y分別為網絡的期望輸出和實際輸出,r表示R值,m為回歸線的斜率,b為回歸線的偏移量。【例12-1】利用示例數據 house dataset創建一個前饋型神經網絡,并對其進行訓練以及計算其性能指標。
? ? ?編寫如下 MATLAB程序:
[x,t]=house_dataset; %導入示例數據net=feedforwardnet(15)[net,tr]=train(net,x,t); %訓練網絡y=net(x); %網絡實際輸出perf_mse=mse(net,x,t) %計算平方誤差均值[r,m,b]=regession(t,y) %計算回歸值結果如下:house_datanet?=????Neural?Network name: 'Feed-Forward Neural Network'??????????userdata:?(your?custom?info)????dimensions: numInputs: 1 numLayers: 2 numOutputs: 1 numInputDelays: 0 numLayerDelays: 0 numFeedbackDelays: 0 numWeightElements: 15 sampleTime: 1 ????connections: biasConnect: [1; 1] inputConnect: [1; 0] layerConnect: [0 0; 1 0]?????outputConnect:?[0?1] subobjects: input: Equivalent to inputs{1} output: Equivalent to outputs{2} inputs: {1x1 cell array of 1 input} layers: {2x1 cell array of 2 layers} outputs: {1x2 cell array of 1 output} biases: {2x1 cell array of 2 biases} inputWeights: {2x1 cell array of 1 weight} layerWeights: {2x2 cell array of 1 weight} functions: adaptFcn: 'adaptwb' adaptParam: (none) derivFcn: 'defaultderiv' divideFcn: 'dividerand' divideParam: .trainRatio, .valRatio, .testRatio divideMode: 'sample' initFcn: 'initlay' performFcn: 'mse' performParam: .regularization, .normalization plotFcns: {'plotperform', plottrainstate, ploterrhist, plotregression} plotParams: {1x4 cell array of 4 params} trainFcn: 'trainlm' trainParam: .showWindow, .showCommandLine, .show, .epochs, .time, .goal, .min_grad, .max_fail, .mu, .mu_dec, .mu_inc, .mu_max ...(省略一部分)可以看出結構體net中包含很多信息,通過觀察這些內容,可以在以后對net的調用中找到所需要的信息。4.圖像繪制| 函數名稱 | 功能描述 |
? ? ? plotconfusion??? | ?圖分類混淆矩陣 |
| ploterrcorr | 誤差自相關時間序列圖 |
| ?plotsomtop | 小區自組織映射的拓撲結構 |
| plotsomplanes | 小區自組織映射重量的飛機 |
| ?plotsomnd | 小區自組織映射鄰居的距離 |
| plotsomnc | 小區自組織映射鄰居的連接 |
| ?plotsompos | 小區自組織映射重量立場 |
| ?plotsomhits | 小區自組織樣本映射圖 |
| plotresponse?? | 動態網絡圖的時間序列響應 |
| plotregression | 線性回歸情節 |
| plotinerrcorr | ?圖輸入錯誤的時間序列的互相關 |
| ?ploterrhist | 繪制誤差直方圖 |
| ??plotfit | 繪圖功能適合 |
例:繪制上面示例中網絡的誤差柱狀圖、性能圖和訓練狀態圖。
在上例中繼續添加代碼
e=t-y;figure(1),ploterrhist(e)figure(2),plotperform(tr)figure(3),plotregression(t,y)神經網絡與simulink
打開simulink模塊庫的方法有兩種:(1)在simulink模塊庫瀏覽器中,找到Neural Network Toolbox(2)?直接輸入命令neural可以看出它包含五個子模塊庫,分別是傳遞函數、網絡輸入函數、權值函數、處理函數和控制系統。下面對五個子模塊庫分別介紹。1.Transfer Functions傳遞函數模塊,都能夠接受一個網絡輸入向量,并相應輸出一個網絡輸出向量。2.Net input Functions3.Processing?Functions4.Weight Fuctions5.Control System神經網絡Simulink建模
除了在simulink中進行模塊連接,還可以使用gensim函數生成simulink模型。1.創建模型gensim能利用工作空間中的神經網絡結構體生成simulink模型。該函數語法為gensim(net,st),net為網絡結構體,st為指定采樣時間。例:利用gensim函數創建一個前饋型神經網絡simulink模型。[x,t]=simplefit_dataset;net=feedforwardnet(10);net=train(net,x,t);gensim(net)注:如果不進行網格訓練,只能得到中間的模塊。2、模型仿真與一般模型仿真一樣點擊箭頭。因為只輸入了一個常數,所以示波器顯示一條直線。將Constant換成Signal Generator(3;0.2;赫茲)?再次觀察利用GUI自定義神經網絡仿真
1.輸入nntool2.單擊import進行網絡創建,在select區域選擇數據來源,通過選擇變量,在destination區域確定變量是作何用。單擊New按鈕打開創建網絡或數據界面,在Data選項卡中可以設置待創建數據的各屬性。3.網格訓練train4.網絡仿真simulate4.顯示結果在Output Data區域總結
以上是生活随笔為你收集整理的.net一个函数要用另一个函数的值_MATLAB中的神经网络工具箱(2)函数命令及模型搭建...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c++代码表白_推荐!在浪漫的日子里程序
- 下一篇: django 类取消csrf_Djang