You are on page 1of 25

‫‪ .

3‬فصل سوم‪ :‬شﺒکه های عصﺒی‬

‫موضوعات این فصل‪:‬‬

‫مقدمه‬ ‫‪‬‬

‫معنای شبکه های عصبی‬ ‫‪‬‬

‫انگیزه های بیولوژیکی‬ ‫‪‬‬

‫تشابهات و انتظارات‬ ‫‪‬‬

‫تاریخچه و کاربرد‬ ‫‪‬‬

‫مدل ریاضی نرون‬ ‫‪‬‬

‫مدل تک ورودی و چند ورودی‬ ‫‪‬‬

‫ساختار شبکه های عصبی‪ :‬شبکه های یک و چند الیه‬ ‫‪‬‬

‫مقدمه‬

‫وجود مسائلی بدون راه حل یا به سختی قابل حل‪ ،‬حرکت از تحقیقات صرفا تئوری به تحقیقات کاربردی‪ ،‬توسعه تئوریک‬

‫سیستمهای دینامیکی هوشمند مدل آزاد مبتنی بر داده های تجربی که شبکه های عصبی جزو آنها هستند و استخراج‬

‫دانش نهفته در داده ها‪ ،‬از جمله عوامل ظهور هوش محاسباتی (محاسبات نرم) بوده است‪.‬‬

‫به شبکه های عصبی مصنوعی (‪ )ANN‬سیستمها هوشمند گویند ‪ ،‬چرا که بر اساس محاسبات روی داده های عددی یا‬

‫مثالها ‪ ،‬قوانین کلی را فرا می گیرند‪ .‬این سیستم ها در مدلسازی ساختار نروسیناپتیکی مغز بشر می کوشند‪ .‬البته‬

‫باید در نظر داشت در حال حاضر عدم کفایت دانش موجود بشر از فیزیولوژی عصبی محرز است‪ .‬به عبارت بهتر در این‬

‫زمان مغز بشر دست نیافتنی مینماید‪ .‬نکته بعدی این است که در هنگام صحبت از شبکههای عصبی مصنوعی تعیین‬

‫حدود انتظارات‪ ،‬امکانات و شباهتها ضروری است‪.‬‬

‫ساختار مغز‬

‫‪55‬‬
‫مغز سیستمی پیچیده دارای پردازش اطالعات با ساختار موازی است و با ‪ 2‬درصد وزن بدن‪ ،‬مصرف بیش از ‪ 20‬درصد‬

‫کل اکسیژن بدن را مصرف میکند‪ .‬مغز انسان با جمع آوری و محاسبه حجم عظیمی از اطالعات و سیگنالها هنگام فهم‬

‫این مطالب سروکار دارد‪ .‬محاسبات مغز در ساختاری کامال مغایر با ساختار کامپیوترهای امروزی هستند‪ .‬مغز اجتماعی‬

‫از نرونها محسوب می شود‪.‬‬

‫هر نرون بیولوژیکی‬ ‫‪‬‬

‫‪ o‬دارای پیچیدگی یک میکروپروسسور‬

‫‪ o‬سرعت محاسباتی به مراتب کمتر از میکروپروسسور است‪.‬‬

‫‪ o‬هر نورون امکان ذخیره اطالعات در خود و ارتباطات میان نرونها را دارد‪.‬‬

‫‪ o‬یادگیری در واقع ایجاد ارتباطات جدید میان نرونها و تنظیم ارتباطات موجود است‪.‬‬

‫در مقابل نرونهای طبیعینرونهای شبکه مصنوعی‬ ‫‪‬‬

‫‪ o‬جزیی از یک برنامه کامپیوتری یا تراشه های نیمه هادی‬

‫‪ o‬سرعتی بسیار باالتر از نرون بیولوژیکی (‪ 1،000،000‬برابر)‬

‫‪ o‬ولی فقط دارای کسری از توانایی باالی نرونهای بیولوژیکی‬

‫در این جزوه با شبکهای کوچک از نرونهای مصنوعی ساده که برای حل مسائل پیچیده آموزش پذیر هستند‪ ،‬آشنا‬

‫میشویم‪ .‬شبکه های عصبی تقریبزنهای عمومی (یونیورسال) توابع هستند‪.‬‬

‫مغز دارای ‪ 1011‬نرون با ‪ 1016‬ارتباط میان آنها‬ ‫‪‬‬

‫نرونهای حسی‪ ،‬محرک و ارتباطی‬ ‫‪‬‬

‫نکات مهم در محاسبات نرونی‪ :‬ترتیب نرونها و شدت سیناپسهای میان نرونها‬ ‫‪‬‬

‫ساختارهای عصبی در خالل یادگیری به وجود آمده و از بین می روند‬ ‫‪‬‬

‫بلوکهای ساختاری در هر دو شبکه مصنوعی و بیولوژیکی دستگاههای محاسباتی خیلی سادهای هستند‪.‬‬ ‫‪‬‬

‫نرونهای مصنوعی از سادگی بیشتری برخوردارند‪.‬‬ ‫‪‬‬

‫ارتباط های بین نورونها عملکرد شبکه را تعیین میکند‪.‬‬ ‫‪‬‬

‫دارای ساختار موازی‬ ‫‪‬‬

‫هدف اصلی این درس تعیین ارتباطهای مناسب جهت حل مسائل مشخص است‪.‬‬

‫‪56‬‬
‫انتظارات‬

‫‪ )1‬قابلیت یادگیری‬

