نمايش پست تنها
قديمي ۱۰-۱۳-۱۳۹۰, ۰۷:۲۳ بعد از ظهر   #8 (لینک دائم)
farshad_pickup Male
عضو فعال
 
آواتار farshad_pickup
 
تاريخ عضويت: دي ۱۳۸۸
محل سكونت: تهران
پست ها: 12
تشكرها: 4
4 تشكر در 4 پست
My Mood: Badhal
پيش فرض

کدتون درست کار می کنه و همونجوری که گفتم توی چهار مرحله همگرا میشه
كد:
s = [-1 -1  1 1;
     -1  1 -1 1;
     -1 -1 -1 1];
 %first row of s show first input of AND 
 %second row of s show second input of AND
 %3th row show out put
w = [rand();rand();1]
%set random initial weight
s_c = 1;
alpha = 0.1;
iteration_c = 1;

for iteration_c = 1:4
    for s_c = 1:4
        y = (w(1)*(s(1,s_c)))+(w(2)*(s(2,s_c)))+(w(3));
        w(1) = w(1) + (alpha.*(s(3,s_c) - y).*s(1,s_c));
        w(2) = w(2) + (alpha.*(s(3,s_c) - y).*s(2,s_c));
        w(3) = w(3) + (alpha.*(s(3,s_c) - y));
    end
end
w
for s_c = 1:4
    end_value = (w(1).*(s(1,s_c)))+(w(2).*(s(2,s_c)))+w(3)
end
خروجی هم اینه
كد:
w =

    0.9597
    0.3404
    1.0000


w =

    0.5926
    0.5525
   -0.2758


end_value =

   -1.4210


end_value =

   -0.3159


end_value =

   -0.2358


end_value =

    0.8693
که w اولی که نشون داده شده وزن اولیه است و w بعدی هم وزن بعد از آموزش
همونطوری که میبینی خروجی برای سه داده اول منفی شده یعنی صفر و برای 1 و 1 مثبت شده یعنی 1
اینم نمود گرافیکی این سلول
خط سبز وزن اولیه
خط های قرمز چهار مرحله آخر
(البته مال یک اجرای دیگه چون وزن ها تصادفی انتخاب میشن و من قسمت هار رسم شکل رو از کد حذف کردم که قابل فهم تر بشه)
__________________
farshad_pickup آفلاين است   پاسخ با نقل قول