تابع سیگمویید بهترین گزینه از توابع انتقال ، برای تشخیص الگو در شبکه عصبی می باشد به همین دلیل از این تابع استفاده می کنیم.

( اینجا فقط تکه ای از متن فایل پایان نامه درج شده است. برای خرید متن کامل پایان نامه با فرمت ورد می توانید به سایت feko.ir مراجعه نمایید و کلمه کلیدی مورد نظرتان را جستجو نمایید. )

تابع آموزش

تابع مورد استفاده trainscg نام دارد دلیل انتخاب این تابع این است که معمولا در شبکه های بزرگ که داده های زیادی وجود دارد از این تابع استفاده می شود و از trainlm و trainlp بهتر عمل می کندو همچنین حافظه مورد نیاز این تابع نسبتا کم است و همچنین از الگوریتم های نظیر گرادیان نزولی استاندارد سریع تر عمل می کند.

تابع کارایی

از تابع mse برای تعیین کارایی شبکه استفاده می کنیم.این تابع بدین شکل کار میکند که مجذور میانگین خطاهای موجود بین خروجی و هدف را محاسبه می کند.یکی از توقف زودتر از اتمام آموزش شبکه کاهش کارایی شبکه می باشد که در صورتی که مقدار اختلاف بین خروجی و هدف زیاد باشد آموزش شبکه متوقف می شود.
از ویژگی های دیگری که در این شبکه مورد نظر قرار گرفته memoryReduction است که باعث افزایش سرعت اجرای شبکه می گردد و از ویژگی Earlystop برای بهبود تولیدات شبکه نیز استفاده شده است و ۷۰% داده های اولیه صرف آموزش ۱۵% صرف اعتبار سنجی و ۱۵% صرف تست اولیه شبکه می شود تا نشان دهد شبکه اموزش داده شده چقدر توان پاسخگویی درست به داده های ورودی را دارد. تعداد لایه های پنهانی در شبکه عصبی را ۲۰ در نظر می گیریم هر چه این تعداد بیشتر باشد دقت شبکه بالاتر رفته و به همان نسبت سرعت اجرا پایین و زمان آن بالا می رود.
ما در شبکه عصبی کارها را به سه دسته تقسیم میکنیم , کارهای با اولویت اول و کارهای با اولویت دوم و در نهایت کارهای با اولویت سوم که بهترین دسته از کارها گروه اول می باشند که آنها را به الگوریتم ژنتیک ارسال میکنیم.
معیار طبقه بندی کارها در شبکه عصبی زمان اجرا و هزینه و بهره وری سیستم می باشد .این شبکه عناصری را که دارای مقادیر بهینه در این زمینه باشند در دسته کارهای با اولویت اول قرار داده و به الگوریتم ژنتیک ارسال می کند همچنین الگوریتم برای کارهایی که از دوره های قبل زمانبندی در صف انتطار باقی مانده اند راهکاری را اندیشیده ایم تا آن کارها هم بتواند اجرا شوند و آن راهکار این است که اولویت این کارها در آخر دسته بندی یک رده بهبود داده می شود مثلا اگر کاری در رده اولویت دوم قرار داشته باشد و در صف انتظار قرار داشته باشد آنگاه اولویت آن به اولویت اول تغییر پیدا کرده و به الگوریتم ژنتیک ارسال می گردد.این کار باعث می شود تا به اینگونه کارها نیز فرصت اجرا در شبکه محاسبات ابری داده شود همچنین اگر تعداد کارهای با اولویت اول در این مرحله کمتر از منابع موجود باشدکارهای با اولویت دوم را نیز به الگوریتم ژنتیک ارسال می کنیم تا استفاده حداکثری از منابع موجود در شبکه انجام گیرد و کارایی شبکه کاهش نیابد.

الگوریتم ژنتیک

نمایش کروموزوم در الگوریتم ارائه شده بصورت شکل۱۷ ارائه می شود:

۶۷

۴۵

۸۸

۵۶

۱۹

۴۷

۹

۱۰

۴۲

۴۳

۱۲

