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

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

    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

     

    همکاری با ما

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

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

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

 

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

 

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

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

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

 

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 نرون ديگر داشته باشند. اطلاعات به صورت سيگنال های الکتريکی و شيميايی، بصورت پيوسته در مغز انسان جريان دارند. مغز انسان وظيفه پردازش اطلاعات ورودی از حواس پنجگانه، و تفسير آنها را بر عهده دارد و تصميم می گيرد که بر اساس اطلاعات رسيده، چه عملی بايد انجام پذيرد.

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

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

مقدمه

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

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

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

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

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

در سال 1985 انستيتوی فيزيک آمريکا اجلاس ساليانه خود را با نام «شبکه های عصبی برای محاسبات» برگزار کرد. در همين سال انستيتوی مهندسان برق و الکترونيک، اولين کنفرانس بين المللی در ضمينه شبکه های عصبی را برگزار کرد، که در آن بيش از 1800 نفر حضور داشتند.

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