اطلاعیه

Collapse
No announcement yet.

آموزش با شبکه های عصبی تک لایه ؟

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    آموزش با شبکه های عصبی تک لایه ؟

    با سلام
    میشه یه توضیحی درباره شبکه های

    SLP & MLP

    در شبکه های عصبی بدین ... من میخوام بدونم فرق این دو نوع شبکه در برنامه نویسی شون چیه ؟؟
    خلاصه اینکه من میخوام یه برنامه واسه شبکه های عصبی تک لایه پرسپترون بنویسم که شبکه رو آموزش بده ... اما نمیدونم چه جوری میتونم این کارو کنم ؟ :cry: :surprised: ممنون میشم راهنمایی ام کنید ...

    [url=http://wiki.eca.ir/]http://www.ecapic.ir/image/ECA-091005091909.gif[/url

    #2
    پاسخ : آموزش با شبکه های عصبی تک لایه ؟

    سلام دوست عزیز
    NEWFF Create a feed-forward backpropagation network.

    Syntax

    net = newff(PR,[S1 S2...SNl],{TF1 TF2...TFNl},BTF,BLF,PF)

    Description

    NEWFF(PR,[S1 S2...SNl],{TF1 TF2...TFNl},BTF,BLF,PF) takes,
    PR - Rx2 matrix of min and max values for R input elements.
    Si - Size of ith layer, for Nl layers.
    TFi - Transfer function of ith layer, default = 'tansig'.
    BTF - Backprop network training function, default = 'trainlm'.
    BLF - Backprop weight/bias learning function, default = 'learngdm'.
    PF - Performance function, default = 'mse'.
    and returns an N layer feed-forward backprop network.
    همانطور که مشخص شده شما با این دستور به راحتی میتونی شبکه دلخواتو بسازی

    دیدگاه


      #3
      پاسخ : آموزش با شبکه های عصبی تک لایه ؟

      ممنون از راهنمایی تون
      این کد رو در برنامه متلب باید استفاده کنم ....؟؟؟؟ :redface:راستش من یه صفر کیلومترم در این زمیته ... پاک گیج شدم هر کاری میکنم ... نمیشه ... جواب نمیده ممنون میشم بیشتر راهنمایی ام کنید ... :angry: :cry:
      [url=http://wiki.eca.ir/]http://www.ecapic.ir/image/ECA-091005091909.gif[/url

      دیدگاه


        #4
        پاسخ : آموزش با شبکه های عصبی تک لایه ؟

        سلام ellisa.
        p = [-1 -1 2 2;0 5 0 5];
        t = [-1 -1 1 1];
        net=newff(minmax(p),[3,1],{'tansig','purelin'},'tr ainrp'
        net.trainParam.show = 10;
        net.trainParam.epochs = 300;
        net.trainParam.goal = 1e-5;
        [net,tr]=train(net,p,t);
        در کد بالا به عنوان مثال یک شبکه دو لایه با سه نرون در لایه میانی و یک نرون در لایه خروجی وجود دارد.([3,1])
        p بردار ورودی و t بردار دلخواه است.
        minmax(p) بردار p را نرمالیزه میکند تا آموزش راحت تر انجام شود.
        ],{'tansig','purelin'}, توابه فعالیت هر لایه را تعیین میکند و trainp روش آموزشی را تعیین میکند.
        پارامترهای دیگر کد تعداد نمایشها، epochها و هدف نهایی را تعیین میکنند.
        و در آخر شبکه ساخته شده براساس p و t مربوطه آموزش داده میشود.

        پیشنهاد میکنم help Matlab را حتما بخون.
        باز اگه کاری از دستم بر میاد حتما بگو.

        دیدگاه


          #5
          پاسخ : آموزش با شبکه های عصبی تک لایه ؟

          ممنون

          من شبکه تک لایه رو میخوام یعنی m ورودی و n خروجی اما مشکل میدونین چیه ..... من متلب رو خوب بلد نیستم اینجاست که :cry2: ... من یه چیزی شبیه برنامه نوشتم اما مشکل داره میتونین کمکم کنید مشکلاتش برطرف شه و درست کار کنه ... :smile: :redface:
          [url=http://wiki.eca.ir/]http://www.ecapic.ir/image/ECA-091005091909.gif[/url

          دیدگاه


            #6
            پاسخ : آموزش با شبکه های عصبی تک لایه ؟

            دوستان سلام
            من کد رو در سایت قرار دادم میگن خیلی ایراد داره ... ممنون میشم راهنمایی ام کنید که ایراداش رفع شه :redface: :rolleyes:

            http://www.eca.ir/forum2/index.php?topic=22314.0
            [url=http://wiki.eca.ir/]http://www.ecapic.ir/image/ECA-091005091909.gif[/url

            دیدگاه


              #7
              پاسخ : آموزش با شبکه های عصبی تک لایه ؟

              سلام ellisa.
              من کد رو دیدم.
              یک سوالی داشتم.
              W(0)=arbitrary values چه کار میکنه؟
              arbitrary values چی هستش؟

              دیدگاه


                #8
                پاسخ : آموزش با شبکه های عصبی تک لایه ؟

                http://www.eca.ir/forum2/index.php?topic=22314.0

                دوستان! مدتی کمتر به سایت میام ..

                دیدگاه


                  #9
                  پاسخ : آموزش با شبکه های عصبی تک لایه ؟

                  ellisa من یک سری اصلاحات انجام دادم رو این برنامت:
                  % This is a function to train a SLP. It takes as input a unipolar vector X,
                  % which is an [n,k] matrix where n is the number of inputs to the SLP and k
                  % is the number of training sets. Y is [1,k] unipolar for the output class
                  % and alpha is the learning parameter

                  function W = slp(X, D, alpha);
                  X = 0; % for example I add it to debug program, you must initialized it
                  D= 0; % for example I add it to debug program, you must initialized it
                  % Add x0 = 1 to input and get values for n, k, m
                  [n,k] = size(X);
                  X = [ones(1,k); X];
                  [n,k] = size(X);
                  [m,K] = size(D);

                  if (K ~= k)
                  disp('Error: X and D do not match.'
                  return;
                  end

                  % 1. Initialize t=0, learning rate parameter a, and set weights
                  W(0)=arbitrary( values);
                  % i.e. wi(0)=arbitrary for i=0,...,n;
                  t = 0;
                  W = rand(n,m); % n dimensional column vector

                  % Prepare for the loop (2-5)
                  disp(sprintf('Epoch#\tM.S.E.\t\tElapsed Time (s)\tIterations w/o change&#039);
                  not_done = k; % not_done = k since we need k iterations where weights dont
                  change

                  % 2. For each pair (xk,dk) from the training set, do Steps 3–5;
                  time = cputime; % Get the current CPU time
                  totalmse = 0; % total the M.S.E.
                  maxrun = 0; % longest run without updating W

                  while (not_done > 0)

                  i = mod(t,k) + 1; % current index

                  % 3. Compute ?W(t)=aekxk, i.e. ?wi(t)=aekxik for i=0,...,n, where
                  % ek=dk-yk and yk=f(?i=0...nwi(t)xik);
                  if (m > 1)
                  y = ((W' * X(:,i)) >= 0);
                  e = (D(:,i) - y);
                  dW = (alpha * e * X(:,i)&#039';
                  else
                  y = (dot(W, X(:,i)) >= 0); % optimized for speed
                  dW = alpha * (D(i) - y) * X(:,i);
                  end

                  % 4. Increment t=t+1;
                  t = t + 1;

                  % 5. Update W(t)=W(t-1)+?W(t-1), i.e. wi(t)=wi(t-1)+?wi(t-1) for
                  i=0,...,n;
                  W = W + dW;

                  % 6. If no weight changes occurred during last epoch (iteration of Steps 3–
                  %5),
                  % or other stopping condition is true, then stop; otherwise, repeat from
                  Step 2.

                  if (nnz(dW) == 0)
                  not_done = not_done - 1;
                  else
                  not_done = k;
                  end

                  if (cputime - time) > 3600
                  disp(sprintf('Giving up, over one hour of CPU time used.\n&#039);
                  not_done = 0;
                  end

                  % Display data about this iteration
                  thismse = mse(dW); % !!! Comment these out if runtime too long
                  totalmse = totalmse + thismse;

                  showstats = false;
                  if (t <= 25)
                  showstats = true;
                  end
                  if (maxrun < (k - not_done))
                  maxrun = (k - not_done);
                  showstats = true;
                  end

                  if (showstats == true)
                  disp(sprintf('%d\t\t%f\t\t%f\t\t%d', t, mse(dW), (cputime - time), (k- not_done)));
                  end

                  end

                  disp(sprintf('Average M.S.E. is %f for %d epochs', (totalmse / t), t)); %
                  Display mean M.S.E.
                  disp(sprintf('Total CPU Time: %f (seconds).', (cputime - time))); % Display
                  elapsed time

                  خطاهایی وجود دارند:
                  ??? Input argument "X" is undefined.
                  ??? Input argument "D" is undefined.
                  ??? Undefined function or variable 'K'.
                  ??? Undefined function or variable 'values'.
                  در ضمن values در W(0)=arbitrary values باید در داخل پرانتز قرار بگیره و ; انتها فراموش نشه.

                  دیدگاه


                    #10
                    پاسخ : آموزش با شبکه های عصبی تک لایه ؟

                    با سلام
                    ممنون واقعا لطف کردید :redface:
                    میدونید من چون این نرم افزار رو بلد نیستم و تازه دارم یاد میگیرم ... اینه که خیلی مشکل دارم ... من میخوام برنامه من ورودیها و وزن اولیه رو داشته باشه در آموزش با شبکه عصبی پرسپترونSLP (Single Layer Percpetron) و بعد وزنهای نهایی رو حساب کنه ... و همگرایی رو هم محاسبه کنه .... یعنی آلفا .. از طرفی باید یه زمان هم داشته باشه که در طی اون زمان برنامه بتونه اجراشه .. و آموزش شبکه انجام شه ...
                    W(0)=arbitrary values ، در واقع W(0) رو بعنوان وزن اولیه در نظر گرفتم ... دقیقا یکی از خطاها
                    مربوط به همین خط هست ...
                    ممنون میشم راهنمایی ام کنید که این برنامه جواب بده ...
                    [url=http://wiki.eca.ir/]http://www.ecapic.ir/image/ECA-091005091909.gif[/url

                    دیدگاه


                      #11
                      پاسخ : آموزش با شبکه های عصبی تک لایه ؟

                      salam shoma bayad vazne avalie ro 0 begirid bad shabakaro amozesh bedid .shabake ch land laye mlp ba kodom algoritm mikhayd benvisid?man yek barname bara tak laye be zabane sade dar
                      matlab vasaton mifrestamamd
                      %this program is generate percepteron ann
                      close all
                      clear all
                      clc
                      x=[1 2 -1;1 2 2];
                      t=[0 1 0];
                      plot(x,t,'o&#039
                      figure
                      net=newp(minmax(x),1);
                      net.trainParam.epochs = 1000;
                      net.trainParam.goal = 0.1;
                      net = train(net,x,t);
                      weights=net.iw{1,1}
                      bias=net.b(1)
                      y2 = sim(net,x)
                      figure
                      plot(x,t,'o',x,y2,'*&#039

                      دیدگاه

                      لطفا صبر کنید...
                      X