‫شبکه عصبی طبیعی‬ ‫‪‬‬

‫‪ o‬شبکه عصبی سیستم کامال پیچیده و غیرخطی‬

‫‪ o‬توزیع خاصیت پردازش غیرخطی در کل شبکه‬

‫‪ o‬شبکه عصبی بدون قابلیت یادگیری با افزوده شدن یک مثال جدید توانایی خود را از دست می دهد‪.‬‬

‫قابلیت یادگیری یعنی توانایی تنظیم پارامترهای شبکه (وزنهای سیناپتیکی) در مسیر زمان که محیط شبکه‬ ‫‪‬‬

‫تغییر میکند و شبکه شرایط جدید را تجربه میکند‪ ،‬با این هدف که شبکه بتواند با آموزش مختصر برای‬

‫شرایط جدید نیز کارآمد باشد‪.‬‬

‫‪ )2‬پراکندگی اطالعات‬

‫پردازش اطالعات به صورت متن‬ ‫‪‬‬

‫هر نرون متاثر از فعالیت سایر نرونها (هر وزن مریوط به همه ورودیها)‬ ‫‪‬‬

‫اگر بخشی از نرونهای شبکه حذف شوند یا عملکرد غلط داشته باشند‪ ,‬باز هم احتمال رسیدن به پاسﺦ صحیح‬ ‫‪‬‬

‫وجود دارد‪.‬‬

‫‪ )3‬قابلیت تعمیم‬

‫آموزش شبکه با مثالهای اولیه‬ ‫‪‬‬

‫ارائه خروجی مناسب در مقابل ورودیهای آموزش داده نشده‬ ‫‪‬‬

‫فرایند درونیابی‬ ‫‪‬‬

‫‪57‬‬
‫شبکه تابع را یاد می گیرد‪ ،‬الگوریتم را می آموزد و یا رابطه تحلیلی مناسبی برای نقاطی در فضا به دست می‬ ‫‪‬‬

‫آورد‪.‬‬

‫‪ )4‬پردازش موازی‬

‫پاسﺦ همزمان سلولهای قرار گرفته در یک تراز به ورودیهای آن تراز‬ ‫‪‬‬

‫افزایش سرعت پردازش‬ ‫‪‬‬

‫توزیع وظیفه پردازش بین پردازنده های کوچکتر مستقل‬ ‫‪‬‬

‫‪ )5‬مقاوم بودن‬

‫رفتار مستقل هر سلول‬ ‫‪‬‬

‫تصحیح خطاهای محلی در یک روند همکاری‬ ‫‪‬‬

‫افزایش قابلیت مقاوم بودن (تحمل پذیری خطا) در سیستم‬ ‫‪‬‬

‫تاریخچه‬
‫دیدگاه جدید شبکه های عصبی در دهه ‪ 40‬با استفاده از یک مدل منطقی توسط مک کلوث و والتر پیتز انجام‬ ‫‪‬‬

‫شد‪.‬‬

‫دونالد هب‪ ،‬ادامه راه پاولف در شرط گذاری کالسیک به عنوان خواص نرونها‬ ‫‪‬‬

‫در ‪ 1958‬شبکه پرسپترون توسط روزنبالت معرفی گردید‪ .‬این شبکه قادر به شناسایی الگوها بود‪.‬‬ ‫‪‬‬

‫در ‪ 1960‬توسط ویدرو ( دانشگاه استنفورد ) شبکه عصبی تطبیقی خطی آداالین با قانون یادگیری جدید بوجود‬ ‫‪‬‬

‫آمد که از لحاظ ساختار شبیه شبکه پرسپترون بود‪.‬‬

‫در ‪ 1969‬مینسکی و پاپرت کتابی نوشتند که محدودیتهای سیستمهای تک الیه و چند الیه پرسپترون را‬ ‫‪‬‬

‫تشریح کردند‬

‫در ‪ ،1972‬تئو کوهونن و جیمز اندرسون به طور مستقل شبکه های عصبی جدیدی با کارکرد عناصر ذخیره ساز‬ ‫‪‬‬

‫مطرح شدند‪.‬‬

‫دهه ‪ 80‬رشد تکنولوژی میکروپروسسورها و روند صعودی تحقیقات روی شبکه عصبی‬ ‫‪‬‬

‫ایده شبکه های بازگشتی با جان هاپفیلد ‪1982‬‬ ‫‪‬‬

‫الگوریتم پس انتشار خطا توسط راملهارت و مکلند ‪1986‬‬ ‫‪‬‬

‫‪58‬‬
‫کاربردها‬

‫طبقه بندی‪ ،‬شناسایی و تشخیص الگو‬ ‫‪‬‬

‫پردازش سیگنال‬ ‫‪‬‬

‫پیش بینی سریهای زمانی‬ ‫‪‬‬

‫مدلسازی و کنترل‬ ‫‪‬‬

‫بهینه سازی‬ ‫‪‬‬

‫سیستمهای خبره و فازی‬ ‫‪‬‬

‫مسائل مالی و بیمه‬ ‫‪‬‬

‫ساخت وسایل صنعتی و امور حمل ونقل‬ ‫‪‬‬

‫پزشکی‬ ‫‪‬‬

‫مدل ریاضی شﺒکه عصﺒی‬

‫مدل تک ورودی‬ ‫‪‬‬

‫شکل ‪ .19‬مدل ریاضی نرون‬

