0. 其他處理
- 計時:
tic net = train(net, X, y); toc
1. 一個簡單的 demo(單層感覺器)
P = [1, 1, 1, 1, 0, 0, 0, 0; 0, 0, 1, 1, 0, 1, 1, 0; 0, 1, 0, 1, 1, 0, 1, 0];
% 每一清單示一個輸入樣本
T = [-1, 1, 1, 1, -1, -1, 1, -1];
% 表示輸出值
p = [0, 1; 0, 1; 0, 1];
% 每一行表示參數的取值範圍
t = 1;
% 輸出值的個數;
% 模型的定義
net = newp(p, t, 'hardlims');
% newp:new perceptron
net = train(net, P, T);
% 訓練的過程;
% 此時得到的 net 便是最終訓練好的模型;
% 測試
newP = [0, 1, 1]';
newT = sim(net, newP)
newP = [0, 1, 0]';
newT = sim(net, newP)
2. nntool
神經網絡的可視化顯示方式。
- 先輸入 data,再定義 network,最後 train
- 通過 simulate 進行仿真測試;
3. BP 神經網絡的建立
- 通過 newff
% 樣本矩陣(trainx, testx)以每一列為一個單獨的樣本,每一個行為一個屬性, % target 目标值(trainy, testy)為一個行向量 trainx, trainy testx, testy % 建立 BP 網絡 net = newff(trainx, trainy); % 接口必須統一,方能識别; net.trainParam.epochs = 1500; % 最大訓練次數 net.trainParam.goal = 1e-13; % 目标誤差 net.trainParam.show = 1; % 顯示級别 % 接受訓練樣本,進行訓練 net = train(net, trainx, trainy); % 在測試集上進行測試 predicted_y = net(testx);
- 通過 feedforwardnet
net = feedforwardnet([], 'trainlm'); % 第一個參數控制神經網絡隐層的拓撲結構,其實就是各個隐層的神經元數目; net.trainParam.epochs = ...; net.trainParam.goal = ...; tic net = train(net, X, y); % X 構成輸入層,y 構成輸出層; toc