دانلود پایان نامه

در پیشرفت شبیه سازی شبکه‌های عصبی تاثیر داشتند. در سال 1958 شبکه پرسپترون توسط روزنبلات معرفی گردید. این شبکه نظیر واحدهای مدل شده قبلی بود. پرسپترون دارای سه لایه به همراه یک لایه وسط که به عنوان لایه پیوند شناخته شده می‌باشد، است. این سامانه می‌تواند یاد بگیرد که به ورودی داده شده خروجی تصادفی متناظر را اعمال کند. سامانه دیگر مدل خطی تطبیقی نورون می‌باشد که در سال 1960 توسط ویدرو و هاف (دانشگاه استنفورد) به وجود آمد که اولین شبکه‌های عصبی به کار گرفته شده در مسائل واقعی بودند.آدالاین یک دستگاه الکترونیکی بود که از اجزای ساده‌ای تشکیل شده بود، روشی که برای آموزش استفاده می‌شد با پرسپترون فرق داشت.در سال 1969 میسکی و پاپرت کتابی نوشتند که محدودیت‌های سامانه‌های تک لایه و چند لایه پرسپترون را تشریح کردند. نتیجه این کتاب پیش داوری و قطع سرمایه گذاری برای تحقیقات در زمینه شبیه سازی شبکه‌های عصبی بود. آنها با طرح اینکه طرح پرسپترون قادر به حل هیچ مساله جالبی نمی‌باشد، تحقیقات در این زمینه را برای مدت چندین سال متوقف کردند.
با وجود اینکه اشتیاق عمومی و سرمایه گذاری‌های موجود به حداقل خود رسیده بود، برخی محققان تحقیقات خود را برای ساخت ماشین‌هایی که توانایی حل مسائلی از قبیل تشخیص الگو را داشته باشند، ادامه دادند. از جمله گراسبگ که شبکه‌ای تحت عنوان آوالانج را برای تشخیص صحبت پیوسته و کنترل دست ربات مطرح کرد. همچنین او با همکاری کارپنتر شبکه‌های ART را بنا نهادند که با مدل‌های طبیعی تفاوت داشت. اندرسون و کوهونن نیز از اشخاصی بودند که تکنیک‌هایی برای یادگیری ایجاد کردند. ورباس در سال 1974 شیوه آموزش پس انتشار خطا را ایجاد کرد که یک شبکه پرسپترون چند لایه البته با قوانین نیرومندتر آموزشی بود.
پیشرفت‌هایی که در سال 1970 تا 1980 بدست آمد برای جلب توجه به شبکه‌های عصبی بسیار مهم بود. برخی فاکتورها نیز در تشدید این مساله دخالت داشتند، از جمله کتاب‌ها و کنفرانس‌های وسیعی که برای مردم در رشته‌های متنوع ارائه شد. امروز نیز تحولات زیادی در تکنولوژی شبکه های عصبی مصنوعی ایجاد شده‌است(عسکری، 1390).
2-4-2- مفهوم شبکه
از روش های کارآمد در حل مسائل پیچیده، شکستن آن به زیرمسأله های ساده تر است که هر کدام از این زیربخش ها به نحو ساده تری قابل درک و توصیف باشند. در حقیقت یک شبکه، مجموع های از این ساختارهای ساده است که در کنار یکدیگر سیستم پیچیده نهایی را توصیف می کنند. شبکه ها انواع مختلفی دارند اما همگی آ نها از دو مؤلفه تشکیل می شوند:
مجموعه ای از گرهها؛ هر گره در حقیقت واحد محاسباتی شبکه است که ورود یها را گرفته و برروی آن پردازش انجام میدهد تا خروجی بدست آید. پردازش انجام شده توسط گره می تواند از ساده ترین نوع پردازش ها نظیر جمع کردن ورودی ها تا پیچیده ترین محاسبات را شامل شود. در حالت خاص، یک گره می تواند خود، شامل یک شبکه دیگر باشد.
اتصالات بین گره ها؛ این اتصالات نحوه گذر اطلاعات بین گر هها را مشخص می کند. در حالت کلی اتصالات می توانند تک سویه یا دوسویه باشند.
تعامل بین گره ها از طریق این اتصالات سبب بروز یک رفتار کلی از سوی شبکه می گردد که چنین رفتاری به تنهایی در هیچ یک از المانهای شبکه دیده نمی شود. جامع بودن این رفتار کلی بر عملکرد موجود در هر گره سبب تبدیل شبکه به یک ابزار توانمند می شود. به عبارت دیگر، مجموعه ساده ای از المان ها وقتی در قالب یک شبکه باشند می توانند رفتاری از خود بروز دهند که هیچ یک از آن المان ها به تنهایی قادر به بروز چنین مشخصه ای نبود.
2-4-3- یک شبکه عصبی مصنوعی

