?? nw.m
字號:
% Adaptive Prediction
% --先定義一個波形--
% 將time分成time1、time2、time3三個部分
time1 = 0:0.1:2; % from 0 to 2 seconds
time2 = 2:0.05:4; % from 2 to 4 seconds
time3 = 4:0.024:6; % from 4 to 6 seconds
time = [time1 time2 time3]; % from 0 to 6 seconds
% T是一個有頻率變化的信號,信號頻率time1:time2:time3 = 2:8:4
T = [sin(time1*2*pi) sin(time2*8*pi) sin(time3*4*pi)];
% 因為要逐步的訓練network,所以要將T轉換成連續的向量
T = con2seq(T);
% P是要輸入network中的指標,network會利用指標中持續的五個值去預測產生下一個值
P = T;
% --將指標信號畫圖--
figure; % 開另一個視窗
% cat(dimension, 矩陣) → 用來連接矩陣
plot(time,cat(2,T{:})); % X軸是時間、Y軸是指標信號
xlabel('Time'); % X軸的標籤
ylabel('Target Signal'); % Y軸的標籤
title('Signal to be Predicted');
% --設定network--
lr = 0.1; % 設定學習速率 = 0.1
delays = [1 2 3 4 5]; % five delays in the input
% 製造一個線性層階
net = newlin(minmax(cat(2,P{:})),1,delays,lr);
% 逐步的訓練類神經網路使其適應及修改
% [新的net, 輸出信號, 錯誤信號] = adapt(初始的net, 輸入信號, 指標信號)
[net,y,e]=adapt(net,P,T);
% --畫出訓練後輸出的信號和先前的指標信號--
figure;
plot(time,cat(2,y{:}),time,cat(2,T{:}),'--'); % 輸出信號畫實線、指標信號畫虛線
xlabel('Time');
ylabel('Output - Target - -');
title('Output and Target Signals');
% --將輸出信號和指標信號的差值即錯誤信號畫出,可知類神經網路訓練後的優劣程度--
figure;
plot(time,cat(2,e{:}),[min(time) max(time)],[0 0],':r'); % 畫錯誤信號且在Y軸 = 0上畫紅色虛線
xlabel('Time');
ylabel('Error');
title('Error Signal');
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -