❶ 神經網路工具箱與編程實現哪個更好
首先說一下神經網路工具箱,在我剛剛接觸神經網路的時候,我就利用工具箱去解決問題,這讓我從直觀上對神經網路有了了解,大概清楚了神經網路的應用范圍以及它是如何解決實際問題的。
工具箱的優勢在於我們不用了解其內部的具體實現,更關注於模型的建立與問題的分析,也就是說,如果拋開演算法的錯誤,那麼用工具箱來解決實際問題會讓我們能把更多的精力放在實際問題的模型建立上,而不是繁瑣的演算法實現以及分析上。
其次談談編程實現神經網路,由於個人能力有限,所以只是簡單的編程實現過一些基本神經演算法,總的體會就是編程的過程讓我對演算法有了更透徹的理解,可以更深入的分析其內部運行機制,也同樣可以實現一下自己的想法,構建自己的神經網路演算法。
以上是我對兩個方法的簡單理解。那究竟哪個方法更好些呢?我個人的看法是要看使用者的目的是怎樣的。
如果使用者的目的在於解決實際問題,利用神經網路的函數逼近與擬合功能實現自己對實際問題的分析與模型求解,那我的建議就是利用神經網路工具箱,學過編程語言的人都知道,無論用什麼編程語言將一個現有的演算法編程實現達到可用的結果這一過程都是及其繁瑣與復雜的,就拿簡單的經典BP神經網路演算法來說,演算法本身的實現其實並不難,可根據不同人的能力,編出來的程序的運行效率是大不相同的,而且如果有心人看過matlab的工具箱的源碼的話,應該能發現,裡面採用的方法並不完全是純粹的BP經典演算法,一個演算法從理論到實現還要依賴與其他演算法的輔助,計算機在計算的時候難免出現的舍入誤差,保證權值的時刻改變,這都是編程人員需要考慮的問題,可能還有很多的問題
這樣的話,如果自己單人編程去實現神經網路來解決實際問題的話,整體效率就沒有使用工具箱更好。
如果使用者的目的在於分析演算法,構造新的網路的話那當然首推自己編程實現。個人的感覺就是,如果真的是自己完全編程實現的話,對演算法會有很深入的理解,在編程的調試過程中,也會領悟到很多自己從前從來沒有考慮過的問題,像權值的初始的隨機選取應該怎麼樣,將訓練樣本按什麼順序輸入等,這都是編程實現所要考慮的問題,不同的方法得到的結果會有很大的差距。
❷ matlab智能演算法工具箱有哪些
序號 工具箱 備注
數學、統計與優化
1 Symbolic Math Toolbox 符號數學工具箱
2 Partial Differential Euqation Toolbox 偏微分方程工具箱
3 Statistics Toolbox 統計學工具箱
4 Curve Fitting Toolbox 曲線擬合工具箱
5 Optimization Toolbox 優化工具箱
6 Global Optimization Toolbox 全局優化工具箱
7 Neural Network Toolbox 神經網路工具箱
8 Model-Based Calibration Toolbox 基於模型矯正工具箱
信號處理與通信
9 Signal Processing Toolbox 信號處理工具箱
10 DSP System Toolbox DSP系統工具箱
11 Communications System Toolbox 通信系統工具箱
12 Wavelet Toolbox 小波工具箱
13 Fixed-Point Toolbox 定點運算工具箱
14 RF Toolbox 射頻工具箱
15 Phased Array System Toolbox 相控陣系統工具箱
控制系統設計與分析
16 Control system Toolbox 控制系統工具箱
17 System Indentification Toolbox 系統辨識工具箱
18 Fuzzy Logic Toolbox 模糊邏輯工具箱
19 Robust Control Toolbox 魯棒控制工具箱
20 Model Predictive Control Toolbox 模型預測控制工具箱
21 Aerospace Toolbox 航空航天工具箱
圖像處理與計算機視覺
22 Image Processing Toolbox 圖像處理工具箱
23 Computer Vision System Toolbox 計算機視覺工具箱
24 Image Acquisition Toolbox 圖像採集工具箱
25 Mapping Toolbox 地圖工具箱
測試與測量
26 Data Acquisition Toolbox 數據採集工具箱
27 Instrument Control Toolbox 儀表控制工具箱
28 Image Acquisition Toolbox 圖像採集工具箱
29 OPC Toolbox OPC開發工具
30 Vehicle Network Toolbox 車載網路工具箱
計算金融
31 Financial Toolbox 金融工具箱
32 Econometrics Toolbox 計算經濟學工具箱
33 Datafeed Toolbox 數據輸入工具箱
34 Fixed-Income Toolbox 固定收益工具箱
35 Financial Derivatives Toolbox 衍生金融工具箱
計算生物
33 Bioinformatics Toolbox 生物信息工具箱
34 SimBiology 生物學工具箱
並行計算
35 Parallel Computing Toolbox 並行計算工具箱
36 MATLAB Distributed Computing Server MATLAB分布式計算伺服器
資料庫訪問與報告
37 Database Toolbox 資料庫工具箱
38 MATLAB Report Generator MATLAB報告生成
MATLAB代碼生成
39 MATLAB Coder MATLAB代碼生成
40 Filter Design HDL Coder 濾波器設計HDL代碼生成
MATLAB應用發布
41 MATLAB Compiler MATLAB編譯器混合編程
42 MATLAB Builder NE for Microsoft.Net Framework
43 MATLAB Builder JA for Java Language
44 MATLAB Builder EX for Microsoft Excel
45 Spreadsheet Link EX for Microsoft Excel
❸ 數學建模用Matlab需要哪些工具箱 ps:我不會這個軟體,所以請知道的大仙們盡量詳細點,謝謝!
數學建模 最重要的是用到數據處理功能
最基本的 如數據擬合工具箱 多遠回歸工專具箱 以及常用的繪圖命令
以多屬次參加數學建模大賽的經歷告訴樓主這是最最常用的兩個工具箱
從matlab的左下角的 start 可以進入工具箱界面
軟體就是一個工具 具體的演算法可以通過matlab 來實現
常用的預測模型 競爭模型 常微分方程 ode45 等命令
❹ 求數學模型,各種模型;各種演算法
我有個演算法,關於2位數乘法的簡便演算法。比如56*56.=3136.其演算法就是5*5=25。2取千分位5取百分位。然後5*6+5*6=60.那就進上去千分位3和百分位1.然後是10分位0。那就是6*6.滿10進上去。所以10分位3個位6咯。所以3136.。心算也沒問題。。。
適合任何2位數相乘不只是平方
。。
❺ 親們,建立模型和模型的有效演算法有什麼區別
演算法是用來求解模型的,先要有模型,後面才是求解!
❻ matlab遺傳演算法工具箱函數的參數問題
可能的原因是:
1.gatbx工具箱下的crtbp函數的文件名為crtbp.m,大小寫不統一所以出現了warning,需要把把專它改為屬小寫的crtbp.m;
2.gatbx屬於第三方工具箱,matlab自身對它是沒有說明的,所以搜不到這些遺傳演算法的指令。
❼ 使用MATLAB遺傳演算法工具箱如何設置參數使得收斂速度加快
fitness function要自己設計的 比如y=sinx 也要編成一個m文件啊……
❽ 1.如何用MATLAB神經網路工具箱創建BP神經網路模型具體有哪些步驟請高手舉實例詳細解釋下 2.如何把輸
%人臉識別模型,臉部模型自己找吧。
function mytest()
clc;
images=[ ];
M_train=3;%表示人臉
N_train=5;%表示方向
sample=[];
pixel_value=[];
sample_number=0;
for j=1:N_train
for i=1:M_train
str=strcat('Images\',num2str(i),'_',num2str(j),'.bmp'); %讀取圖像,連接字元串形成圖像的文件名。
img= imread(str);
[rows cols]= size(img);%獲得圖像的行和列值。
img_edge=edge(img,'Sobel');
%由於在分割圖片中我們可以看到這個人臉的眼睛部分也就是位於分割後的第二行中,位置變化比較大,而且眼睛邊緣檢測效果很好
sub_rows=floor(rows/6);%最接近的最小整數,分成6行
sub_cols=floor(cols/8);%最接近的最小整數,分成8列
sample_num=M_train*N_train;%前5個是第一幅人臉的5個角度
sample_number=sample_number+1;
for subblock_i=1:8 %因為這還在i,j的循環中,所以不可以用i
block_num=subblock_i;
pixel_value(sample_number,block_num)=0;
for ii=sub_rows:(2*sub_rows)
for jj=(subblock_i-1)*sub_cols+1:subblock_i*sub_cols
pixel_value(sample_number,block_num)=pixel_value(sample_number,block_num)+img_edge(ii,jj);
end
end
end
end
end
%將特徵值轉換為小於1的值
max_pixel_value=max(pixel_value);
max_pixel_value_1=max(max_pixel_value);
for i=1:3
mid_value=10^i;
if(((max_pixel_value_1/mid_value)>1)&&((max_pixel_value_1/mid_value)<10))
multiple_num=1/mid_value;
pixel_value=pixel_value*multiple_num;
break;
end
end
% T 為目標矢量
t=zeros(3,sample_number);
%因為有五類,所以至少用3個數表示,5介於2的2次方和2的3次方之間
for i=1:sample_number
% if((mod(i,5)==1)||(mod(i,5)==4)||(mod(i,5)==0))
if(i<=3)||((i>9)&&(i<=12))||((i>12)&&(i<=15))
t(1,i)=1;
end
%if((mod(i,5)==2)||(mod(i,5)==4))
if((i>3)&&(i<=6))||((i>9)&&(i<=12))
t(2,i)=1;
end
%if((mod(i,5)==3)||(mod(i,5)==0))
if((i>6)&&(i<=9))||((i>12)&&(i<=15))
t(3,i)=1;
end
end
% NEWFF——生成一個新的前向神經網路
% TRAIN——對 BP 神經網路進行訓練
% SIM——對 BP 神經網路進行模擬
% 定義訓練樣本
% P 為輸入矢量
P=pixel_value'
% T 為目標矢量
T=t
size(P)
size(T)
% size(P)
% size(T)
% 創建一個新的前向神經網路
net_1=newff(minmax(P),[10,3],{'tansig','purelin'},'traingdm')
% 當前輸入層權值和閾值
inputWeights=net_1.IW{1,1}
inputbias=net_1.b{1}
% 當前網路層權值和閾值
layerWeights=net_1.LW{2,1}
layerbias=net_1.b{2}
% 設置訓練參數
net_1.trainParam.show = 50;
net_1.trainParam.lr = 0.05;
net_1.trainParam.mc = 0.9;
net_1.trainParam.epochs = 10000;
net_1.trainParam.goal = 1e-3;
% 調用 TRAINGDM 演算法訓練 BP 網路
[net_1,tr]=train(net_1,P,T);
% 對 BP 網路進行模擬
A = sim(net_1,P);
% 計算模擬誤差
E = T - A;
MSE=mse(E)
x=[0.14 0 1 1 0 1 1 1.2]';
sim(net_1,x)
❾ matlab神經網路工具箱訓練出來的函數,怎麼輸出得到函數代碼段
這樣:
clear;
%輸入數據矩陣
p1=zeros(1,1000);
p2=zeros(1,1000);
%填充數據
for i=1:1000
p1(i)=rand;
p2(i)=rand;
end
%輸入層有兩個,樣本數為1000
p=[p1;p2];
%目標(輸出)數據矩陣,待擬合的關系為簡單的三角函數
t = cos(pi*p1)+sin(pi*p2);
%對訓練集中的輸入數據矩陣和目標數據矩陣進行歸一化處理
[pn, inputStr] = mapminmax(p);
[tn, outputStr] = mapminmax(t);
%建立BP神經網路
net = newff(pn, tn, [200,10]);
%每10輪回顯示一次結果
net.trainParam.show = 10;
%最大訓練次數
net.trainParam.epochs = 5000;
%網路的學習速率
net.trainParam.lr = 0.05;
%訓練網路所要達到的目標誤差
net.trainParam.goal = 10^(-8);
%網路誤差如果連續6次迭代都沒變化,則matlab會默認終止訓練。為了讓程序繼續運行,用以下命令取消這條設置
net.divideFcn = '';
%開始訓練網路
net = train(net, pn, tn);
%訓練完網路後要求網路的權值w和閾值b
%獲取網路權值、閾值
netiw = net.iw;
netlw = net.lw;
netb = net.b;
w1 = net.iw{1,1}; %輸入層到隱層1的權值
b1 = net.b{1} ; %輸入層到隱層1的閾值
w2 = net.lw{2,1}; %隱層1到隱層2的權值
b2 = net.b{2} ; %隱層1到隱層2的閾值
w3 = net.lw{3,2}; %隱層2到輸出層的權值
b3 = net.b{3} ;%隱層2到輸出層的閾值
%在默認的訓練函數下,擬合公式為,y=w3*tansig(w2*tansig(w1*in+b1)+b2)+b3;
%用公式計算測試數據[x1;x2]的輸出,輸入要歸一化,輸出反歸一化
in = mapminmax('apply',[x1;x2],inputStr);
y=w3*tansig(w2*tansig(w1*in+b1)+b2)+b3;
y1=mapminmax('reverse',y,outputStr);
%用bp神經網路驗證計算結果
out = sim(net,in);
out1=mapminmax('reverse',out,outputStr);
注意事項
一、訓練函數
1、traingd
Name:Gradient descent backpropagation (梯度下降反向傳播演算法 )
Description:triangd is a network training function that updates weight and bias values according to gradient descent.
2、traingda
Name:Gradient descentwith adaptive learning rate backpropagation(自適應學習率的t梯度下降反向傳播演算法)
Description:triangd is a network training function that updates weight and bias values according to gradient descent with adaptive learning rate.it will return a trained net (net) and the trianing record (tr).
3、traingdx (newelm函數默認的訓練函數)
name:Gradient descent with momentum and adaptive learning rate backpropagation(帶動量的梯度下降的自適應學習率的反向傳播演算法)
Description:triangdx is a network training function that updates weight and bias values according to gradient descent momentumand an adaptive learning rate.it will return a trained net (net) and the trianing record (tr).
4、trainlm
Name:Levenberg-Marquardtbackpropagation(L-M反向傳播演算法)
Description:triangd is a network training function that updates weight and bias values according toLevenberg-Marquardt optimization.it will return a trained net (net) and the trianing record (tr).
註:更多的訓練演算法請用matlab的help命令查看。
二、學習函數
1、learngd
Name:Gradient descent weight and bias learning function(梯度下降的權值和閾值學習函數)
Description:learngd is the gradient descentweight and bias learning function, it willreturn theweight change dWand a new learning state.
2、learngdm
Name:Gradient descentwith momentumweight and bias learning function(帶動量的梯度下降的權值和閾值學習函數)
Description:learngd is the gradient descentwith momentumweight and bias learning function, it willreturn the weight change dW and a new learning state.
註:更多的學習函數用matlab的help命令查看。
三、訓練函數與學習函數的區別
函數的輸出是權值和閾值的增量,訓練函數的輸出是訓練好的網路和訓練記錄,在訓練過程中訓練函數不斷調用學習函數修正權值和閾值,通過檢測設定的訓練步數或性能函數計算出的誤差小於設定誤差,來結束訓練。
或者這么說:訓練函數是全局調整權值和閾值,考慮的是整體誤差的最小。學習函數是局部調整權值和閾值,考慮的是單個神經元誤差的最小。
它的基本思想是學習過程由信號的正向傳播與誤差的反向傳播兩個過程組成。
正向傳播時,輸入樣本從輸入層傳入,經各隱層逐層處理後,傳向輸出層。若輸出層的實際輸出與期望的輸出(教師信號)不符,則轉入誤差的反向傳播階段。
反向傳播時,將輸出以某種形式通過隱層向輸入層逐層反傳,並將誤差分攤給各層的所有單元,從而獲得各層單元的誤差信號,此誤差信號即作為修正各單元權值的依據。
❿ 遺傳演算法工具箱,用來識別滯回環參數,怎麼擬合結果是直線,這怎麼回事啊
首先將問題抽來象成規劃問題的自標准形式(如果你不懂什麼是標准形式的話,建議你去翻閱運籌學那本書,上告訴你什麼是標准形式),然後用矩陣語言寫出來,最後將矩陣的系數填寫到線性不等約束和線性相等約束中,同時定義所求變數x的上界和下界(記住有多少個變數就有多少列,如果你發現有些條件中沒有出現某些變數,那麼就應該用0補足,這個是matlab解決規劃問題與lingo想比較麻煩的一個地方,)。