‫)𝑏 ‪𝑎 = 𝑓(𝑊𝑝 +‬‬

‫در این رابطه ‪ W‬شدت سیناپس‪ n ،‬ورودی خالص‪ f ،‬تابع تحریک و ‪ a‬سیگنال گذرنده از اکسون است‪.‬‬

‫برخی توابع تحریک مرسوم نرون مصنوعی‬ ‫‪‬‬

‫‪59‬‬
‫‪ o‬خطی‬

‫‪ o‬دو مقداره حدی‬

‫‪ o‬زیگموئیدی‬

‫شکل ‪ .20‬مدل ریاضی تابع تحریک‬

‫ساده ترین شبکه عصبی‪ ،‬یک شبکه عصبی پرسپترون تک نرونی است‪.‬‬

‫شکل ‪ .21‬ساختار شبکه عصبی تک نرونی‬

‫ویژگی ها‪:‬‬ ‫‪‬‬

‫نیاز به تعریف ساختار شبکه ندارد‪.‬‬

‫تابع محرک‪ ،‬یک تابع پله ای است‪.‬‬

‫قابلیت تصمیم گیری باینری دارد‪.‬‬

‫قابل استفاده در طبقه بندی بین دو کالس که تفکیک پذیر خطی باشند‪.‬‬

‫‪60‬‬
‫امکان آموزش با نظارت شبکه وجود دارد‪.‬‬

‫شکل ‪ .22‬تفکیک خطی باینری‬

‫مدل چند ورودی‬ ‫‪‬‬

‫‪ o‬مدل کردن به فرم ماتریسی‬

‫‪ o‬اندیس اول شماره خود نرون‬

‫‪ o‬اندیس دوم نشان دهنده مبدا سیگنال ورودی نرون‬

‫‪ o‬مثال ‪ W12‬شدت سیناپس دومین عنصر ورودی به نرون اول را نشان میدهد‪.‬‬

‫‪ o‬در حالت کلی‪ ،‬هر سطر ماتریس ‪ W‬متناظر با یک نرون است‪.‬‬

‫شکل ‪ .23‬مدل رساضی چند ورودی‬

‫‪61‬‬
‫ساختار شبکه عصبی ﭘرسپترون تک الیه‬
‫در شبکه تک الیه بردار ورودی توسط نرونهای الیه با رابطه (‪ a=f(Wp+b‬به بردار خروجی مرتبط می شوند‪ .‬شکل زیر‬

‫شبکه تک الیه با ‪ S‬نرون و ‪ R‬ورودی را نشان میدهد‪.‬‬

‫شکل ‪ .24‬مدل شبکه عصبی تک الیه‬

‫ماتریس ‪ W‬دارای ‪ S‬سطر و ‪ R‬ستون‬

‫شبکه ﭘرسپترون چند الیه‬

‫‪62‬‬
‫شکل ‪ .25‬شبکه پیشخور (‪ )feedforward‬سه الیه‬

‫در شبکه های چند الیه‪ ،‬خروجی هر الیه به عنوان بردار ورودی برای الیه بعدی محسوب می شود‪.‬‬

‫‪ ...، W1،W2‬به ترتیب ماتریس وزن الیه اول‪ ،‬دوم و ‪ ....‬را نشان می دهد‪.‬‬ ‫‪‬‬

‫‪ ...، S1،S2‬به ترتیب تعداد نرونهای الیه اول‪ ،‬دوم و ‪ ....‬را نشان می دهد‪.‬‬ ‫‪‬‬

‫‪ ...، f1،f2‬به ترتیب توابع تحریک الیه اول‪ ،‬دوم و ‪ ....‬را نشان می دهد‪.‬‬ ‫‪‬‬

‫‪ ...، n1،n2‬به ترتیب بردار ورودی خالص الیه اول‪ ،‬دوم و ‪ ....‬را نشان می دهد‪.‬‬ ‫‪‬‬

‫‪ ...، a1،a2‬به ترتیب بردار خروجی الیه اول‪ ،‬دوم و ‪ ....‬را نشان می دهد‪.‬‬ ‫‪‬‬

‫‪ ...، b1،b2‬به ترتیب بردار بایاس الیه اول‪ ،‬دوم و ‪ ....‬را نشان می دهد‪.‬‬ ‫‪‬‬

‫در طبقه بندی بین دو کالس‪ ،‬اگر پاسﺦ نرون صفر باشد بیانگر تعلق نمونه ورودی به کالس اول و پاسﺦ یک نشان دهنده‬

‫تعلق نمونه به کالس دیگر می باشد‪ .‬جهت آموزش شبکه‪ ،‬پس از معرفی یک نمونه آموزشی‪ ،‬پاسﺦ شبکه و پاسﺦ مورد‬

‫انتظار مقایسه شده و بر اساس میزان اختالف این دو پاسﺦ‪ ،‬مقادیر وزن نرون و مقدار بایاس تنظیم میشود‪ .‬پارامترهای‬

‫وزن در واقع مشخص کننده معادله مرز بین دوکالس در فضای بردار ویژگی میباشند‪.‬‬

‫‪63‬‬
‫چند سوال‪:‬‬

‫‪ )1‬تعداد عناصر بردار ورودی (‪ )R‬چگونه مشخص می شود؟‬

‫‪ )2‬یک نرون چه نوع تابع ورودی‪-‬خروجی را نمایندگی می کند؟‬

‫‪ )3‬آیا می توان بردار ورودی ‪ P‬را به عنوان یک الیه در نظر گرفت؟‬

‫‪ )4‬آیا تعداد عناصر بردار ورودی ‪ R‬و تعداد نرونهای ‪ S‬می توانند با هم برابر نباشند؟‬

