تاریخچه هوش مصنوعی
توانایی یادگیری منحصر به سیستمهای زنده نیست بلکه در مدلهای شبکه عصبی نیز قابل دسترس است. گرچه مفهوم یادگیری ماشین برخلاف باورهای معمول ما از کامپیوترها است، زیرا اغلب فرض میشود که کامپیوترها تنها قادر به اعمالی هستند که برایشان برنامه ریزی شده است و خود توانایی تطبیق با محیط را ندارند. هرچند در سطح جزئی برنامهها ماشین را کنترل می کنند، ولی رفتاری که نتیجه میشود لزوماً نباید آن چنان که تصور میشود غیرقابل انعطاف و جبری باشد (راسل، 1998).
اولین کار مرتبط با AI توسط وارن مک کولوچ و والتر پیتز (1943) انجام شد. آنها از سه منبع دانش فیزیولوژیک پایه و عملکرد نرون، تحلیل رسمی منطق گزارهها متعلق به راسل و وایت هد و نظریه محاسباتی تورینگ استفاده کردند. آنها مدلی از نرون مصنوعی را پیشنهاد کردند که هر نرون دارای دو ویژگی روشن یا خاموش بود. ویژگی روشن در پاسخ به تحریک تعداد کافی از نرونهای همسایه حاصل میشد. وضعیت نرون مثل یک گزاره بود که محرک کافی برایش منظور شده است. برای مثال، آنها نشان دادند که هر تابع قابل محاسبه، از طریق شبکهای از نرونهای متصل محاسبه نمیشود و تمام متصل کنندههای منطقی (مثل not ،or،and) را میتوان با ساختارهای شبکه سادهای پیادهسازی کرد. مک کلود و پیترز نشان دادند که اگر شبکهها به خوبی تعریف شده باشند، قدرت یادگیری دارند. دونالد هبا (1949) یک قاعده بههنگام سازی ساده را برای اصلاح تقویت اتصالات بین نرونها تعریف کرد. قاعده او به نام یادگیری هبایی امروزه به عنوان یک مدل مورد استفاده قرار میگیرد (استوارت، 1995).
مغز و کامپیوتر کارهای متفاوتی انجام میدهند و خواص مختلفی دارند. تعداد نرونهای موجود در مغز، 1000 برابر گیتهایی است که در CPU کامپیوتر وجود دارد. قانون مور پيشبيني کرد که گیت CPU در سال 2002 برابر با نرونهای مغز میشود. علاوه بر این، میزان حافظه و سرعت سوئیچینگ و ظرفیت توازی کامپیوتر در مقایسه با مغز بیشتر است. تراشههای کامپیوتر میتوانند دستوری را در یک نانو ثانیه اجرا کنند، اما نرونها میلیون ها بار کندتر هستند. چون نرونها و سیناپس همزمان فعال هستند، ولی کامپیوترها CPUهای اندکی دارند، سرعت مغز فوق العاده است. لذا، گرچه سرعت سوئیچینگ مغزی نسبت به کامپیوتر کمتر است، ولی سرعت مغز 100000 بار سریع تر از کامپیوتر است (استوارت، 1995).
شکل 2-1: بخشی از سلول عصبی یا نرون
اغلب کارهایی که در دهه 1980 بر روی شبکههای عصبی انجام شد، این بود که چه اعمالی میتوان انجام داد و یاد گرفت که تفاوت شبکههای عصبی و تکنیکهای سنتی چیست. با استفاده از روشهای بهبود یافته و چارچوبهای نظری میتوان به این نتیجه رسید که شبکههای عصبی اکنون میتوانند با تکنیکهای متناظر در آمار، شناخت الگو و یادگیری ماشین مقایسه شوند و اغلب تکنیکهای متناظر میتوانند به هر کاربردی اعمال شوند (استوارت، 1995).
2-3-2- پرسپترون چند لایهای
پرسپترونها گستردهترین و شناخته شده ترین بخش شبکههای عصبی هستند. اولین بار این اصطلاح به وسیله فرانک روزنبلات (1958) برای توضیح انواع شبکههای عصبی بکار رفت. او عقیده داشت که بجای یک مدل فیزیکی از نرونها مانند آدالاین، یک تعریف عملکردی از چگونگی کارکرد تک نرون و چگونگی بکارگیری آن به صورت یک الگوریتم در نرمافزار مد نظر قرار گیرد. شکل2-2 نمونهای از پرسپترون چند لایهای را نشان میدهد. سه لایه آن به شرح ذیل است:
شکل 2-2: پرسپترون سه لایهای تک خروجی
لایه ورودی: ورودیها با دنیای خارج در ارتباط هستند. این لایه عامل ارتباط با بیرون است و نیز سه ورودی به راحتی با لایه بعدی در شبکه مرتبط میشوند. در این لایه هیچ گونه عمل پردازشی صورت نمیگیرد.
لایه پنهان: این لایه را پنهان مینامند، زیرا ورودیها و خروجیهای این دو نرون پنهان، از بیرون دیده نمیشوند. اولین لایهای که در آن پردازش صورت میگیرد، همین لایه است. در یک شبکه چهار لایهای ممکن است دو لایه پنهان وجود داشته باشد.
لایه خروجی: خروجیها با جهان خارج مرتبط هستند. این لایه شامل سه عامل پردازشی است.
نکته بعدی کامل بودن ارتباط است. بدین معنی که خروجی تمامی نرونها در لایه بعد متصل هستند.
شروع عملیات از ورودی هر لایه و خاتمه در خروجی لایهها است. البته همه پرسپترونهای چند لایهای این گونه به هم متصل نمیشوند، اما معمولترین نوع آنها این گونه هستند. x بیانگر مقداری است که به پرسپترون وارد و یا از پرسپترون خارج میشود. هر لایه شامل تعدادی ورودی است که از شماره 1 شروع میشوند. ورودیهای شبکه x0(1),x0(2),…..,x0(n)خواهند بود. خــروجیهای اولیـن لایــه کــه ورودیهای لایــه دوم هستنـد بـه قــرار زیـر مطـرح میشونــد: x1(1),x1(2),…..,x1(i) بنابراین x1(i) خروجی از i امین نرون در i امین لایه است. در لایههای میانی wیا وزنها را داریم.
برای پرسپترون چند لایهای میتوان از تابع سیگموئید (شکل 2-3) استفاده کرد که معادله آن به صورت ذیل است.
شکل 2-3: تابع سیگموئید
y= 1/(1+e-x)
برای مقادیر مثبت x، اگر x افزایش یابد yبرابر 1 خواهد بود و اگر مقادیر x منفی باشد، هر چه که x بزرگتر میشود، y به صفر نزدیکتر میشود. چنانچه x=0 باشد، آنگاه y=0.5 خواهد شد. پس پاسخ همواره بین صفر و یک خواهد بود (پیکتون، 2000)
شبکههای عصبی از دو ویژگی اساسی یادگیری یا نگاشت پذیری براساس ارائه دادههای تجربی (قدرت و توانایی تعمیم پذیری) و ساختار پذیری موازی برخوردار میباشند این شبکهها برای مسائل کنترل، بهخصوص سیستمهای پیچیدهای که مدلسازی این سیستمها میسر نیست یا به سختی انجام میشود، بسیار مناسب میباشند. یک شبکه عصبی ساده خطی آموزش میبیند آنگونه که یک پاندول معکوس را کنترل نماید (پایدار سازد). طی سالهای 1970 تا 1980 شبکههای عصبی به نام CMAC) ) Cerebellar Model Articulation Controller توسط آلبوس برای کنترل بلادرنگ بازوهای ربات معرفی و مورد استفاده قرار گرفت. طی سالهای 1980 تا 1990، بسیاری دیگر از شبکههای عصبی استاتیک، دینامیک و معماری IC آنها پیشنهاد و پیادهسازی شدند. شبکههای MLP با کاربردهای بسیار وسیع در مسائل فنی و مهندسی ارائه شدند (منهاج، 1388).