شبکه های عصبی مصنوعی
فصل ۱ : مقدمه
۱-۱ انسان و کامپیوتر
انسان ها از کامپیوترها باهوش ترند. چرا چنین گفته میشود؟
درست است که بعضی از اعمالی را که ما به سختی انجام می دهیم یک کامپیوتر به سرعت و به راحتی انجام می دهد ،مانند جمع چندصد عدد ، اما این مطلب باعث نمی شود که ما یک کامپیوتر را باهوشتر از انسان بدانیم چون این سیستم هرگز قادر نمی باشد که اعمالی را که نیاز یه استدلال دارد و یا حل آنها از طریق شهودی و حدس و گمان می باشد را به طور مطلوب انجام دهد. شاید بهتر است بگوییم آنهاموجودات منطقی ای هستند و تنها اعمال منطقی را به خوبی انجام می دهند.
مسئله دیگر شاید این باشد که یک کامپیوتر می تواند بعضی کارها را که ما در مدت زمان قابل ملاحظه ای انجام می دهیم را در زمان بسیار کوتاه تری انجام می دهد.ویا بعضی از اطلاعات را پس از گذشت ماه ها ویا سالها به خاطر می آورد .
به همین دلیل از کامپیوتر ها انتظار داریم در زمینه های دیگر نیز چنین رفتاری را از خود نشان دهند و چون نمی توانند تمام انتظارات ما را بر آورده کنند ما مایوس می شویم.در واقع این هدفی است که دست اندرکاران هوش مصنوعی دنبال می کنند اما هنوز پس از گذشت ۳۰ سال تحقیقات گسترده نمی توانند این ادعا را داشته باشند که به چنین کامپیوتری دست پیدا کرده اند.
هدف هوش مصنوعی را می توان در این جمله خلاصه کرد که می خواهد در نهایت به کامپیوترهایی دست یابد که اغلب در فیلم های سینمایی مشاهده می شود، ماشینهای بسیار توانمند تر از انسان – هدفی که بسیار از دنیای واقعی به دوراست . دنیایی که اغلب به خاطراشتباهات فاحش کامپیوترها هزینههای بسیار زیادی را متحمل می شود .
اگر به داخل یک کامپیوتر نگاه کنیم چیزی جز تعدادی تراشه های الکترونیکی ، مدارها ،مقاومتها و سایر قطعات الکترونیکی نخواهیم دید. اما اگر به درون مغز نگاه کنیم ، به هیچ صورت چنین ساختاری را مشاهده نخواهیم کرد. بررسی اولیه ما چیزی جزمجموعه ای گره خورده از مادهای خاکستری رنگ نشان نمی دهد. بررسی بیشتر و روشن می کند که مغز از اجزایی ریز تشکیل شده است . لیکن این اجزاء به شیوهای بی نهایت پیچیده، مرتب شدهاند و هز جزء به هزاران جزء دیگر متصل است. شاید این تفاوت در شیوه ساختار ، علت اصلی اختلاف بین مغز و کامپیوتر است. کامپیوترها طوری طراحی شده اند که یک عمل را بعد از عمل دیگر باسرعت بسیار زیاد انجام دهند . لیکن مغز ما با تعداد اجزای بیشتر اما با سرعتی بسیار کمتر کار میکند . در حالی که سرعت عملیات در کامپیوترها به میلیونها محاسبه در ثانیه بالغ می شود، سرعت عملیات در مغز تقریباً بیشتر از ده بار در ثانیه نمیباشد. لیکن مغز در یک لحظه با تعداد زیادی اجزاء به طور هم زمان کار می کند، کاری که از عهده کامپیوتر بر نمیآید . کامپیوتر ماشینی سریع اما پیاپی کار است در حالی که مغز شدیداً ساختاری موازی دارد. کامپیوترها می توانند عملیاتی را که با ساختار آنها سازگاری دارند به خوبی انجام دهند. برای مثال شمارش و جمعکردن اعمالی پیاپی است که یکی بعد از دیگری انجام می شود . لیکن دیدن و شنیدن، اعمالی شدیداً موازیاند که در آنها دادههای متضاد و متفاوت هر کدام باعث اثرات و ظهور خاطرات متفاوتی در مغز می شوند وتنها از طریق ترکیب مجموعه این عوامل متعدد است که مغز میتواند چنین اعمال شگفتی را انجام دهد .
نتیجهای که می توان گرفت این است که مسائل مورد نظر ما شدیداً خاصیت موازی دارند. این مسائل نیازمند پردازش حجم زیادی از اطلاعات متفاوت هستند که باید در تقابل با یکدیگر به حل مسأله بیانجامد.
نتیجه مهم آن که سرعت عامل مهمی نیست . آنچه مهم است موازی بودن است و مغز به خوبی برای این کار مهیا شده است . شیوه برخورد روش محاسباتی شبکههای عصبی، تسخیر اصول راهبردی است که زیر بنای فرآیند مغز برای پاسخگویی به این سؤالات و به کارگیری آنها در سیستمهای کامپیوتری است .
در مدلسازی سیستمهای اصلی مغز، باید راه کاری را بیابیم که بیشتر با ساختار موازی مغز سازگاری داشته باشد نه با ساختار پیدرپی آن .
به هر صورت ساختار طبیعتاً موازی سیستم های شبکه های عصبی آن ها را مناسب به کارگیری در ماشین های موازی می کند. که می تواند مزایای بیش تری از نظر سرعت و قابلیت اطمینان داشته باشد.
یکی از بارزترین ویژگیهای مغز توان فراگیری آن می باشد. مغز میتواند به خود آموزش دهد . یادگیری از طریق مثال همان شیوهای است که توسط آن اطفال زبان را فرا میگیرند . نوشتن، خوردن و آشامیدن را می آموزند و مجموعه معیارها و نکات اخلاقی را کسب می کنند . چنین تحولی درسیستمهای کامپیوتری متعارف مشاهده نمی شود . کامپیوترها معمولاً از برنامههای از پیش نوشته شدهای پیروی می کنند که قدم به قدم دستورات مشخصی را در کلیه مراحل عملیاتی به آن ها می دهند هر مرحله از کار بایدبه وضوح شرح داده شود. روشن است که انسان این گونه عمل نمی کند.زیرا برای نوشتن چنین برنامه ای باید ساعت ها وقت صرف کنیم و با دقت موضوع خود را به صورت بر نامه قابل فهم کامپیوتر بنویسیم .که این کار مشکلات خود را دارا می باشد.حال آیا بهتر نیست که به جای برنامه های کامپیوتری ،کامپیوتر را رها کنیم که خود از طریق مشاهده مثال ها آن کار را فرا گیرد؟ البته امکان دارد که این کامپیوتر نیز در ابتدا دارای BUG باشد وگاه اشتباه کند ،لیکن به تدریج به اشتباه خود پی خواهد برد و آنها را تکرار نخواهد کرد.
۱ـ۲ـ ساختار مغز
مغز انسان از واحدهای کو چکی به نام نرون تشکیل شده است.میدانیم که مغز تقریباً دارای ۱۰۱۰ واحد پایه به نام نرون است و هر نرون تقریباً به ۱۰۴ نرون دیگر اتصال دارد.
نرون عنصر اصلی مغز است و به تنهایی مانند یک واحد پردازش منطقی عمل می کند . نرونها دو نوع هستند . نرونهای داخلی مغز که در فاصلههای حدود ۱۰۰ میکرون به یکدیگر متصل اند و نرونهای خارجی که قسمتهای مختلف مغز را به یکدیگر و مغز را به ماهیچهها و اعضای حسی را به مغز متصل میکنند . نحوه عملیات نرون بسیار پیچیده است و هنوز در سطح میکروسکوپی چندان شناخته شده نیست، هر نرون بسیار پیچیده است و هنوز در سطح میکروسکوپی چندان شناخته شده نیست ، هر چند قوانین پایه آن نسبتاً روشن است .هر نرون ورودیهای متعددی را پذیراست که با یکدیگر به طریقی جمع میشوند . اگر در یک لحظه ورودیهای فعال نرون به حد کفایت برسد نرون نیز فعال شده و آتش میکند . در غیر این صورت نرون به صورت غیر فعال وآرام باقی می ماند. نمایشی از ویژگی های عمده نرون در شکل ۱-۱ آمده است. بدنه نرون سوما نامیده می شود . به سوما رشتههای نامنظم طولانی متصل است که به آنها دندریت میگویند . قطر این رشتهها اغلب از یک میکرون نازکتر است و اشکال شاخهای پیچیدهای دارند.
دندریتها نقش اتصالاتی را دارند که ورودی ها را به نرون ها می رساند . این سلول ها می توانند
شکل ۱-۱ مشخصات اصلی یک نرون بیولوژیک.
عملیاتی پیچیدهتر از عملیات جمع ساده را بر ورودی های خود انجام دهند، لیکن عمل جمع ساده را میتوان به عنوان تقریب قابل قبولی از عملیات واقعی نرون به حساب آورد.
یکی از عناصر عصبی متصل به هسته نرون آکسون نامیده می شود. این عنصر بر خلاف دندریت از نظر الکتریکی فعال است و به عنوان خروجی نرون عمل میکند.اکسونها همیشه در روی خروجی سلولها مشاهده می شوند . لیکن اغلب در ارتباطهای بین نرونی غایباند. اکسون وسیلهای غیر خطی است که در هنگام تجاوز پتانسیل ساکن داخل هسته از حد معینی پالس ولتاژی را به میزان یک هزارم ثانیه، به نام پتانسیل فعالیت، تولید می کند . این پتانسیل فعالیت در واقع یک سری از پرش های سریع ولتاژ است. شکل ۱-۲ این حالت « همه یا هیچ » را نشان می هد.
شکل ۱-۲ ورودی های نرون باید از آستانه معینی تجاوز کندتا نرون بتواند کنش کند.
رشته اکسون در نقطه تماس معینی به نام سینا پس قطع می شود و در این مکان به دندریت سلول دیگر وصل می گردد. در واقع این تماس به صورت اتصال مستقیم نیست بلکه از طریق ماده شیمیایی موقتی صورت میگیرد . سیناپس پس از آن که پتانسیل آن از طریق پتانسیل های فعالیت دریافتی از طریق آکسون به اندازه کافی افزایش یافته از خود ماده شیمیایی به نام منتقل کننده عصبی ترشح میکنند.
منتقل کننده عصبی ترشح شده درشکاف بین اکسون و دندریت پخش می شود و باعث می گردد که دروازههای موجود در دندریتها فعال شده و باز شود و بدین صورت شارژ شده وارد دندریت شوند . این جریان یون است که باعث میشود پتانسیل دندریت افزایش یافته و باعث یک پالس ولتاژ در دندریت شود که پس از آن منتقل شده و وارد بدن نرون دیگر می شود .
یک نرون خود به تنهایی میتواند دارای ورودی های سیناپسی متعددی در روی دندریتهای خود باشد و ممکن است باخروجی های سیناپسی متعددی به دندریتهای نرونهای دیگر وصل شود.
۱-۲-۱ یادگیری در سیستمهای بیولوژیک
تصور می شود یادگیری هنگامی صورت میگیرد که شدت اتصال یک سلول و سلول دیگر در محل سیناپسها اصلاح می گردد. شکل ۱-۳ ویژگیهای مهم سیناپس را با جزئیات بیش تر نشان می دهد. به نظر میرسد که این مقصود از طریق ایجاد سهولت بیشتر در میزان آزاد شدن ناقل شیمیایی حاصل می گردد. این حالت باعث می شود که دروازههای بیشتری روی دندریتهای سمت مقابل باز شود و به این صورت باعث افزایش میزان اتصال دو سلول شود . تغییر میزان اتصال نرونها به صورتی که باعث تقویت تماسهای مطلوب شود از مشخصههای مهم در مدلهای شبکههای عصبی است .
شکل ۱-۳ اجزائ مختلف یک سیناپس
۱-۳ تفاوت ها
همچنین دیدم که ساختار مغز به گونهای است انجام این فعالیتها را به آسانی امکانپذیر می سازد و در عوض در زمینههای دیگر کارآیی مغز را محدود می کند. روند تکامل مغز متأثر از فعالیت هایی بوده که اهمیت بیش تری داشته است، از آنجایی که توانایی دین و شنیدن صدا در انسان از توانایی جمع کردن دقیق اعداد اهمیت بیشتری داشته و این امر باعث تکامل این جنبه مغز شده است. مغز دارای ساختاری شدیداً موازی که در آن تعداد زیادی واحدهای محاسباتی ساده به صورت مشترک انجام فعالیت را به عهده دارند، به جای این که تمام بار فعالیت را بر دوش یک واحد سریع قرار دهند، این تقسیم کار پیامدهای مثبت دیگری نیز دارد، چون تعداد زیادی نرون در یک زمان درگیر فعالیت هستند سهم هر یک از نرونها چندان حائز اهمیت نیست . بنابراین اگر یکی راه خطا رود نتیجه آن تأثیر چندانی بر دیگران نخواهد داشت . این نحوه توزیع کار که اصطلاحاً پردازش توزیع شده نامیده می شود، دارای این خاصیت است که لغزش های احتمالی در جای جای سیستم پردازی تا اندازهای قابل چشمپوشی می باشد. در واقع مغز با توجه به توانایی یادگیری می تواند نقصان همیشگی یکی از نرونهای خود را با وارد کردن نرونهای دیگر جبران کند. توان انجام فعالیت در حالی که فقط تعدادی از نرونها به درستی کار می کنند را در محافل محاسباتی تحمل خطا میگویند، زیرا که سیستم، مثلاً مغز ، میتواند بدون ایجاد خروجی های بی معنی خطاها را تحمل کند . این یکی از ویژگیهای بارز مغز است ، کامپیوترها در ساختار بسیار متفاوت اند .
کامپیوترها در ساختار بسیار متفاوتاند. به جای استفاده از میلیونها واحد پردازش اطلاعات نسبتاً کند و بسیار متصل به یکدیگر مانند مغز، از یک یا چند واحد پردازش بسیار سریع استفاده میکنند که می توانند میلیونها محاسبه را در هر ثاینه انجام دهند. این توانایی و سرعت کامپیوترها را در انجام عملیات ساده و تکراری مانند جمع اعداد بسیار کارآمد میکند ولی آنها را در انجام عملیاتی چون بینایی که نیاز به پردازش انواع مختلف داده به صورت موازی دارد ناتوان میسازد . آن ها همچنین به علت عدم توانایی در توزیع فعالیت نسبت به خطا توانایی چشمپوشی و اغماض ندارند. چنانچه واحد پردازش کامپیوتر از کار بیفتد داستان خاتمه یافته است .
این مسائل نهایتاً موجب تمایلات جاری به ایجاد کامپیوترهای متفاوت شده است . این کامپیوترها از اصولی پیروی می کنند که پدیده تکامل درطول میلیونها سال شکل داده است، و آن چنین است ، استفاده از عناصر ساده و اتصال تنگاتنگ عناصر و انجام کار مشترک توسط انبوهی از عناصرمی باشد.
نتیجه گیری
همان گونه که در این فصل گفته شد سیستم مغز یک سیستم موازی می باشد .در حل یک مسئله سرعت حل ملاک نیست بلکه آن چیزی که مهم می باشد پردازش به صورت موازی است.مغز از سلولهای کوچک به نام نرون تشکیل شده است که هر گاه میزان ورودی آنها از طریق دندریت ها به حد کافی برسد نرون آتش کرده از اکسون پالسی ارسال می شود. ارتباط از طریق نقاط اتصال شیمیایی به نام سیناپس صورت می گیرد.
فصل ۲ : نگرش کلی به شبکه های عصبی مصنوعی
۲-۱ تعریف شبکه های عصبی
آنچه در ادامه عنوان می گردد، تعریف عملی و تاحدی عمومی از ابزاری است که بعداً آن را مطالعه خواهیم کرد. در قسمت های باقیمانده کتاب، این تعریف تصحیح و تخصصی خواهد گردید.
شبکه های عصبی مصنوعی، ساختاری(شبکه ای) است متشکل ازتعدادی واحد(نرون های مصنوعی) که در داخل شبکه به هم وصل شده اند. هر واحد دارای یک مشخصه ورودی/خروجی(I /o) می باشد و محاسبه یا عملی جزئی را اجرا می کند. خروجی هر واحد، با توجه به مشخصه (I /o) آن ، اتصالات درونیش به سایر واحدها و(احتمالاً) ورودی های خارجی تعیین می گردد. از آنجا که آموزش دستی شبکه امکان پذیر است، از این رو شبکه معمولاً کارکردی کلی از یک حالت یا حالت های بیشتری از آموزش را به دست می آورد.
ANNمتشکل از یک شبکه نیست ، بلکه خانواده ای متشکل از شبکه های گوناگون می باشد. عمل یا عملکرد کلی شبکه های عصبی مصنوعی ، توسط توپولوژی شبکه، خصوصیات نرون منفرد و تاکتیک یادگیری و داده های آموزش معین می شود.
به منظور کاربردی شدن ، یک ANN می بایستی ابزارهایی برای ارتباط با دنیای خارج داشته باشد. با این وجود نیازی به تعریف فوق نیست؛ به طور نمونه، خصوصیات واحد ورودی / خروجی (I/o) ، بسیار ساده است (و بین همه واحدها مشترک است) و تعداد واحدها کاملاً زیاد است. توجه نمایید که تعریف، ما را وادار می سازد که میان یک واحد تنها و یک شبکه تمایز قایل شویم . در نهایت، ساختارهای محاسباتی که در این تحقیق شرح می دهیم، ممکن است با شماری از راه های غیر بیولوژیکی هم قابل انجام باشند که بیشترین این نمونه ها در میان عناصر الکترونیکی است؛ بنابراین ، اغلب عنوان«مصنوعی» قابل قبول است
۲-۲ مفاهیم اساسی شبکه های عصبی
موارد زیر ، جنبه های کلیدی محاسبات عصبی می باشند:
همان گونه که تعریف بخش ۲-۱ نشان می دهد، مدل کلی محاسباتی ، شامل اتصالات درونی قابل تغییر مجدد از عناصر ساده یا واحدهاست. شکل ۱٫۲ دو شبکه فرضی با مقیاس کوچک را نشان می دهد که در آن واحدها به صورت دایره های و اتصالات درونی به وسیله کمان هایی نشان داده شده اند. شکل ۱٫۲ (الف) یک تاکتیک اتصال درونی غیر بازگشتی را نشان میدهد که شامل هیچ مسیر اتصال درونی بسته ای نیست. به نمایش گروهی واحدهایی که در لایه ها قرار گرفته اند، توجه نمایید. در مقابل، شکل ۱٫۲ (ب) شبکه ای با تاکتیک اتصال درونی بازگشتی را نمایان می سازد که در آن انعطاف پذیری اتصالات درونی اختیاری این امکان را میسر می سازد که مسیرهای حلقه بسته (پس خورد) وجود داشته باشد. این تاکتیک اجازه می دهد که شبکه در مقایسه با تاکتیک (حلقه ـ باز) شکل ۱٫۲ (الف) دینامیک زمانی بسیار پیچیده تری را نشان دهد. همچنین ، توجه نمایید که توپولوژی های شبکه ، ممکن است دینامیک یا استاتیک باشد. در نهایت ، توجه کنید که در شکل ۱٫۲ بعضی واحدها به صورت مستقیم با دنیای بیرون در ارتباط اند، در حالی که سایرین «مخفی» یا درونی هستند.
شکل ۲-۱ توپولوژی های شبکه های عصبی مصنوعی
توجه کنید که نمایش ترسیمی ، به ه۹مراه واحدهیی که به صورت گره نمایش داده شده اند و اتصالات درونی محسوس جهت دار که به صورت کمان هایی نشان داده شده اند، عملکرد مفیدی به منظور درک توپولوژی است.
واحدهای منفرد، هر یک ایفا کننده عملکردی موضعی می باشند و شبکه کلی با تصالات درونی واحدها،, عملی مطابق آن شبکه را نمایش می دهد. تحلیل این عملیات مگر به واسطه آموزش یا آزمایش های نمونه، اغلب دشوار است. علاوه براین، کاربردها معمولاً ، از طریق مشخصات ، عملکرد مورد نیاز را مشخص می کنند. این وظیفه طراح ANN است که پارامترهای شبکه را که این مشخصات را برآورده می سازد، معین کند.
یک معیار کلیدی یادگیری اطلاح الگوهای ارتباط عناصر درونی براساس تابعی از داده های آموزش است. به عبارت دیگر، دانش سیستم ، تجربه یا آموزش به شکل اتصالات داخلی شبکه، ذخیره می گردند.
به منظور قابل استفاده بودن ، سیستم های عصبی باید توانایی ذخیره اطلاعات را داشته باشند(به عبارت دیگر،آنها باید«آموزش پذیر» باشند.) سیستم های عصبی به شکل مورد انتظار آموزش می یابند تا بعداً در زمانی که الگوی جدیدی به منظور تشخیص یا طبقه بندی به آنها عرضه شود، همواره رفتاری صحیح ارائه دهند.
بنابراین، هدف در مرحله آموزش شبکه ، گسترش یک ساختار درونی است که شبکه را قادر سازد تا الگوهای جدید و مشابه را به طرز صحیحی مشخص یا طبقه بندی کند. هر دو روش آموزش ، با نظارت و بدون نظارت را مورد توجه قرار می دهیم.
شبکه عصبی، یک سیستم دینامیکی است؛ حالات آن (مثلاً ، خروجی های هر واحد و شدت اتصالات درونی ) در پاسخ به ورودی های خارجی یا یک حالت اولیه (گذرا) با زمان تغییر می یابد.
۲-۳ معرفی اصطلاحات و علائم قراردادی
اصطلاحات کلیدی
با نمایش فهرستی کوتاه از مفاهیم برجسته ، مبحث را شروع می کنیم:
سیستم های تطبیقی۱: سیستمی که قابلیت سازگار کردن عملکردش (معمولاً پارامتری) با افزایش تقاضا یا قابلیت سازگاری با محیط های کاری نامعین را دارا است.
الگوریتم: یک روش یا رویه به منظور رسیدن به یک هدف یا راه حل است.
ساختار: تتشکیلات سخت افزاری یا نرم افزاری است.
طبقه بندی۲: قابلیت نسبت دادن ورودی اعمالی به یک طبقه است.
تقاطع۱: پروسه ای است که در الگوریتم های ژنتیک به منظور شبیه سازی تولید مثل جنسی به کار برده می شود.
شاخص۲ : چیزهایی هستند که یک ویژگی از یک شیء یا موقعیتی را مشخص می کنند.
منطق فازی۳: یک توسعه از منطق قطعی است که در آن مقادیر صحت به مقادیر دودویی محدود نمی شوند.
تعمیم : توانایی جوابگویی به مثال های بیشتر ، برخلاف تخصیص است؛ رفتار شبکه ای که ورودی هارا نه صرفاً از مجموعه آموزش(h) به کار می برد.
اکتشافی۴: یک قانون تجربی است که برای حل کردن مسائلی به کار برده می شود؛ اما حل کردن مساله ای را تضمین نمی کند.
برگردانی: معین کردن ورودی از روی خروجی داده شده و مدل سیستم است.
شبکه: ادغامی از موجودیت هایی است که در داخل به هم متصل شده اند.
جستجو: مساله ای موجود در همه جاست که در آن باید یک فضای جستجو، یا زیر فضا، جستجو وارزیابی شود.
توپولوژی: ساختار یک شبکه است.
آموزش : شبیه یادگیری است.
واحد: عنصر «هسته ای» از یک ANN است؛ ابزار یک نگاشت موضعی است.
Vlsi: مدارات مجتمع با مقیاس بسیار بزرگ است (وسایل ساخته شده از سیلیکن) معمولاً توانایی های پردازش یا حافظه را افزایش می دهد.
۲-۴ کاربردهای محاسبات عصبی
خصوصیات مسائلی که کاربرد ANN در حل آنها مناسب می باشد
پیاده سازی ساختارهای محاسباتی سیستم های بیولوژیکی می تواند منجر به ایجاد الگوهای محاسباتی بهتری برای گروههای معینی از مسائل شود. از آن جمله، گروهی از مسائل سخت NP ، که شامل مسائل نشانه گذاری، مسائل جدول بندی، مسائل جستجو و سایر مسائل برآورد قیود۱ می باشد؛ گروهی از مسائل تشخیص الگو/ موضوع، که در مفاهیم بصری و گفتاری قابل ملاحظه هستند و گروهی از مسائلی که با داده های ناقص، کم، متناقض، مبهم یا احتمالی مورد بررسی قرار می گیرند، می باشند. این مسائل با برخی یا همه موارد زیر توصیف شده اند:
دامنه ای با ابعاد گسترده برای مساله ؛ رفتار متقابل، پیچیده ، مبهم یا رفتاری که منشاء ریاضی دارد، میان متغیرهای مساله و مجموعه ای از راه حل ها که ممکن است تهی باشد یا شامل یک راه حل واحد یا (در بیشتر موارد) شامل یک مجموعه از راه حل های سودمند(تقریباً یکسان) باشد. علاوه بر این (بر اساس لیستی که در پایین نشان داده می شود)، شبکه های عصبی مصنوعی به عنوان راه حل پیشنهادی مسائلی که شامل ورودی های حسی انسان، مانند گفتار، بینایی و تشخیص دستخط هستند و به نظر می رسند. توجه داشته باشید که نگاشت مساله دلخوا ه با راه حل شبکه عصبی کار آسانی نیست.
۲-۵ کاربردهای نمونه شبکه های عصبی مصنوعی
نگاهی جامع به همه کاربردهای شبکه های عصبی مصنوعی (کاربردهایی که روی آنها کار شده است یا موفقیت آمیز بوده اند یا کاربردهای تصوری) غیر عملی است . با این وجود، نگاهی به مطبوعات، مجلات علمیوکنفرانس ها،مثالهایروشنی را در این زمینه فراهم می کند. این کاربردها عبارت اند از :
پردازش تصویر وتصاویر رایانه ای ، شامل مقایسه تصاویر، پیش پردازش، شبکه سازی و تحلیل، تصویر رایانه ای (برای مثال بازبینی برد مدار)، فشرده سازی تصویر ، بینایی استریو، پردازش و درک تصاویر متغییر با زمان می باشد.
پردازش سیگنال، شامل تحلیل سیگنال و مورفولوژی است.
تشخیص الگو، شامل استخراج طرح [sau89] ، طبقه بندی و تحلیل سیگنال رادار، شناسایی و تشخیص صدا، شناسایی اثر انگشت، تشخیص شاخص (حرف یا عدد) و تحلیل دستخط (رایانه های ”notepad“) است.
پزشکی [pvg90] ، شامل تحلیل سیگنال الکتروکاردیوگراف و فهم و تشخیص بیماریهای گوناگون و پردازش تصاویر پزشکی است.
سیستم های نظامی ، شامل مین در زیر دریا, طبقه بندی اغتشاشات رادار و تشخیص مکالمه رمزی است.
سیستم های مالی ، شامل بررسی سهام بازار [rzf94]، تعیین قیمت واقعی موجودی ، صدور کارت اعتبار [ott94] و امنیت تجارت [bvdbw94] خواهد بود.
طراحی ، کنترل و تحقیق ، شامل عملکرد موازی مسائل برآورد قیود (csps)، راه حل های فروشنده سیار، مشابه csp ها ، و کنترل روباتیک است.
هوش مصنوعی ، شامل سیستم های قیاسی و پیاده سازی سیستم های خبره [cal93].
سیستم های قدرت، شامل پیش بینی وضعیت سیستم، تشخیص حالت های گذرا و طبقه بندی،شناسایی و رفع خطا، پیش بینی بار و تشخیص ایمنی می باشد.
۲-۶ فواید و معایب شبکه های عصبی مصنوعی
از آنجا که شبکه های عصبی مصنوعی، الگوهای محاسباتی نسبتاً جدیدی هستند، می توان گفت که فواید، کاربردها و روابط آن با محاسبات مرسوم هنوز کاملاً شناخته نشده است. انتظارات(بعضی ممکن است که به آن بی جا بگویند) در این زمینه بسیار زیاد است. شبکه های عصبی به ویژه برای کاربردهای واقعی ، ارتباط الگوهای آموزش پذیر مناسب هستند. عنوان این مطلب که شبکه های عصبی مصنوعی می توانند همه مسائل ، یا حتی تمامی مسائل نگاشت را به صورت استدلال خود کار حل کنند، احتمالاً غیر واقعی است.
فواید
• ذاتاً به صورت گسترده ای موازی،
• امکان چشم پوشی در برابر خطا به خاطرعملکرد موازیش،
• ممکن است به صورت تطبیقی طراحی گردد؛
• نیاز کم به ویژگی های گسترده مساله (غیر از درون مجموعه آموزش).
معایب
• عدم وجود قواعد صریح یا راهنمایی های طراحی برای کاربرد مورد نظر،
• عدم وجود روشی عمومی برای تشخیص عملیات داخلی شبکه،
• آموزش ممکن است مشکل یا حتی غیر ممکن باشد؛
• پیش بینی عملکرد شبکه در آینده مشکل است(تعمیم).
۲-۷ معیارهای مهندسی به منظور محاسبات عصبی
سؤالات اولیه
یک رهیافت مهندسی برای حل مسائل ، عبارت است از ترکیب همه متغیرها و اطلاعات مناسب مساله به گونه ای ساختار یافته، به منظور فرموله کردن یک راه حل.
سؤالات اساسی که در این زمینه مطرح می گردند، عبارت اند از:
۱- آیا فنون ANN برای مسائل موجود ، مفید یا حتی عملی هستند؟ آیا مساله، یک راه حل یا تعداد بیشترین راه حل دارد؟
۲- آیا می تواینم ساختارهای ANN مناسب هر وضعیت را به دست آوریم یا اصلاح کنیم و در صورت لزوم، ANN را آموزش دهیم(پارامترها را تعیین کنیم)؟
۳- آیا ابزار رسمی و اکتشافی که بتوان برای تعیین کردن ویژگی های راه حل ANN به کار برد، وجود دارد؟(مثلاً ، ترکیب محاسباتی اتخاذ شده برای روند تحلیل چیست؟)
روش های مهندسی عصبی: جایگزینی طراحی با آموزش
به طور نمونه، فرایند کلاسیک مهندسی «طراحی» ، شامل کاربردی اصولی از قواعد علمی و ریاضی به منظور طرح سیستمی که با یک مجموعه مشخصات سرو کار دارد، می باشد. از این جهت ممکن است، طراحی شامل قضاوت، بینش و احتمالاً تکرار باشد. فرایند«آموزش»، به عبارت دیگر ، به صورت نمونه شامل برخی روش های تعلیم دادن است تا در موقعی که سیستم با مشخصاتی مواجه می گردد، آن را به انجام رفتارهایی وادار سازد. اغلب اوقات، کاملاً این تعلیم دهی شامل تصحیح یا سازگاری پارامترهای سیستم است، برای اینکه در تکرار یا آزمایش بعدی، پاسخ سیستم به آنچه که مطلوب است، نزدیک باشد.
مهندسی عصبی تعیین اجزای مربوط به راه حل ANN ، شامل طراحی ANN کلی، توپولوژی های شبکه ، پارامترهای یک واحد و یک روندمرحله به مرحله آموزش (یادگیری) را جایگزین طرح های مهندسی کلاسیک می کند. گرچه ممکن ست این ارزیابی آسان به نظر برسد، لیکن به دیدگاه مهندسی (عصبی) قابل توجهی نیازمند است. وجود انتخاب های ممکن بسیار در توپولوژی ها و پارامترها منجر به مطالعات خسته کننده یا منجر به شبکه فاقد توان که از لحاظ مهندسی غیر عملی است، می گردد. علاوه بر این ، همانطور که قبلاً ذکر گردید، کارایی راه حل ANN باید مشخص باشد.
۲-۸ مراحل مهندسی سیستم ANN
به هنگام طراحی راه حل های مبتنی بر شبکه های عصبی ، سؤالات زیادی مطرح می شود؛مثلاً:
آیا شبکه می تواند به منظور انجام عملیات مورد نظر آموزش داده شود؟ آیا وجود برخی ابهامات ذاتی در مساله ای می تواند سبب غیر ممکن گردیدن حل آن شود؟
با فرض اینکه مساله قابل حل است، چه ساختار یا توپولوژی شبکه ای مناسب است؟
کدام یک از انواع منابع محاسباتی برای آموزش و اجرای شبکه موجوداند (زمان، حافظه، ذخیره سازی اطلاعات ، پردازشگرها)؟
در کاربردهای واقعی ، طراحی سیستم ANN ، کاری مشکل و معمولاً همراه با تکرار و اثرات متقابل است. گرچه فراهم کردن یک روش الگوریتمی جامع و فراگیر غیر ممکن است، اما مراحل وابسته وساختار یافته که در زیر آمده است، انعکاس نمونه تلاش ها و کارهایی است که در این زمینه شده است.
بسیاری از پارامترهای طراحی ANN عبارت اند از:
۱- ساختار اتصالات درونی /توپولوژی شبکه /ساختار شبکه.
۲- خصوصیات یک واحد(ممکن است در درون شبکه و بین قسمت های فرعی شبکه ، مانند لایه ها متفاوت باشد).
۳- مرحله (مراحل آموزش).
۴- مجموعه های تست و آموزش.
۵- نمایش (های) ورودی / خروجی و پیش و پس پردازش.
یک فرایند اساسی طراحی می تواند به شکل زیر باشد:
مرحله ۱: طبقات، اندازه ها یا الگوهای تحت بررسی را به منظور دستیابی ویژگی های ممکن(به صورتی مطلوب از نظر مقداری) ، مطالعه کنید. این موضوع شامل تعیین ساختار (قابلیت کیفیت)، ویژگی های احتمالی و شناسایی اندازه های مشابه یا غیر مشابه آن طبق خواهد بود. علاوه براین، خصوصیات ثابت یا متغییر ممکن و ویژگی های منابع «نویز» در این مرحله مورد توجه قرار می گیرند.
مرحله ۲: وجود داده های اندازه گیری شده (ورودی) یا شاخص (پیش پردازش شده) را بررسی کنید.
مرحله ۳: به قیود مربوط به عملکرد سیستم مورد نظر و منابع محاسباتی آن توجه کنید.
مرحله ۴: به موجود بودن و کیفیت داده آموزش و آزمایش توجه کنید.
مرحله ۵: به موجود بودن ساختارهای شناخته شده و مناسب ANN توجه کنید.
مرحله ۶: شبیه سازی ANN را به دست آورید.
مرحله ۷: سیستم ANN را آموزش دهید.
مرحله ۸: بازدهی سیستم ANN را با به کار بردن مجموعه (های) آزمایش شبیه سازی کنید.
مرحله ۹: مراحل پیشین را تکرار کنید تا به بازده مطلوب برسید.
۲-۹ توپولوژی های شبکه و خصوصیات
در نگرش کمی به توپولوژی ها و ساختارهای شبکه براساس توابع اتصالات درونی هر واحد، می توانیم مفاهیم چندی را مشخص کنیم:
۱- شبکه های بازگشتی
۲- شبکه های غیر بازگشتی
۳- شبکه های لایه لایه ، متوالی یا سایر ساختارهای شبکه ای متشابه
۴- ساختارهای به هم پیوسته رقابتی
گونه های ۱و۲ متقابلاً مجزا هستند؛ با این وجود، گونه های ۳و۴ ممکن است هم ساختارهای بازگشتی و هم غیر بازگشتی را به کار برند.[fie94] عمیقاً این موضوع را که مشتمل بر ایجاد «لایه ها» و «قطعه ها» و تشخیص دادن اتصالات درونی متقارن از غیر متقارن است، بررسی می کند.
فصل ۳
۳-۱ چشم انداز طرح شناسی
برای درک بیش تر مسأله طرح شناسی فعالیتی که برای اکثر مردم مشترک است یعنی بینایی را در نظر بگیرید. بخش عمده اطلاعات که ما جذب می کنیم ( به عبارت دیگر به سیستم بیولوژیکی شبکههای عصبی ما وارد می شود ) به صورت طرح به ما عرضه می گردد . متنی که اکنون مطالعه می کنید طرح های متنوع و پیچیدهای را به صورت رشتههای حروف به شما نشان می دهد . قبل از این که درگیر فهم جملات شویم ، سیستم بینایی باید مسأله شناسایی طرحها را حل کند، به عبارت دیگر لکههای کج و معوج مرکب منقوش بر این صفحه را به عنوان حروف شناسایی کند.
با وجود این شناخت حروف یکی از مسائل نسبتاً ساده «طبقهبندی» محسوب می گردد. این مسئله را میتوان با استفاده از روش تطبیق الگوها حل کرد .
حال فرض کنید خط متن ما تغییر کند . اگر برای خط جدید الگوهای مناسب نداشته باشیم روش طبقهبندی ما به احتمال زیاد به سختی شکست خواهد خورد .
شناسایی متون تنهاا یکی از نمونه مسئلههای طرح شناسی است . دامنه این شکل هنگامی که ما توجه خود رابه سایر زمینههای طرح شناسایی چون شناسایی صداها و حتی شناسایی روند سهام بازار بورس معطوف می کنیم بسیار گستردهتر می شود .
۳-۲ تعریف بازشناسی الگوها
هدف اصلی بازشناسی الگوها طبقهبندی است. بازشناسی الگوها را می توان به دو مرحله تقسیم کرد. اول مرحله استخراج مشخصهها و دوم مرحله طبقهبندی .
مشخصه به معنی کمیتی است که برای طبقهبندی طرح اندازهگیری می شود. مثلاً اگر مسأله شناسایی متون را دوباره در نظر بگیریم، برا ی تشخیص حرف «f » از حرف « E » لازم است که تعداد خطوط عمودی واقعی و افقی را مقایسه کنیم.
مشخصهها در اختیار دستگاه های طبقهبندی کننده قرار می گیرند . وظیفه دستگاه طبقه بندی کننده انعکاس این مشخصهها در فضای طبقهبندی است به عبارت دیگر با داشتن مشخصههای ورودی، این دستگاه باید تصمیم بگیرد که طرحهای داده شده به کدام طبقه بیشترین تطابق را نشان می دهند .
۳-۳ بردارهای مشخصات و فضای مشخصات
طبقهبندی به ندرت بر پایه یک مشخصه یا اندازهگیری منفرد از الگوهای ورودی صورت میگیرد. معمولاً اندازهگیریهای متعدد لازم است تا بتوان الگوهای متعلق به گروههای مختلف را به حد کافی از یکدیگر تمیز داد. اگر n اندازهگیری از الگوی ورودی به عمل آوریم و هر اندازهگیری نمایانگر یک مشخصه معین از طرح ورودی باشد، می توانیم از علائم جبری استفاده کنیم و مجموعه مشخصهها را به صورت یک بردار نشان دهیم. در این صورت بردار مذکور را بردار مشخصات می نامیم. تعداد ابعاد بردار (تعداد عناصر بردار) فضایی n بعدی ایجاد می کند که فضای مشخصات می نامیم.
ساده ترین را توصیف اصتقاده از مثال دو بعدی می باشد یعنی تنها دو مشخصه از الگوهای ورودی را در نظر می گیریم . یک مثال بدیهی می تواند مسأله تمیز دادن هنرمندان باله از بازیکنهای رگبی باشد و دو مشخصه را برا ی اندازه گیری انتخاب کنیم، یکی و دیگری وزن و فضایی دو بعدی با موئلفه های قد و وزن را ایجاد می کنیم.
۳-۴ توابع تشخیص دهنده یا ممیز
با بررسی توزیع نمونههای اندازه گیری شده به خوبی مشاهده می شود که نمونهها در دو خوشه مجزا تقسیم شدهاند.
با مشاهده طرز قرار گرفتن خوشه ها می توانیم حدس بزنیم که با کشیدن یک خط مستقیم بین دو خوشه می توانیم آنها را به طور دلخواه از یکدیگر جدا کنیم. اگر بتوانیم محدوده تقسیم بندی داده ها را تعریف کنیم ، عمل طبقه بندی به یک فرآیند تصمیم گیری تبدیل می شود که تشخیص می دهیم هر داده ورودی جدید در کدام طرف خط مستقیم قرار میگیرد (شکل۳-۱) صورت ریاضی چنین محدوه تصمیم « تابع ممیز» نامیده می شود .درعمل توصیه می ود که تابع ممیز تا حد امکان ساده باشد. درمثال فوق کاملاً روشن است که سادهترین تابع خط راست است . این یک نمونه از گروه گسترده دستگاه های طبقهبندی است که اصطلاحاً طبقهبندی خطی نامیده میشوند.
شکل ۳-۱ محدوده تصمیم یک طبقه بندی خطی
۳-۵ فنون طبقه بندی۲
فنون طبقه بندی به دوگره وسیع عددی وغیرعددی تقسیم می شوند. فنون عددی شامل اندازه گیری قطعی وآماری است که درفضای هندسی شکل ها انجام می گیرد. فنون غیر عددی فنونی است که در حوزه پردازش نمادها صورت می گیرد و با روشهایی چون مجموعه های فازی(FUZZY)ارتباط می یابد. در این کتاب ما صرفاً فنون عددی را در نظر میگیریم زیرا بیشتر به بحث ما در مورد شبکه های عصبی مربوط می شوند. این به آن معنا نیست که از شبکه های عصبی برای پردازش داده های نمادی استفاده نمی شود. بسیاری از گروههای تحقیق در این زمینه مشغول فعالیت می باشند ولی گنجاندن این موضوع در این کتاب که جنبه مقدماتی دارد شاید تا اندازه ای زیادتر از حد نیاز باشد.
قبلاً در بحث توابع ممیز به روشهای قطعی اشاره ای داشتیم. اکنون به نوع به خصوصی از توابع ممیز می پردازیم که اصطلاحاً «k نزدکترین همسایه» نامیده می شود. همچنین نگاهی دیگر به روش طبقه بندی خطی خواهیم انداخت. در قسمت آماری روش طبقه بندی بیزین را مورد بحث قرار خواهیم داد،که از تخمین احتمالاتیبرای تعیین عضویت طبقات استفاده می کند. انتخاب این روشها به علت استفا ه عصبی از نظر عملکرد نهایتاً با این روش مقایسه شده و به این علت آشنایی با روشهای فوق بسیار مفید خواهد بود.
۳-۶ روش طبقه بندی «نزدیکترین همسایه»
شکل۳-۲ را درنظر بگیرید.
دو طبقه در فضای الگوها نمایان است. می خواهیم تصمیم بگیریم که الگوی طبقه بندی نشده x به کدام یک از این دو طبقه تعلق دارد. روش طبقه بندی نزدیکترین همسایه در وابع براساس نزدیکترین فاصله به نمونه های طبقه های همسایه این تصمیم را روشن می کند. نمونه طبقه بندی نشده به نزدیکترین طبقه همسایه خود تخصیص داده می شود.موضوعی که چندان هم دور از ذهن نیست. از نظر ریاضی این روش تابع ممیزی را به صورت زیر تعریف می کند.
(فاصله به نزدیکترین نمونه در طبقه ۲) ـ (فاصله به نزدیکترین نمونه در طبقه ۱) = f(x)
بدین صورت برای نمونه هایی که در طبقه های مجزا قرار دارند، به طوری که در شکل ۲-۱ نشان دادیم مقدار f(x) برای نمونه های متعلق به طبقه ۱ منفی و برای نمونه های طبقه ۲ مثبت خواهد بود. به هر حال دامنه کاربردی این روش لااقل از نظر کارایی محدود است. نمونه دورافتاده با این که نزدیکتر به طبقه ۱ است متعلق به طبقه ۲ می باشد و گرچه رفتاری مشابه سایر نمونه های طبقه ۲ ندارد ولی به هر حال جزء آن طبقه محسوب می شود .
شکل ۳-۲ طبقه بندی به وسیله مقایسه با نزدیکترین همسایه
حال اگر بخواهیم نمونه طبقه بندی نشده ای را که احتمالاً نزدیکتر به این نمونه غیر معمول است طبقه بندی کنیم ممکن است تصمیم ما درست نباشد. راه حل مشکل این است که فاصله نمونه طبقه بندی نشده را با نمونه های متعدد اندازه گیری کنیم و تنها به یک فاصله اکتفا نکنیم، در نیتجه اثر نمونه های غیر معمول احتمالی ا خنثی کنیم، این عمان روش «k نزدکترین همسایه» می باشد و k تعداد همسایه های نزدیک نمونه طبقه بندی نشده است که فاصله آنها محاسبه می شود.
۳-۷ میزان های اندازه گیری فاصله۱
روش نزدیکترین همسایه مسأله دیگری را پیش می آورد و آن یافتن روش قابل اطمینانی برای اندازه گیری فاصله یک نمونه از نمونه های دیگر است. بدون شک، باید میزانی را برای اندازه گیری فاصله ها انتخاب کنیم که بتواند شباهت نمونه ها را در فضای هندسی طرح نشان دهد.
● فاصله همینگ۲
ابتدایی ترین نوع فاصله که به علت سادگی کاربرد گسترده ای دارد میزان فاصله همینگ است. برای دوبردار :
X= (x1, x2,…)
Y=(y1, y2,…)
فاصله همینگ با محاسبه اختلاف هر عنصر از یک بردار و عنصر متناظر آن در بردار دیگر و جمع قدر مطلق اختلاف ها به دست می آید. فرمول زیر فاصله همینگ را تعریف می کند:
( \xi – yi\) H=
فاصله همینگ اغلب برای مقایسه بردارهای صفر و یک به کار می رود. شاید روشن باشد که این فاصله در واقع تعداد بیتهایی را که در و بردار متفاوت اند نشان می دهد. درحقیقت فاصله همینگ را می توان از طریق تابع یا حذفی (xor) به دست آورد. زیرا
xi xor yi برابر است با \ xi – yi\
● فاصله اقلیدسی۱
یکی از متداول ترین میزان های فاصله، فاصله اقلیدسی است، فرض کنید در صفحه مختصات قائم دو بردار(x,y) را داشته باشیم و بخواهیم فاصله اقلیسی (d(x-y)) آن دو را محاسه کنیم.
فاصله اقلیدسی این دو بردار کوتاه ترین فاصله بین آن هاست و با فرمول زیر به دست می آید.
D(x,y) euc =
در حالی که n تعداد ابعاد بردار است.
در مثال دو بعدی که در شکل ۳-۳ نشان داده شده است این فاصله برابر است با
D(x,y) euc =
برای تعیین فاصله اقلیسی در واقع از قضیه معروف فیثاغورث برای محاسبه وتر مثلث استفاده می شود. در حالت خاص که بردارها از نوع صفر ویک باشند فاصله اقلیدسی در واقع برابر جذر فاصله همینگ خواهد بود. فاصله اقلیدسی به علت سادگی محاسه کاربرد گسترده ای دارد و همان طور که گفته شد در بردارهای صفر ویک فاصله اقلیدسی به حالت خاصی تقلیل می یابد که از نظر ریاضی برابر با جذر فاصله همینگ است.
شکل۳-۳ فاصله اقلیدسی
● فاصله شهری۱(فاصله منتهن)
صورت ساده تری از فاصله اقلیدسی فاصله شهری است. در این نوع فاصله به جای جذر مربع اختلافات از قدر مطلق اختلافات استفاده می شود.
Dcb =
نتیجه این عمل صرف نظر از سرعت بیشتر محاسباتی نسبت به فاصله اقلیدسی این است که نقاط هم فاصله از یک بردار تماماً بر یک مربع واقع می گردند در صورتی که در حالت فاصله اقلیدسی نقاط هم فاصله از بردار بر یک دایره واقع می گردند. این امر در شکل۳-۴ نشان داده شده است.
در این شکل دایره محدوده نقاطی را نشان می دهد که از بردار مورد نظر ما فاصله اقلیدسی یکسانی دارند. حال اگر از فاصله شهری استفاده شود نقاط واقع بر مربع همگی اندازه فاصله مساوی خواهند داشت .
روشن است که این عمل در محاسبه فاصله ها تا اندازه ای خطا دارد اما این میزان کاهش دقت در مقابل
شکل ۳-۴ فاصله شهری.
افزایش سرعت محاسبات ممکن است قابل قبول باشد.
● فاصله مربعی۱٫
فاصله اقلیدسی را می توان باز ساده تر کرد که البته با خطای بیشتری همره خواهد بود. این نوع فاصله را فاصله مربعی می گتویند، شکل ۳-۵ فاصله مربعی را نشان می دهد. در واقع فاصله مربعی دو بردار بزرگترین اختلاف بین عناصر متناظر بردارها خواهد بود.
Dsq = max \xi-yi\
این فاصله مجدداً محدوده مربع شکلی را حول بردار مورد نظر تشکیل می دهد. اندازه این مربع ازمحدوده
مربع فاصله شهری بیشتتر است و در نتیجه میزان غیر دقیق تری می باشد. مجدداً از این میزان خطا
شکل ۳-۵ فاصله مربعی
آنچه در بالا آمد نگاه مختصری به انواع میان های فاصله بود گرچه این فهرست به هیچ وجه کامل نیست. مقصود بیان این نکته بود که روشهای متعددی برای اندازه گیری درجه نزدیکی وشباهت بردارها وجود دارد. در بخش بعدی مجدداً تابع ممیز را مورد بحث قرار داده واز محدوده های تصمیم برای جدا کردن بردارها استفاده می کنیم.
۳-۸ دستگاه های طبقه بندی خطی
طبقه بندی خطی یکی از روشهای بازشناسی الگو است که در مبحث شبکه های عصبی دائماً با آن روبه رو می شویم .ابتدا توضیح مختصری در مورد دستگاههای طبقه بندی خطی ارائه می دهیم و کاربرد آنها را در بازشناسی الگو بررسی می کنیم. سپس سعی می کنیم مسئله جدایی پذیری غیر خطی را حل کنیم. مسئله ای که تحقیقات شبکه های عصبی را از سال های ۱۹۶۰ تا سال های اخیر به رکود کشیده بود.
بحث گذشته درباره نحوه تقسیم فضای الگو به وسیله توابع ممیز را ه را برای بحث جدید هموار کرده است. مجدداً مسأله ساده دو بعدی ودو طبقه ای شکل ۳-۱ را موردنظر قرار دهید. هدف طبقه بندی بردارهای ورودی به دو طبقه a و b می باشد. دیدیم که چگونه می توان فضای الگو را به وسیله یک محدوده تصمیم خطی جدا کرد.لیکن به چه طریق می توان خط محدوده را در عمل با وجود داده های واقعی به دست آورد ومحل آن را تعیین نمود؟
در شکل ۳-۶ فضای الگو را همراه با بردار جدیدی نشان داده ایم. این بردار را بردار وزن ها ، w ، می نامیم. از جهت این بردار برای نشان دادن محدوده تصمیم خطی استفاده خواهد شد.
محدوده تصمیم تابع ممیز f(x) را به صورت زیر تعریف می کند:
F(x) =
= xi عضو I ام بردار ورودی ،=w عضوبردار I ام بردار وزن ها، و = n ابعاد بردار ورودی خروجی این تابع برای هر بردار ورودی یا مثبت است یا منفی که بستگی به مقدار بردار وزن ها وبردار ورودی دارد. اگر فرض کنیم مقدار خروجی مثبت نشان دهد که بردار متعلق به طبقه
شکل ۳-۶ جدا کردن طبقه ها توسط یک محدوده تصمیم خطی .
a می باشد ومقدار منفی نمایانگر طبقه b باشد آن گاه برای طبقه بندی هر بردار کافی است به علامت f(x) نگاه کنیم. بدین صورت:
اگر ۰ f(x)> آنگاه طبقه a
اگر ۰f(x) < آنگاه طبقه b
مسأله در واقع یافتن بردار وزن های مناسب است که برای تمام ورودی های طبقه های b وa جواب صحیح بدهد. اگر با استفاده از جبر خطی تابع ممیز را بسط دهیم ارتباط مقدار خروجی تابع و بردار وزن به روشنی معلوم می شود.
F(x) =
که پس از بسط می تواند به صورت زیر نوشته شود.
)- F(x) = (\w\.\ x\
در حالی که زاویه بین بردارهای x وw است.
مقدار cos بین 1+ و 1- تغییر می کند. در نتیجه مقدار بیش از 90 درجه بین بردار وزن ها وبردار ورودی علامت f(x) را تغییر می دهد. این امر به وشنی نشان دهنده محدوده تصمیم خط راست است زیرا نقطه تغییر علامت در 90+ و90- درجه می باشد. می بینینم که تابع فوق در واقع محدوده تصمیمی را معین می کند لیکن هنوز محل این محدوده و عناصر بردار وزنها را نمی دانیم.
دو پارامتر محل قرار گرفتن محدوده تصمیم را در فضای طرح کنترل می کند. یکی شیب خط و دیگری محل تلاقی خط با محور y ها (مطابق هندسه معمول خطوط راست). شیب خط در واقع به وسیله اندازه بردار وزن ها تعیین می گردد. این موضوع را می توان با بررسی نقطه تغییر جهت یعنی شرایط مرزی که مقدار خروجی تابع طبقه بندی صفر است به خوبی مشاهده کرد.
در این جا داریم:
با مقایسه این معادله ومعادله خط راست (y = mx +c) مشاهده می شود که شیب خط به وسیله نسبت و محل تلاقی خط با محور y ها به وسیله مقدار کنترل می شود.
تا این جا ثابت کرده ایم که اگر مقدار صحیح بردار وزن ها را بدانیم می توانیم فرایند تمیز دادن بردارها را به خوبی انجام داده ومحل محدوده تصمیمرا تعیین کنیم. آن چه هنوز نشان نداده ایم این است که چگونه می توان مقدار بردار وزنها را به دست آورد.متأسفانه این امر ساده ای نبوده و اکثراً این خط را به وسیله روش های تکراری آزمون و خطا و اصلاح مقدار وزن ها با استفا ده از نوعی تابع خطا 1 به دست می آورند. تابع خطا معمولاً خروجی دستگاه طبقه بندی را با جواب مطلوب مقایسه کرده و اختلاف را به نحوی نشان می دهد. اگر کاربرد تابع ممیز را در یک مسأله طبقه بندی منطقی دوگانه در نظر بگیریم ابعاد این مسأله روشن تر می شود. اگر بردار ورودی از n عنصر صفر و یک تشکیل شده باشد تعداد طرح های ورودی برابر n2خواهد بود. برای تقسیم این طرح ها به انواع ممکن شاخه های دوگانه به صورت بالقوه تعداد n22تابع ممیز وجود خواهد داشت. لیکن دستگاه های طبقه بندی خطی فقط قادر به تعدادی از تقسیم بندی های دو شاخه ای هستندـ گروهی که در واقع جدایی پذیر خطی هستند. مسئله جدایی پذیری خطی موضوعی است که به طور تنگاتنگ، به تاریخچه تحقیقات شبکه های عصبی مربوط می باشد. در حال حاضر مسأله ای را «جدایی پذیرخطی» تعریف می کنیم که تنها به وسیله یک فوق صفحه بتوان محدوده تصمیم را به دو گروه طبقه بندی کرد.
مثالهایی که تاکنون آوردیم تنها دستگاههای خطی بودند که می توانستند فقط طبقه را جداکنند. در عمل می توان دستگاههای طبقه بندی خطی را طرح کرد که بتواند بیش از دو طبه را از یکدیگر تمیز دهند. این عمل را با تنظیم محدوده های تصمیم متعدد و آزمونهای چندگانه براساس شرایط موجود هر طبقه انجام می دهیم. به عنوان مثال ، در یک مسأله چهار طبقه ای (a,b,c,d) ابتدا محدوده تصمیمی را برای تمیز دادن طبقه a از (b,c,d) وسپس چنانچه در طبقه(b) نبود بین(c) و(d) در نظر می گرفتیم. به همین صورت برای مسائل طبقه بندی پیچیده تر سطوح محدوده تصمیم می تواندهمان طور که در شکل 3-7 آمده است به صورت جزء به جزء به قطعات متعدد تقسیم شود.
شکل 3-7 طبقه بندی خطی جزء به جزء برای طبقه بندی طرح های جدایی پذیر غیر خطی
در مسائل جدایی ناپذیر غیر خطی می توان حالات غیرخطی را همچنین با انجام یک عمل تبدیل در داده های ورودی قبل از طبقه بندی به وجود آورد. این تکنیک را ماشین می نامند. چنین پیش پردازش هایی قبل از طبقه بندی طرح ها توسط دستگاههای طبقه بندی امر معمول است. فرایند تبدیل به صورتی انتخاب می شود که بتواند طرحها را به کدهای جدیدی تبدیل کند به صورتی که قابل تفکیک توسط دستگاه طبقه بندی خطی باشند. اشکال عمده این روش آن است که می تواند کند باشد.
نتیجه گیری
در اینجا بحث ما درباره روشهای قطعی بازشناسی الگوها پایان می پذیرد. گرچه تا نقطه تکمیل مطلب فاصله بسیار است، امید می رود که این بحث زمینه اطلاعاتی کافی برای مباحث آینده ما درمورد روشهای محاسباتی شبکه های عصبی فراهم آورد.
فصل 4 : نرون پایه
4- 1مقدمه
همان طور که در فصل 1 به پیچیدگی ساختار مغز اشاره کردیم و گفتیم که مغز را میتوان به صورت مجموعه بسیار متصل و شبکهای از عناصر پردازشی نسبتاً ساده در نظر گرفت. به مدلی نیاز داریم که بتواند ویژگیهای مهم سیستمهای عصبی را کسب کند، به این منظور که بتواند رفتار مشابهی را از خود بروز دهد .
در و اقع فلسفه اصلی محاسبات شبکههای عصبی این است که با مدل کردن ویژگیهای عمده مغز و نحوه عملکرد آن بتوان کامپیوترهایی را ساخت که اگثر ویژگیهای مفید مغز را از خودنشان دهند .
هدف مدلسازی اصولاً ایجاد نمونه سادهتری از سیستم است ک رفتار عمومی سیستم را حفظ کرده و کمک کند که سیستم با سهولت بیشتر قابل درک باشد .
4-2مدل سازی نرون
نقش اصلی یک نرون بیولوژیک عمل جمع ورودیهای خود تا جایی است که مجموع ورودیها از حدی که به آن آستانه میگوییم تجاوز نکند و آن گاه تولید یک خروجی است .
بدنه سلول کلیه ورودیها را دریافت میکند و هنگامی که مجموع ورودیها از حد آستانه تجاوز کرد سیگنالی را آتش میکند . این نرون بیولوژیکی ساده در شکل 4-1 نشان داده شده است .
مدلی که از نرون میسازیم باید مشخصههای زیر را داشته باشد . به طور خلاصه :
خروجی تنها به ورودیها بستگی دارد. میزان ورودیها باید به حدی برسد که خروجی نرون را فعال سازد .
کارایی سیناپس در انتقال سیگنال های ورودی به بدنه سلول را می توان با استفاده از ضریبی که در ورودی های نرون ضرب می شود مدل سازی کرد .
شکل 4-1 مشخصات یک نرون بیولژیک.
با توجه به این مدل نرون بیولوژیک آنگاه که ما آن را به صورت مصنوعی پیاده سازی کنیم شکلی مانند شکل 4-2 خواهیم داشت.این مدل ابتدا مجموع وزنی ورودیهای خود را محاسبه کرده سپس آن را با سطح آستانه داخلی خود مقایسه میکندو چنانچه از آن تجاوز کرد فعال میشود . در غیر این صورت غیر فعال باقی میماند .چون ورودیها برای تولید خروجی از میان نرون عبور میکنند به این سیستم « پیش خور»1 میگوییم .
شکل 4-2 نمای مدل اصلی نرون.
این عمل را باید به طریق ریاضی نشان دهیم . اگر تعداد ورودیها n باشد آن گاه هر خط ورودی دارای یک ضریب وزنی مربوط به خود است .
ابتدا اولین ورودی را در ضریب وزنی مربوط به خط ارتباطی آن ورودی ضرب میکند . سپس همین عمل را برای ورودی دوم و سایر ورودیها تکرار میکند د رنهایت تمام مقادیر حاصل را جمع میکند . به طور خلاصه :
ورودی 1 * وزن مربوط به خط ارتباطی 1= مجموع ورودیها
...+ورودی2 * وزن مربوط به خط ارتباطی 2+
ورودی n * وزن مربوط به خط ارتباطیn +
حاصل جمع فوق باید با مقدار آستانه نرون مورد نظر مقایسه شود . در مقایسه با آستانه اگر حاصل جمع به دست آمده از میزان آستانه تجاوز کند آنگاه خروجی نرون مساوی ((1)) خواهد بود و اگر کمتر باشد مساوی صفر می شود.
دو راه کار دیگر برای رسیدن به این منظور وجود دار د:
1- حد آستانه را از حاصل جمع ورودی کم کنیم ،اگر حاصل + بود نرون 1 و اگر – بود نرون صفر تولید کند.
2- حذف کامل حد آستانه و اضافه کردن ورودی با مقدار ثابت 1 که این ورودی همیشه فعال باقی خواهد ماندو ضریب وزنی آن مقدار منفی حد آستانه می باشد.
اگر خروجی را y بنامیم، رابطه زیر راه کار اول را بیان میکند .
در حالی که fh یک تابع پلکانی است ( در واقع این تابع را تابع «هوی ساید»1 مینامند) و
بدین صورت منظور ما برآورده میشود . دقت کنید که خروجی تابع تنها مقادیر 1 و 0 است . به عبارت دیگر نرون یا فعال است یا غیر فعال.
اگر از راه کار دوم یعنی احتساب تورش استفاده کنیم، ورودی دیگری را با شماره 0 انتخاب کرده و مقدار آن را همیشه برابر 1 قرار میدهیم. در این صورت ضریب وزنی ورودی جدید برابر با مقدار تورش خواهد بود . تابع فوق به صورت زیر در خواهد آمد :
دقت کنید که حد زیرین علامت زیگما از 1 به 0 تغییر کرده و مقدار x0 همیشه برابر با 1+ خواهد بود .
مدل نرون در سال 1943 توسط مک کولو و پیتس پیشنهاد شده است . مدل آنها وسیلهای بسیار ساده است که مجموع وزنی ورودیهای خود را برای تعیین خروجی با آستانه مقایسه میکند. مدل هیچ اهمیتی به ساختار پیچیده و زمان بندی فعالیت نرونهای واقعی نمی دهد و دارای هیچ کدام از ویژگیهای پیچیده نرونهای بیولوژیکی نیست . به همین دلیل است که آن را یک مدل و نه یک نسخه تکراری از نرون بیولوژیک مینامیم و میتوان آن را در یک کامپیوتر دیجیتال پیاده کرد .
نرون های مدل ،که به صورت ساده به یکدیگر متصل اند ،در سال Frank Rosenblatt 1962
به نام پرسپترون1 نامگذاری شد. او برای نخستین بار نرونهای مدل را در کامپیوترهای دیجیتال شبیه سازی کرد و آنها را به طور رسمی تحلیل نمود .
او اعتراف کرد که مدل مذکور به هیچ وجه دقیق سیستمهای عصبی نمیباشد. به عبارت دیگر او از ابتدا آگاه بود با مدلی پایه روبه رو است .
4-3 فراگیری در نرونهای ساده
ما به شیوهای برای فراگیری در مدلهای نرون خود نیازمندیم. اتصال این نرونهابه یکدیگر شاید شبکههایی را ایجاد کند که بتواند کاری را انجام دهند ، لیکن برای انجام کاری مفید باید بتوانیم به طریقی آنها را آموزش دهیم . آنچه این مدلها را قابل استفاده میکند توانایی آنها در فراگیری است . همچنین، برای سهولت درک مدلها روشهای فراگیری باید تا حد امکان ساده باشند .
کودکان اغلب برای کسب نتایج خوب ریاضی تشویق میشوند ، و برای عبور از خیابان بدون توجه به اطراف سرزنش میکردند . به سگها برای اطاعت از فرمان تکههای غذا میدهند. به طور کلی، رفتار خوب تشویق میشود و رفتار بد سرزنش میگردد. همین شیوه را میتوان در شبکههای مصنوعی نیز به کار گرفت. اگر دو گروه از اشیاء داشته باشیم مثلاً گروهی از شکلهای نوشته شده مختلف A و گروهی از شکلهای نوشته شده مختلف B ، شاید مایل باشیم نرون مورد نظر ما A ها را از B ها تمیز دهد . شاید بخواهیم نرون ما با مشاهده یک A عدد 1 را بیرون دهد و با دیدن B عدد صفر را .
اصل راهنما آن است که به نرون اجازه دهیم از اشتباهات خود بیاموزد. اگر جواب همراه با خطا باشد میخواهیم احتمال این خطا را در آینده کم کنیم و اگر جواب صحیح باشد وضع را تغییر نمیدهیم . اگر در ابتدا ضرایب وزنی خطوط ارتباطی نرون را به طور تصادفی تعیین کنیم عین در واقع حالت شروع بوده و نرون هیچ نمیداند ، آن گاه میتوانیم یک حرف A را به نرون وارد کنیم ،نرون مجموع وزنی ورودیهای خود را محاسبه میکند و با مقدار آستانه مقایسه میکند. چنانچه مقدار محاسبه شده از آستانه بیشتر باشد نرون جواب 1 و در غیر این صورت خروجی صفر خواهد داد . احتمال این که به طور تصادفی جواب صحیح باشد 50% است ،زیرا ورودیهای نرون تنها به طور تصادفی میتوانند از مقدار آستانه تجاوز کنند . فرض کنید نرون جواب صحیح بدهد . در این صورت نیاز به هیچ اقدامی نیست زیرا مدل موفق بوده است . ولی اگر جواب صفر بود باید مجموع وزنی را افزایش دهیم به صورتی که بار دیگر که با حرف A رو به رو شد جواب صحیح 1 بدهد . این عمل را با افزایش ضرایب وزنی خطوط ارتباطی نرون انجام میدهیم . بنابراین برای تشویق احتمال حصول جواب 1 وزنها را افزایش میدهیم .
برای حرف B مایلیم که نرون عدد صفر را تولید کند . یعنی مایل هستم که مجموع وزنی ورودیها از مقدار آستانه کمتر باشد . بنابراین هر گاه نرون با حرف B رو به رو شد مایل خواهیم بود که ضرایب وزنی آن را کاهش دهیم تا مجبور گردد در آینده با مشاهده حرف B عدد صفر را تولید نماید.
این بدان معنی است که برای فراگیری شبکه باید زمانی که مایلیم نرون فعال باشد ضرایب وزنی را افزایش داده و آن گاه که مایلیم نرون غیر فعال باشد ضرایب را کاهش دهیم .
این قاعده فراگیری شکل دیگری از قاعدهای است که در سال 1949 توسط دونالد هب ارائه شده و بنابراین به قاعده فراگیری هب1 معروف میباشد. در شکل جزئی تغییر یافته از قانون هب که ما استفاده میکنیم خاصیت تغییر دادن انحصاری خطوط ارتباطی فعال حفظ شده است ، لیکن این خطوط هم تقویتت و هم تضعیف میشوند . این عمل را به این دلیل میتوانیم انجام دهیم که نتایج مورد نظر را از قبل میدانیم و بنابراین مشاهده میکنیم که به کدام سمت باید ضرایب وزنی را تغییر دهیم . چون این فراگیری از طریق در دست داشتن نتیجه مطلوب راهنمایی میگردد به این نوع آموزش «فراگیری با سرپرست» میگوییم .
شیوه یادگیری ما میتواند به صورت زیرخلاصه شود :
●ضرایب وزنی و مقادیر آستانه را به طور تصادفی تعیین کنید .
●یک ورودی را به مدل ارائه دهید .
●مقدار خروجی را با توجه به مقایسه مجموع وزنی ورودیها و مقدار آستانه محاسبه کنید .
●ضرایب وزنی را برای تقویت تصمیمات درست و تضعیف تصمیمات نادرست تغییر دهید . به عبارت دیگر خطا را کاهش دهید.
●ورودی بعدی را به مدل ارائه دهید و ...
4-4 الگوریتم فراگیری پرسپترون
روش فراگیری که در بالا شرح داده شد را میتوان به صورت الگوریتم زیر نشان داد . این الگوریتم را میتوان برای ساختن شبکههای پرسپترون در کامپیوترها با هر زبان برنامهنویسی کد نمود .
الگوریتم فراگیری پرسپترون
1- ضرایب ومقادیر اولیه آستانه را تعیین کنید .
را به عنوان ضریب وزنی ورودی i در زمان t و را به عنوان مقدار آستانه خروجی در نظر بگیرید.مقدار w0 را برابر - و مقدار x0 را همیشه برابر 1 قرار دهید . (0≥ i≤n)
wi(0) را برابر مقادیر تصادفی کوچک قرار دهید، بدین صورت تمام وزنها و آستانهها را به حالت شروع درآورید.
2- ورودی وخروجی مطلوب را ارائه دهید .
ورودیهای xn,...x2,x1,x0 ، و خروجی مطلوب d(t) را به مدل ارائه دهید.
3- خروجی واقعی را محاسبه کنید .
4- ضرایب وزنی را تبدیل کنید .
) Wi (t Wi (t+1) = اگر خروجی صحیح بود.
Wi (t+1) =wi (t) +xi (t) اگر خروجی واقعی صفر و خروجی مطلوب 1 بود (طبقه A)
Wi (t+1) =wi (t)-xi (t) اگر خروجی واقعی 1 و خروجی مطلوب صفر بود (طبقه B)
توجه کنید که چنانچه جواب مدل صحیح باشد وزنها تغییر نمیکند . همچنین ضرایب وزنی آن دسته از خطوط که در جواب غلط مؤثر نمیباشد تغییر نمیکند ، زیرا مقادیر ضرایب آنها با مقدار ورودی خطوط که صفر میباشد جمع میشود و بنابراین بدون تغییر باقی میمانند .
این الگوریتم اصلی پرسپترون است . لیکن اصلاحات متعددی در این الگوریتم پایه پیشنهاد شده است . اولین صلاح وارد کردن عامل ضربی کوچکتر از یک در فرمول تغییر ضرایب وزنی است . این عمل باعث کند شدن سرعت تغییر ضرایب وزنی میشود و بدین صورت شبکه در گامهای کوتاهتری به جواب نزدیکتر میشود . این اصلاح قدم چهارم الگوریتم را به صورت زیر تغییر میدهد :
4- ضرایب وزنی را تعدیل کنید – شکل اصلاح شده
Wi(t+1)=wi(t) اگر خروجی صحیح بود .
xi(t) Wi(t+1)=wi(t)+ اگر خروجی واقعی صفر و خروجی مطلوب 1 بود . (طبقه A )
xi (t) Wi(t+1)=wi(t)- اگر خروجی واقعی 1 و خروجی مطلوب صفر بود . (طبقه B )
جایی که باشد عامل بازیابی مثبتی است که سرعت تعدیل را کنترل میکند .
الگوریتم مشابهی توسط ویدروهاف1 ارائه شده است . آنها به این نکته پی برده بودند که بهتر است هنگامی که اختلاف خروجی واقعی وخروجی مطلوب زیاد است ضرایب وزنی به میزان بیش تر و هنگامی که این اختلاف جزئی است به مقدار کمتر تعدیل گردد.. آنها قاعدهای را برای فراگیری به نام قاعده دلتای2 ویدور – هاف پیشنهاد کردند . این قاده اختلاف جمع وزنی و مقدار خروجی مطلوب را محاسبه میکندو آن را «خطا» مینامند. تعدیل ضرایب وزنی آنگاه به تناسب این خطا انجام میشود .
مقدار خطای را میتوان به صورت زیر نوشت :
جایی که d(t) خروجی مطلوب سیستم و y(t) خروجی واقعی است . این فرمول خود موضوع اضافه کردن یا کم کردن ضرایب وزنی را کنترل میکند ، زیرا اگر خروجی مطلوب 1 و خروجی واقعی صفر باشد ، و بنابراین ضرایب وزنی افزایش مییابد . به عکس اگر خروجی مطلوب 0 و خروجی واقعی 1+ باشد ، میشود و ضرایب وزنی تقلیل مییابند . توجه کنید که چنانچه تصمیم صحیح باشد وزنها تغییر نمیکنند زیرا d(t)-y(t)=0 .
الگوریتم فراگیری اصولاً مشابه بر پرسپترون اولیه است . تنها گام 4 الگوریتم پرسپترون به صورت زیر تغییر مییابد :
4- ضرایب وزنی را تعدیل کنید – قاعده دلتای ویدرو-هاف
xi(t) ∆ Wi(t+1)=wi(t)+
اگر ورودی از طبقه A،باشد 1+
اگر ورودی از طبقهB،باشد 0 d(t)=
جایی که باشد، عامل بازیابی مثبتی است که سرعت تعدیل را کنترل میکند . ویدرو نرونهایی را که از این الگوریتم استفاده میکردند آدالین1 ( نرونهای خطی قابل انطباق) نامید . او همچنین تعداد زیادی از آدالینها را به یکدیگر متصل کرد و آن ساختار را مادالین2 نامید.
راه کرد دیگری که پیشنهاد شده است استفاده از ارقام دو قطبی 31+ و 1- به جای دو تایی 1+ و صفر است . استفاده از ارقام دو تایی بدین معناست که خطوطی که ورودی آنها صفر است آموزش نمیبینید در حالی که استفاده از ارقام دو قطبی به تمام خطوط فرصت آموزش میدهد . این ابتکار ساده سرعت رسیدن به جواب را افزایش میدهد ، لیکن اغلب باعث سردرگمی در نوشتهها میشود زیرا عدهای از نویسندگان از ارقام دوتایی و عدهای از ارقام دو قطبی استفاده میکنند . در واقع هر دو روش یکسان هستند و استفاده از یکی یا دیگری به سلیقه شخصی بستگی دارد.
4-5 یک مثال ساده برای پرسپترون ساده.
شاید پرسپترون ها گسترده ترین تاثیر را بین شبکه های عصبی اولیه داشتند.قانون یادگیری پرسپترون از قانون Hepp قوی تر است . می توان شیوه یادگیری مکرر آن را برای نزدیکتر شدن وزن های صحیح اثبات کرد .
وزن هایی که به شبکه این امکان را می دهند که ارزش خروجی صحیح را برای هر کدام از الگوهای آموزشی(Training) ایجاد کند. یکی از فرضیات لازم این است که چنین وزن های وجود دارد .
پرسپترون دارای انواع مختلفی می باشند مانند , Minsky(1969) , Rosenblatt(1962) Papert(1988) .با اینکه بعضی از پرسپترون ها خود پرداز هستند اکثر آنها آموزش می بینند.
پرسپترون اصلی سه لایه نرون داشتند ، واحد حس ،واحد های وابسته و واحد واکنش )خروجی)
چیزی شبیه یک مدل تقریبی چشم .
یک پرسپترون ساده از فعال سازهای(ورودی ها) دودویی برای واحدهای وابسته و حسی استفاده می کند و یک فعال ساز 1-یا0،1+ برای واحد خروجی .
واحد حسی توسط اتصالات با اوزان ثابت به واحد های وابسته مرتبط می شوند. ارزش این اوزان 1-یا0،1+ می باشد . که به طور تصادفی تعیین می گردد. عملگر فعال سازی برای هر واحد وابسته یک عملگر دودویی با یک حد آستانه اختیاری اما ثابت .
بنابر این سیگنالی که از واحد وابسته به واحد خروجی فرستاده می شود یک سیگنال دودویی (1و0) می باشد.
خروجی پرسپترون y=f(y-in) می باشد.در حالی که عملکرد تابع فعال ساز اینگونه می باشد.
وزن ها از واحد های وابسته به واحد های واکنش (خروجی ) توسط قانون یادگیری پرسپترون تنظیم می شوند. برای هر ورودی آموزشی ،شبکه پاسخ واحد خروجی را محاسبه می کند . سپس شبکه مشخص می کند آیا خطایی برای این الگو رخ داده است که این کار با مقایسه خروجی محاسبه شده با مقدار هدف (target) انجام می دهد.
اگر خطایی برای یک الگوی ورودی آموزشی خاص رخ دهد ،وزن ها طبق این فرمول تغییر می کنند.
Wi(new)=wi(old)+α t x
در حالی که ارزش هدف( target) 1+یا 1- است و α میزان یادگیری است ،اگر خطایی رخ نمی داد ،وزن ها تغییر نمی کردند.
آموزش تا زمانی که هیچ خطایی رخ نمی داد ادامه پیدا می کند .
ساختار:
پرسپترون ساده برای طبقه بندی الگویی.
خروجی در این پرسپترون ساده یک بردار دودویی می باشد .آن بردار به عنوان سیگنال ورودی به واحد خروجی در بخشهای که در ادامه وجود دارند تلقی می شود .
از آنجایی که فقط امکان تنظیم وزنها از واحد های مرتبط به واحدهای خروجی وجود دارد ما بررسی خود را به بخش تک لایه شبکه که در شکل زیر نشان داده شده است محدود می کنیم.
بنابر این واحد های مرتبط همانند واحدهای ورودی عمل می کنند . هدف این شبکه طبقه بندی هر
الگوی ورودی می باشد که آیا به طبقه خاص تعلق دارد یا نه.
پاسخ 1+ واحد خروجی دلالت بر تعلق داشتن دارد و پاسخ 1- دلالت بر عدم تعلق دارد .
این شبکه آموزش داده می شود تا این طبقه بندی را به وسیله روش مکرر اجراء کند.
الگوریتم:
الگوریتم ارائه شده برای بردارهای ورودی دو قطبی و هم دودویی مناسب است .با یک هدف ( target) دوقطبی ،Ө ثابت و bias قابل تغییر .درابتدا Ө همانند عملگر گامی (قدم به قدم) عمل نمی کند. بنابراین هم یک bias وهم حد آستانه لازم است .در مورد نقش حد آستانه در ادامه بحث خواهد شد. این الگوریتم به طور خاص در برابر ارزش های اولیه اوزان یا میزان سرعت یادگیری حساس نمی باشد .
گام صفر: معرفی وزن ها و bias .
برای سهولت کار ابتدا وزن ها و bias را صفر کنید و سپس خطای یادگیری را در بازه 1≤α≥ 0 قرار دهید (معمولل برای سهولت کار α را می توان یک در نظر گرفت).
گام اول: اگر وضعیت توقف false بود گامهای 2 تا 6 را تکرار کن.
گام دوم: برای هر جفت یادگیری گام های 3 تا 5 را تکرار کن .
گام سوم: ورودی های واحد ورودی را وارد کن.
گام چهارم: خروجی را محسبه کنید.
Y_in = b+∑xi wi
1 if y_in >Ө
y = 0 if – Ө ≤ y_in ≤ Ө
-۱ if y_in <- Ө
گام پنجم : اگر خطا در این الگو بوجود آمد وزن ها و bias را تغییر دهید.
If y ≠ t (target)
Wi(new) = Wi(old)+ α t Xi ;
b (new)= b(old)+ α t ;
else
Wi(new)=Wi(old) ;
b(new)= b(old) ;
گام ششم : وضعیت توقف را تست کنید.(اگر وزنی در گام دوم تغییر نکرده است توقف نموده وگرنه ادامه بدهید).
توجه داشته باشید که فقط وزن های که واحد های ورودی فعال را مرتبط می کند(xi≠0 (به روز می شوند.
همچنین ،وزن ها فقط برای الگو های که ارزش صحیح y را ایجادنمی کنند ،به روز می شود.
این به این معنی است که هر چه الگوهای آموزشی بیشتر جواب صحیح ایجاد کند یادگیری کمتر رخ می دهد.این با آموزش Adeline که در آن یادگیری بر اساس تفاوت میانy-in وt است مغایرت دارد.در ابتدا عملگر فعال ساز برای واحد خروجی یک ارزش ثابت و نامنفی Ө است.
ما همواره به برداری نیاز داریم که دو ناحیه مثبت و منفی را از هم جدا کند .چنانچه این بردار رسم شود شبکه ما آموزش دیده است.
توجه داشته باشید که به جای یک خط جدا کننده ،ما یک خط داریم قسمت واکنش مثبت را از بخش
واکنش صفر جدا می کند .
W1x1 + w2x2 + b>Ө
و یک خط بخش واکنش صفر را از بخش واکنش منفی جدا می کند.
W1x1 + w2x2 + b<-Ө
کاربرد
عملکردهای منطقی
بیایید عملکرد منطقی AND را ب اورودی های دودویی و target دو قطبی در نظر بگیریم.
این مثال را با توجه به قانون یادگیری پرسپترون و اطلاعات بالا در نظر بگیرید.
یک شبکه تک لایه برای حل این مسئله کافی می باشد.برای سادگی α =1 ،وزن ها و bias را نیز برابر صفر می گیریم.ونیز برای توضیح نقش آستانه Ө=.2 مشخص می کنیم.تغییر وزن ها را زمانی انجام می دهیم که خطایی رخ دهد یا خروجی صفر باشد.
با ارائه اولین ورودی داریم:
WEIGHTS TARGET OUT NET INPUT
w1 w2 b x1 x2 b
1 1 1 1 0 0 1 1 1
معادله خطوط جدا کننده این قسمت بصورت زیر است:
X1+x2+1=.2 X1+x2+1=-.2
شکل نمودار آن به صورت زیر است :
حال با ارائه دومین ورودی بصورت زیر است:
WEIGHTS TARGET OUT NET INPUT
w1 w2 b x1 x2 b
0 1 0 -1 1 2 1 0 1
معادله خطوط جدا کننده این قسمت بصورت زیر است:
X2=.2 x2=-.2
شکل نمودار آن به صورت زیر است :
حاصل سومین ارائه به شرح زیر است :
WEIGHTS TARGET OUT NET INPUT
w1 w2 b x1 x2 b
0 0 -1 -1 1 1 0 1 1
تا زمانی که اجزای الگوی ورودی نامنفی و اجزای بردار وزن نامثبت باشند جواب شبکه منفی یا که صفر است.
برای تکمیل اولین دوره یادگیری ،چهارمین الگوی ورودی زیر ارائه می شود.
WEIGHTS TARGET OUT NET INPUT
w1 w2 b x1 x2 b
0 0 -1 -1 -1 -1 0 0 1
نتیجه تمام الگو های ورودی فوق که از وزن های فوق نشات می گیرد منفی است ،اما تا زمانی که جواب الگوی (1و1) صحیح نیست کار ما به پایان نرسید ه است.نتیجه دومین دوره یادگیری برای اولین الگوی ورودی که تغییر وزن های زیر را به همراه دارد به شرح زیر است :
WEIGHTS TARGET OUT NET INPUT
w1 w2 b x1 x2 b
1 1 0 1 -1 -1 1 1 1
معادله خطوط جدا کننده آن بصورت زیر است :
X1+x2= .2 x1+x2=-.2
شکل نمودار آن به صورت زیر است :
دومین ورودی در دومین دوره :
WEIGHTS TARGET OUT NET INPUT
w1 w2 b x1 x2 b
0 1 -1 -1 1 1 1 0 1
و معادله خطوط جدا کننده این مرحله به شرح زیر است :
X2-1=.2 x2-1=-.2
نمودار گراف آن به صورت زیر است :
حاصل سومین ورودی دوره دوم یادگیری به شرح زیر است :
WEIGHTS TARGET OUT NET INPUT
w1 w2 b x1 x2 b
0 0 -2 -1 -0 0 0 1 1
دوباره مشاهده می شود که نتیجه برای تمام ورودی های داده شده منفی می باشد.
برای تکمیل دومین دوره یادگیری چهارمین الگوی یادگیری را به قرار زیر شرح می دهیم :
WEIGHTS TARGET OUT NET INPUT
w1 w2 b x1 x2 b
0 0 -2 -1 -1 -2 0 0 1
در ادامه نتیجه دوره سوم به شرح زیر است :
WEIGHTS TARGET OUT NET INPUT
w1 w2 b x1 x2 b
1 1 -1 1 -1 -2 1 1 1
0 1 -2 -1 0 0 1 0 1
0 1 -2 -1 -1 -1 0 1 1
0 1 -2 -1 -1 -2 0 0 1
نتیجه دوره چهارم :
WEIGHTS TARGET OUT NET INPUT
w1 w2 b x1 x2 b
1 2 -1 1 -1 -1 1 1 1
0 2 -2 -1 0 0 1 0 1
0 1 -3 -1 0 0 0 1 1
0 1 -3 -1 -1 -3 0 0 1
دوره پنجم :
WEIGHTS TARGET OUT NET INPUT
w1 w2 b x1 x2 b
1 2 -2 1 -1 -2 1 1 1
1 2 -2 -1 -1 -1 1 0 1
1 1 -3 -1 0 0 0 1 1
1 1 -3 -1 -1 -3 0 0 1
دوره ششم :
WEIGHTS TARGET OUT NET INPUT
w1 w2 b x1 x2 b
2 2 -2 1 -1 -1 1 1 1
1 2 -3 -1 0 0 1 0 1
1 2 -3 -1 -1 -1 0 1 1
1 2 -3 -1 -1 -3 0 0 1
دوره هفتم :
WEIGHTS TARGET OUT NET INPUT
w1 w2 b x1 x2 b
2 3 -3 1 0 0 1 1 1
1 3 -3 -1 0 0 1 0 1
1 2 -4 -1 0 0 0 1 1
1 2 -4 -1 -1 -4 0 0 1
دوره هشتم :
WEIGHTS TARGET OUT NET INPUT
w1 w2 b x1 x2 b
2 3 -3 1 -1 -1 1 1 1
2 3 -3 -1 -1 -1 1 0 1
2 2 -4 -1 0 0 0 1 1
2 2 -4 -1 -1 -4 0 0 1
دوره نهم :
WEIGHTS TARGET OUT NET INPUT
w1 w2 b x1 x2 b
3 3 -3 1 0 0 1 1 1
2 3 -4 -1 0 0 1 0 1
2 3 -4 -1 -1 -1 0 1 1
2 3 -4 -1 -1 -4 0 0 1
دوره دهم :
WEIGHTS TARGET OUT NET INPUT
w1 w2 b x1 x2 b
2 3 -4 1 1 1 1 1 1
2 3 -4 -1 -1 -2 1 0 1
2 3 -4 -1 -1 -1 0 1 1
2 3 -4 -1 -1 -4 0 0 1
بدین گونه پاسخ مثبت با نقاط معادله زیر معین می شود .
2 x1 + 3 x2 - 4> .۲
خط مرز نیز به قرار زیر است :
X2 = -2/3 x1 = 7/5
بدین گونه پاسخ منفی با نقاط معادله زیر مشخص می شود :
۲ x1 + 3 x2 – ۴ < -.۲
خط مرز نیز به قرار زیر است :
X2 = - 2/3 x1 = 19/15
با رسم این خطوط در بردار فضا به دو قسمت صحیح تقسیم شده و در واقع شبکه ما آموزش
می بیند.
این گراف آخرین مرز تصمیم برای تابع AND در قاعده پرسپترون است.
فصل ۵ :نرون چند لایه
۵-۱ مقدمه
متاسفانه توانایی پرسپترون محدود است .قبلا گفته بودیم که پرسپترون در صورتی جواب را فرا می گیرد که اصولا جوابی وجود داشته باشد . برای بررسی این موضوع ملاحظه کنید که پرسپترون به دنبال خطی است که طبقه ها را تفکیک کند . پرسپترون به راحتی می تواند طبقه را که در دو سوی را(XOR)،ولی حالت های فراوانی وجود دارد که جدای طبقه بسیار پیچیده تراست . مثلا مورد
بگیرید . تابع منطقی دارای دو ورودی و یک خروجی است . خروجی آن تنها زمانی فعال است که تنها یکی از ورودی ها فعال باشد . لیکن اگر هر دو فعال یا هر دو خاموش باشند خروجی خاموش خواهد بود .
نشان دهیم جدول زیر بدست می آید.۰ و خاموش را با ۱چنانچه حالت فعال را با
X Y Z
۰ ۰ ۰
۰ ۱ ۱
۱ ۰ ۱
۱ ۱ ۰
فعال Xاین مسئله را می توانیم به این صورت بیان کنیم که پرسپترون باید در نهایت یاد بگیرد که اگر خاموش بود و یا بلعکس جواب۱ بدهد و اگر هر دو فعال یا خاموش بودند جواب صفر بدهد.Y و اگر خروجی های ۱ را + در نظر گرفته و خروجی های صفر را منفی در نظر بگیریم بردار زیر شکل می گیرد .
بدیهی است که هیچ خط راستی را نمی توانیم رسم کنیم که این دو محیط متفاوت را از هم جدا کند
.این نوع الگو را جدایی ناپذیر خطی می نامیم .پرسپترون تک لایه نیز قادر نخواهد بود چنین خطی
را رسم کند بنابر این نمی توان این گونه مسائل را با این روش حل کرد.ناتوانی پرسپترون در حل این مسئله ساده اولین بار توسط مینسکی وپاپرت بر ملا شد.نتیجه آن پرسپترون تک لایه با وجود سادگی مدل موفقیت های چشم گیری را از خود نشان داد و می تواند طبقات اشیاء را در صورتی که تفکیک پذیر خطی باشد مشخص کند .حال لازم است راهی برای رفع مشکل جدا ناپذیری خطی بدون از دست دادن ویژگیهای پرسپترون چاره ای اندیشید.رفع این نیاز اولین بار توسط رمل هارت و مک کللند۱ در سال ۱۹۸۶ ابداع شد و صورت جدیدی از مدل پرسپترون را با نام پرسپترون چند لایه ای۲ معرفی کرد.
در نرونهای لایه اول ورودیها همان ورودیهای اصلی شبکه خواهند بود ، ولی ورودیهای لایه دوم خروجی های لایه اول می باشند . این بدان معناست که پرسپترونهای لایه دوم نمیدانند که کدام یک از ورودی های اصلی فعال و کدام خاموشاند . آنها تنها نسبت به ورودی های خود که در واقع خروجیهای لایه اول هستند آگاهی دارند . چون فراگیری به معنی تقویت خطوط ارتباطی بین ورودیهای فعال و واحدهای نرون فعال است غیر ممکن است که بخشهای درست شبکه را تقویت کرد ، زیرا ورودیهای واقعی در واقع توسط لایه میانی از واحدهای خروجی پنهان شدهاند . حالت دو گانه فعال و خاموش نرونها هیچ اشارهای به میزان لازم جهت تنظیم ضرایب وزنی نمیکند و بنابراین آنها ممکن نیست . ورودیهای وزنی که نرون را کمی فعال میکند نباید به اندازه ورودیایی که نرون را کاملاً فعال میکنند تغییر کنند ، ولی هیچ اطلاعی از وضعیت آنها نداریم . به عبارت دیگر تابع پلکانی آستانهای اطلاعات لازم برای فراگیری شبکه را از میان میبرد . این مشکل را اصطلاحاً مسئله « تعیین سهمیه » مینامند، زیرا شبکه قادر نیست تمیز دهد که کدام یک از ضرایب وزنی ورودی را افزایش و کدام یک را کاهش دهد و بدین صورت نمیتواند تغییرات لازم را برای بهبود جواب در نوبتهای بعدی تعیین کند .
۵-۲ مدل جدید
پرسپترون جدید به صورت لایهای منظم شدهاند . طبیعتاً به آنها پرسپترون چند لایهای اطلاق میشود . ساختار کلی این مدل در شکل آمده است .
مدل جدیدی سه لایه دارد ، یک لایه ورودی، یک لایه خارجی، و یک لایه بین آنها که مستقیماً به دادههای ورودی و نتایج خروجی متصل نیست . در واقع این لایه را لایه پنهان مینامند . هر واحد در لایه پنهان و لایه خروجی مانند یک پرسپترون عمل میکند ، با این تفاوت که تابع استفاده شده به صورتی که درشکل نشان داده شده به جای تابع پلکانی تابع سیگموید است . واحدهای لایه ورودی صرفاً وظیفه توزیع مقادیر ورودی را به لایه بعدی بر عهده دارند و بنابراین هیچ محاسبهای را انجام نمیدهند . با تغییرتابع غیر خطی از صورت پلکانی به سیگموید و اضافهکردن یک لایه پنهان به ناچار باید قاعده فراگیری مدل را تغییر دهیم . مدل جدید ما باید توانایی تشخیص الگوهای پیچیدهتر را داشته باشد . بیایید قاعده جدید را با جزئیات بیشتری بررسی کنیم .
۵-۳ قاعده جدید فراگیری
قاعده فراگیری پرسپترون چندلایه را «قاعده کلی دلتا» یا «قاعده پس انتشار» گویند. این عناوین در سال ۱۹۸۶ توسط رومل هارت، مک کللند و ویلیامز پیشنهاد شد و این آغاز تولد دوباره شبکههای عصبی بود . بعدها معلوم شد که نتایج مشابهی نیز قبلاً در سال ۱۹۸۲ توسط پارکر منتشر شده و همچنی وربس در سال ۱۹۷۴ کار مشابهی انجام داده است . این طبیعت علم است . گروههای متفاوت در حوزههای وسیع نمی توانند از تمامی پیشرفتها در حوزههای دیگر مطلع شوند و در نتیجه تکرار تلاش ها گریز ناپذیر خواهد بود . به هر صورت این افتخار به آنها تعلق میگیرد که اولین گروهی بودند که نه تنها قاعده فراگیری پرسپترون را به طور مستقل کشف کردند بلکه با ترکیب آنها پرسپترون چند لایهای را ایجاد کرده و مورد مطالعه قرار دادند . کتاب آنها به نام « پردازیش توزیع شده موازی» هنوز یکی از مهمترین کتابهای این حوزه علمی است .
نحوه عمل پرسپترون چند لایهای مشابه پرسپترو تک لایهای است . بدین صورت که الگویی به شبکه عرضه میشود و خروجی آن محاسبه میگردد ، مقایسه خروجی واقعی و خروجی مطلوب باعث می گردد که ضرایب وزنی شبکه تغییر یابد به طوری که در دفعات بعد خروجی درست تری حاصل شود . قاعده فراگیری روش میزان کردن ضرایب وزنی شبکه را بیان میکند . دیدیم که قاعده ساده فراگیری پرسپترون تک لایهای در مورد پرسپترون چند لایهای کارگر نیست . لیکن استفاده از تابع سیگموند بدان معنی است که واحدهای میانی تا اندازهای نسبت به خروجی های مدل آگاهی دارند . به طوری که می توان ضرایب وزنی آنها را برای کاهش میزان خطا تنظیم کرد .
قاعده فراگیری پرسپترون چند لایهای قدری پیچیده تر از قاعده قبلی است . بهترین راه درک آن بررسی رفتار شبکه هنگام آموزش الگوهای عرضه شده میباشد . وقتی به شبکه آموزش ندیدهای الگویی را عرضه میکنیم ، خروجیای تصادفی تولید میکند . ابتدا باید تابع خطایی را تعریف کنیم که تفاوت خروجی واقعی و خروجی مطلوب را نشان دهد . برای موفق شدن در آموزش شبکه باید خروجی آن را به تدریج به خروجی مطلوب نزدیک کنیم . به عبارت دیگر باید میزان تابع خطا را به طور دائم کاهش دهیم . برای این منظور ضرایب وزنی خطوط ارتباطی واحدها با استفاده از قاعده کلی دلتا میزان می شود . قاعده دلتا مقدار تابع خطا را محاسبه کرده و آن را به عقب از یک لایه به لای پیشین آن انتشار میدهد. عبارت « پس انتشار» به این علت است . ضرایب وزنی هر مورد واحدهای لایه خارجی ساده زیرا خروجی واقعی و مطلوب آنها را می دانیم ، ولی در مورد لایه میانی چندان روشن نیست. این گمان میرود که ضرایب وزنی واحدهای پنهان که به واحدهای مرتبط آنها خروجی تقریباً صحیحی دارند تغییر یابد . در واقع ریاضیان نشان میدهد که ضرایب وادها باید به تناسب میزان خطای واحدی که به آن متصلاند تغییر کند . بنابراین میتوان با انتشار خطا به عقب ضرایب وزنی خطوط ارتباطی تمام لایهها را به درستی میزان کرد . به این طریق تابع خطا کاهش و شبکه آموزش مییابد .
۵-۴ـ الگوریتم پرسپترون چند لایهای
الگوریتم پرسپترون چند لایهای که از قاعده آموزش پس انتشار استفاده میکند در زیر شرح داده شده است . این الگوریتم به توابع غیر خطی نیاز دارد که به طور پیوسته قابل مشتقگیری باشند . به عبارت دیگر توابع باید هموار باشند . ما استفاده از تابع قابل مشتقگیری باشند . به عبارت دیگر توابع باید هموار باشند . ما با استفاده از تابع سیگموید، را به علت سادگی مشتق آن انتخاب کردهایک .
الگوریتم آموزش پرسپترون چند لایهای
۱٫ مقادیر اولیه ضرایب وزنی و آستانهها را انتخاب کنید .تمام وزنها و آستانه ها را برابر با اعداد کوچک تصادفی قرار دهید.
ورودیها و خروجی های مطلوب را به شبکه عرضه کنید .
۲٫ ورودی و خروجی هدف را به شبکه عرضه کنید تعداد عناصر بردارهای ورودی و مقدار عناصر بردارهای خروجی است . ضریب وزنی را برابر با منفی مقدار آستانه و مقدار قرار دهید . اگر مسئله مورد نظر ما مسئله تداعی باشد نمایانگر دو بردار تداعی شونده هستند . در مسئله طبقهبندی تمام عناصر برابر با صفر قرار داده میشود مگر یکی از عناصر که برابر با ۱ است و آن طبقه ای را نشان میدهد که در آن قرار دارد .
۳٫ خروجی را محاسبه کنید .
هر لایه مقادیر زیر را محاسبه کرده و به لایه بعدی انتقال میدهد .
۴٫ ضرایب وزنی را میزان کنید . ابتدا از لایه خارجی شروع کنید و به عقب برگردید
۵٫ نشان دهنده ضرایب وزنی از گره I به گره در زمان ضریب بهره و نمایانگر خطای مربوط به الگوی p در کره است .
در مورد واحدهای لایه خارجی
در مورد واحدهای لایه پنهان :
در حالی که عمل جمع در مورد واحد واقع در لایه بعدی از واحد صورت می گیرد .
۵-۵ـ بررسی مجدد مسأله یای حذفی (XOR)
در فصل گذشته دیدیم که پرسپترون تک لایهای قادر به حل مسئله یای حذفی XOR نیست. این مسئله که افشا کننده محدودیت پرسپترون تک لایهای بود ، خود به صورت معیاری برای ارزیابی و قضاوت در مورد عملکرد مدلهای مختلف شبکههای عصبی در آمده و بسیاری از ویژگی های پرسپترون چند لایهای توسط آن نمایان شده است . به یاد داریم که در مسئله یای حذفی مقصود حل مسئله طبقه بندی زیر است :
اولین آزمون پرسپترون چند لایهای این است که آیا می توانیم مدلی را بسازیم که مسئله یای حذفی را حل کند . شبکه ساختاری سه لایهای دارد، دو واحد در لایه ورودی (چون بردارهای ورودی دو عنصردارند )، یک واحد درلایه پنهان و یک واحد خروجی. ضرایب وزنی بر روی خطوط ارتباطی و مقادیر آستانه در داخل هر واحد نوشته شده است . تا جایی که به واحد خروجی مربوط می شود واحد پنهان با سایر واحدهای ورودی تفاوتی ندارد و آن هم تنها یکی از ورودیها محسوب میشود .
توجه کنید که مقدار آستانه ۵/۱ در واحد پنهان به این معنی است که این واحد نمیتواند فعال باشد مگر این که هر واحد و رودی فعال باشد . جالب است که رتفار شبکه را هنگام حل مسئله XOR مشاهده کنیم. وقتی هر دو ورودی خاموش باشد (۰ ۰)، واحد پنهان نیز خاموش است ، و هیچ مقدار ورودی خالص دریافت نمیکند. بنابراین خاموش میماند در این حالت واحد خروجی ورودی خالص ۱+ را دریافت میکنند که از حد آستانه آن تجاوز میکند . در نتیجه واحد خروجی فعال میشود . همین حالت نیز در صورتی که تنها واحد ورودی سمت راست فعال باشد (۱ ۰) ، اتفاق میافتد . وقتی هر دو واحد ورودی فعال باشند (۱ ۱) واحد پنهان مقدار ورودی خالص ۲+ دریافت می کند . این مقدار از آستانه واحد پنهان تجاوز میکند. در نتیجه واحد پنهان فعال می شود . در این صورت واحد خروجی از هر کدام از واحدهای ورودی مقدار ۱+ (مجموعاً ۲+) و از واحد پنهان مقدار۲- را دریافت میکند. در نتیجه مجموع ورودیهای خالص واجد خروجی صفر می شود که از مقدار آستانه آن کم تر است و در نتیجه خاموش می ماند خلاصه نتایج در جدول زیرآمده است :
با بررسی خروجی واحد پنهان در جدول فوق مشاهده میکنیم که این واحد به درستی تشخیص میدهد که در چه زمانی هر دو واحد ورودی فعال هستند ، چه تنها در این زمان است که این واحد فعال می شود . چون واحدهای ورودی شبکه مقدار ورودی های شبکه را عیناً تکرار میکنند بنابراین مجموع اطلاعاتی که به واحد خروجی ارسال می شود از سه ناحیه است . واحد ورودی سمت راست نشان می دهد که آیا آن ورودی فعال است یا نه، واحد ورودی سمت چپ نیز نشان میدهد که آیا آن ورودی فعال است یا نه، در این هنگام واحد پنهان بیان میکند که آیا آنها فعالاند یا نه. چون واحد خروجی واحد پنهان را همانند یکی از ورودی ها میپندارند الگوی ورودی ظاهری آن برای هر طبقه به اندازه کافی متمایز خواهد بود .
واحد پنهان مانند یک مشخصه یاب عمل میکند . او مییابد که در چه زمانی هر دو واحد ورودی فعالاند . به نظر میرسد که واحد پنهان بردارهای ورودی را کدگذاری مجددی می کند،به طریقی که شبکه بتواند ارتباط ورودیها را باخروجیها به درستی فراگیرد. این کدگذاری یا بازنمایی داخلی در نحوه عمل شبکه بسیار حیاتی است . با تعداد کافی واحدهای پنهان میتوان بازنمایی داخلی هر الگوی ورودی را به طریقی در شبکه شکل داد که واحدهای خروجی بتوانند در مقابل هر ورودی مورد نظر خروجی مطلوب آن را تولید کنند . قاعده کلی دلتا شیوهای را برای آموزش پرسپترون چند لایه فراهم میکند ، و با استفاده از واحدهای پنهان بازنمایی داخلی لازم را در شبکه ایجاد میکند . البته بعید است که ضرایب وزنی تولید شده توسط شبکه آموزش دیده به سادگی مثال فوق باشد ، لیکن اصول کار همان است. راه حل دیگری را برای مسئله XOR نشان میدهد .
پر سپترونهای چند لایهای در اندازه ها و شکلهای متفاوت ساخته می شوند ، در حالی که تماماً از قاعده فراگیری یکسانی پیروی می کند . به عبارت دیگر برای حل مسئله واحد میتوان ساختارهای متفاوتی را طراحی کرد، یکی از ساختارهای جالب هنگامی است که برخلاف مثال فوق ارتباط مستقیمی بین واحدهای ورودی و واحدهای خروجی نباشد . این حالت و حل نهایی مسئله XOR با این ساختار در شکل آمده است . واحد پنهانی سمت راست ابتدا تمیز میدهد که آیا هر دوواحد ورودی فعال هستند. در این صورت باعث میگردد که مقدار خروجی واحد خروجی صفر گردد . وقتی که تنها یکی از واحدهای ورودی فعال باشند ، واحد تنهایی سمت چپ باعث میگردد که مقدار خروجی واحد خروجی ۱ شود . وقتی که هر دو واحد ورودی خاموش (۰) باشند ، هر دو واحد پنهان خاموش میمانندو در نتیجه مقدار خروجی واحد خروجی صفر میشود .
متأسفانه قاعده فراگیری لزوماً همگرایی شبکه را تضمین نمیکند . فرآیند آموزش ممکن است . به حالتی در آید که نتواند به درستی خروجی های مطلوب را فراگیرد .
. واحد ورودی سمت راست هر دو واحد پنهان را فعال میکند . در نتیجه مقدار ورودی خالص واحد خارجی ۰٫۸ یعنی درست برابر با مقدار آستانه آن میشود . چون تابع آستانه سیگموید است خروجی آن دقیقاً برابر با ۵/۰ خواهد شد . این وضعیت پایدار است و با آموزشهای بیشتر تغییر نمی کند . چنین نقطه کمینه موضعی به ندرت (تقریباً در ۱% موارد) در حل مسئله XOR پیش میآید.
مسئله جزئی دیگری ممکن است در آموزش شبکهها با استفاده از قاعده کلی دلتا پیش آید . چون تغییر ضرایب وزنی متناسب با خود ضرایب است اگر در ابتدای شروع آموزش مقادیر ضرایب تماماًمساوی تعیین شود هرگز ضرایب نامساوی ایجاد نشده و شبکه به حالت نامتقارنی که احتمالاً مورد نیاز است منتهی نخواهد شد.
۵-۶ لایه های شکبه : Network Layers
معمولترین نوع شبکه عصبی مصنوعی شبکهای است که دارای ۳ لایه ورودی لایه پنهان در نهایتاً لایه خروجی میباشد که لایه ورودی به لایه پنهان به لایه خروجی . فعالیت واحد رودی تغزیه شدن اطلاعات خام (Data) را توسط شبکه نشان میدهد . فعالیت هر واحد پنهان توسط فعالیت واحد ورودی و وزنهایی که روی واحدهای ورودی و پنهان اعمال میشود، تعیین می شود .
رفتار واحد خروجی به فعالیت های واحد خروجی و وزن هایی که روی واحدهای نهایی و خروجی اعمال می شود ، بستگی دارد.
این نوع ساده از شبکه خیلی جذاب است زیرا لایه پنهان خود را واقعاً پنهان کرده است و مثل لایه ورودی قابل مشاهده نیست . وقتی واحد پنهان فعال باشد وزن ها بین واحد ورودی و وا حد پنهان تعیین میشود و واحد پنهان با اصلاح این وزنها میتواند آنچه را که باید نشان دهد را انتخاب کند سازمان دهی تک لایه ای (جایی که تمام واحدها به یکدیگرمتصل هستند ) دارای قدرت قابلیت بیشتری در محاسبه خطا نسبت به سازماندهی چند لایه ای است .
در سازمان دهی چند لایهای ، و احدها معمولاً توسط لایه ها شمارهگذاری می شوند بجای اینکه از یک شماره گذاری سراسری استفاده شود.
۵-۷معرفی جند شبکه:
۱ـ شبکههای عصبی پیش خور :
شبکههای عصبی مصنوعی پیشخور به سیگنالها اجازه میدهند به تنهایی در مسیر ورودی به خروجی حرکت کنند . خروجی هر لایهای هیچ تأثیری روی لایههای مشابه ندارد . شبکههای عصبی مصنوعی پیشخور تمایل دارند که بصورت شبکههایی تقسیم باشند تا بتوانند ورودی را به خروجی پیوند دهند از این شبکهها مکرراً برای شناخت و تشخیص الگوها استفاده میشود .
۲ـ شبکههای عصبی پس خور:
شبکههای پس خور میتوانند با مصرفی میسر (loops) در شبکه سیگنال ها را در هر دو جهت حرکت دهند . شبکههای پس خور خیلی قدرتمند هستند و میتوانند بسیار پیچیده باشند . این شبکهها پویا هستند آنها دائماً در حال تغییر هستند تا زمانی که به منتظر تعادل (equilibrium point) برسند . آنها در نقطه تعادل باقی میمانند تا زمانی که ورودی ها تغییر کنند و یا به تعادل جدیدی نیاز باشد . از شبکههای پس خور برای علامتگذاری و مشخصکردن اتصالات پس خور در سازماندهی تک لایهای استفاده میشود .
۵-۸ معرفی نمونه ای از توابع کلیدی
mse :
هدف از اجراو نمایش مسیر نامنظم و اشتباه سازگار و مستقر شده که از لحاظ مفهومی مجد و رومربع شده اند. ترکیب و هماهنگی قسمت های مختلف :
(E.X,PP) mse= Perf
(, PPشبکهE, )mse = Perf
(کد ) mse = info
توصیف و تشریح : mse یک هدف اجراو نمایش شبکه است که عملکرد و ایفای نقش شبکه را مطابق با مفهوم و معنای مسیرهای نامنظم و اشتباه اندازه گیری می کند . mse (E.X,PP) از یک تا سه استدلال و اثبات را مطرح می کند: ۱- E- ماتریکس یا درصف بطور منظم قراردادن بردارها و مسیرهای اشتباه و نامنظم. ۲ – X- بردار و خط سیر همه مقادیر نیرو و مسیرهای منحنی و متامیل ( به رسمیت شناخته نشده و رد شده ) ۳ – پارامترهای اجرا و نمایش PP- (به رسمیت شناخته نشده و رد شده ). و عملکردها و گزارشهای مسیرها نامنظم مربع شده عبارتند از :
۱-(, PPشبکهE, ) mse که می تواند یک استدلال و اثبات متناوب را برای Xمطرح کند. ۲- شبکه – شبکه عصبی از X که می تواند فراهم آورده شود. اطلاعات مفید عملکردهای (کد ) mse برای هر دسته کد عبارتند از : ۱- “drive” نام عمل و اجرای اشتقاقی ۲- “name” - نام کامل .۳-“pnames”- نامهای پارامترهای آموزشی۴- “pdefaults”– نقیصه پارامترهای آموزشی
مثالها :یک شبکه مستعد به تلاش که دارای دولایه است توسط یک ترادف و مجموعه ورودیهای ، Tansingیک عنصری از -۱۰-تا۱۰ چهار سلول پوشیده و پنهان شده . با تمام اجزاء خود و یک در قسمت افقی ستونها بوجود می آید. Purelin سلول خروجی
net (شبکه) = newff (]-10 10 ][4 1 [,]”tansing” , “purelin”[
۲- شبکه ای که با یک سری از ورودیهایP داده می شود دراین شبکه مسیر نامنظم و اشتباه توسط کسر کردن خروجی A از نشان و هدف T محاسبه می شود و سپس می توان mse را اندازه گرفت.
Perf = mse (e)
P= (-10 -5 0 5 10 ) ؛ T = ( 0 0 1 1 1 ) y = sim( شبکه , P) e = t-y
توجه کنید که mse می تواند نشان داده و مطرح شوند فقط با یک استدلال زیرا استدلالهاو اثباتهای دیگر به رسمیت شناخته نشده وا رد می شوند . mse از استدلالهای رد شده جهت تطبیق و برابری با لیست استدلال هدف اجرای و نمایش استاندارد شده حمایت و پشتیبانی میکند .
کاربرد استفاده از شبکه : شما میتوانید یک شبکه استانداردی را بوجود آورید که mse را به همراه newwf و newcf یا newelm استفاده میکند. برای مطرح سازی یک شبکه عادی و مرسوم باید آموزش با mse گرفته شود که در آن شبکه perform fcn با mse تنظیم و برآورد میشود که این امر بطور اتوماتیک شبکه performpayam را با ماتریکس خالی ] [ هماهنگ میکند، همنطور که mse هیچ پارارمتر اجرایی و نمایش ندارد . در هر دو حالت ، نشان دادن آموزش یا جور کردن و تبدیل کردن، نتیجه در mse برای نمایش و اجرای محاسبه استفاده خواهد
Tansig
تابع انتقال منحنی شکل تانژانت هیپربولیک
توجه : فرق تابع tansig وpurelin د راینست که purelin یک تابع انتقال خطی است ولی Tansig یک تابع انتقال منحنی شکل است .
tansig یک تابع انتقال است . توابع انتقال خروجی لایهها را از ورودی شبکه محاسبه میکند tansig (N) یک ورودی را میگیرد :
ماتریس از بردارهای ورودی شبکه Q*S – N و خروجی که برمیگرداند بین ۱- و ۱ است
Tansig(code) برای هر رشته کد حروفی مفیدی را به شرح زیر بر میگرداند :
تابع tansig بعد از تانژانت هیربولیک نامگذاری شده تانژانت هیپربولیک به احتمال زیاد دقیق است .
مثال : در اینجا با چند کد برای ایجاد کردن گرافی از تابع انتقال tansig مواجه میشویم :
کاربرد شبکه :Network use شما میتوانید شبکهای استاندارد ایجاد کنید که از tansig با فراخوانی newff یا newcf استفاده کند . برای تغییر هر شبکه هر لایه از tansig استفاده میکند .
”tansig “set net. layers {i,j}. transferFcn to
الگوریتم آن بصورت زیر است :n=2/(1+exp(-2*n)-1
tansig (N) خروجی اش برطبق فرمول زیر محاسبه میکند :
این فرمول دقیقاً برابر می باشد .
Purelin تابع انتقال خطی
یک تابع انتقال است . توابع انتقال خروجی یک لایه را از وردی شبکه محاسبه میکند . یک ورودی را میگیرد مثلاً ماتریس از بردارهای ورودی شبکه را بر میگرداند .
برای هر رشته که اطلاعات (خروجی) را برمیگرداند
آموزش شبکه
شبکه برای نخستین بار مقدار دهی می شوند، شبکه آماده آموزش دیدن Bias هنگامی که وزن ها و
می شود.می توان شبکه را برای نزدیکی(رگرسیون غیر خطی)،ارتباط الگویی،طبقه بندی الگویی آموزش داد.
وخروجی های pیک پروسه آموزش به یک سری از رفتار اصلی شبکه نیاز دارد- ورودی های شبکه
.Target (t)آن
شبکه پی در پی تنظیم می شوند تا خطای شبکه را به حد اقل برساند.biasدر جریان یادگیری اوزان
می باشد.Mse میانگین مجذور خطای Feedforward پیش فرض حاصل عملکرد برای شبکه
است.target و خروجی های a خطایی مجذور شده متوسط میان خروجی های
در ادامه این بخش چندین الگوریتم متفاوت آ'وزشی برای شبکه ها توصیف می شود.
تمام این الگوریتم ها از گرادیان حاصل عملکرد استفاده می کنند تا مشخص کنند که چگونه اوزان را تنظیم کنند که خطا به حد اقل برسد.
استفاده می کنند . که مستلزم محاسبات Backpropagation گرادیان با استفاده از روش باز انتشار
اجرایی برعکس در سراسر شبکه می باشد.
Backpropagation
تنوع زیادی دارد که Backpropagation اجرایی برعکس در سراسر شبکه می باشد.الگوریتم
بعضی از آنها را در این فصل توضیح می دهیم .
دو روش وجود دارد که الگوریتم گرادیان نزولی می تواند انجام دهد :
۱- شیوه فرایند ۲- شیوه گروهی .
updateدر روش فرایند بعداز اینکه هر ورودی به شبکه اعمال می شود گرادیان محاسبه شده و اوزان
می شود. updateمی شود . در روش دوم ، تمام ورودی ها به شبکه اعمال می شود سپس اوزان
در این قسمت فقط حالت دوم را توضیح می دهیم .
به روز bias در روش گروهی فقط زمانی اوزان و : (Batch training(train)یادگیری گروهی(
می شود که تمام دوره یادگیری به شبکه اعمال شده باشد . گرادیان های که در هر نمونه یادگیری تعیین کنند. ۰bias محاسبه می شوند با هم جمع شده تا تغییر را اوزان و
learndm :
نزول شیب با هدف یادیگیری نیرو و مسیرهای متمایل و منحنی گشتاور نیروی حرکتی آن .
توصیف و تشریح : learngdm نزول شیب با هدف یادیگیری نیرو مسیرهای متمایل و منحنی معلق به گشتاورنیرو و نیروی حرکتی آنی است.learngdm چندین ورودی را مطرح می کند که عبارتند از :
۱ـ w - ماتریکس نیروی SXR (یا بردار و مسیر منحنی و متمایل SX1 )
۲ـ P – بردارهای و مسیرهای ورودی PXQ ( یا (۱,Q) ones ).
۳ـ Z ـ بردارها و خط مسیرهای ورودی سنگین و دارای وزن زیاد SXQ .
۴ـ N ـ بردارها و مسیرهای ورودی شبکه SXQ .
۵ـ A ـ بردارها و مسیرهای خروجی SXQ
۶ـT ـ بردارها و مسیرهای هدف گیری کردن لایه SQX
۷ـ E ـ مسیرهای نامنظم و اشتباه لایه SXQ
۸ـ gw ـ شیب SXR با توجه اجرا و نمایش
۹ـ gA – شیب خروجی SXQ با توجه به اجرا و نمایش
۱۰ـ b ـ فواصل SXS
۱۱ـ LP ـ پارامترهای آموزشی و یادگیری به جزء LP=[ ]
۱۲ـ LS ـ مرحله و حالت یادگیری در ابتدا باید بصورت [ ] = باشد.
و عملکردهای مربوط به این ورودیهایی که توسط learngdm مطرح میشوند عبارتند از :
۱ـ dw ـ ماتریکس مبادله و تغییر نیروی SXR
۲ـLS ـ حالت یادیگری جدید . که البته یادگیری و آموزش مطابق با پارامترهای یادیگری و آموزش learngdm نشان داده شده در اینجا به همراه مقادیر نقیصه یادگیری جدید. که البته یادگیری و آموزش مطابق با پارامترهای یادگیری و آموزش learngmdm نشان داده شده د راینجا به همراه مقادیر نقیصه آنها اتفاق میافتد.
۳ـ سرعت آموزش و یادگیری LP.Ir-0.07-
۴ـ پیوستگی و پایداری نیروی حرکت و گشتاور نیرو LP.mc-0.9- د رنتیجه اطلاعات مفید عملکردهای (کد) learngdm برای هر دسته از کد عبارتند از
۱ـ”pnames “ – نامهای متعلق به پارامترهای آموزش و یادگیری
۲ـ ”pdefaults “ – نقیصه پارامترهای آموزش و یادگیری .
۳ـ”needg “- عملکردهای ۱ اگر این عمل از gW یا gA استفاده کند .
مثالها : در اینجا ما یک شیب تصادفی G را از یک ورودی دو عنصری به یک لایه سه سلولی با تمام اجزای خود میبرد را تعریف میکنیم . همچنین ما یک سرعت آموزش و یادگیری ۰٫۵ و پایداری و پیوستگی نیروی حرکت و گشتاور IP.mc0.8; IP.Ir=0.5; 0.8; gw.rand(2,3) را تعریف میکنیم زیرا lernedcm فقط به مقادیری از اینها نیاز دارد جهت محاسبه کردن که نیرو را تغییر میدهد (الگوریتم پایین را نگاه کنید ). ما از آنها نیز استفاده خواهیم کرد . ما از نخستین حالت تصفیه آموزش و یادگیری ۱s=[ ]; استفاده خواهیم کرد [dw,1s] = learndm ( [ ],[ ],[ ],[ ],[ ],[ ],[ ],gw,[ ],[ ],1p,1s ) عملکردهای learnegdm نیرو را تغییر میدهد و یک مرحله آموزش و یادگیری جدید بوجود میآورد
کاربرد شبکه :شما می توانید یک شبکه استانداردی را بوجود آورید که learndm را به همراه newcf,newff یا newelm استفاده می کند . برای آمادهسازی نیروها و مسیرهای لایه نادریک شبکه مرسوم و عادی نیاز به تطبیق و برابری learnydm است :
۱ـ شبکه adapt Fcn را با”trains “ تنظیم و برآورد کنید که در اینصورت شبکه adaptparamبطور اتوماتیک از نقیصه پارامترهای ”trains “ خواهد شد.
۲ـ هرشبکه input weights {i,j} و learn Fcn را با ”learndgm “ تنظیم و برآورد کنید . هر شبکه learn FCN.biases {i}”learndgm “تنظیم و برآورد کنید . هر نیرو و خاصیت پارامتر آموزش و یادگیری بطور اتوماتیک با پارامترهای نقیصه learngdm برآورد خواهد شد .
الگوریتم : learngdm حدود تغییرات نیروی dw را برای یک سلول با تمام اجزای خود از p و E مسیر نامنظم و اشتابه ، وزن و نیروی W ، سرعت آموزش و یادگیری LR و یادگیری LR و پایداری نیروی حرکت و گشتاور نیروی MC را مطابق با نزول شیب گشتاور محاسبه میکند .
dw=mc dwprev+(1-mc) Ir gw حدود تغییرات قبلی نیرو یعنی dwprev ذخیره میشود و از مرحله آموزش و یادگیری LS خوانده می شود .
Batch Gradient Descent (traingd)
شیب دار ترین تابع یادگیری traingd است .
وزن ها و bias در جهت منفی گرادیان به روز می شوند.اگر شما می خواهید شبکه را با استفاده از شدیدترین تنزل گروهی آموزش دهید ،باید شبکه trainFcn را به traingd تنظیم کنید .و سپس تابع یادگیری را احضار بنمایید . فقط یک تابع یادگیری برای این شبکه وجود دارد و هفت پارامتر یادگیری مربوط به traingd می باشد . که عبارتند از :
نقطه عطف ، نمایش ، هدف ، زمان ، min_grad, max_fail ، سرعت یادگیری.
سرعت یادگیری ( lr) را در منفی گرادیان ضرب مکند تا تغییرات وزن ها و bias را تعیین کند. هر چه میزان یاد گیری بیشتر باشد گام یادگیری بزرگتر است . اگر میزان یادگیری خیلی گسترده شود الگوریتم ناپایدار می شود .اگر میزان یادگیری به صورت جزئی در نظر گرفته شود زمان زیادی طول می کشد تا الگوریتم همگرا شود .
وضعیت یادگیری برای هر تکرار الگوریتم نمایش داده می شود دیگر پارامتر ها مشخص می کنند که چه زمانی یادگیری متوقف شود.
یادگیری در اثر:یادگیری طولانی تر از زمان (time seconds)باشد، بزرگی گرادیان کمتر از mingrad
باشد ، متوقف می شود .
اعداد آموزشی زیر با ورودی p و نتیجه t آماده یادگیری می باشد .
p = [-1 -1 2 2;0 5 0 5] ; t = [-1 -1 1 1] ;
Batch Gradient Descent with Momentum (traingdm).
در اینجا گروهی از الگوریتم های برای شبکه feedforward وجود دارد که همگرای سریعتر را فراهم می کنند.مقدار حرکت این اجازه را به شبکه می دهد تا تنها در مورد گرادیان های محلی واکنش ندهد.moment ها لین اجازه را به شبکه می دهند تا در مورد خطا ها سطحی بی تفاوت باشند .بدون moment ها امکان نفوذ به داخل شبکه کمتر می شود.
One Step Secant Algorithm (trainoss)
از زمانی که الگوریتم BFGS برای ذخیره سازی و حساب رسی در مورد هر یک از تکرار ها با استفاده از تعامل گرادیان ها الگوریتمی مورد نیاز شد نیاز به یک تقریب متقاطع با ذخیره سازی کوچکتر احساس می شد.اولین روش آن (oss) می باشد که به عنوان فاصله میان الگوریتم گرادیان و الگوریتم quasi-Newton به حساب می آمد .این الگوریم به طور اختصاصی و به صورت تنها در یک ماتریس ذخیره نمی شود . اینطور فرض می شود که در هر یک از تکرار ها یک ماتریس مشخص ایجاد می شود .این روش یک مزیت اضافه بر مسیر جستجوی جدید دارد که بدون محاسبه ماتریس معکوس می باشد .
پارامتر های آموزش trainoss مشابه traincgf می باشد .
Powell-Beale Restarts (traincgb)
مسیر جستجو به صورت دوره ای برای هدایت گرادیان ها آغاز می شود .رئش های آغلز دیگر نیز وجود دارد .یکی از این روش ها توسط (powell ) اختراع شده است .او بر اساس نسخه اولیه (beal) شکل گرفته است .
آموزش با traincgd به مانند آموزش با traincgf می باشد.خط جستجو از پیش تعیین شده است .پارامتر های نمایش داده شده و مبداء آغازی با ارزش برابر برای traincgd بنیاد نهاده شده است .
ما در این بخش فقط تعدادی از توابع و الگوریتم ها را برای نمونه توضیح مختصری دادیم .برای کسب اطلاعات بیشتر می توانید help به نرم افزار MATLAB مراجه کنید .
۵-۹ بررسی یک مثال عملی :
با توجه به بررسی و توضیح بعضی از توابع و الگوریتم های پرسپترون که در با لا توضیح داده شد، اینک با ارائه یک مثال عملی به بررسی پارامتر های مانند زمان یادگیری ، گام یادگیری ، میزان خطا و در نهایت نتیجه بدست آمده می پردازیم.
می باشد .که این نمدار را با Sinمثالی را که ما در اینجا پیاده سازی می کنیم در واقع رسم نمودار
استفاده از شبکه عصبی رسم می کنیم .در واقع ما با استفاده توابع و الگوریتم های شبکه عصبی به شبکه خود آموزش می دهیم تا بتواند این نمودار را رسم کند.وسپس با تغییر این توابع والگوریتمها
به بررسی نتایج بدست آمده توسط آنها می پردازیم .
توضیح در مودر الگوریتم:
Mysinخط صفر : ابتدا نام تابع خود را تعیین می کنیم (
قرار می دهیم.O را با تفاوت .۳/۰ تعیین می کنیم ودر pi تا -pi نقاط sinخط اول:
قرار بده.I را با تفاوت ۳/. در pi تا -piخط دوم: نقاط
خط سوم :نمودار ساده با نفاط بدست آمده را فقط برای باز شدن دید کاربر رسم می کنیم.
تعریف می کنیم.که در آن ۱۰ نرون نهان newff را از نوع شبکه عصبی Net خط چهارم :متغییر
می باشند.purelin و tansingو یک نرون لایه خروجی فرار دارد که به ترتیب دارای توابع
این دستور یک سری ورودی را به شبکه داده و خروجی را استخراج sim(simulate) خط پنجم :
می گزارد.(با توجه به اوزان اولیه و قبل از مرتب شدن وزن ها).H کرده در پارامتر
این نمودار اولیه در خط پنجم را رسم می کند.Plot خط ششم :دستور
خط هفتم : تعداد خط یادگیری را مشخص می کنیم.
خط هشتم : میزان خطا اندازه گیری شده را مشخص می کنیم .
آموزش می دهیم .O و خروجی iخط نهم : شبکه را با ورودی
خط دهم : با توجه به آموزشی که شبکه دید مختصات نقاط دیگر را نیز مشخص می کنیم.
خط یازدهم :نمودار را رسم می کنیم .
الگوریتم :
function mysin%(o,i)
o=sin(-pi:0.3:pi);
i=-pi:0.3:pi;
plot(i,o,'+');
net=newff([-pi pi],[10 1],{'tansig' 'purelin'}, 'trainlm','learngdm','mse');
h = sim(net,-pi:0.01:pi);
plot (-pi:0.01:pi,h);
net.trainParam.epochs =400;
net.trainParam.goal = 1e-10;
net = train(net,i,o);
h = sim(net,-pi:0.01:pi);
plot (-pi:0.01:pi,h);
نتایج زیر حاصل می شود.Matlabبعد از پیاده سازی عینی الگوریم بالا در نرم افزار
خط چهارم الگوریتم تغییر کرده و نتایج زیربدست می آیدTansig با تابع Purelin با تعویض تابع
net=newff([-pi pi],[10 1],{'tansig 'tansig'}, 'trainrp','learngdm','mse');
با تغییر خط چهارم الگوریتم به صورت زیر نیز نتایج به اینگونه حاصل می شود.
net=newff([-pi pi],[10 1],{'logsig' 'purelin'}, 'trainrp','learngdm','mse');
تغییراتی را که در بالا مشاهده کردید چند نمونه تعویض توابع داخل نرونی وتاثیرات حاصل آنها بود. اینکه با تغییر الگوریتم های یادگیری به بررسی تغییرات آنها می پردازیم .
خط چهارم الگوریتم را به صورت زیر تغییر می دهی و نتایج به اینگونه حاصل می شود.
net=newff([-pi pi],[10 1],{'tansig' 'purelin'}, 'traingd','learngdm','mse');
منابع
آشنایی با شبکه های عصبی /آر.بیل وتی.جکسون/ دانشگاه صنعتی شریف
شبکه های عصبی مصنوعی /رابرت جی . شالکف/دانشگاه شهید چمران اهواز
دانشگاه شیراز FUNDAMENTALS OF NEURAL NETWORKS
WWW.GOOGLE.COM
فهرست
۱ فصل ۱ : مقدمه
۱ ۱-۱ انسان و کامپیوتر۱
۴ ۱-۲ ساختار مغز
۷ ۱-۲-۱ یادگیری در سیستمهای بیولوژیک
۷ ۱-۳ تفاوت ها
۱۰ فصل ۲ : نگرش کلی به شبکه های عصبی مصنوعی
۱۰ ۲-۱ تعریف شبکه های عصبی
۱۱ ۲-۲ مفاهیم اساسی شبکه های عصبی
۱۳ ۲-۳ معرفی اصطلاحات و علائم قراردادی
۱۵ ۲-۴ کاربردهای محاسبات عصبی
۱۶ ۲-۵ کاربردهای نمونه شبکه های عصبی مصنوعی
۱۷ ۲-۶ فواید و معایب شبکه های عصبی مصنوعی
۱۸ ۲-۷ معیارهای مهندسی به منظور محاسبات عصبی
۱۹ ۲-۸ مراحل مهندسی سیستم ANN
۲۱ ۲-۹ توپولوژی شبکه و خصوصیات
۲۲ فصل ۳ : بازشناسی الگو
۲۲ ۳-۱ چشم انداز طرح شناسی
۲۲ ۳-۲ تعریف بازشناسی الگوها
۲۳ ۳-۳ بردارهای مشخصات و فضای مشخصات
۲۴ ۳-۴ توابع تشخیص دهنده یا ممیز
۲۵ ۳-۵ فنون طبقه بندی
۲۵ ۳-۶ روش طبقه بندی «نزدیکترین همسایه»
۲۷ ۳-۷ میزان های اندازه گیری فاصله
۳۱ ۳-۸ دستگاه های طبقه بندی خطی
۳۸ فصل ۴ : نرون پایه
۳۸ ۴-۱ مقدمه
۳۸ ۴-۲ مدل سازی نرون
۴۲ ۴-۳ فراگیری در نرونهای ساده
۴۵ ۴-۴ الگوریتم فراگیری پرسپترون
۴۸ ۴-۵ یک مثال ساده برای پرسپترون ساده.
۶۱ قصل ۵ : نرون چند لایه
۶۱ ۱-۵ مقدمه
۶۳ ۲-۵ مدل جدید
۶۴ ۳-۵ قاعده جدید فراگیری
۶۵ ۵-۴ الگوریتم پرسپترون چند لایه
۶۷ ۵-۵ بررسی مجدد مساله XOR
۷۰ ۵-۶ لیه های شبکه
۷۱ ۵-۷ معرفی چند شبکه
۷۱ ۵-۸ معرفی نمونه ای از توابع کلیدی
۸۱ ۵-۹ بررسی یک مثال عملی
وزارت علوم ، تحقیقات وفناوری
دانشگاه جامع علمی ـ کاربردی
مرکز آموزش عالی علمی صنعتی خراسان
آشنایی با شبکه های عصبی مصنوعی
استاد راهنما :
جناب آقای مهندس ابریشمی
تهیه کنندگان :
یگانه عبدالی
امیر حسین معظمی
تابستان ۸۴
محمدباقر حسین آبادی وب سایت شخصی محمدباقر حسین آبادی
بسیار مفید وعالی / از زحمت شما متشکرم
خیلی خوب بود مطالعه کردم اما فقط سخت بود…با تشکر