• انجام پرو‍ژه‌های دانشجویی مهندسی برق و کامپیوتر

    ترجمه متون تخصصی

    ADS, C++, CircuitMaker, CodeVisionAVR, EWB, LabVIEW, MATLAB, MAX+PLUS II, ModelSim, OrCAD, Protel DXP, Proteus, SIMULINK, VHDL, Neural Networks, Fuzzy Logic, Signal Processing, Image Processing,...

     

    پرو‍ژه‌های آماده       سفارش پروژه و ترجمه

  • تدریس خصوصی نرم‌افزار مهندسی برق و کامپیوتر

     

    ADS, C++, CircuitMaker, CodeVisionAVR, EWB, LabVIEW, MATLAB, MAX+PLUS II, ModelSim, OrCAD, Protel DXP, Proteus, SIMULINK, VHDL, Neural Networks, Fuzzy Logic, Signal Processing, Image Processing,...

     

    سفارش تدریس

  • دعوت به همکاری در انجام پروژه

     

    VHDL, C++, Cisco Packet Tracer, GNS3, Visual Basic, C#.Net, ASP.Net, Assembly, VB.Net, Delphi

     

    همکاری با ما

مقدمه ای بر شبکه های عصبی مصنوعی (قسمت ششم)

معرفی چند مدل از شبکه های عصبی

 

در آغاز دهه 40 مک کولاچ و پيتز، مدلی از يک نرون ارائه کردند که در شکل زیر اين مدل آورده شده است.

 

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

پس از مدل مک کولاچ و پيتز، مدل های گوناگونی برای شبکه های عصبی ارائه گرديد. که همگی وجوه مشترک زيادی با مدل فوق دارند. همگی شامل وزن هايی هستند که عملکرد آنها را بصورت پارامتری مشخص می کند، همگی شامل تعدادی واحد محاسبه کننده خروجی هستند که بر اساس اطلاعات ورودی و يا اطلاعات ساير واحدها کار می کنند، همگی آنها خروجی ها و تنظيم وزن هايشان را از طريق يک قاعده موضوعی ساده تعيين می کنند. تفاوت بين مدل های مختلف، ناشی از تابع خاص بکار رفته برای محاسبه خروجی ها و جديد کردن وزن ها و نيز نحوه اتصال بين واحدها می باشد.

     

 هاپفيلد

شبکه هاپفيلد که جزء شبکه های حافظه انجمی است، در سال 1982 توسط جان هاپفيلد مطرح شد. هاپفيلد محقق برجسته ای است که رنسانسی در شبکه های عصبی ايجاد نمود. او با استفاده از تابع انرژی و توسعه تئوريک آن، توانست شبکه هاپفيلد را با سيستم های ديناميکی فيزيکی مرتبط ساخته، و از اين طريق بعضی از مسائل بهينه سازی را با شبکه های عصبی حل نمايد.

شبکه هاپفيلد، شبکه ای پويا، بازگشتی و شامل چندين نرون با واحد های تاخيری است که سامانه پس خور چند حلقه ای را تشکيل می دهد. به عبارتی ديگر خروجی تک تک نرون ها، به همه نرون ها پس خور دارد. شبکه هاپفيلد دارای تابع تبديل اشباع خطی است. اين شبکه را می توان به دو دسته پيوسته و گسسته تقسيم کرد.

 

شبکه هاپفيلد برای ذخيره سازی تعدادی الگو طراحی شده است، که می تواند آنها را بازيابی کند.

 

در شکل زیر ساختار شبکه هاپفيلد آمده است.

مقدمه ای بر شبکه های عصبی مصنوعی (قسمت پنجم)

ساختار شبکه های عصبی مصنوعی

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

 

در شکل زیر يک شبکه عصبی مصنوعی به نمايش در آمده است.

 

مقدمه ای بر شبکه های عصبی مصنوعی (قسمت چهارم)

ويژگی شبکه های عصبی

شبکه های عصبی مصنوعی با وجود اينکه با سيستم عصبی طبيعی قابل مقايسه نيستند، ويژگی هايی دارند که آنها را در بعضی از کاربردها نظير تفکيک الگو، رباتيک، کنترل و بطور کلی در هر جا که نياز به يادگيری يک نگاشت خطی و يا غير خطي باشد، ممتاز می نمايند. اين ويژگی ها به شرح زير هستند:

 