‫‪ )5‬آیا همه نرونهای موجود در یک الیه باید دارای توابع تحریک یکسان باشند؟‬

‫‪ )6‬آیا می توان در الیه های مختلف‪ ،‬توابع تبدیل مختلف داشت؟‬

‫ساختار پسخور (‪ )feedback‬در مقابل پیشخور‬

‫تفاوت اصلی در وجود حداقل یک سیگنال برگشتی از یک نرون به همان نرون یا نرونهای همان الیه و یا الیههای قبل‬

‫است‪ .‬البته استفاده از بلوک تاخیر ‪( D‬در شبکه های گسسته) نیز نشانه پسخور بودن ساختار است‪.‬‬

‫شکل ‪ .26‬بلوک تاخیر‬

‫سوال‪ :‬بلوک متناظر با عنصر تاخیر در شبکه های پیوسته چیست؟‬

‫نکته‪ :‬شبکه های پسخور از توانایی بالقوه بیشتری نسبت به شبکه های پیشخور برخوردارند و بهتر می توانند رفتار‬

‫مربوط به ویژگیهای زمانی سیستمها را نشان دهند‪( .‬چرا؟)‬

‫شناسایی الگو‬
‫شناسایی الگو فاکتور مهم در طراحی سیستمهای اطالعاتی است و موضوع مشترک تحقیقاتی برای اکثر رشته ها از‬

‫زبان شناسی تا رشتههای مهندسی است‪.‬‬

‫ساختار کلی یک فرایند شناسایی الگو و تصمیم گیری‪:‬‬ ‫‪‬‬

‫‪ o‬چیزی یا موضوعی اتفاق افتاده است‬


‫‪64‬‬
‫‪ o‬اتفاق‪ ،‬توسط سیگنالی نمایندگی می شود‪.‬‬

‫‪ o‬سیگنال مشاهده شده با سیگنال ارسالی یکسان نیست‪.‬‬

‫‪ o‬اتخاذ تصمیم بر مبنای سیگنال مشاهده شده ( نه ارسالی)‬

‫مثال‪( :‬فرد بیمار)‬

‫‪ o‬اتفاق‪ :‬بیماری‬

‫‪ o‬مشاهده کننده ‪ :‬پزشک‬

‫‪ o‬سیگنالها ‪ :‬تستهای آزمایشگاهی یا عالئم بیماری‬

‫‪ o‬سیگنال آمیخته با نویز‪ :‬اشکاالت آزمایشی (چه در وسایل و چه در بدن فرد بیمار)‬

‫‪ o‬تشخیص بیماری بر مبنای سیگنال آمیخته با نویز‬

‫شناسایی الگو چیزی جز جدا سازی داده ها یا الگو های ورودی بین دستجات مختلف نیست‪ .‬مراحل طراحی یک سیستم‬

‫شناسایی الگو را می توان مراحل زیر دانست‪:‬‬

‫کد گذاری‪ :‬بیان ویژگیهای شی مورد نظر ( که از طریق اندازه گیری به دست میآیند)‪ ،‬توسط بردارهای ورودی‬ ‫‪‬‬

‫بیان هندسی‪ :‬تخصیص یک نقطه در فضای چند بعدی اقلیدسی به هر شی‬ ‫‪‬‬

‫استخراج شاخص‪ :‬استخراج مشخصه های مهم از روی بردار های ورودی و کاهش ابعاد الگوها (عناصری از‬ ‫‪‬‬

‫بردارهای مشخصه که در تمامی طبقات مشترکند‪ ،‬حذف می شوند‪).‬‬

‫طبقه بندی الگوها‪ :‬روندی برای تصمیم گیری بهینه اتوماتیک‬ ‫‪‬‬

‫تخصیص الگوهای ورودی به یکی از طبقاتی که فضای اقلیدسی برای تصمیم گیری به تعداد متناهی از آنها تقسیم شده‬
‫است‪.‬‬

‫شبکههای عصبی مستقیما با دادههای واقعی کار می کنند‪ .‬لذا به طراحیهای مدل آزاد یا تخمین زننده های یونیورسال‬

‫مدل آزاد موسومند‪ .‬شبکه های عصبی در مقابل روشهای کالسیک حل مسائل قرار می گیرند‪ .‬در روشهای کالسیک‬

‫باید تمامی الگوهای یادگیری قبل از حل مسئله طبقه بندی الگو در اختیار باشند‪ .‬یعنی‪ ،‬ابتدا باید یک مدل ریاضی از‬

‫مشاهدات داشت تا پس از ارزیابی مدلها بر اساس دادههای واقعی طراحی انجام شود‪ .‬روشهای کالسیک معموال خاص‬

‫مساله توسعه داده می شوند و معموال به مشتقگیری در آنها نیاز است‪.‬‬

‫سوال‪ :‬اطالعاتی که شبکه های عصبی بر مبنای آن عمل تصمیم گیری را انجام می دهد‪ ،‬چگونه و در کجا ذخیره میگردد؟‬

‫‪65‬‬
‫بررسی یک مثال‬
‫هدف‪ :‬جداسازی سه نوع میوه سیب‪ ،‬پرتقال و گالبی در یک انبار به طور خودکار‪.‬‬

‫سنسورهای موجود برای ثبت ویژگی میوهها‬