شکل۱۷ – نمایش کروموزوم
که همانطور که در شکل ۱۷ دیده می شود تعداد عناصر کروموزوم در این الگوریتم ۱۰ تا در نظر گرفته شده است و بجای استفاده از نمایش دودویی که باعث افزایش حجم ذخیره سازی می شود از شماره هرکدام از عناصر استفاده شده است.
در این مرحله جمعیت اولیه از کروموزوم ها ایجاد می شود که ما تعداد تولیدکروموزوم ها در این مرحله را ۱۰۰ در نظر گرفته ایم. حال میزان شایستگی این کروموزوم ها را محاسبه می کنیم پارامترهای لحاظ شده در تابع شایستگی ، زمان پاسخگویی و هزینه می باشند. برای انتخاب والدین به منظور تولید فرزندان از روش نخبه سالاری استفاده شده است و کروموزوم هایی که دارای شایستگی بیشتری می باشند انتخاب می شوند. برای تقاطع و تولید فرزند از تقاطع دو نقطه ای استفاده می شود که باعث ایجاد فرزندانی مطلوب تر از روش تقاطع تک نقطه ای می شود.بعد از این مرحله نوبت به جهش در بین فرزندان تولید شده می رسد ، احتمال جهش ۵ %در نظرگرفته شده است برای بهبود این بخش از الگوریتم ژنتیک پس از آن که مقدار جدید عنصر جهش یافته انتخاب شد یک جستجوی محلی در اطراف مقدار جدید انجام میگیرد که اگر مقدار بهتری از نظر شایستگی موجود باشد آن انتخاب شود حال میزان شایستگی عنصر بعد از جهش با عنصر قبل از جهش با هم مقایسه شده اگر از نظر شایستگی بهبودی دیده شد عنصر جدید جایگزین عنصر قدیمی می شود در غیر این صورت عنصر قبل از جهش در سر جای خود باقی می ماند.در مرحله بعد میزان شایستگی هرکدام از عناصر تولید شده محاسبه می شود و این چرخه تا زمانی ادامه پیدا می کند که یا به میزان شایستگی دلخواه خود برسیم یا به تعداد تکرار هایی که در الگوریتم در نظر گرفته شده است برسیم تعداد تکرار چرخه در این الگوریتم ۱۰۰ در نظر گرفته شده است.در راستای استفاده از پارامتر عدالت که در بخش شبکه عصبی لحاظ شده است در این الگوریتم نیز با توجه به اینکه عنصری در صف بوده یا خیر به میزان ۱۰% به شایستگی آن عنصر اضافه می کنیم تا شانس آنها برای انتخاب شدن بالاتر رفته و بتوانند کار خود را به اتمام برسانند.

معماری مدل پیشنهادی

در این بخش معماری پیشنهادی خود را معرفی میکنیم. در شکل ۱۸ معماری ارائه شده را مشاهده می کنید
شکل ۱۸-معماری پیشنهادی
در این معماری کارها از طریق بستر اینترنت به ماژول RAM(Resource Alocation Madule) از شبکه محاسبات ابری متصل می شود. ابتدا از بخش Resource table تعداد منابع خالی و آماده استفاده تعیین می گردد و عدد مورد نظر به بخش schedule منتقل می شود در بخش schedule با توجه به تعداد منابع در دسترس و بوسیله N2TC و GATA کارهای مناسب را انتخاب شده و این کار ها بهمراه مشخصات منابع آزاد به بخش dispatcher منتقل می شود این بخش کارهای دریافتی را به منبع مورد نظر انتقال می دهد .وظیفه dispatcher ارسال کار به منبع و اطمینان از دریافت کار توسط منبع مورد نظر می باشد.پس از گرفتن پاسخ از منبع مبنی بر دریافت کار مورد نظر جدول منابع بروز رسانی می شود. در انتهای کار ،منبع dispatcher را از اتمام کار آگاه کرده و dispatcher جدول منابع را بروز رسانی می کند و منتظر ارائه کار بعدی از طرف RAM می باشد همچنین منابع در این معماری دارای ماشین مجازی می باشند تا سرعت اجرای کارها توسط آنها افزایش یابد.

الگوریتم پیشنهادی

در ابتدا شبه کد مربوط به N2TC را بیان می کنیم که در شکل ۱۹ می بینید
شکل ۱۹-الگوربتم N2TC
در N2TC ابتدا پارامتر بندی کارها را انجام می دهیم سپس شبکه را ساخته و مراحل پیکره بندی مربوط به آن را انجام می دهیم سپس برای کارها وزن در نظر میگیریم وشبکه را آموزش می دهیم سپس از شبکه را ارزیابی می کنیم در انتها هم از شبکه آموزش یافته به منظور تعیین اولویت برای کارها استفاده می کنیم. کارهای با اولویت بالا به الگوریتم ژنتیک ارسال می شود و اولویت کارهایی که از دوره قبل در صف انتظار مانده باشند یک رده بهبود داده می شود.
حال به بررسی الگوریتم GaTa می پردازیم. همانطور که در شکل ۲۰ می بینید
شکل ۲۰-الگوریتم GaTa
ابتدا مجموعه اولیه از کروموزوم ها ساخته می شود برای هر کدام از کروموزوم ها تابع شایستگی محاسبه می شود و این مجموعه بر اساس شایستگی آنها مرتب می شود سپس از والدین برای تولید فرزندان استفاده می شود و عملگر تقاطع اعمال می شود سپس عملگر جهش اعمال می شود و شایستگی آنها محاسبه می شود و این کار تا زمانی که به نتیجه مطلوب برسیم یا به بیشترین تعداد تکرار برسیم ادامه پیدا می کند.

نتایج تحقیق

مقدمه

در این فصل به ارزیابی نتایج حاصل از دو الگوریتم N2TC و GaTa می پردازیم و این تنایج را با الگوریتم های ارائه شده در مقالات معتبر مقایسه می کنیم تا بهبود پارامترهای در نظر گرفته شده نشان داده شود.

سناریو اجرا

موضوعات: بدون موضوع  لینک ثابت


فرم در حال بارگذاری ...