1. قابليت يادگيری

 قابليت يادگيری يعنی توانايی تنظيم پارامترهای شبکه (وزن های سيناپتيکی) در مسير زمان که محيط شبکه تغيير می کند و شبکه شرايط جديد را تجربه می کند، با اين هدف که اگر شبکه برای يک وضعيت خاصی آموزش ديد و تغيير کوچکی در شرايط محيطی آن رخ داد، شبکه بتواند با آموزش مختصر برای شرايط جديد نيز کارآمد باشد. ديگر اينکه اطلاعات در شبکه های عصبی در سيناپس ها ذخيره می شود و هر نرون در شبکه، بصورت بالقوه از کل فعاليت ساير نرون ها متاثر می شود. در نتيجه، اطلاعات از نوع مجزا از هم نبوده و متاثر از کل شبکه می باشد.

 

2. پراکندگی اطلاعات

آنچه که شبکه فرا می گيرد (اطلاعات يا دانش)، در وزن های سيناپسی مستتر می باشد. رابطه يک به يک، بين ورودی ها و وزن های سيناپتيکی وجود ندارد. می توان گفت که هر وزن سيناپسی مربوط به همه ورودي ها است ولی به هيچ يک از آنها بصورت منفرد و مجزا مربوط نيست. به عبارت ديگر هر نرون در شبکه، از کل فعاليت ساير نرون ها متاثر می باشد. در نتيجه، اطلاعات بصورت متن توسط شبکه عصبی های پردازش می شود. بر اين اساس چنانچه بخشی از سلول های شبکه حذف شوند و يا عملکرد غلط داشته باشند باز هم احتمال رسيدن به پاسخ صحيح وجود دارد. اگرچه اين احتمال برای تمام ورودی ها کاهش يافته، ولی برای هيچ يک از بين نرفته است.

 

3. قابليت تعميم

پس از آنکه مثال های اوليه به شبکه آموزش داده شد، شبکه می تواند در مقابل يک ورودی آموزش داده نشده قرار بگيرد و يک خروجی مناسب ارائه نمايد. اين خروجی براساس مکانيسم تعميم، که همانا چيزی جز فرايند درون يابی نيست، به دست می آيد. به عبارت روشن تر، شبکه، تابع را ياد می گيرد، الگوريتم را می آموزد و يا رابطه تحليلی مناسبی را برای تعدادی نقاط در فضا بدست می آورد.

 

4. پردازش موازی

هنگامی که شبکه عصبی در قالب سخت افزار پياده می شود سلول هايی که در يک تراز قرار می گيرند، می توانند بطور همزمان به ورودی های آن تراز پاسخ دهند. اين ويژگی باعث افزايش سرعت پردازش می شود. در واقع در چنين سيستمی، وظيفه کلی پردازش، بين پردازنده های کوچکتر مستقل از يکديگر توزيع می گردد.

 

5. مقاوم بودن

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

مقدمه ای بر شبکه های عصبی مصنوعی (قسمت سوم)

تناظر بين شبکه عصبی و شبکه مصنوعی

در شبکه های عصبی مصنوعی که بر مبنای شبکه های بيولوژيکی به وجود آمده اند، سعی شده است رفتار نرون های بيولوژيکی شبيه سازی شود. تا اين شبکه های مصنوعی بتوانند گوشه ای از توانايی های مغز انسان را انجام دهند. سرعت سوئيچينگ نرون های بيولوژيکی در حدود 1ms است ولی سوئيچينگ، در کامپيوترهای امروزی به حدود چند دهم نانو ثانيه رسيده است. اگرچه نرون های بيولوژيکی از نرون های مصنوعی که توسط مدارهای الکتريکی ساخته می شوند، بسيار کندتر هستند (حدود ده ميليون بار)، اما عملکرد مغز، خيلی سريع تر از يک کامپيوتر معمولی است. علت اين پديده، بيشتر به خاطر ساختار کاملا موازی نرون ها می باشد. و اين بدان معنی است که تمام نرون ها بصورت همزمان کار می کنند و پاسخ می دهند. شبکه های عصبی مصنوعی که مدل سازی شده اند نيز دارای ساختار موازی هستند. ولی در پياده سازی آنها همزمان سازی تمام نرون های يک شبکه گسترده، کاری دشوار است. امروزه برای تحقق هر چه بيشتر اين امر، شبکه های عصبی را توسط پردازشگرهای موازی، سيستم های نوری و تکنولوژی VLSI پياده سازی می کنند.

