MATLAB
閱讀設定
MATLAB(Matrix Laboratory,
基礎
[AI 應用
[function m = neural()
[Attributes, Classifications] = mendez; % 由 「mendez」嗰度攞數據 ,「mendez」係 個 檔案嘅名。
n = 2.6; % 設 個 變數 做學習 率 。
nbrOfNodes = 8;
nbrOfEpochs = 800;
% 設 矩 陣 嚟代表 啲權重 。
W = rand(nbrOfNodes, length(Attributes(1,:)));
U = rand(length(Classifications(1,:)),nbrOfNodes);
m = 0; figure; hold on; e = size(Attributes);
% 係 噉 run 若干 次 。
while m < nbrOfEpochs
% m 用 嚟數住 喺第幾 個 loop。
m = m + 1;
for i=1:e(1)
% 由 數 據 嗰度攞輸入 。
I = Attributes(i,:).';
D = Classifications(i,:).';
% 根據 輸入 同權 重 計 吓個神經 網 絡 俾啲乜嘢輸出 。
H = f(W*I);
O = f(U*H);
% 計 誤差 值。
delta_i = O.*(1-O).*(D-O);
% 計 前面 嗰層嘅誤差 值。
delta_j = H.*(1-H).*(U.'*delta_i);
% 根據 誤差 值調較吓啲權重 。
U = U + n.*delta_i*(H.');
W = W + n.*delta_j*(I.');
end
RMS_Err = 0;
% 計 RMS 誤差 值。
for i=1:e(1)
D = Classifications(i,:).';
I = Attributes(i,:).';
RMS_Err = RMS_Err + norm(D-f(U*f(W*I)),2);
end
y = RMS_Err/e(1);
plot(m,log(y),'*'); % 畫幅 圖 展示 RMS 誤差 值點樣 隨 住 學習 次數 演 變 ;結果 通常 會 係 個 誤差 隨時 間 變 細 。
end
function x = f(x)
x = 1./(1+exp(-x));
呢個