آنچنانکه بیان شد انواع مختلفی از شبکه ها وجود دارد. در این بین شبکه ای وجود دارد که گره را به عنوان یک نرون مصنوعی درنظر می گیرد. در اصطلاح، این چنین شبکه هایی را شبکه عصبی مصنوعی یا به اختصار ANN می نامند.
شکل (2-5): یک نمونه عصب واقعی (صیادی، 1387)
یک نرون مصنوعی در حقیقت مدلی محاسباتی است که از نرون های عصبی واقعی انسان، الهام گرفته است. نرون های طبیعی، ورودی خود را از طریق سیناپس دریافت می کنند. این سیناپس ها برروی دندریت ها یا غشاء عصب قرار دارند. در یک عصب واقعی، دندریت ها دامنه پالس های دریافتی را تغییر میدهند که نوع این تغییر در طول زمان یکسان نمی ماند و در اصطلاح، توسط عصب یاد گرفته می شود. اگر سیگنال دریافتی به حد کافی قوی باشد (از یک مقدار آستانه بیشتر شود)، عصب فعال شده و سیگنالی را در طول اکسون منتشر می کند. این سیگنال نیز به نوبه خود می تواند به یک سیناپس دیگر وارد شده و سایر اعصاب را تحریک کند. شکل (2-5) یک نمونه عصب واقعی را نشان می دهد(صیادی،1387).
2-4-4- مدل ریاضی یک سلول عصبی
به هنگام مدل کردن اعصاب، از پیچیدگی های آن ها صرف نظر می شود و تنها به مفاهیم پایه ای بها داده می شود، چرا که در غیر این صورت رویکرد مدلسازی بسیار دشوار خواهد شد. در یک نگاه ساده، مدل یک عصب باید شامل ورودی هایی باشد که در نقش سیناپس انجام وظیفه کنند. این ورودی ها در وزنهایی ضرب می شوند تا قدرت سیگنال را تعیین کنند. نهایتاً یک عملگر ریاضی تصمیم گیری می کند که آیا نرون فعال شود یا خیر و اگر جواب مثبت باشد، میزان خروجی را مشخص می سازد. بنابراین شبکه عصبی مصنوعی با بهره گرفتن از مدل ساده شده عصب واقعی به پردازش اطلاعات می پردازد. با توجه به این توضیحات، می توان مدل ساده ای برای توصیف یک نرون (یک گره
در شبکه عصبی مصنوعی) پیشنهاد کرد. این مدل در شکل (2-6) نشان داده شده است. جدای از ساده سازی های اعمال شده، تفاوت اصلی این مدل با واقعیت در این است که در شبکه واقعی، ورودیها سیگنال های زمانی هستند حال آن که در این مدل، اعداد حقیقی ورودی اند.
در مدل ارائه شده در شکل(2-6)، تنوع های بسیاری وجود دارد. از جمله این که وزن های یک شبکه عصبی، که مقدار خروجی را منتقل می کنند، می توانند مثبت یا منفی باشند. از طرفی، توابع مورد استفاده برای آستانه گذاری می توانند بسیار متنوع باشند. از جمله مشهورترین این توابع میتوان به تابعهایی نظیر آرکسین ، آرکتان و سیگموئید اشاره کرد. این توابع باید پیوسته و هموار بوده و مشتق پذیر باشند. همچنین تعداد گره های ورودی میتواند متغیر باشد. البته با زیاد شدن تعداد این گره ها، به وضوح تعیین وزن ها را با مشکل روبرو می کند. لذا باید به دنبال روش هایی برای حل این موضوع باشیم. روند تعین وز نهای بهینه و تنظیم مقادیر آنها عمدتاً به صورت بازگشتی انجام می شود. بدین منظور شبکه را با بهره گرفتن از قواعد و داده ها آموزش داده و با بهره گرفتن از قابلیت یادگیری شبکه، الگوریتم های متنوعی پیشنهاد میگردد که همگی سعی در نزدیک کردن خروجی تولید شده توسط شبکه به خروجی ایده آل و مورد انتظار دارند( صیادی،1387).
شکل (2-6): مدل ریاضی ساده شده عصب واقعی (صیادی، 1387)
2-4-5- ساختار کلی شبکه عصبی مصنوعی
یک شبکه عصبی شامل اجزای سازنده لایه‌ها و وزن‌ها می‌باشد. رفتار شبکه نیز وابسته به ارتباط بین اعضا است. در حالت کلی در شبکه‌های عصبی سه نوع لایه نورونی وجود دارد:
1. لایه ورود اطلاعات:

در این لایه اطلاعات اولیه که همان مقادیر مربوط به متغیر های مستقل و وابسته است مطرح می باشند که وارد شبکه می شوند. تعداد سلول های لایه ورودی به تعداد ورودی هاست. در عمل سعی بر این است که کلیه پارامترهایی که در پاسخ تاثیر دارند در نظر گرفته شوند، البته باید در نظر گرفت که اطلاعات بی استفاده ورودی کار شبکه را مشکل تر می کند، زیرا اگر چه شبکه عصبی به نویز (داده های دارای خطا) مقاوم است اما در هر صورت اگر میزان نویز بیش از حد زیاد باشد ممکن است شبکه نتواند همگرا شود.
2. لایه یا لایه های محاسباتی:
این لایه یا لایه ها که بر مبنای پیچیدگی تحلیل ها، تعداد آنها نیز افزایش می یابد، وظیفه ایجاد روابط منطقی میان متغیرهای مستقل و وابسته اولیه و یافتن فرمول بین این متغیر ها را بر عهده دارد. در این لایه واحدهای پردازشگر اطلاعات قرار دارند که نقش بسیار موثری در فرآیند یادگیری صحیح مدل ایفا می کنند. یک مسئله ضروری و مهم در طراحی یک شبکه تعیین تعداد واحد های لایه پنهان است اما متاسفانه هیچ جواب واحدی برای تعیین تعداد این لایه ها و واحدهای پردازش اطلاعات در این لایه ها وجود ندارد. اما تعداد این لایه ها و واحدهای پردازشگر آنها طوری باید انتخاب شوند که در آموزش و پیش بینی، دچار بیش برازش و یا حفظ کردن و فرایند یادگیری ناقص نشویم.
نکته دیگر تعداد گره ها در هر لایه است. بطور تخمینی تعداد مناسب گره های لایه مخفی بین نصف تا یک و نیم برابر تعداد گره های لایه ورودی یعنی تعداد ورودی های سیستم است. منابع مختلف مقیاس های تجربی متفاوتی به عنوان حدس اولیه برای این تعداد پیشنهاد کرده اند. کم بودن مفرط تعداد گره ها قدرت تجزیه و تحلیل و به دنبال آن دقت عدد پیشگویی را کاهش می دهد. از سویی زیاد بودن مفرط این تعداد منجر می شود که سیستم بجای تجزیه و تحلیل داده ها، آنها را در حافظه نگهداری کند( تیلور و دیگران، 2009).
3. لایه خروجی :
در این لایه، رابطه یا فرمول بین متغیر های مستقل و وابسته اولیه ارائه می شود. تعداد گره ها در لایه خروجی بسته به پیشگویی مورد نظر ما دارد. در ازای داده های هر نمونه در مرحله یادگیری، یک عدد که میزان پایایی و روایی آن به شکل تجربی اثبات شده، به آن داده می شود. اگر قرار است که شبکه، سرطانی بودن یا نبودن یک بیمار را پیشگویی کند، پس در ازای داده های هر بیمار، در مرحله یادگیری یک ستون حاوی صفر یا یک به شبکه داده می شود، صفر به معنای بیمار سالم و یک به معنای بیمار سرطانی خواهد بود. به این ترتیب، یک سلول در لایه خروجی کافی خواهد بود، که فعالیت آن به معنی «یک» و سرطانی بودن و خاموش بودن آن به معنی «صفر» و سالم بودن می باشد( بهارلو، 1389).
شکل (2-7) : نمونه ای از شبکه سه لایه (حجازی زاده، 1389)
2-4-6- انواع شبکه های عصبی بر مبنای نوع اتصالها
با توجه به نوع اتصالات موجود در شبکه های عصبی می توان آنها را به دو نوع کلی تقسیم بندی کرد:
1. شبکه های پیش خور : شبکه های پیش خور، شبکه هایی هستند که مسیر پاسخ در آن ها، همواره رو به جلو پردازش می شود و به نرون های لایه های قبل باز نمی گردد. در این نوع شبکه ها به سیگنال ها اجازه می دهند تنها از مسیر یکطرفه عبور کنند، یعنی از ورودی تا خروجی. بنابراین باز خوردی (فیدبکی) وجود ندارد به این معنی که خروجی هر لایه تاثیری بر همان لایه ندارد. در بدن انسان نیز، پیام های عصبی به صورت یکطرفه حرکت می کنند: از دنریت به بدنه سلول و سپس به آکسون. ساده ترین این شبکه ها، شبکه های پرسپترون هستند که در ادامه بیشتر در مورد آن بحث می گردد.شکل (2-8) نمونه ای از یک شبکه پیشخور را نشان می دهد.
شکل (2-8) : نمونه ای از شبکه پیش خور (حجازی زاده، 1389)

 
 