در جدول زیر پارامترهای شبکه عصبی بيولوژيکی، با پارامترهای متناظر آن در شبکه عصبی مصنوعی آمده است.

 

 

Artificial Neural Network

Biological Neural Network

Neuron

Soma

Input

Dendrite

Output

Axon

Weight

Synapse

مقدمه ای بر شبکه های عصبی مصنوعی (قسمت دوم)

ساختار مغز انسان

مغز انسان به طور مستدل، پيچيده ترين شیء شناخته شده در جهان می باشد. با وجود اينکه مغز انسان در حدود 1.5 گيلو گرم وزن دارد، بيشتر آن را آب تشکيل می دهد و اگر از داخل جمجمه خارج گردد، بطور کامل فروريخته و ويران می شود.

مغز انسان عملياتی فراتر از دانش امروز ما انجام می دهد. مغز در واقع عضو اصلی صحبت کردن، حافظه، درک و منطق انسان می باشد. حتی گفته می شود که شخصيت انسان، در مغز او نهفته است. مغز انسان از راه سعی و خطا آموزش می بيند. با وجود اينکه هر روز تعداد زيادی از سلول های مغز انسان از بين می روند، اما انسان در طول زندگيش همواره در حال يادگيری است. مغز انسان اين انعطاف پذيری را دارد که خود را با شرايط گوناگون وقف دهد. نکته ای که در مورد يادگيری انسان قابل توجه است، اينست که انسان بدون آموزش ها و تعاريف پيچيده، ياد می گيرد که چگونه رفتار کند. مثلا وقتی که به يک بچه دوچرخه سواری را ياد می دهند، به او نمی گويند که آرنج های خود را در چه زاويه ای قرار دهد و فقط دادن يک شرايط اوليه مطلوب برای جلوگيری از تصادف به عنوان يک پيش فرض کافی است و زمانی که بچه با پيش فرض اوليه توانست دوچرخه را هدايت کند، ديگر با سعی و خطا می تواند زاويه دقيق آرنج ها و ديگر موارد مورد نياز را ياد بگيرد. مغز و سيستم عصبی ساير موجودات زنده نيز ساختاری مانند مغز انسان دارند. يک عنکبوت با توجه به شرايط آب و هوايی مختلف، تارهايی شگفت انگيز و پيچيده درست می کند. مورچه ها محل سکونت خود را می سازند، از کوچکترها مراقبت می کنند و با دشمنانشان می جنگند.

سلول هايی که در مغز، وظيفه پردازش اطلاعات و توزيع آنها را بر عهده دارند، نرون (Neuron) ناميده می شوند. هر نرون 4 بخش مجزا دارد : هسته سلول، دندريت، اکسون و ترمينال های اکسون. هسته قسمت اصلی و حياتی يک سلول عصبی می باشد. دندريت ها از هسته سلول منشعب می گردند و اطلاعات را بصورت ايمپالس های الکتريکی، از نرون های ديگر به هسته سلول منتقل می کنند.

اکسون ها بر خلاف دندريت ها، از سطحی هموارتر و تعداد شاخه های کمتری برخوردارند. اکسون طول بيشتری دارد و سيگنال الکتروشيميايی دريافتی از هسته سلول را به نرون های ديگر منتقل می کند. محل تلاقی يک اکسون از يک سلول، به دندريت های سلول ديگر را سيناپس می گويند.

فاصله بين نرون ها در حدود 25nm است که با وجود چنين فاصله کوچکی، نرون ها اطلاعات را به خوبی بين يکديگر رد و بدل می کنند. اين اطلاعات در سيناپس ها مورد پردازش قرار می گيرند.

