۵-۱-۳ پیاده سازی شبکه عصبی مصنوعی برای سری های زمانی
۵-۱-۳-۱ معماری شبکه عصبی مصنوعی
معماری شبکه عصبی شامل تعیین تعداد لایه ها و بالتبع تعداد لایه های پنهان، تعداد ورودی ها، تعداد خروجی ها و تابع انتقال (فعالسازی) می باشد.
تعداد نورون ها در لایه اول و یا به عبارتی تعداد نورونهای ورودی بسته به هدف تحقیق و ماهیت داده هایی که از محیط و منابع اطلاعاتی بیرونی به دست می آید می باشد. در این تحقیق با توجه به آنکه سه روز شنبه، یکشنبه و سه شنبه ورودی های تصمیمی گیری می باشند تعداد نورونهای ورودی در معماری شبکه عصبی مصنوعی این مساله، سه در نظر گرفته می شود.
تعداد لایه پنهان در مسائل مشابه مرور شده در فصل مروری بر پیشینه تحقیق یک در نظر گرفته شده است. همچنین در تئوری و عمل به اثبات رسیده است که افزایش تعداد لایه های پنهان تصمیمی بسیار پر ریسک در معماری شبکه عصبی مصنوعی بوده و عموما منجر به بیش برازش[۷۲] شبکه در کنار تشدید حجم محاسبات می شود. در این معماری یک لایه پنهان برای شبکه عصبی در نظر گرفته شده است.
با توجه به ماهیت مساله و هدف پیش بینی قیمت سهم در یک روز در آینده، تعداد یک خروجی و در نتیجه تنها یک نورون خروجی در نظر گرفته می شود. این خروجی پیش بینی یکی از سه روز شنبه، یکشنبه و یا سه شنبه آتی خواهد بود.
در شبکه های عصبی مصنوعی با یک لایه پنهان پیشنهاد می شود تعداد نورونهای لایه پنهان حداقل بزرگتر از جذر حالضرب تعداد نورونهای ورودی و تعداد نورونهای لایه خروجی باشد. این تئوری تعداد دو نورون در لایه پنهان را پیشنهاد می کند. تحقیقات گذشته نیز نشان می دهد در عموم موارد تعداد پنج نورون در لایه پنهان در نظر گرفته شده است. با در نظر گرفتن این دو پیشنهاد، تعداد پنج نورون برای لایه پنهان در نظر گرفته شد.
تابع فعالسازی نیز تابع تانژانت هایپربولیک در نظر گرفته شده است.
۵-۱-۳-۲ تطبیق ورودی های زمانی به عنوان ورودی شبکه عصبی مصنوعی
به منظور ورود داده ها شبکه عصبی مصنوعی معماری شده به صورت مستمر سه داده از مجموعه داده های کاهش یافته به صورتی که در شکل شماره ‏۵‑۶ نمایش داده شده است به شبکه عصبی مصنوعی وارد می شود.
شکل شماره ‏۵‑۶ : شبکه عصبی مصنوعی با داده های سری زمانی
به منظور پیاده سازی این مدل ورود داده به شبکه عصبی مصنوعی در MATLAB، یک ماتریس۳*n شکل داده شده است. به عبارتی داده های قیمت سهم از محیط ماتریس ورودی ناشی از سری زمانی به ابعاد m*1 به محیط ماتریس دیگری با ابعاد ۳*n انتقال می یابند.
۵-۱-۴ پیاده سازی آموزش شبکه عصبی مصنوعی با الگوریتمهای تکاملی
آموزش شبکه های عصبی در حقیقت مساله ای است که در آن اوزان بهینه اثر نورون های شبکه بر هم تعیین می گردد. روشهای متعددی برای حل این مساله مورد تحقیق قرار گرفته است لکن با به کارگیری الگوریتمهای تکاملی نتایج مطلوبتری حاصل گردیده است.
۵-۱-۴-۱ الگوریتم ژنتیک
به منظور آموزش شبکه عصبی مصنوعی به کمک الگوریتم ژنتیک بر اساس آنچه در فصل مبانی نظری این گزارش در خصوص الگوریتم ژنتیک تشریح شد برنامه و توابع مورد نیاز در MATLAB کدنویسی گردید. ساختار فایلهای ایجاد شده به منظور پیاده سازی این الگوریتم در آموزش شبکه عصبی مصنوعی به شرح جدول شماره ‏۵‑۳ می باشد:
جدول شماره ‏۵‑۳: ساختار پیاده سازی آموزش شبکه عصبی با الگوریتم ژنتیک

برای دانلود متن کامل پایان نامه به سایت  fotka.ir  مراجعه نمایید.

ردیف عنوان فایل شرح کارکرد فایل
۱ برنامه اصلی شامل کد ساختار شبکه عصبی مصنوعی و دسترسی به داده ها بوده و با ارجاع به تابع آموزش شبکه عصبی مصنوعی با الگوریتم ژنتیک خروجی مورد نظر را ایجاد می نماید.
۲ تابع نرمالسازی داده ها نرمالسازی داده های ورودی به شبکه عصبی مصنوعی را انجام می دهد.
۳ تابع آموزش شبکه عصبی مصنوعی با الگوریتم ژنتیک آموزش شبکه عصبی مصنوعی را به کمک توابع انتخاب، ترکیب، ساختاردهی شبکه و هزینه انجام می دهد.
۴