‫کد گذاری‪ :‬نشان دادن سیب‪ ،‬پرتقال و گالبی به ترتیب با بردارهای ‪ p2 ،p1‬و ‪ p3‬به عنوان بردارهای مرجع (مولفه بردارها‬

‫به ترتیب شکل‪ ،‬زبری و وزن می باشد)‬

‫استخراج شاخص‪ :‬عنصر سوم در همه طبقات مشترک است‪ .‬لذا با حذف این مولفه به بردارهای دو بعدی میرسیم‪.‬‬

‫مساله بیان شده یک مسئله ساده شناسایی الگوی باینری است و با دریافت یک بردار ورودی ‪ 2‬بعدی و تصمیم گیری‬

‫درباره نوع میوه به هدف می رسیم‪.‬‬

‫سیب‬

‫گالبی‬

‫پرتقال‬

‫شکل ‪ .27‬تشخیص وزنها از روی خط جدا کننده سه نوع میوه‬

‫با توجه به شکل باال می توان نتیجه گرفت‬

‫‪66‬‬
‫‪1 −1‬‬
‫[=𝑊‬ ‫و اوزان نرونها بدست می آید‪] :‬‬
‫‪1 1‬‬

‫حل مساله با ﭘرسپترون تک الیه‬


‫در اینجا از تابع تحریک آستانهای دو مقداره متقارن استفاده شده است‪ .‬این شبکه توانایی تفکیک الگوهای ورودی را‬

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

‫برای حالت دو بعدی یک خط راست است‪.‬‬

‫در حالت کلی برای هر نقطه دلخواه ‪ q‬روی ناحیه مرزی داریم‪:‬‬

‫< ‪ >a,b‬نماد ضرب داخلی دو بردار بوده و همواره تصویر ‪ b‬روی ‪ a‬مضربی از ضرب داخلی دو بردار است‪.‬‬

‫تذکر ‪ :1‬خط مرزی همواره عمود بر بردار وزن بوده و محل قرار گرفتن مرز توسط بردار بایاس تعیین میشود‪.‬‬

‫تذکر ‪ :2‬تصویر بردار سازنده هر نقطه روی خط مرزی بر بردار وزن‪ ،‬برابر با مضربی از منفی جمله بایاس (‪ )-b‬است‪.‬‬

‫(چرا؟)‬

‫نتیجه‪ :‬برای تمام نقاطی که باالی (با توجه به جهت بردار وزن) خط مرزی قرار دارند‪ ،‬ورودی خالص نرون مثبت است‬

‫و برای تمام نقاط زیر آن منفی می باشد‪.‬‬

‫‪67‬‬
‫شکل ‪ .28‬جداسازی خطی در پرسپترون تک الیه‬

‫به منظور دسته بندی نمونه ها در بیش از دو کالس میتوان در شبکه عصبی پرسپترون‪ ،‬یک الیه با بیش از یک نرون‬

‫طراحی نمود‪.‬‬

‫سوال‪ :‬در شکل روبرو ورودی خالص نرون چگونه است؟ آیا پاسﺦ یکتاست؟‬

‫آموزش شﺒکه عصﺒی‬

‫‪ .1‬پارامترهای وزن و بایاس نرون‪ ،‬با مقادیر تصادفی کوچک مقداردهی اولیه می شوند‪.‬‬

‫‪ .2‬یک نمونه آموزشی با بردار ورودی ‪ X‬به شبکه معرفی و ورودی خالص نرون برآورد میشود‪.‬‬

‫‪ .3‬خروجی نرون مطابق با تابع پله ای برآورد می شود‪.‬‬

‫‪ .4‬خطای پاسﺦ دهی شبکه‪ ،‬تعیین می شود‪.‬‬

‫‪ .5‬براساس خطای پاسﺦ دهی‪ ،‬پارامترهای وزن و بایاس شبکه تصحیح میشود‪.‬‬

‫‪68‬‬
‫‪ .6‬مراحل ‪ 2‬تا ‪ 5‬برای کلیه نمونه های آموزشی به انجام میرسد‪ .‬یک بار ”‪ epoch‬معرفی کامل نمونه های آموزشی به‬

‫شبکه را یک “اپک گویند‪.‬‬

‫‪ .7‬آموزش شبکه در چندین اپک به انجام میرسد به نحوی که یکی از شرایط زیر حاصل شود‪:‬‬

‫دیگر تغییر محسوسی در پارامترهای وزن و بایاس نرون ایجاد نشود‪.‬‬ ‫‪‬‬

‫تعداد دفعات تکرار از یک حد مشخص شده فراتر رود‪.‬‬ ‫‪‬‬

‫مثال متلب‬
‫‪ -1‬فرض کنید دو دسته داده ‪ x‬و ‪ y‬بصورت زیر تعریف شوند‪:‬‬

‫‪close all, clear all, clc, format compact‬‬

‫‪%number of samples of each class‬‬

‫;‪N = 20‬‬

‫‪%define inputs and outputs‬‬

‫‪offset = 5; % offset for second class‬‬


‫‪x = [randn(2,N) randn(2,N)+offset]; % inputs‬‬
‫‪y = [zeros(1,N) ones(1,N)]; % outputs‬‬