2. شبکه های پسخور (برگشتی): تفاوت شبکه های برگشتی با شبکه های پیش خور در آن است که در شبکه های برگشتی حداقل یک سیگنال برگشتی از یک نرون به همان نرون یا نرون های همان لایه یا نرون های لایه های قبل وجود دارد و اگر نرونی دارای فیدبک باشد بدین مفهوم است که خروجی نرون در لحظه حال نه تنها به ورودی در آن لحظه بلکه به مقدار خروجی خود نرون، در لحظه ی گذشته نیز بستگی دارد. شبکه های برگشتی بهتر می توانند رفتار مربوط به ویژگی های زمانی و پویایی سیستم ها را نشان دهند. در این نوع شبکه ها که با توجه به ماهیت پویای مسئله طراحی می شوند بعد از مرحله یادگیری شبکه نیز پارامترها تغییر کرده و تصحیح می شوند .این شبکه ها پویا هستند، وضعیت آنها پیوسته در حال تغییر است تا اینکه آنها به یک نقطه تعادل برسند. آنها در این وضعیت تعادل باقی می مانند تا زمانی که ورودی تغییر کند و نیاز باشد تا تعادل تازه ای پیدا شود. ساده ترین این شبکه ها، شبکه هاپفیلد است. شکل شماره (2-9) نمونه ای از یک شبکه پسخور را نشان می دهد.
شکل (2-9) : نمونه ای از شبکه پس خور (حجازی زاده، 1389)
2-4-7- مراحل طراحی یک شبکه عصبی مصنوعی
طراحی یک شبکه عصبی مصنوعی شامل سه مرحله طراحی معماری شبکه، تعیین نوع تابع تبدیل و آموزش شبکه می باشد:

پایان نامه
برای دانلود متن کامل پایان نامه ، مقاله ، تحقیق ، پروژه ، پروپوزال ،سمینار مقطع کارشناسی ، ارشد و دکتری در موضوعات مختلف با فرمت ورد می توانید به سایت  77u.ir  مراجعه نمایید
رشته مدیریت همه موضوعات و گرایش ها : صنعتی ، دولتی ، MBA ، مالی ، بازاریابی (تبلیغات – برند – مصرف کننده -مشتری ،نظام کیفیت فراگیر ، بازرگانی بین الملل ، صادرات و واردات ، اجرایی ، کارآفرینی ، بیمه ، تحول ، فناوری اطلاعات ، مدیریت دانش ،استراتژیک ، سیستم های اطلاعاتی ، مدیریت منابع انسانی و افزایش بهره وری کارکنان سازمان

در این سایت مجموعه بسیار بزرگی از مقالات و پایان نامه ها با منابع و ماخذ کامل درج شده که قسمتی از آنها به صورت رایگان و بقیه برای فروش و دانلود درج شده اند

مرحله 1. طراحی معماری شبکه
این مرحله شامل تعیین تعدادلایه های موجود در شبکه، تعداد نورون های هر لایه، تعیین برگشت پذیر بودن یا نبودن شبکه و غیره است که با توجه به نوع مساله تعیین می گردد. (برای مثال شبکه های برگشتی در اغلب موارد برای مسائل پویا کاربرد دارند ویا اینکه شبکه های پرسپترون پیش خور، برای نگاشت های غیرخطی کاربرد دارند).
نکته قابل توجه: تعداد نرون های لایه ورودی از صورت مساله مورد بررسی مشخص می گردد. به عبارت دیگر تحت انتخاب طراح مسأله نیست بلکه بستگی به روش حل مسأله مورد نظر دارد. تعداد نرون های لایه خروجی بستگی به نوع جواب ما دارد. برای مثال چنانچه پاسخ ما به صورت یک عدد باشد یک نرون کافی است. تعداد لایه ها و تعداد نرون های لایه پنهان توسط کاربر تعیین می گردد اما در اکثر مسائل از یک تا سه لایه پنهان کفایت می کند. همچنین روش عملی ای برای تخمین تعداد نرون های لایه پنهان وجود ندارد به همین دلیل از روش های سعی و خطا (در حین آموزش) استفاده می شود تا به مقدار میانگین خطای مطلوب رسید.
مرحله 2. تعیین نوع تابع تبدیل
می توان برای اینکه خروجی خاصی تولید شود از یک تابع تبدیل استفاده کرد .این تابع رنج وسیعی از مقادیر ورودی را به مقدار خاصی نگاشت می کند. به عنوان مثال می توان هر مقدار خروجی را به مقدار باینری 0 و 1 نگاشت کرد. انواع مختلفی از این توابع در ANN ها مورد استفاده قرار می گیرد ولی پرکاربردترین آن ها، تابع تبدیل سیگموئید (مانند S ) است که به صورت زیر تعریف می شود :
شکل (2-10): تابع تبدیل سیگموئید (حجازی زاده، 1389)
ادعا شده است که فرکانس آتش نرون طبیعی به صورت تابعی شبیه به این تابع است .اما از دلایل عمده استفاده از این تابع این است که: غیر خطی، افزایشی و مشتق پذیر است، و در فرم بسته قابل نمایش است، مشتق گیری از آن ساده است و رنج ورودی (∞+،∞- ) را به خروجی [1،0] فشرده سازی می کند.
مرحله 3. آموزش شبکه
الگوریتم های یادگیری، روندهایی هستد که توسط آن ها وزن های شبکه تنظیم می گردد. هدف از آموزش شبکه این است که شبکه قانون کار را یاد بگیرد و پس از آموزش به ازای هر ورودی، خروجی مناسب را ارائه دهد.
تا کنون بیش از ١٠٠ نوع الگوریتم یادگیری بوجود آمده است. که می توان آن ها را به طور کلی به دو دسته وسیع تقسیم بندی کرد :
یادگیری نظارت شده یا


دیدگاهتان را بنویسید