برق. قدرت. کنترل. الکترونیک. مخابرات. تاسیسات.

دایره المعارف تاسیسات برق (اطلاعات عمومی برق)

 نویسنده : الیاس رخشانی

در ادامه توضیحات قبلی به شبکه های چند لایه می رسیم که همان ژرسژترون های چند لایه هستند . و به شبکه های عصبی چند لایه معروف می باشند.

براساس تحقیقات  ثابت شده معمولا یك شبكه عصبی سه لایه با تعداد كافی از نرونها قادر خواهد بود كه كار تخمین هر تابعی را انجام دهد چرا كه میزان حساسیت در لایه های اول بیشتر از لایه های آخر است. از این رو در تمرین زیر یك شبكه سه لایه بكاررفته است .

روش تعلیم شبکه های عصبی :

منظور از تعلیم یک شبکه عصبی آنست که وزنها (یا قدرت ارتباط بین نرونها) و بعضا تعداد نرونها را بگونه ای تعیین کنیم تا شبکه به گروه خاصی از داده ها پاسخهای مطلوبی بدهد. بعبارت ریاضی ، فرض کنیم که تعداد P بردار ورودی Xi  متعلق به Rn  و P بردار پاسخ مطلوب متنناظر به Rm      ydi  بعنوان الگو برای تعلیم به شبکه عصبی در اختیار داشته باشیم :

X=[  x1   x2   …. Xp ]

y=[  yd1   yd2   …. Xdp ]

میخواهیم بردار پارامترهای شبکه عصبی شامل وزنها و مقادیر آستانه ای آن W    را بگونه ای تعیین کنیم که :

f (xi , w) = ydi      i=1,2, … , p

که در آن تابع f(x , w) نشان دهنده نگاشت بین ورودی و خروجی شبکه عصبی می باشد .

روش انتشار معکوس خطا Back Propagation)):

 این روش یک روش بهینه سازی تندترین شیب (Sreepst descent) است. در این روش فرض بر آنست که که یک مجموعه از زوج الگوهای ورودی و خروجی در اختیار است. شبکه د رابتدا بر اساس بردار ورودی، بردار خروجی خود را تولید می کند و آنرا با بردارخروجی مطلوب یا هدف مقایسه می نماید. اگر اختلافی وجود نداشت، احتیاجی به تعلیم نیست. در غیر اینصورت وزنها بگونه ای تغییر داده می شود که اختلاف کاهش یابد.

 این نوع شبکه ها در تقریب توابع مختلف بسیار کاربرد دارند .بخصوص در مدلهای غیر خطی عملی که فهمیدن تابع تبدل مشکل است از این نوع شبکه استفاده می شود .

مراحل کار:

ابتدا تعدادی وروردی  و خروجی های مطلوببرای تعلیم به شبکه می دهیم. بعد از تعلیم وروردی های تست را داده و عملکرد شبکه را ارزیابی میکنیم.