‫)‪%Plot input samples with PLOTPV (Plot perceptron input/target vectors‬‬

‫)‪Figure(1‬‬

‫;)‪plotpv(x,y‬‬

‫نتیجه رسم دو دسته داده در شکل زیر آورده شده است‪:‬‬

‫‪69‬‬
‫شکل ‪ .29‬دو دسته داده بصورت خطی جدایی پذیر‬

‫با کدهای زیر می توان ساختار شبکه عصبی را دید‪:‬‬

‫;‪net = perceptron‬‬
‫;)‪net = train(net,x,y‬‬
‫;)‪view(net‬‬

‫شکل ‪ .30‬ساختار شبکه عصبی مورد استفاده در مثال‬

‫نتیجه وزنهای بدست آمده پس از آموزش شبکه خطی به شکل زیر است‪:‬‬

‫‪70‬‬
‫ نمایش خط جداساز با توجه به وزن نرونها‬.31 ‫شکل‬

‫[ را در چه گروهی دستهبندی میکند؟‬5] ‫ داده ورودی با مقدار‬،‫ شبکه عصبی آموزش داده شده‬:‫سوال‬
3

‫مثال تعریف ساختار شبکه عصبی در متلب‬


.‫کد زیر ورودی و خروجی را تعریف می کند‬

close all, clear all, clc, format compact

inputs = [1:6]' % input vector (6-dimensional pattern)

outputs = [1 2]' % corresponding target output vector

% create network

net = network( ...

1, ... % numInputs, number of inputs,

2, ... % numLayers, number of layers

[1; 0], ... % biasConnect, numLayers-by-1 Boolean vector,

[1; 0], ... % inputConnect, numLayers-by-numInputs Boolean matrix,

[0 0; 1 0], ... % layerConnect, numLayers-by-numLayers Boolean matrix

[0 1] ... % outputConnect, 1-by-numLayers Boolean vector

);

% View network structure

71
view(net);

.‫ ساختار شبکه عصبی ایجاد شده‬.32 ‫شکل‬

:‫با دستورات زیر معماری و تابع تحریک تعریف شده است‬

% number of hidden layer neurons

net.layers{1}.size = 5;

% hidden layer transfer function

net.layers{1}.transferFcn = 'logsig';

view(net);

% initial network response without training

initial_output = net(inputs)

% network training

net.trainFcn = 'trainlm';

net.performFcn = 'mse';

net = train(net,inputs,outputs);

72
‫‪% network response after training‬‬

‫)‪final_output = net(inputs‬‬

‫شﺒکه عصﺒی همینگ‬

‫شب که همینﮓ از هر دو ساختار پیشخور وپسخور تشکیل می شود‪.‬هدف اصلی در شبکه همینﮓ این است که تشخیص‬

‫کدام الگوی مرجع بیشترین نزدیکی را به الگوی ورودی دارد و سپس آن را در خروجی شبکه ظاهر میکند ‪.‬‬

‫شکل ‪ .33‬ساختار شبکه همینﮓ‬

‫ویژگیها‬

‫• دارای هر دو ساختار پیشخور و پسخور‬

‫• دارای ‪ 3‬الیه‬

‫• برای شناسایی الگوهای باینری‬

‫• تشخیص اینکه کدام الگوی مرجع بیشترین نزدیکی را به الگوی ورودی دارد‪.‬‬

‫‪73‬‬
‫در مواردی که به شبکه بردار ورودی اختیاری (مثال پرتقال بیضوی) اعمال می شود انتظار بر این است که الگوی مرجعی‬

‫که بیشترین نزدیکی را با ورودی دارد‪ ،‬در خروجی ظاهر شود‪ .‬دو پروسه محاسباتی‪ :‬ذخیره سازی الگوها و بازیابی‬

‫اطالعات در این شبکهها انجام می گیرد‪.‬‬

‫در الیه اول‪:‬‬

‫شبکه پیشخور با تابع تبدیل خطی بکار رفته است‪.‬‬

‫همبستگی یا ضرب داخلی بین بردارهای مرجع با بردار ورودی را محاسبه میکند‪ .‬بردارهای مرجع الگوهایی هستند که‬

‫قصد شناسایی آنها را داریم‪.‬‬

‫ذخیره سازی الگوهای مرجع در الیه اول‬

‫تعداد نورونهای این الیه برابر تعداد الگوها‬

‫‪ R‬تعداد عناصر بردار ورودی‬

‫به نوعی فاصله همینﮓ سنجیده می شود‪.‬‬

‫تمامی عناصر بردار خروجی الیه اول مقادیری بین ‪ 0‬و ‪ 2R‬دارند‪ .‬چرا؟‬

‫نرون با بزرگترین مقدار خروجی متناظر با الگوی مرجعی خواهد بود که بیشترین شباهت (کمترین فاصله همینﮓ) را با‬

‫الگوی ورودی دارد‪ .‬چرا؟‬

‫الیه دوم الیه برگشتی است که الیه رقابتی نیز نامیده می شود‪ .‬در این مرحله خروجی ماکزیمم از بقیه جدا میگردد‪.‬‬

‫وزنهای این الیه ‪ W2‬نامیده می شوند که به الگوریتم های بدست آوردن آنها (آموزش) پرداخته نمی شود‪.‬‬

‫‪74‬‬
‫الیه سوم‪ ،‬شبکه پیشخور با تابع تحریک آستانه متقارن دو مقداره است‪ .‬وزن ها در این الیه از رابطه زیر تعیین می‬

‫شود‪:‬‬

‫که در آن 𝑗𝑖𝑝 عنصر ‪ i‬ام از الگوی مرجع ‪ j‬ام می باشد‪.‬‬

‫شﺒکه هاپﻔیلد‬

‫این شبکه دارای ساختار تک الیه بازگشتی است و در آن عملکرد همه نرونها مشابه یکدیگر است و نرون ورودی یا‬

‫خروجی در آن وجود ندارد‪ .‬مقادیر اولیه نرونها توسط ورودی تعیین میشود و سپس شبکه با تکرار به یکی از الگوهای‬

‫مرجع همگرا می شود‪.‬‬

‫شکل ‪ .34‬ساختار شبکه هاپفیلد‬

‫انتظار داریم که اگر در لحظه ‪ 0‬به شبکه الگوی سیب [‪ ]1;1‬اعمال شود‪ ،‬شبکه به سمت [‪ ]1;1‬همگرا گردد‪.‬‬

‫یک انتخاب خوب برای ‪ W ,b‬عبارتست از‪:‬‬

‫عیب شبکه هاپفیلد ‪ :‬همگرایی به الگویی غیر از الگوهای مرجع است‪.‬‬

‫‪75‬‬
‫شبکه همینﮓ به پاسﺦ مناسب منتهی میشود و همواره به یکی از الگوهای مرجع همگرا میشود‪ ،‬و الگوی دارای‬

‫بیشترین تشابه به ورودی را بر میگزیند‪ ،‬در حالی که شبکه هاپفیلد پاسﺦ را کد میکند‪ .‬پاسﺦ هاپفیلد ممکن است‬

‫جزو الگوهای ذخیره شده نباشد‪.‬‬

‫انواع الگوریتمهای یادگیری برای تنظیم پارامترها از تفاوتهای مهم انواع شبکه ها با یکدیگر است‪.‬‬

‫آموزش و یادگیری‬

‫سیستمهای یادگیر صرفا با مشاهده عملکردشان رفتار خود را جهت رسیدن به هدفی خاص بهبود می بخشند‪ .‬اگر‬

‫مقاصد و اهداف به طور کامل تعریف شده باشد‪ ،‬دیگر احتیاجی به فرایند یادگیری نیست‪ .‬یادگیری به علت عدم قطعیت‬

‫در شرایط محیطی الزم می گردد‪ .‬رفتار سیستمهای یادگیر توسط الگوریتمهای بازگشتی بیان می شود‪ .‬با الگوریتمهای‬

‫آموزش شاخص اجرایی مشخص شده ای بهینه می گردد‪ .‬در حالت کلی دو نوع یادگیری داریم‪ :‬با ناظر ‪ -‬بدون ناظر‪.‬‬

‫یادگیری با ناظر‬

‫در این حالت در هر تکرار الگوریتم یادگیری جواب مطلوب سیستم یادگیرنده از قبل آماده است‪ ،‬به عبارت دیگر‬

‫الگوریتم به جواب مطلوب دسترسی دارد‪ .‬مثال اگر هدف یادگیری تابع ‪ y=x2‬باشد‪ ،‬پاسﺦ مطلوب به ورودی ‪ 0,5‬برابر‬

‫‪ 0,25‬میباشد‪ .‬به طور کل جوابی را که سیستم یادگیر با وضعیت فعلی پارامترهایش می دهد‪ ،‬جواب واقعی در نظر‬

‫میگیریم‪ .‬بنابر این الگوریتم هم به جواب مطلوب و هم به جواب واقعی دسترسی دارد‪ .‬یعنی خطای یادگیری که تفاوت‬

‫این دو مقدار می باشد‪ ،‬در دسترس است‪.‬‬

‫یادگیری بدون ناظر‬

‫در این حالت جواب مطلوب برای سیستم یادگیرنده موجود نیست‪ ،‬یعنی ‪ :‬عدم دسترسی به خطای یادگیری‬

‫سوال‪:‬‬

‫چگونه میتوان یک سیستم یادگیرنده را آموزش داد‪ ،‬اگر ندانیم که این سیستم قرار است چه کاری انجام دهد؟‬

‫بیشتر الگوریتمهای بدون ناظر عمل خوشه بندی را انجام میدهند‪ ،‬یعنی میآموزند که الگوهای ورودی را به تعداد‬

‫متناهی از گروهها تقسیم کنند‪ .‬سیستم یادگیرنده توسط محیط تحریک شود‪ .‬قانون یادگیری با رجوع به نتیجه تحریک‪،‬‬

‫پارامترهای سیستم یادگیری را تغییر دهد‪ .‬سیستم یادگیرنده به خاطر تغییراتی که در ساختار داخلی آن اتفاق افتاده‬

‫است‪ ،‬پاسﺦ مناسبتری به محیط بدهد‪.‬‬


‫‪76‬‬
‫شبکه عصبی توانایی تجربه اندوزی از گذشته و بهبود رفتار خود را داراست‪ .‬بهبود یادگیری در طول زمان باید بر اساس‬

‫معیاری سنجیده شود‪ .‬معیار بهبود‪ ،‬هدف یادگیری را مدل میکند‪ .‬قانون یادگیری‪ ،‬روندی است که در آن ماتریس وزنها‬

‫و بردارهای بایاس شبکه عصبی تنظیم میشوند‪ .‬این قوانین توسط روابط بازگشتی و عموما به صورت معادالت تفاضلی‬

‫بیان میشوند‪ .‬نوع یادگیری در چگونگی این روند دخالت دارد‪.‬‬

‫معادله یادگیری‬
‫یک نرون با یک بردار پارامتر ‪ w‬و بردار ورودی ‪ p‬قابل نمایش است‪.‬‬

‫هر نرون توانایی تنظیم بردار پارامتر خود بر اساس ورودی و یک سیگنال معلم را داراست‬

‫در یادگیری با ناظر‪ :‬سیگنال معلم همان سیگنال خطا است‬ ‫‪‬‬

‫در یادگیری بدون ناظر‪ :‬سیگنال معلم تغییر بردار حالت خود نرون است‬ ‫‪‬‬

‫قانون کلی یادگیری برای یک نرون‬

‫– حالت پیوسته‪:‬‬

‫– حالت گسسته‪:‬‬

‫‪ α‬نشان دهنده تاثیر از گذشته و ‪ η‬نرخ یادگیری میباشد‪ L .‬سیگنال یادگیری بوده و در حالت کلی تابعی از ‪p, w, t‬‬

‫(برای حالت با ناظر) میباشد‪ .‬مثال در قانون یادگیری پرسپترون بوده و سیگنال معلم همان سیگنال خطا و برابر ‪L=t-a‬‬

‫است‪.‬‬

‫• برای هر نرون شبکه عصبی نیز داریم‪:‬‬

‫– حالت پیوسته‪:‬‬

‫– حالت گسسته‪:‬‬

‫)𝑘( 𝑗𝑖𝑤∆ ترم اصالحی میباشد‪.‬‬

‫الگوریتم های ‪ LMS‬و پس انتشارخطا از انواع آموزش با ناظر هستند‪.‬‬

‫‪77‬‬
‫در یادگیری ‪ offline‬به کمک داده های یادگیری طراحی شبکه عصبی و آموزش آن انجام می شود و پس از آن به عنوان‬

‫یک سیستم استاتیکی عمل می کند‪ .‬ولی در حالت ‪ online‬مثل یک سیستم دینامیکی همواره در حال یادگیری است‪.‬‬

‫در یادگیری تشدیدی معموال مقادیر خروجی مطلوب در دسترس نیست و در آن به شبکه اعالم میشود که مثال عملکرد‬

‫آن ‪ %50‬درست است یا اصال مطلوب نیست‪ .‬سیگنال برگشتی از نوع نقادی است در صورتیکه در یادگیری با ناظر جنبه‬

‫دستوری دارد (چون ‪ t‬معلوم است)‪ .‬سیگنال نقاد پارامترهای شبکه را تنظیم میکند با این امید که سیگنال نقاد بهتری‬

‫در آینده جهت تنظیم پارامترها تولید شود‪.‬‬

‫یادگیری بدون ناظر (خود سازماندهنده)‬


‫در این نوع یادگیری‪ ،‬هیچ سیگنالی که اطالعاتی در مورد مطلوبیت جواب شبکه به خود شبکه وارد نماید موجود نیست‪.‬‬

‫شبکه در اینجا بایستی تنها با ارائﺔ صرف بردارهای ورودی‪ ،‬ارتباطات موجود بین الگوهای ورودی را پیدا کرده و در‬

‫خروجی شبکه ُکد نماید‪.‬‬

‫شﺒکههای آداﻻیﻦ‬

‫شبکه آداالین با قانون یادگیری ویدرو – هوف ( معروف به قانون ‪ )LMS‬در سال ‪ 1960‬و بعد از شبکه پرسپترون با قانون‬

‫یادگیری ‪ SLPR‬به وجود آمد‪ .‬شبکه آداالین شبیه پرسپترون است ولی با تابع تبدیل خطی ( به جای آستانه دو مقداره)‪.‬‬

‫مناسب برای تقریب خطی یک تابع یا اجرای عمل شناسایی الگو‬ ‫‪‬‬

‫دارای منحنی سطح خطای اجرایی سهموی‬ ‫‪‬‬

‫دارای مزیت برخورداری از یک نقطه مینیمم‬ ‫‪‬‬

‫یادگیری از نوع با ناظر‬ ‫‪‬‬

‫پارامترهای شبکه به نحوی تنظیم می شوند که شاخص اجرایی میانگین مربعات خطا بهینه شود‪.‬‬ ‫‪‬‬

‫قانون یادگیری ‪ LMS‬است‪.‬‬ ‫‪‬‬

‫مﺒانی بﻬینهسازی‬

‫بسیاری از مسائل مهندسی را میتوان بصورت یک مساله بهینه سازی بیان کرد‪ .‬یادگیری شبکه های عصبی نیز میتواند‬

‫یک مساله بهینه سازی باشد‪ .‬در یادگیری عملکردی پارامترهای شبکه به نحوی تنظیم می شوند که عملکرد شبکه‬

‫بهینه شود‪.‬‬

‫‪78‬‬
‫قدم اول‪ :‬تعریف عملکرد و تعیین شاخص عملکرد است که از لحاظ اجرایی این شاخص معموال میانگین مربعات خطا‬

‫(‪ )MSE‬است‪.‬‬

‫قدم دوم‪ :‬جستجو در فضای پارامترهای شبکه برای تنظیم آنها به طوریکه معیار اجرایی عملکرد کاهش یابد‪.‬‬

‫در الگوریتمهای بهینه سازی‪ ،‬تخمین بعدی نقطه بهینه از روی تخمین بهینه فعلی بدست میآید‪.‬‬

‫الگوریتم بیشترین نزول برابر است با‪:‬‬

‫پرسپترون چند الیه‬

‫شبکه های بدون نظارت‬

‫اضافه کردن جزوه دوم‬

‫در ادامه سه شبکه عصبی پرسپترون (پیشخور)‪ ،‬همینﮓ (رقابتی) و هاپفیلد (حافظه انجمنی بازگشتی) و استفاده از‬

‫آنها در حل مسئله معرفی میشوند‪.‬‬

‫‪79‬‬

You might also like