مقاوم بودن
در یک شبکه عصبی هر سلول به صورت مستقل عمل می کند و رفتار کلی شبکه، برایند رفتارهای محلی سلول های متعددی است. این ویژگی باعث می شود تا خطاهای محلی از چشم خروجی نهایی دور بماند. به عبارت دیگر سلول ها در یک روند همکاری، خطاهای محلی یکدیگر را تصحیح می کنند. این خصوصیت باعث افزایش قابلیت مقاوم بودن (تحمل پذیری خطا) در سیستم می گردد(منهاج، ۱۳۸۴).
(( اینجا فقط تکه ای از متن درج شده است. برای خرید متن کامل فایل پایان نامه با فرمت ورد می توانید به سایت feko.ir مراجعه نمایید و کلمه کلیدی مورد نظرتان را جستجو نمایید. ))
۲-۵: نرون عصبی انسان
در سیستم عصبی، نرون (سلول عصبی) به عنوان اصلی ترین عنصر پردازش، شناخته شده اند. بطور کلی بدن انسان در حدود یکصد تریلیون نرون وجود دارد که تمام آن ها از سه قسمت اصلی تشکیل شده اند: بدنه سلول، دندریت ها و آکسون (شکل۱). همان طور که در شکل مشخص است هر نرون دارای تعدادی دندریت و یک آکسون است. دندریت ها به عنوان مناطق دریافت کننده سیگنال های الکتریکی هستد وسیگنال های الکتریکی را از آکسون نرون های دیگر به بدنه سلول می برند. بدنه سلول انرژی لازم را برای فعالیت نرون فراهم کرده و بر روی سیگنال های ورودی عمل می کند(که با یک عمل جمع جبری ساده و مقایسه با یک سطح آستانه مدل می گردد). آکسون نیز سیگنال های الکتروشیمیایی را از بدنه سلول به دندریت سایر نورون ها منتقل می کند(چنگ،۲۰۰۷). [۸]
محل تلاقی یک آکسون از یک نرون به دندریت های سایر نرون ها را سیناپس می نامند. سیناپس ها واحدهای کوچکی هستند که ارتباط بین نرون ها را برقرار می سازد. زمانیکه سیگنال های عصبی از آکسون سایر نرون ها به یک نرون می رسد، آن را تحریک می کند. نرون از هر یک از اتصالات ورودی خود یک ولتاژ کم را توسط سیگنال های عصبی، دریافت می کند و آن ها را با هم جمع می کند. اگر این مقدار به مقدار آستانه برسد نرون آتش می گیرد و به آکسون خود یک ولتاژ خروجی ارسال می نماید و آکسون نیز با توجه به شدت آن، ممکن است یک سیگنال را توسط سیناپس، به دندریت نرون های دیگر بفرستد یا اینکه به دلیل ضعیف بودن آن، هیچگونه سیگنالی را عبور ندهد. و به همین ترتیب تمامی فعالیت های مغزی انسان انجام می شود (ناجب، ۲۰۱۴). [۹]
شکل ۲-۲ : ساختار یک سلول عصبی انسان
شکل۲-۳: یک نمونه عصب واقعی
یک نرون مصنوعی در حقیقت مدلی محاسباتی است که از نرون های عصبی واقعی انسان، الهام گرفته است. نرون های طبیعی، ورودی خود را از طریق سیناپس دریافت می کنند. این سیناپس ها برروی دندریت ها یا غشاء عصب قرار دارند. در یک عصب واقعی، دندریت ها دامنه پالس های دریافتی را تغییر می دهند که نوع این تغییر در طول زمان یکسان نمی ماند و در اصطلاح، توسط عصب یاد گرفته می شود. اگر سیگنال دریافتی به حد کافی قوی باشد(از یک مقدار آستانه بیشتر شود)، عصب فعال شده و سیگنالی را در طول اکسون منتشر می کند. این سیگنال نیز به نوبه خود می تواند به یک سیناپس دیگر وارد شده و سایر اعصاب را تحریک کند. شبکه های عصبی با قابلیت در خور توجه در استنتاج معانی از داده های پیچیده یا مبهم، می توانند برای استخراج الگوها و شناسایی روش هایی که آگاهی از آنها برای انسان و دیگر تکنیک های کامپیوتری بسیار پیچیده و دشوار است به کار گرفته شود. یک شبکه عصبی تربیت یافته می تواند به عنوان یک متخصص در مقوله اطلاعاتی که برای تجزیه و تحلیل به آن داده می شود به حساب آید. با این دید اجمالی از نحوه عملکرد نرون، باید سیستمی طراحی شود که دارای تعدادی ورودی باشد که با توجه به اهمیت هر یک، آن ها را با یکدیگر جمع ساده جبری نماید و توسط یک تابع موسوم به تابع تبدیل، آن ها را به نورون های دیگر ارسال نماید (همان،۲۰۱۴).
شکل ۳ الگویی از یک واحد پردازش با توجه به نحوه عملکرد یک نرون ارائه می دهد. همانگونه که مشاهده ی شود، آکسون را می توان به خروجی، وزن را به ولتاژ و ورودی ها را به دندریت ها تشبیه نمود.
شکل ۲-۴٫ ساختار یک نورون عصبی مصنوعی
بنابراین اجزای یک شبکه عصبی عبارتند از :
ورودی ها: ورودی ها می توانند خروجی سایر لایه ها بوده و یا آنکه به حالت خام در اولین لایه و به صورت های زیر باشد:
داده های عددی و رقمی
متون ادبی، فنی و …
تصویر و یا شکل
وزن ها: میزان تاثیرورودی xi بر خروجی ،y توسط وزن اندازه گیری می شود.
تابع جمع: در شبکه های تک نرونی، تابع جمع در واقع خروجی مسئله را تا حدودی مشخص می کند و در شبکه های چند نرونی نیز تابع جمع میزان سطح فعالیت نرون j در لایه های درونی را مشخص می کند.
تابع تبدیل: بدیهی است که تابع جمع پاسخ مورد انتظار شبکه نیست، تابع تبدیل عضوی ضروری در شبکه های عصبی مصنوعی محسوب می گردد. انواع و اقسام متفاوتی از توابع تبدیل وجود دارد که بنا به ماهیت مسئله کاربرد دارند. این تابع توسط طراح مساله انتخاب می گردد و بر اساس انتخاب الگوریستم یادگیری پارامتر های مساله (وزن ها) تنظیم می گردد.
خروجی: منظور از خروجی، پاسخ مسئله است.
۲-۶: مفهوم شبکه
یکی از روش های کارآمد در حل مسائل پیچیده، شکستن آن به زیرمسأله های ساده تر است که هر کدام از این زیربخش ها به نحو ساده تری قابل درک و توصیف باشند. در حقیقت یک شبکه، مجموعه ای از این ساختارهای ساده است که در کنار یکدیگر سیستم پیچیده نهایی را توصیف می کنند. شبکه ها انواع مختلفی دارند اما همگی آنها از دو مؤلفه تشکیل می شوند:
مجموعه ای از گره ها؛ هر گره در حقیقت واحد محاسباتی شبکه است که ورودی ها را گرفته و برروی آن پردازش انجام می دهد تا خروجی بدست آید. پردازش انجام شده توسط گره می تواند از ساده ترین نوع پردازش ها نظیر جمع کردن ورودی ها تا پیچیده ترین محاسبات را شامل شود. در حالت خاص، یک گره می تواند خود، شامل یک شبکه دیگر باشد.
اتصالات بین گره ها؛ این اتصالات نحوه گذر اطلاعات بین گره ها را مشخص می کند. در حالت کلی اتصالات می توانند تک سویه یا دو سویه باشند.
تعامل بین گره ها از طریق این اتصالات سبب بروز یک رفتار کلی از سوی شبکه می گردد که چنین رفتاری به تنهایی در هیچ یک از شبکه دیده نمی شود. جامع بودن این رفتار کلی بر عملکرد موجود در هر گره سبب تبدیل شبکه به یک ابزار توانمند می شود. به عبارت دیگر، مجموعه ساده ای از المان ها وقتی در قالب یک شبکه باشند می توانند رفتاری از خود بروز دهند که هیچ یک از آن المان ها به تنهایی قادر به بروز چنین مشخصه ای نبود.
۲-۷: مدل ریاضی شبکه عصبی مصنوعی
به هنگام مدل کردن اعصاب، از پیچیدگی های آن ها صرف نظر می شود و تنها به مفاهیم پایه ای بها داده می شود، چرا که در غیر این صورت رویکرد مدلسازی بسیار دشوار خواهد شد. ردر یک نگاه ساده، مدل یک عصب باید شامل ورودی هایی باشد که در نقش سیناپس انجام وظیفه کنند. این ورودی ها در وزن هایی ضرب می شوند تا قدرت سیگنال را تعیین کنند. نهایتاً یک عملگر ریاضی تصمیم گیری می کند که آیا نرون فعال شود یا خیر و اگر جواب مثبت باشد، میزان خروجی را مشخص می سازد. بنابراین شبکه عصبی مصنوعی با بهره گرفتن از مدل ساده شده عصب واقعی به پردازش اطلاعات می پردازد. با توجه به این توضیحات، می توان مدل ساده ای برای توصیف یک نرون (یک گره در شبکه عصبی مصنوعی) پیشنهاد کرد. این مدل در شکل فوق نشان داده شده است. جدای از ساده سازی های اعمال شده، تفاوت اصلی این مدل با واقعیت در این است که در شبکه واقعی، ورودی ها سیگنال های زمانی هستند حال آن که در این مدل، اعداد حقیقی ورودی اند.
در مدل ارائه شده در شکل دو، تنوع های بسیاری وجود دارد. از جمله این که وزن های یک شبکه عصبی، که مقدار خروجی را منتقل می کنند، می توانند مثبت یا منفی باشند . از طرفی، توابع مورد استفاده برای آستانه گذاری می توانند بسیار متنوع باشند. از جمله مشهورترین این توابع می توان به تابع هایی نظیر arcsin, arctan, sigmoid اشاره کرد. این توابع باید پیوسته و هموار بوده و مشتق پذیر باشند. همچنین تعداد گره های ورودی می تواند متغیر باشد. البته با زیاد شدن تعداد این گره ها، به وضوح تعیین وزن ها را با مشکل روبرو می کند. لذا باید به دنبال روش هایی برای حل این موضوع باشیم. روند تعین وزن های بهینه و تنظیم مقادیر آنها عمدتاً به صورت بازگشتی انجام می شود. بدین منظور شبکه را با بهره گرفتن از قواعد و داده ها آموزش داده و با بهره گرفتن از قابلیت یادگیری شبکه، الگوریتم های متنوعی پیشنهاد می گردد که همگی سعی در نزدیک کردن خروجی تولید شده توسط شبکه به خروجی ایده آل و مورد انتظار دارند(اولاتونگ، ۲۰۱۳).[۱۰]
۲-۸: شبکه های عصبی تک نرونه، تک لایه، چند لایه
معمولا یک نرون با ورودی های زیاد، به تنهایی برای حل مسائل فنی-مهندسی کافی نیست. مثلاً برای مدل سازی نگاشت هایی که دو خروجی دارند ما احتیاج به دو نرون داریم که بصورت موازی عمل کنند، بنابراین یک لایه خواهیم داشت که از اجتماع چند نرون تشکیل شده است. در شکل ٣ نمونه ای از یک شبکه تک لایه را نشان می دهد.
شکل ۲-۵: نمونه ای از یک شبکه ی تک لایه
شبکه های تک لایه، توانایی پیاده سازی توابع غیر خطی را ندارند به همین دلیل از شبکه های که از چند لایه تشکیل شده اند استفاده می کنیم. این شبکه ها دارای توانایی بیشتری هستند. در شبکه های عصبی چند لایه، یک لایه ورودی وجود دارد که اطلاعات را دریافت می کند، تعدادی لایه مخفی وجود دارد که اطلاعات را از لایه های قبلی می گیرد(در اصل وجود لایه پنهان زمانی مفید است که تابع تبدیل غیر خطی باشد) و در نهایت یک لایه خروجی وجود دارد که نتیجه محاسبات به آن ها رفته و خروجی آن، خروجی نهایی شبکه است. نمونه ای از این شبکه ها را در شکل ۴ می بینید.
شکل ۲-۶ . نمونه ای از یک شبکه سه لایه
۲-۹: انواع شبکه های عصبی مصنوعی از نظر برگشت پذیری
شبکه های پیش خور:
شبکه های پیش خور، شبکه هایی هستند که مسیر پاسخ در آن ها، همواره رو به جلو پردازش می شود و به نرون های لایه های قبل باز نمی گردد. در این نوع شبکه ها به سیگنال ها اجازه می دهند تنها از مسیر یکطرفه عبور کنند، یعنی از ورودی تا خروجی . بنابراین باز خوردی (فیدبکی) وجود ندارد به این معنی که خروجی هر لایه تاثیری بر همان لایه ندارد . در بدن انسان نیز، پیام های عصبی به صورت یکطرفه حرکت می کنند: از دنریت به بدنه سلول و سپس به آکسون. ساده ترین این شبکه ها شبکه های پرسپترون هستند که در ادامه بیشتر در مورد آن بحث می گردد .شکل بعد نمونه ای از یک شبکه پیشخور را نشان می دهد .
شکل ۲-۷ . نمونه ای از یک شبکه سه لایه
شبکه های پسخور(برگشتی):
تفاوت شبکه های برگشتی با شبکه های پیش خور در آن است که در شبکه های برگشتی حداقل یک سیگنال برگشتی از یک نرون به همان نرون یا نرون های همان لایه یا نرون های لایه های قبل وجود دارد و اگر نرونی دارای فیدبک باشد بدین مفهوم است که خروجی نرون در لحظه حال نه تنها به ورودی در آن لحظه بلکه به مقدار خروجی خود نرون، در لحظه گذشته نیز بستگی دارد. شبکه های برگشتی بهتر می توانند رفتار مربوط به ویژگی های زمانی و پویایی سیستم ها را نشان دهند. در این نوع شبکه ها با توجه به ماهیت پویای مسئله طراحی می شوند بعد از مرحله یادگیری شبکه نیز پارامترها تغییر داده و تصحیح می شوند. این شبکه ها پویا هستند، وضعیت آنها پیوسته در حال تغییر است تا اینکه آنها به یک نقطه تعادل برسند. آنها در این وضعیت تعادل باقی می مانند تا زمانی که ورودی تغییر کند و نیاز باشد تا تعادل تازهای پیدا شود. ساده ترین این شبکه ها، شبکه هاپفیلد است. شکل شماره ۷ نمونه ای از یک شبکه پسخور را نشان می دهد.
شکل ۲-۸ . نمونه ای از یک شبکه برگشتی
۲-۱۰: مراحل طراحی یک شبکه عصبی مصنوعی
مرحله ١ : طراحی معماری شبکه
این مرحله شامل تعیین تعداد لایه های موجود در شبکه، تعداد نرون های هر لایه، تعیین برگشت پذیر بودن یا نبودن شبکه و …است که با توجه به نوع مساله تعیین می گردد. (برای مثال شبکه های برگشتی در اغلب موارد برای مسائل پویا کاربرد دارند و یا اینکه شبکه های پرسپترون پیش خور، برای نگاشت های غیرخطی کاربرد دارند).
نکته قابل توجه: تعداد نرون های لایه ورودی از صورت مساله مورد بررسی مشخص می گردد. به عبارت دیگر تحت انتخاب طراح مسأله نیست بلکه بستگی به روش حل مسأله مورد نظر دارد. تعداد نرون های لایه خروجی بستگی به نوع جواب ما دارد. برای مثال چنانچه پاسخ ما به صورت یک عدد باشد یک نرون کافی است. تعداد لایه ها و تعداد نرون های لایه پنهان توسط کاربر تعیین می گردد اما در اکثر مسائل از یک تا سه لایه پنهان کفایت می کند. همچنین روش عملی ای برای تخمین تعداد نرون های لایه پنهان وجود ندارد به همین دلیل از روش های سعی و خطا (در حین آموزش) استفاده می شود تا به مقدار میانگین خطای مطلوب رسید.