در نرم افزار مطلب این شبکه با دستور زیر ساخته می شود :

    newff ( pr,[s1,….,sn],{tf….}, btf 

در پست بعدی به تشریح عملکرد این شبکه و یک مثال عملی در شبکه های قدرت : پایدارساز شبکه های قدرت با کمک شبکه عصبی می پردازم که کاربرد خوب این شبکه است و نیز یک مثال ساده از تقریب توابع ریاضی توسط این شبکه .

و در ادامه نیر روشهای بهبود عملکرد این شبکه بازگو خواهد شد.

منتظر نظرات شما عزیزان و درخواستها هستم

الیاس 

 



:ADALINE

یکی دیگر از مدلهای ارائه شده تحت عنوان آدالاین می باشد ،

که در ادامه یکی از روشهای تعلیم این نرون با نام روش LMS ارائه شده است:

%L.M.S tamrin2-adeline   -elias rakhshani 1384/8/14

clc

close all

clear all

    %x1       x2 num of lesson 

 x1=[16/20  17/20

     15/20  18/20

     11/20  10/20

     19/20  19/20

     13/20  14/20

     14/20  16/20]

%x1=[13/20 10/20;5/20 18/20;10/20 13/20;18/20 17/20;18/20 18/20;12/20 14/20;11/20 14/20;19/20 19/20;10/20 9/20;14/20 16/20]; % input matrix.    

[m,n]=size(x1); % m= line of matrix p.

 m;   %mun of student

 hold on

 d=zeros(1,1);

 w=[0 0];

 t=0 ;

 M=0.3;

 for i=1:(6.2)*m

 for a=1:m

     x=x1(a,:);

                       if ((x(1,1)+x(1,2))/2)>=16/20

                          d=1;

                          plot(x(1,1),x(1,2),'--rs','MarkerFaceColor','c');hold on

                          title('lms-elias rakhshani')

                          grid on,

                          xlabel(['x1'])

                          ylabel(['x2'])

                       else

                           d=0;

                           plot(x(1,1),x(1,2),'or','MarkerFaceColor','g');hold on

                           title('lms-elias rakhshani')

                           grid on,

                           xlabel(['x1'])

                           ylabel(['x2'])

                        end

      y=w*x'+t;

      e=d-y;

      w=w+2*M*e*x;

      t=t+2*M*e;

      w1=w(1,1);

      w2=w(1,2); 

      a=0:1;

               b=((-w1*a)-t)/w2;

            if b<10

               plot(a,b,'y')

               hold on

               drawnow

           end

 end

 

 

end

w

t

               a=0:1;

               b=((-w1*a)-t)/w2;

            if b<10

               plot(a,b,'k') % the end of lines(final).

               hold on

               drawnow

        end

شکل فوق خروجی برنامه می باشد

 

 



                                   

مغز انسان از میلیون ها سلول بنام نرون در یک شبکه شدیدا بهم پیوسته تشکیل شده است که تمامی تبادل اطلاعات در سراسر بدن از طریق همین نرون ها و یکسری پایانه بنام سیناپس انجام می شود. در مغز انسان  هر قسمت کار مشخصی را انجام می دهد و هر چه میزان بکار گیری یک مطلب خاص بیشتر باشد از آن بخش بیشتر باشد میزان پیوند هایی  که در محل های سیناپس ها وجود دارند محکم تر می شود . که در واقع همین اتفاق حافظه و یادگیری انسان را شامل می شود. در علوم مهندسی از این پدیده استفاده شده که این خود به نام شبکه های عصبی مصنوعی مطرح می شود. یکی از پایه ای ترین  مدلهایی که مطرح شده به نام نرون ادراک گر یا پرسپترون است که می توان کار دسته بندی الگو های خطی را با آن انجام داد. در زیر یک نمونه از روشهای تعلیم این نرون آورده شده است: اگر نیاز به اطلاعات بیشتری داشتید به ایمیل بنده  پیام بگذارید : elias.rakhshani@gmail.com

برنامه مربوط به یک پرسپترون یا همان نرون

 ادراک گر:        

% perceptron(( pattern recognition - elias rakhshani )) 1384/8/9 .

clc

close all 

clear all

p=[13 10;10 13;15 17;18 17;18 18;12 14;11 14;19 19;13 20;10 9;14 16

[m,n]=size(p); % m= line of matrix p.

d=zeros(1);  % mtrix of favorite answer.

hold on

   %choice random of w,t.

       s=rand(2,1);

       w=zeros(3,1);

       w(1,1)=s(1,1);

       w(2,1)=s(2,1);

       w(3,1)=1.6;

       w1=w(1,1);

       w2=w(2,1);

       t=w(3,1);

for i=1:(30*m)  % 30*m is favorite for user.

       %choice random of input.

          o=fix(m*rand(1));

       if o==0

          o=o+1;

          x=[p(o,1)/20;p(o,2)/20;1];

        else

          x=[p(o,1)/20;p(o,2)/20;1];

       end

        % create matrix of favorite answer.

      if ((x(1,1)+x(2,1))/2)>=16/20

          d=1;

          plot(x(1,1),x(2,1),'--rs','MarkerFaceColor','c')

          title('Projection of pattern recognition-elias rakhshani')

          grid on

          xlabel(['x1'])

          ylabel(['x2'])

      else

            d=0;

            plot(x(1,1),x(2,1),'or','MarkerFaceColor','g')

            title('Projection of pattern recognition-elias rakhshani')

            xlabel(['x1'])

            ylabel(['x2'])

      end

               a=0:1;

               b=((-w1*a)+t)/w2;

            if b<10

               plot(a,b,'r')

               drawnow

               hold on

            end

            y=[w1*(x(1,1))+w2*(x(2,1))-(t)];

         

           if    y>0

                 y=1;

             else y=0;

           end

           if   y~=d

                w=w+((d-y)*x);

                w1=w(1,1);

                w2=w(2,1);

                t=w(3,1);

           end      

end 

      w1

      w2

      t

         

           a=0:1;

            b=((-w1*a)+t)/w2;

            if b<10

            plot(a,b,'k') % k: black color of line is the end line of program  for patter ricognition and

                 hold on  % the yallow color of line is test for program.

            end

 

 

این هم شکل خروجی بعد از اجرای برنامه با مطلب:

خط سیاه خط نها ئی هست:

از وبلاگ دوست و همکار خوبم دکتر الیاس رخشانی
http://control.mihanblog.com

صفحات جانبی

نظرسنجی

    لطفاً نظرات خود را درمورد وبلاگ با اینجانب در میان بگذارید.(iman.sariri@yahoo.com)نتایج تاکنون15000مفید و 125غیرمفید. با سپاس


  • آخرین پستها

آمار وبلاگ

  • کل بازدید :
  • تعداد نویسندگان :
  • تعداد کل پست ها :
  • آخرین بازدید :
  • آخرین بروز رسانی :