چکیده: در سالیان اخیر شاهد حرکتی مستمر از تحقیقات صرفا تئوری به تحقیقات کاربردی بخصوص در زمینه پردازش اطلاعات ، برای مسائلی که برای آنها راه حلی موجود نیست و یا براحتی قابل حل نیستند بوده ایم.
با عنایت به این امر ، علاقه ای فزاینده ای در توسعه تئوریکی سیستمهای دینامیکی هوشمند مدل آزاد[2] -که مبتنی بر داده های تجربی میباشند – ایجاد شده است.
ANN ها جزء این دسته از سیستمهای مکانیکی قرار دارند که با پردازش روی داده های تجربی ، دانش یا قانون نهفته در ورای داده ها را به ساختار شبکه منتقل میکنند.به همین خاطر به این سیستمها هوشمند گفته میشود ، زیرا بر اساس محاسبات روی داده های عددی یا مثالها ، قوانین کلی را فرا میگیرند.این سیستمها در مدلسازی ساختار نرو-سیناپتیکی[3] مغز بشر میکوشند.
البته این سخن که" ANN ها در مدلسازی مغز بشر میکوشند" اغراق آمیز میباشد.دانشمندان هرچه بیشتر در مورد مغز بشر تحقیق میکنند و می آموزند ، بیشتر در می یابند که مغز بشر دست نیافتنی است.در حقیقت در مورد مغز و ساختار سیستم عصبی انسان اطلاعات زیادی بدست آمده است.
ولی پیاده سازی ساختاری با پیچیدگی مغز انسان بر اساس اطلاعاتی و تکنولوژی که امروزه وجود دارد غیر ممکن میباشد.
ما میتوانیم یک نرون عصبی انسان و عملکرد آنرا را توسط مدل های ریاضی ، مدلسازی کنیم.شکل1 ساختار یک نرون طبیعی را نشان میدهد.
کلمات کلیدی: شبکه عصبی، شبکه پرسپترون، معماری شبکه، شبکه بی سیم مقدمه: از قرن نوزدهم به طور همزمان اما جداگانه از سویی نروفیزیولوزیستها سعی کردند سامانه یادگیری و تجزیه و تحلیل مغز را کشف کنند و از سوی دیگر ریاضیدانان تلاش کردند تا مدل ریاضی بسازند که قابلیت فراگیری و تجزیه و تحلیل عمومی مسائل را دارا باشد.
اولین کوششها در شبیه سازی با استفاده از یک مدل منطقی توسط مک کلوک و والتر پیتز انجام شد که امروزه بلوک اصلی سازنده اکثر شبکههای عصبی مصنوعی است.
این مدل فرضیههایی در مورد عملکرد نورونها ارائه میکند.
عملکرد این مدل مبتنی بر جمع ورودیها و ایجاد خروجی است.
چنانچه حاصل جمع ورودیها از مقدار آستانه بیشتر باشد اصطلاحا نورون برانگیخته میشود.
نتیجه این مدل اجرای توابع ساده مثل AND و OR بود.
نه تنها نروفیزیولو?یستها بلکه روان شناسان و مهندسان نیز در پیشرفت شبیه سازی شبکههای عصبی تاثیر داشتند.
در سال 1958 شبکه پرسپترون توسط روزنبلات معرفی گردید.
این شبکه نظیر واحدهای مدل شده قبلی بود.
پرسپترون دارای سه لایه به همراه یک لایه وسط که به عنوان لایه پیوند شناخته شده میباشد، است.
این سامانه میتواند یاد بگیرد که به ورودی داده شده خروجی تصادفی متناظر را اعمال کند.
سامانه دیگر مدل خطی تطبیقی نورون میباشد که در سال 1960 توسط ویدرو و هاف (دانشگاه استنفورد) به وجود آمد که اولین شبکههای عصبی به کار گرفته شده در مسائل واقعی بودند Adalaline (Adaptive Linear Element) یک دستگاه الکترونیکی بود که از اجزای سادهای تشکیل شده بود، روشی که برای آموزش استفاده میشد با پرسپترون فرق داشت.در سال 1969 میسکی و پاپرت کتابی نوشتند که محدودیتهای سامانههای تک لایه و چند لایه پرسپترون را تشریح کردند.
نتیجه این کتاب پیش داوری و قطع سرمایه گذاری برای تحقیقات در زمینه شبیه سازی شبکههای عصبی بود.
آنها با طرح اینکه طرح پرسپترون قادر به حل هیچ مساله جالبی نمیباشد، تحقیقات در این زمینه را برای مدت چندین سال متوقف کردند.
با وجود اینکه اشتیاق عمومی و سرمایه گذاریهای موجود به حداقل خود رسیده بود، برخی محققان تحقیقات خود را برای ساخت ماشینهایی که توانایی حل مسائلی از قبیل تشخیص الگو را داشته باشند، ادامه دادند.
از جمله گراسبگ که شبکهای تحت عنوان Avalanch را برای تشخیص صحبت پیوسته و کنترل دست ربات مطرح کرد.
همچنین او با همکاری کارپنتر شبکههای ART (Adaptive Resonance Theory) را بنانهادند که با مدلهای طبیعی تفاوت داشت.
اندرسون و کوهونن نیز از اشخاصی بودند که تکنیکهایی برای یادگیری ایجاد کردند.
ورباس در سال 1974 شیوه آموزش پس انتشار خطا را ایجاد کرد که یک شبکه پرسپترون چندلایه البته با قوانین نیرومندتر آموزشی بود.
پیشرفتهایی که در سال 1970 تا 1980 بدست آمد برای جلب توجه به شبکههای عصبی بسیار مهم بود.
شبکه های عصبی مصنوعی (Artificial Neural Network) الگویی برای پردازش اطلاعات می باشند که با تقلید از شبکه های عصبی بیولو?یکی مثل مغز انسان ساخته شده اند.عنصر کلیدی این الگو ساختار جدید سیستم پردازش اطلاعات آن می باشد و از تعداد زیادی عناصر (نرون) با ارتباطات قوی داخلی که هماهنگ با هم برای حل مسائل مخصوص کار می کنند تشکیل شده اند.
شبکه های عصبی مصنوعی با پردازش روی داده های تجربی، دانش یا قانون نهفته در ورای داده ها را به ساختار شبکه منتقل می کند که به این عمل یادگیری می گویند.
اصولاً توانایی یادگیری مهمترین وی?گی یک سیستم هوشمند است.
سیستمی که بتواند یاد بگیرد منعطف تر است وساده تر برنامه ریزی میشود، بنابراین بهتر میتواند در مورد مسایل و معادلات جدید پاسخگو باشد.انسانها از زمانهای بسیار دور سعی بر آن داشتند که بیوفیزیولو?ی مغز را دریابند چون همواره مسئله هوشمندی انسان و قابلیت یادگیری ،تعمیم،خلاقیت،انعطاف پذیری و پردازش موازی در مغز برای بشر جالب بوده و بکارگیری این قابلیتها در ماشینها بسیار مطلوب می نمود.روشهای الگوریتمیک برای پیاده سازی این خصایص در ماشینها مناسب نمی باشند در نتیجه می بایست روشها مبتنی بر همان مدلهای بیولو?یکی باشد.ANN درست مثل انسانها با استفاده از مثالها آموزش می بیند، همانطور که یک بچه با دیدن انواع مختلف از یک حیوان قادر به تشخیص آن می باشد.
فصل اول معرفی شبکه های عصبی مصنوعی 1-1-معرفی در سالیان اخیر شاهد حرکتی مستمر از تحقیقات صرفا تئوری به تحقیقات کاربردی بخصوص در زمینه پردازش اطلاعات ، برای مسائلی که برای آنها راه حلی موجود نیست و یا براحتی قابل حل نیستند بوده ایم.
ولی پیاده سازی ساختاری با پیچیدگی مغز انسان بر اساس اطلاعاتی و تکنولوژی که امروزه وجود دارد غیر ممکن میباشد.ما میتوانیم یک نرون عصبی انسان و عملکرد آنرا را توسط مدل های ریاضی ، مدلسازی کنیم.شکل1 ساختار یک نرون طبیعی را نشان میدهد.
شکل 1-1- ساختار نرون طبیعی انسان نرون طبیعی از سه قسمت اصلی تشکیل شده است : 1.
بدنه سلول (Soma) 2.
دندریت(Dendrite) 3.
اکسون (Axon) دندریتها به عنوان مناطق دریافت سیگنالهای الکتریکی ، شبکه هایی تشکیل یافته از فیبرهای سلولی هستند که دارای سطح نامنظم و شاخه های انشعابی بیشمار میباشند .دندریتها سیگنالهای الکتریکی را به هسته سلول منتقل میکنند.
بدنه سلول انرژی لازم را برای فعالیت نرون فراهم کرده و برروی سیگنالهای دریافتی عمل میکند ، که با یک عمل ساده جمع و مقایسه با یک سطح آستانه مدل میگردد.
اکسون بر خلاف دندریتها از سطحی هموارتر و تعداد شاخه های کمتری برخوردار میباشد.
اکسون طول بیشتری دارد و سیگنالهای الکتروشیمیایی دریافتی از هسته سلول را به نرونهای دیگر منتقل میکند.محل تلاقی یک اکسون از یک سلول به دندریتهای سلولهای دیگر را سیناپس میگویند.توسط سیناپسها ارتباطات مابین نرونها برقرار میشود.به فضای مابین اکسون و دندریتها فضای سیناپسی گویند.در حقیقت دندریتها به عنوان ورودی نرون و اکسون به عنوان خروجی و فضای سیناپسی محل اتصال ایندو میباشد.
زمانیکه سیگنال عصبی از اکسون به نرونها و یا عناصر دیگر بدن مثل ماهیچه ها میرسد ، باعث تحریک آنها میشود.نرونها از هریک از اتصالات ورودی خود یک ولتاژ کم دریافت میکند ( توسط سیگنال عصبی ورودی ) و آنها را با هم جمع میزند.
اگر این حاصل جمع به یک مقدار آستانه رسید اصطلاحا نرون آتش میکند و روی اکسون خود یک ولتاژ خروجی ارسال میکند که این ولتاژ به دندریتهایی که به این اکسون متصلند رسیده و باعث یکسری فعل و انفعالهای شیمیایی در اتصالات سیناپسی میشود و میتواند باعث آتش کردن نرونهای دیگر شود.
تمامی فعالیتهای مغزی انسان توسط همین اتش کردنها انجام میشود.
دندریتها به عنوان مناطق دریافت سیگنالهای الکتریکی ، شبکه هایی تشکیل یافته از فیبرهای سلولی هستند که دارای سطح نامنظم و شاخه های انشعابی بیشمار میباشند .دندریتها سیگنالهای الکتریکی را به هسته سلول منتقل میکنند.
1-1-1- ایده اصلی شبکههای عصبی : یکی از مهمترین تفاوتهای حافظه انسان با حافظه کامپیوتر در نوع آدرس دهی این دو نوع حافظه میباشد.
در حافظه کامپیوتر اساس کار بر پایه آدرس خانههای حافظه یا آدرس اطلاعات بر روی حافظه دائم میباشد.
به عنوان مثال برای دستیابی به یک تصویر یا متن خاص، باید آدرس حافظه یا فایل مربوط به آن تصویر یا متن را داشته باشید.
اما با داشتن خود تصویر یا متن نمیتوانید به سادگی آدرس حافظه مربوطه را بیابید (البته به این معنی که این کار با یک قدم قابل انجام نیست، وگرنه میتوانید تصویر یا متن مورد نظر را با تمام موارد موجود در حافظه مقایسه کرده و در صورت تطبیق آدرس را بیابید.
ناگفته پیداست که انجام چنین کاری بسیار زمان بر و پر هزینه میباشد).
اما به سازوکار همین عمل در ذهن انسان دقت کنید.
با دیدن یک تصویر ناقص اغلب بلافاصله کامل آنرا به خاطر میآورید یا با دیدن تصویر یک شخص سریعا نام او را میگویید، یا با خواندن یک متن سریعا تمامی مطالب مربوط به آن را به ذهن میآورید.
در واقع ذهن انسان یک نوع حافظه آدرسدهی شده بر اساس محتواست (Content Addressable Memory).
همانگونه که از این نام مشخص است در این نوع حافظه، با دادن محتوای یک خانه حافظه، بلافاصله آدرس آن به عنوان خروجی داده میشود.
حال ببینیم که داشتن چنین حافظهای اصولا به چه کار میآید.
فرض کنید که حرف "A" قرار است توسط ماشین از میان مجموعهای از حروف شناسایی شود.
در حالت بسیار ساده فرض بر این است که شکل تمامی حروف الفبا در حافظه ماشین موجود است.
بنابراین ماشین خیلی ساده با مقایسه ورودی فعلی با اشکال موجود در حافظه تشخیص میدهد که حرف ورودی جاری "A" هست یا خیر.
اما همانگونه که پیشتر گفتیم در صورتی که الگوهای حروف موجود در حافظه بسیار زیاد باشد، مقایسه ورودی با تکتک الگوهای ذخیره شده عملا بسیار زمان بر است و مقدور نیست، بنابراین نیاز به حافظه آدرسدهی شده بر اساس محتوا خواهیم داشت به این ترتیب که این حافظه الگوی جاری را گرفته و بلافاصله پاسخ میدهد که آیا این الگو در حافظه موجود است یا خیر.
اندکی دقت در مثال اخیر نشان دهنده پیچیدگی مسائلی از این دست است.
تشخیص حرف "A" حتی به صورت چاپی هم توسط ماشین اساسا کار سادهای نیست.
دقت کنید به تنوع اشکال این حرف، سایز، خمیدگیها، دقت چاپگرها، ....
و پیچیدگی مسئله، زمانی چند برابر میشود که کار به تشخیص دستنویس حروف کشیده شود.
حال اگر حافظه آدرسدهی شده بر اساس محتوای ما، دارای این توانایی باشد که حتی اگر شکل حرف "A" کمی هم دچار اعوجاج شده باشد باز هم آنرا تشخیص دهد، حل مسئله تا حدود زیادی سادهتر شده است.
شبکههای عصبی دارای چنین خصلتی هستند.
حال ببینیم که ایده اصلی عملکرد این شبکهها چگونه است؟
هاپفیلد (HopField) در 1982 طرح اصلی حافظهای را ارائه کرد که دارای خصوصیات فوقالذکر باشد.
این حافظه یا شبکه عصبی دارای دو عنصر گره و یال میباشد.
هر گره دارای دو وضعیت فعال و غیرفعال است(صفر یا یک) و هر یال نیز دارای یک وزن میباشد (شکل زیر).
یالهای با وزن مثبت بین دو گره تا گره فعال دیگری را تحریک میکنند و یالهای با وزن منفی بین دو گره، گره فعال دیگری را غیر فعال میسازند.
نحوه عملکرد شبکه بدین صورت است که ابتدا یک گره به تصادف انتخاب میشود.
اگر یک یا بیشتر از همسایههای آن گره فعال بودند جمع وزندار یالهای منتهی به آن گرهها حساب میشود.
اگر این جمع مثبت بود گره فعال میشود و در غیر این صورت گره مذکور غیرفعال باقی خواهد ماند.
سپس مجددا یک گره دیگر به تصادف انتخاب شده و همین عملیات آنقدر تکرار میشود تا شبکه به یک حالت پایدار برسد.
بعنوان مثال اگر شبکه شکل 2 شروع به کار کند گره پایین سمت چپ گره بالایی خود را فعال خواهد کرد و این گره نیز به نوبه خود خواهد کوشید تا گره بالاتر از خود را فعال کند اما گره بالایی به دلیل سیگنال توقیفی (Inhibitory) ارسالی از گره بالای سمت راست تحریک نخواهد شد و این سیکل همینطور تا رسیدن به حالت پایدار ادامه مییابد.
نکته در اینجا است که این شبکه بیش از چهار حالت پایدار ندارد (شکل زیر).
یعنی از هر حالت ابتدایی که شروع کنیم نهایتا شبکه به یکی از این چهار حالت میل خواهد کرد.
تز اصلی هاپفیلد نیز در واقع همین بود که از هر حالت ابتدایی و با هر وزنی از یالها که شروع کنیم، شبکه در نهایت به حالت پایدار خواهد رسید.
با دقت در کل ایده این شبکه میتوان گفت که در واقع این شبکه به صورت نوعی حافظه عمل میکند، حافظهای که این چهار الگو را در خود ذخیره کرده است.
علاوه بر این شبکه فوق یک حافظه آدرسدهی شده بر اساس محتواست.
به این معنی که اگر از یکی ازین چهار حالت به