ANN:Artificial Neural Networks
ANN:Artificial Neural Networks

ANN:Artificial Neural Networks

ISSLAB.IR

پیاده سازی شبکه عصبی GMDH

پیاده سازی شبکه عصبی GMDH

پیاده سازی گیت های OR ، AND و XOR با پرسپترون

کد دروازه منطقی AND :

clear all

close all

clc

w1 = 0; w2 = 0; b = 0;

s = [1 1 1; 1 -1 1; -1 1 1; -1 -1 1];

t=[1 -1 -1 -1];

alfa = 0.9;

%%lerning

for i=1:1:4

  X1=s(i,1); X2=s(i,2); y=t(1,i);

    

   w1new=w1+X1*alfa*y; w2new=w2+X2*alfa*y; bnew=b+alfa*1*y;

   X=-5:0.05:5;

   yin = b+w1*X1+w2*X2

   if yin>=0

      disp('yin = 1')

      else y < 0

     disp('yin = -1')  

   end

   x=-(w1new/w2new)*X-((1/w2new)*bnew);

   figure , plot(x,X,'r','linewidth',3)

   hold on

  plot(X,0,'g')

  plot(0,X,'g')

   w1=w1new; 

   w2=w2new; 

  b=bnew;  

  plot(1,1,'+','linewidth',2)

hold on

 

plot(1,-1,'d','linewidth',2)

hold on


plot(-1,1,'d','linewidth',2)

hold on


plot(-1,-1,'d','linewidth',2)

hold on

title('heb for AND');


end

%%testing

X1=input('insert x1   ')

X2=input('insert x2   ')

yin = b+w1*X1+w2*X2

   if yin>=0

      disp('yin = 1')

      else y < 0

     disp('yin = -1')  

     end

  ادامه مطلب ...

شبکه عصبی پرسپترون

شبکه عصبی پرسپترون

تاریخچه :

الگوریتم پرسپترون در سال ۱۹۵۷ در لابراتوار کرنل آرونوتیکال توسط فرانک روزنبلت با سرمایه‌گذاری دفتر تحقیقات دریانوردی ایالات متحده ابداع شد. پرسپترون بیشتر به عنوان یک دستگاه مد نظر بوده است تا یک برنامه؛ و با این‌که اولین پیاده‌سازی آن به صورت یک نرم‌افزار برای آی بی ام ۷۰۴ بود؛ پس از آن به صورت سخت‌افزار اختصاصی "پرسپترون مارک ۱" پیاده‌سازی شد. این دستگاه برای تشخیص تصویر طراحی شده بود: مجموعه‌ای از ۴۰۰ حسگر نور، که به صورت تصادفی به "نورون"‌ها متصل شده‌اند. وزن‌ها در پتانسیومترها کدگذاری شده بودند، و بروزرسانی وزن‌ها در طول یادگیری با موتورهای الکتریکی صورت می‌گرفت.

تعریف :

پرسپترون یک نوع دسته‌بند دودودیی است که ورودی خود x (یک بردار متشکل اعداد حقیقی) را به مقدار خروجی f x (یک اسکالر با مقادیر باینری) که به صورت زیر حساب می‌شود، متناظر می‌کند



w یک بردار از وزن‌هایی با مقادیر حقیقی است و  ضرب داخلی بردار وزن و بردار ورودی است، که در آن m تعداد ورودی‌های پرسپترون است. در رابطه بالا b نشان‌دهنده بایاس است که وظیفه آن جابجا کردن مرز تصمیم‌گیری از مبدأ است و مقدار آن به ورودی‌ها بستگی ندارد.

در مسئله دسته‌بندی دودودیی مقدار f x برای دسته‌بندی x بین دو کلاس + و _ استفاده می‌شود. اگر b عددی منفی باشد، جمع وزن‌دار ورودی‌ها باید عدد مثبتی بزرگتر از |b| باشد تا خروجی پرسپترون 1 شود. به عبارت دیگر دسته‌بند پرسپترون مانند یک ابرصفحه است که فضای m بعدی را به دو قسمت تقسیم می‌کتد، در این صورت w نشان‌دهنده بردار عمود برصفحه و b نشان‌دهنده عرض از مبدأ صفحه جداکننده است. به ازای نقاط داده شده به همراه برچسب آن‌ها  الگوریتم پرسپترون مقادیر w و b را به گونه‌ای می‌یابد که تمام نمونه‌ها توسط تابع f به‌درستی برچسب گذاری شوند یعنی 

اگر داده‌های مثبت و منفی قابلیت جداشدن توسط یک ابرصفحه را نداشته باشند الگوریتم پرسپترون متوقف نمی‌شود اما اگر داده‌ها خطی تفکیک‌پذیر باشند الگوریتم پرسپترون در تعداد متناهی مرحله پایان می‌یابد. معروف‌ترین تابعی که الگوریتم پرسپترون قادر به یادگیری آن نیست؛ تابع یا مانع الجمع است.

در زمینه شبکهٔ‌های عصبی مصنوعی پرسپترون یک نوع نورون مصنوعی است که تابع فعالیت آن تابع پله‌ای هویساید می‌باشد.

توپولوژی شبکه های عصبی

شبکه های عصبی پس انتشار ) پرسپترون چند لایه با آموزش

الگوریتم Back-Propagation: BP )

  •  تابع فعال سازی
  •  الگوریتم آموزش
  •  انتشار خطا به عقب

 حل تابع XOR با استفاده از شبکه عصبی چند لایه

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

FeedForwardTopology

Recurrent Topology


  ادامه مطلب ...