http://blog.sina.com.cn/s/blog_8684880b0100vxtv.html
爲了看懂師兄的文章中使用的方法,研究了一下神經網絡
昨天花了一天的時間查怎麼寫程序,但是費了半天勁,不能運行,百度知道里倒是有一個,可以運行的,先貼着做標本
% 生成訓練樣本集 clear all; clc; P=[110 0.807 240 0.2 15 1 18 2 1.5; 110 2.865 240 0.1 15 2 12 1 2; 110 2.59 240 0.1 12 4 24 1 1.5; 220 0.6 240 0.3 12 3 18 2 1; 220 3 240 0.3 25 3 21 1 1.5; 110 1.562 240 0.3 15 3 18 1 1.5; 110 0.547 240 0.3 15 1 9 2 1.5]; 0 1.318 300 0.1 15 2 18 1 2]; T=[54248 162787 168380 314797; 28614 63958 69637 82898; 86002 402710 644415 328084; 230802 445102 362823 335913; 60257 127892 76753 73541; 34615 93532 80762 110049; 56783 172907 164548 144040]; @907 117437 120368 130179]; m=max(max(P)); n=max(max(T)); P=P'/m; T=T'/n; %-------------------------------------------------------------------------% pr(1:9,1)=0; %輸入矢量的取值範圍矩陣 pr(1:9,2)=1; bpnet=newff(pr,[12 4],{'logsig', 'logsig'}, 'traingdx', 'learngdm'); %建立BP神經網絡, 12個隱層神經元,4個輸出神經元 %tranferFcn屬性 'logsig' 隱層採用Sigmoid傳輸函數 %tranferFcn屬性 'logsig' 輸出層採用Sigmoid傳輸函數 %trainFcn屬性 'traingdx' 自適應調整學習速率附加動量因子梯度下降反向傳播算法訓練函數 %learn屬性 'learngdm' 附加動量因子的梯度下降學習函數 net.trainParam.epochs=1000;%允許最大訓練步數2000步 net.trainParam.goal=0.001; %訓練目標最小誤差0.001 net.trainParam.show=10; %每間隔100步顯示一次訓練結果 net.trainParam.lr=0.05; %學習速率0.05 bpnet=train(bpnet,P,T); %------------------------------------------------------------------------- p=[110 1.318 300 0.1 15 2 18 1 2]; p=p'/m; r=sim(bpnet,p); R=r'*n; display(R);
運行的結果是出現這樣的界面
點擊performance,training state,以及regression分別出現下面的界面
再搜索,發現可以通過神經網絡工具箱來創建神經網絡,比較友好的GUI界面,在輸入命令裏面輸入nntool,就可以開始了。
點擊import之後就出現下面的具體的設置神經網絡參數的對話界面,
這是輸入輸出數據的對話窗
首先是訓練數據的輸入
然後點擊new,創建一個新的神經網絡network1,並設置其輸入輸出數據,包括名稱,神經網絡的類型以及隱含層的層數和節點數,還有隱含層及輸出層的訓練函數等
點擊view,可以看到這是神經網絡的可視化直觀表達
創建好了一個network之後,點擊open,可以看到一個神經網絡訓練,優化等的對話框,選擇了輸入輸出數據後,點擊train,神經網絡開始訓練,如右下方的圖,可以顯示動態結果
下面三個圖形則是點擊performance,training state以及regression而出現的
下面就是simulate,輸入的數據是用來檢驗這個網絡的數據,output改一個名字,這樣就把輸出數據和誤差都存放起來了
在主界面上點擊export就能將得到的out結果輸入到matlab中並查看
下圖就是輸出的兩個outputs結果
還在繼續挖掘,to be continue……
20111130
神經網絡工具箱
版本7.0(R2010b)
圖形用戶界面功能。
nnstart - 神經網絡啓動GUI
nctool - 神經網絡分類工具
nftool - 神經網絡的擬合工具
nntraintool - 神經網絡的訓練工具
nprtool - 神經網絡模式識別工具
ntstool - NFTool神經網絡時間序列的工具
nntool - 神經網絡工具箱的圖形用戶界面。
查看 - 查看一個神經網絡。
網絡的建立功能。
cascadeforwardnet - 串級,前饋神經網絡。
competlayer - 競爭神經層。
distdelaynet - 分佈時滯的神經網絡。
elmannet - Elman神經網絡。
feedforwardnet - 前饋神經網絡。
fitnet - 函數擬合神經網絡。
layrecnet - 分層遞歸神經網絡。
linearlayer - 線性神經層。
lvqnet - 學習矢量量化(LVQ)神經網絡。
narnet - 非線性自結合的時間序列網絡。
narxnet - 非線性自結合的時間序列與外部輸入網絡。
newgrnn - 設計一個廣義迴歸神經網絡。
newhop - 建立經常性的Hopfield網絡。
newlind - 設計一個線性層。
newpnn - 設計概率神經網絡。
newrb - 徑向基網絡設計。
newrbe - 設計一個確切的徑向基網絡。
patternnet - 神經網絡模式識別。
感知 - 感知。
selforgmap - 自組織特徵映射。
timedelaynet - 時滯神經網絡。
利用網絡。
網絡 - 創建一個自定義神經網絡。
SIM卡 - 模擬一個神經網絡。
初始化 - 初始化一個神經網絡。
適應 - 允許一個神經網絡來適應。
火車 - 火車的神經網絡。
DISP鍵 - 顯示一個神經網絡的屬性。
顯示 - 顯示的名稱和神經網絡屬性
adddelay - 添加延遲神經網絡的反應。
closeloop - 神經網絡的開放反饋轉換到關閉反饋迴路。
formwb - 表格偏見和成單個向量的權重。
getwb - 將它作爲一個單一向量中的所有網絡權值和偏差。
noloop - 刪除神經網絡的開放和關閉反饋迴路。
開環 - 轉換神經網絡反饋,打開封閉的反饋循環。
removedelay - 刪除延遲神經網絡的反應。
separatewb - 獨立的偏見和重量/偏置向量的權重。
setwb - 將所有與單個矢量網絡權值和偏差。
Simulink的支持。
gensim - 生成Simulink模塊來模擬神經網絡。
setsiminit - 集神經網絡的Simulink模塊的初始條件
getsiminit - 獲取神經網絡Simulink模塊的初始條件
神經元 - 神經網絡Simulink的模塊庫。
培訓職能。
trainb - 批具有重量與偏見學習規則的培訓。
trainbfg - 的BFGS擬牛頓倒傳遞。
trainbr - 貝葉斯規則的BP算法。
trainbu - 與重量與偏見一批無監督學習規則的培訓。
trainbuwb - 與體重無監督學習規則與偏見一批培訓。
trainc - 循環順序重量/偏見的培訓。
traincgb - 共軛鮑威爾比爾重新啓動梯度反向傳播。
traincgf - 共軛弗萊徹-裏夫斯更新梯度反向傳播。
traincgp - 共軛波拉克- Ribiere更新梯度反向傳播。
traingd - 梯度下降反向傳播。
traingda - 具有自適應LR的反向傳播梯度下降。
traingdm - 與動量梯度下降。
traingdx - 梯度下降瓦特/慣性與自適應LR的反向傳播。
trainlm - 採用Levenberg -馬奎德倒傳遞。
trainoss - 一步割線倒傳遞。
trainr - 隨機重量/偏見的培訓。
trainrp - RPROP反向傳播。
trainru - 無監督隨機重量/偏見的培訓。
火車 - 順序重量/偏見的培訓。
trainscg - 規模化共軛梯度BP算法。
繪圖功能。
plotconfusion - 圖分類混淆矩陣。
ploterrcorr - 誤差自相關時間序列圖。
ploterrhist - 繪製誤差直方圖。
plotfit - 繪圖功能適合。
plotinerrcorr - 圖輸入錯誤的時間序列的互相關。
plotperform - 小區網絡性能。
plotregression - 線性迴歸情節。
plotresponse - 動態網絡圖的時間序列響應。
plotroc - 繪製受試者工作特徵。
plotsomhits - 小區自組織圖來樣打。
plotsomnc - 小區自組織映射鄰居的連接。
plotsomnd - 小區自組織映射鄰居的距離。
plotsomplanes - 小區自組織映射重量的飛機。
plotsompos - 小區自組織映射重量立場。
plotsomtop - 小區自組織映射的拓撲結構。
plottrainstate - 情節訓練狀態值。
plotwb - 圖寒春重量和偏差值圖。
列出其他神經網絡實現的功能。
nnadapt - 適應職能。
nnderivative - 衍生功能。
nndistance - 距離函數。
nndivision - 除功能。
nninitlayer - 初始化層功能。
nninitnetwork - 初始化網絡功能。
nninitweight - 初始化權函數。
nnlearn - 學習功能。
nnnetinput - 淨輸入功能。
nnperformance - 性能的功能。
nnprocess - 處理功能。
nnsearch - 線搜索功能。
nntopology - 拓撲結構的功能。
nntransfer - 傳遞函數。
nnweight - 重量的功能。
示例,數據集和其他資源
nndemos - 神經網絡工具箱的示威。
nndatasets - 神經網絡工具箱的數據集。
nntextdemos - 神經網絡設計教科書的示威。
nntextbook - 神經網絡設計教科書的資訊。