[問題] 想請問一下倒傳遞m檔案無窮迴圈?已回收
工具箱我還是弄不熟最後用m檔案先代替,但是寫完後總覺得好像在跑無窮迴圈?
我的第一次輸出y值是0.386多,但是希望趨近於0,所以還要讓他繼續累計新變數
再次計算達到y等於0,可否指導小弟看是哪裡觀念錯誤,謝謝.
程式如下:
x1 = -1; % 連結值
x2 = -1;
w13 = 1;
w23 = -1;
w14 = -1;
w24 = 1;
w35 = 1;
w45 = 1;
o3 = 1; % 閥值
o4 = 1;
o5 = 1;
ln = 10; %學習函數
t = 0; %正確輸出值
% 最初求輸出y值程式,希望是等於0
net3 = (w13*x1)+(w23*x2)-o3;
net4 = (w14*x1)+(w24*x2)-o4;
h1 = 1/(1+exp(-net3));
h2 = 1/(1+exp(-net4));
net5 = (w35*h1)+(w45*h2)-o5;
y = 1/(1+exp(-net5));
%如果不是等於0(小數也要接近),就啟動以下程式做連結值更動
while y < 0.99;
d5 = y*(1-y)*(t-y);
d3 = h1*(1-h1)*(w35*d5);
d4 = h2*(1-h2)*(w45*d5);
neww35 = ln*d5*h1;
neww45 = ln*d5*h2;
neww13 = ln*d3*x1;
neww23 = ln*d3*x2;
newo5 = -ln*d5;
newo4 = -ln*d4;
newo3 = -ln*d3;
neww14 = ln*d4*x1;
neww24 = ln*d4*x2;
% 更正後的權值(連結值) 和 閥值
w35 = w35 + neww35;
w45 = w45 + neww45;
w13 = w13 + neww13;
w23 = w23 + neww23;
w14 = w14 + neww14;
w24 = w24 + neww24;
o5 = o5 + newo5;
o4 = o4 + newo4;
o3 = o3 + newo3;
% 使用更正值後重新跑原始檔案
net3 = (w13*x1)+(w23*x2)-o3;
net4 = (w14*x1)+(w24*x2)-o4;
h1 = 1/(1+exp(-net3));
h2 = 1/(1+exp(-net4));
net5 = (w35*h1)+(w45*h2)-o5;
y = 1/(1+exp(-net5));
end
--
如果上帝看到有人在床上,因為沉浸在過去的回憶裡
而做出自我陶醉的表情,請不要嘲笑他。
因為他是非常認真的。 人のセックスを笑うな
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.204.172.216
推
11/05 02:53, , 1F
11/05 02:53, 1F
→
11/05 04:28, , 2F
11/05 04:28, 2F
→
11/05 04:31, , 3F
11/05 04:31, 3F
→
11/05 04:33, , 4F
11/05 04:33, 4F
→
11/05 17:31, , 5F
11/05 17:31, 5F