نرون ها بر اساس ساختارهايی که بين آنها پيام ها هدايت می شوند، به سه دسته تقسيم می گردند:

1. نرون های حسی که اطلاعات را از ارگان های حسی به مغز و نخاع می فرستند.

2. نرون های محرک که سيگنال های فرمان را از مغز و نخاع به ماهيچه ها و غدد هدايت می

کنند.

3. نرون های ارتباطی که نرون ها را به متصل می کنند.

 

شکل زیر يک نرون بيولوژيکی را نشان می دهد.

 


هسته سلول ممکن است حاصل جمع تعدادی سيگنال را که از دندريت های متفاوتي می آيند را دريافت کند و يا يک سيگنال را به تنهايی و در غياب ساير سيگنال ها دريافت نمايد. علاوه بر اينها پردازش وابسته به زمان که در هسته سلول صورت می گيرد، اين امر را ممکن می کند که در يک فاصله زمانی کوتاه که سيگنال هايی از جاهايی متفاوت در حال دريافت می باشند، سيگنال هايی را که از بعضی از دندريت ها می آيند را متوقف کند. وقتی که شرايط مساعد باشد، هسته سلول آتش کرده و پالس های الکتريکی با شدت و طول ثابت به سمت اکسون می فرستد. اکسون اين پالس ها را که نمايانگر اطلاعات پردازش شده هستند، حمل کرده و به طرف ساير نرون ها می برد. اکسون در انتهای خود به تعدادی شاخه تقسيم می شود که اين شاخه ها به برجستگی های کوچکی ختم می شوند که ترمينال های اکسون ناميده می شوند. ترمينال های اکسون حاوی مواد شيميايی هستند که انتقال دهنده عصبی ناميده می شوند و وقتی که پالس های الکتريکی از هسته سلول می رسند، اين مواد شيميايی رها می شوند. انتقال دهنده های عصبی می توانند، احتمال آتش کردن نرون های همسايه را افزايش دهند که در اين صورت به آنها تحريکی گفته می شود و يا ممکن است اين احتمال را کاهش دهند که در اين صورت به آنها مهاری گفته می شود.

وقتی که انتقال دهنده های عصبی از ترمينال های اکسون ساطع می شوند، مواد شيميايی از طريق شکاف کوچکی که شکاف سيناپسی گفته می شود، به دندريت ها می روند و اطلاعاتی که از طريق اکسون ها از نرون های ديگر آمده است را با خود می آورند. يک نرون دقيقا يک خروجی دارد. سيگنالی که از طريق اکسون منتشر می شود، ممکن است بيش از 10000 ورودی را از طريق دندريت هايش دريافت کند. ماهيت اطلاعاتی که در نرون مورد پردازش قرار می گيرد، همپيوستگی اطلاعاتی است که از طريق دندريت ها دريافت می شود و به يک کميت واحد تبديل می گردد که همان نرخ آتش هسته سلول به درون اکسون است.

مغز انسان چيزی در حدود 100 ميليارد نرون دارد که هر يک ممکن است اتصالات سيناپسی با بيش از 10000 نرون ديگر داشته باشند. اطلاعات به صورت سيگنال های الکتريکی و شيميايی، بصورت پيوسته در مغز انسان جريان دارند. مغز انسان وظيفه پردازش اطلاعات ورودی از حواس پنجگانه، و تفسير آنها را بر عهده دارد و تصميم می گيرد که بر اساس اطلاعات رسيده، چه عملی بايد انجام پذيرد.

توانايی های قابل توجه مغز انسان، الهام بخش تحقيقات گوناگونی بوده است، که بتواند اين ساختار پيچيده را شبيه سازی کند که اين امر بطور عمده بوسيله مدارهای الکتريکی صورت پذيرفته است. با اتصال تعداد بسيار زيادی از اين واحهای پردازنده ساده، محققان اميدوارند تا به بينشی از چگونگی عملکرد فعاليت مغز دست يابند و جايگزين مناسبی برای سيستم های سنتی کامپيوتر، در کاربردهايی نظير : تشخيص الگو، طبقه بندی تصاوير و بسياری از کاربردهای ديگر بيابند.