گسترش داده ها[۸۷]: گسترش داده های آموزشی و ساخت یک شبکه بیزی ساده روی داده های آموزشی توسعه یافته.
همچنین مجموعه داده ای آموزشی و آزمایشی نیز در اینجا مورد توجه میباشد که میتواند تاثیر در نتایج حاصل از دسته بندی ها داشته باشد.
کاربرد الگوریتم های متاهیورستیک در جستجوی زیرمجموعه ویژگی ها کارایی بالایی را در استخراج ویژگی مسایل بزرگ و پیچیده از جمله شبکه های پیچیده دارد که یکی از مراحل پیش پردازش داده ها میباشد.به صورت کلی دو نوع الگوریتم های جستجو در این مجموعه وجود دارد:[۸۸]SBM و [۸۹]PBM .
دسته اول مکانیزم هایی هستند که تنها یک حل مساله را دستکاری کرده انجام میدهند شامل الگوریتم های تپه نوردی[۹۰] (HC) وتبرید فلزات شبیه سازی شده[۹۱](SA) جستجوی تابو (TS)[92]میباشد.مزایای این الگوریتم ها اغلب جواب هایی میباشد که برای حل اولیه مورد نیاز هستند.

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

دسته دوم مکانیزم هایی هستند که در بین ویژگی های انتخاب شده به کاوش میپردازند.و تفاوت این روش ها با روش های SBM در این است که PBMیک بهبود چشمگیری را در مجموعه ای از جواب ها به صورت تکراری نشان میدهد.به این صورت که در ابتدا کل جمعیت را شامل میشود.سپس یک جمعیت از مجموعه جواب ها جمع آوری میگردد.در مرحله بعد جمعیت جدیدی با بهره گرفتن از رویه های جستجو شکل میگیرد و فرایند جستجو انجام میشود.الگوریتم ژنتیک قدیمیترین و یکی از محبوب ترین الگوریتم های استخراج ویژگی میباشد که از دو عملگر crossover and mutationاستفاده میکند. الگوریتم بهینه سازی کلونی مورچگان(ACO)[93] ، الگوریتم بهینه سازی ازدحام ذرات (PSO) و الگوریتم های دیگری نیز برای استخراج مناسب ترین ویژگی استفاده میشوند.پس از انتخاب مناسب ترین ویژگی در مرحله بعدی به ارزیابی این ویژگی ها پرداخته میشود.[۵۲]همانطور که معادله دسته بندی بیزی ساده در بخش ۴-۵ با بهره گرفتن از معادله زیر که ai(i = 1, 2, . . . , k) شامل مولفه هایی است که از مقادیر k یعنی تعداد مولفه های انتخابی در استخراج ویژگی مطر شده جابه جا میشود:
در این گزارش از الگوریتم ژنتیک[۵۳] ، الگوریتم بهینه سازی ازدحام ذرات[۵۴] ، الگوریتم رقابت استعماری[۵۵] و شبکه عصبی[۵۶] که جزیی از الگوریتم های بهینه سازی تکاملی مبتنی بر جمعیت میباشند برای بهبود پیش بینی ها استفاده میکنیم و پس از معرفی کوتاه این الگوریتم ها درستی و صحت مقایسه ها را در جدولی ارائه میکنیم.
۴-۶-۱-الگوریتم رقابت استعماری:
الگوریتم رقابت استعماری[۹۴] (ICA) روشی در حوزه محاسبات تکاملی است به یافتن پاسخ بهینه مسائل مختلف بهینه سازی می‌پردازد. این الگوریتم با مدلسازی ریاضی کهمبتنی بر جمعیت تصادفی میباشد فرایند تکامل اجتماعی – سیاسی، الگوریتمی برای حل مسائل ریاضی بهینه سازی ارائه می‌دهد. از لحاظ کاربرد، این الگوریتم در دسته الگوریتم های بهینه سازی تکاملی همچون الگوریتم های ژنتیک، بهینه سازی انبوه ذرات، بهینه سازی کلونی مورچگان ، تبرید فلزات شبیه سازی شده و … قرار می گیرد. همانند همه الگوریتم های قرار گرفته در این دسته، الگوریتم رقابت استعماری نیز مجموعه اولیه ای از جوابهای احتمالی را تشکیل می دهد. این جوابهای اولیه در الگوریتم ژنتیک با عنوان “کروموزوم”، در الگوریتم ازدحام ذرات با عنوان “ذره” و در الگوریتم رقابت استعماری نیز با عنوان “کشور” شناخته می شوند. الگوریتم رقابت استعماری با روند خاصی که در ادامه می آید، این جوابهای اولیه (کشور ها) را به تدریج بهبود داده و در نهایت جواب مناسب مسئله بهینه سازی (کشور مطلوب) را در اختیار می گذارد.
پایه‌های اصلی این الگوریتم را سیاست همسان سازی[۹۵] ، رقابت استعماری[۹۶] و انقلاب[۹۷] تشکیل می‌دهند. این الگوریتم با تقلید از روند تکامل اجتماعی، اقتصادی و سیاسی کشورها و با مدلسازی ریاضی بخشهایی از این فرایند، عملگرهایی را در قالب منظم به صورت الگوریتم ارائه می‌دهد که می‌توانند به حل مسائل پیچیده بهینه سازی کمک کنند. در واقع این الگوریتم جوابهای مسئله بهینه سازی را در قالب کشورها نگریسته و سعی می‌کند در طی فرایندی تکرار شونده این جواب‌ها را رفته رفته بهبود داده و در نهایت به جواب بهینه مسئله برساند.
همانند دیگر الگوریتم‌های تکاملی، این الگوریتم، نیز با تعدادی جمعیت اولیه تصادفی که هر کدام از آنها یک «کشور» نامیده می‌شوند؛ شروع می‌شود. تعدادی از بهترین عناصر جمعیت (معادل نخبه‌ها در الگوریتم ژنتیک) به عنوان امپریالیست انتخاب می‌شوند. باقی‌مانده جمعیت نیز به عنوان مستعمره، در نظر گرفته می‌شوند. استعمارگران بسته به قدرتشان، این مستعمرات را با یک روند خاص که در ادامه می‌آید؛ به سمت خود می‌کشند. قدرت کل هر امپراطوری، به هر دو بخش تشکیل دهنده آن یعنی کشور امپریالیست (به عنوان هسته مرکزی) و مستعمرات آن، بستگی دارد. در حالت ریاضی، این وابستگی با تعریف قدرت امپراطوری به صورت مجوع قدرت کشور امپریالیست، به اضافه در صدی از میانگین قدرت مستعمرات آن، مدل شده‌است. با شکل‌گیری امپراطوری‌های اولیه، رقابت امپریالیستی میان آن‌ها شروع می‌شود. هر امپراطوری‌ای که نتواند در رقابت استعماری، موفق عمل کرده و بر قدرت خود بیفزاید (و یا حداقل از کاهش نفوذش جلوگیری کند)، از صحنه رقابت استعماری، حذف خواهد شد. بنابراین بقای یک امپراطوری، وابسته به قدرت آن در جذب مستعمرات امپراطوری‌های رقیب، و به سیطره در آوردن آنها خواهد بود. در نتیجه، در جریان رقابت‌های امپریالیستی، به تدریج بر قدرت امپراطوری‌های بزرگتر افزوده شده و امپراطوری‌های ضعیف‌تر، حذف خواهند شد. امپراطوری‌ها برای افزایش قدرت خود، مجبور خواهند شد تا مستعمرات خود را نیز پیشرفت دهند.
در بهینه‌سازی، هدف یافتن یک جواب بهینه بر حسب متغیرهای مسئله، است. ما یک آرایه از متغیرهای مسئله را که باید بهینه شوند، ایجاد می‌کنیم. در الگوریتم ژنتیک این آرایه، کروموزوم نامیده می‌شود. در اینجا نیز آن را یک کشور می‌نامیم. در یک مسئله ی بهینه‌سازی Nvar بعدی، یک کشور، یک آرایه به طول Nvar * ۱ است. این آرایه به صورت زیر تعریف می‌شود.
country = [p1، p2، …، pNvar]
روند کامل الگوریتم رقابت استعماری را می توان با فلوچارت زیر نشان داد. نکته قابل توجه این است که در این فلوچارت، بخش انقلاب نشان داده نشده است که باید به مرحله مناسب خود اعمال گردد.[۵۷]
شکل۴-۶- فلوچارت الگوریتم رقابت استعماری
۴-۶-۲-الگوریتم ژنتیک:
الگوریتم های ژنتیک یکی از الگوریتم های جستجوی تصادفی است ایده آن برگرفته از طبیعت می باشد. الگوریتم های ژنتیک برای روش های کلاسیک بهینه سازی در حل مسائل خطی، محدب و برخی مشکلات مشابه بسیار موفق بوده اند ولی الگوریتم های ژنتیک برای حل مسایل گسسته و غیر خطی بسیار کاراتر می باشند. در طبیعت از ترکیب کروموزوم های بهتر ، نسل های بهتری پدید می آیند . در این بین گاهی اوقات جهش هایی نیز در کروموزوم ها روی می دهد که ممکن است باعث بهتر شدن نسل بعدی شوند. الگوریتم ژنتیک نیز با بهره گرفتن از این ایده اقدام به حل مسائل می کند . روند استفاده از الگوریتم های ژنتیک به صورت زیر می باشد:
معرفی جواب های مسئله به عنوان کروموزوم
معرفی تابع فیت نس[۹۸]
جمع آوری اولین جمعیت
معرفی عملگر های انتخاب
معرفی عملگر های تولید مثل
در الگوریتم های ژنتیک ابتدا به طور تصادفی یا الگوریتمیک ، چندین جواب برای مسئله تولید می کنیم. این مجموعه جواب را جمعیت اولیه می نامیم . هر جواب را یک کروموزوم می نامیم . سپس با بهره گرفتن از عملگرهای الگوریتم ژنتیک پس از انتخاب کروموزوم های بهتر ، کروموزوم ها را باهم ترکیب کرده و جهشی در آنها ایجاد می کنیم . در نهایت نیز جمعیت فعلی را با جمعیت جدیدی که از ترکیب و جهش در کروموزوم ها حاصل می شود ، ترکیب می کنیم .
موتور الگوریتم ژنتیک یک جمعیت اولیه از فرمول ایجاد می‌کند. هر فرد در برابر مجموعه‌ای از داده‌های مورد آزمایش قرار می‌گیرند و مناسبترین آنها (شاید ۱۰ درصد از مناسبترین‌ها) باقی می‌مانند؛ بقیه کنار گذاشته می‌شوند. مناسبترین افراد با هم جفتگیری (جابجایی عناصر دی ان ای) و تغییر (تغییر تصادفی عناصر دی ان ای) کرده‌اند. مشاهده می‌شود که با گذشت از میان تعداد زیادی از نسلها، الگوریتم ژنتیک به سمت ایجاد فرمول‌هایی که دقیقتر هستند، میل می‌کنند.
مختصراً گفته می‌شود که الگوریتم ژنتیک (یا GA) یک تکنیک برنامه‌نویسی است که از تکامل ژنتیکی به عنوان یک الگوی حل مسئله استفاده می‌کند. مسئله‌ای که باید حل شود ورودی است و راه حلها طبق یک الگو کدگذاری می‌شوند که تابع fitness نام دارد و هر راه حل کاندید را ارزیابی می‌کند که اکثر آنها به صورت تصادفی انتخاب می‌شوند. عموماً راه‌حلها به صورت ۲ تایی ۰ و ۱ نشان داده می‌شوند،ولی روش های نمایش دیگری هم وجود دارد. تکامل از یک مجموعه کاملاً تصادفی از موجودیت‌ها شروع می‌شود و در نسلهای بعدی تکرار می‌شود. در هر نسل، مناسبترین‌ها انتخاب می‌شوند.
یک راه‌حل برای مسئله مورد نظر، با یک لیست از پارامترها نشان داده می‌شود که به آنها کروموزوم یا ژنوم می‌گویند. کروموزوم‌ها عموماً به صورت یک رشته ساده از داده‌ها نمایش داده می‌شوند، البته انواع ساختمان داده‌های دیگر هم می‌توانند مورد استفاده قرار گیرند. در ابتدا چندین مشخصه به صورت تصادفی برای ایجاد نسل اول تولید می‌شوند. در طول هر نسل، هر مشخصه ارزیابی می‌شود وارزش تناسب (fitness) توسط تابع تناسب اندازه‌گیری می‌شود.گام بعدی ایجاد دومین نسل از جامعه است که بر پایه فرایندهای انتخاب، تولید از روی مشخصه‌ های انتخاب شده با عملگرهای ژنتیکی است: اتصال کروموزوم‌ها به سر یکدیگر و تغییر.
برای هر فرد، یک جفت والد انتخاب می‌شود. انتخاب‌ها به گونه‌ای‌اند که مناسبترین عناصر انتخاب شوند تا حتی ضعیفترین عناصر هم شانس انتخاب داشته باشند تا از نزدیک شدن به جواب محلی جلوگیری شود. چندین الگوی انتخاب وجود دارد: چرخ منگنه‌دار(رولت)، انتخاب مسابقه‌ای[۹۹] ،… .
معمولاً الگوریتم‌های ژنتیک یک عدد احتمال اتصال دارد که بین ۰٫۶ و ۱ است که احتمال به وجود آمدن فرزند را نشان می‌دهد. ارگانیسم‌ها با این احتمال دوباره با هم ترکیب می‌شوند. اتصال ۲ کروموزوم فرزند ایجاد می‌کند، که به نسل بعدی اضافه می‌شوند. این کارها انجام می‌شوند تا این که کاندیدهای مناسبی برای جواب، در نسل بعدی پیدا شوند. مرحله بعدی تغییر دادن فرزندان جدید است. الگوریتم‌های ژنتیک یک احتمال تغییر کوچک و ثابت دارند که معمولاً درجه‌ای در حدود ۰٫۰۱ یا کمتر دارد. بر اساس این احتمال، کروموزوم‌های فرزند به طور تصادفی تغییر می‌کنند یا جهش می‌یابند، مخصوصاً با جهش بیت‌ها در کروموزوم ساختمان داده‌مان.این فرایند باعث به وجود آمدن نسل جدیدی از کروموزوم‌هایی می‌شود، که با نسل قبلی متفاوت است. کل فرایند برای نسل بعدی هم تکرار می‌شود، جفت‌ها برای ترکیب انتخاب می‌شوند، جمعیت نسل سوم به وجود می‌آیند و …. این فرایند تکرار می‌شود تا این که به آخرین مرحله برسیم.شمای کلی الگوریتم ژنتیک در شکل ۴-۷ نشان داده شده است.[۵۸]
شکل ۴-۷- شمای کلی شبه کد الگوریتم ژنتیک
۴-۶-۳-الگوریتم بهینه سازی ازدحام ذرات
[۱۰۰]PSO، یک الگوریتم محاسبه ای تکاملی الهام گرفته از طبیعت و براساس تکرار می‌باشد. منبع الهام این الگوریتم، رفتار اجتماعی حیوانات ، همانند حرکت دسته جمعی پرندگان و ماهی‌ها بود. PSO حالتی از هوش دسته جمعی مبتنی بر الگوریتم است. راه حلی برای مسئله بهینه سازی در فضای جستجو یا مدل سازی رفتار اجتماعی در هنگام وجود هدفهاست از این جهت که PSO نیز با یک ماتریس جمعیت تصادفی اولیه، شروع می‌شود، شبیه بسیاری دیگر از الگوریتم های تکاملی همچون الگوریتم ژنتیک پیوسته و الگوریتم رقابت استعماری است. برخلاف الگوریتم ژنتیک ، PSO هیچ عملگر تکاملی همانند جهش و تزویج ندارد. از این جهت می شود گفت که الگوریتم رقابت استعماری شباهت بیشتری به PSO دارد تا به GA .هر عنصر جمعیت، یک ذره نامیده می‌شود (که همان معادل کروموزوم در GA و یا کشور در الگوریتم رقابت استعماری) است. در واقع الگوریتم PSO از تعداد مشخصی از ذرات تشکیل می-شود که به طور تصادفی ، مقدار اولیه می گیرند. برای هر ذره دو مقدار وضعیت و سرعت، تعریف می شود که به ترتیب با یک بردار مکان و یک بردار سرعت، مدل می‌شوند. این ذرات، بصورت تکرارشونده ای در فضای n‌ـ‌بعدی مسئله حرکت می کنند تا با محاسبه مقدار بهینگی به عنوان یک ملاک سنجش، گزینه‌های ممکن جدید را جستجو کنند. بُعد فضای مسئله، برابر تعداد پارامترهای موجود در تابع مورد نظر برای بهینه سازی می باشد. یک حافظه به ذخیره بهترین موقعیت هر ذره در گذشته و یک حافظه به ذخیره بهترین موقعیت پیش آمده در میان همه ذرات، اختصاص می‌یابد. با تجربه حاصل از این حافظه ها, ذرات تصمیم می گیرند که در نوبت بعدی، چگونه حرکت کنند. در هر بار تکرار، همه ذرات در فضای nـ ‌بعدی مسئله حرکت می کنند تا بالاخره نقطه بهینه عام، پیدا شود. ذرات، سرعت‌هایشان و موقعیت‌شان را بر حسب بهترین جواب‌های مطلق و محلی به‌روز می‌کنند. یعنی:
الگوریتم PSO، بردار سرعت هر ذره را به‌روز کرده و سپس مقدار سرعت جدید را به موقعیت و یا مقدار ذره می‌افزاید. به‌روز کردن‌های سرعت، تحت تأثیر هر دو مقدار بهترین جواب محلی و بهترین جواب مطلق قرار می‌گیرند. بهترین جواب محلی و بهترین جواب مطلق، بهترین جوابهایی هستند که تا لحظه‌ی جاری اجرای الگوریتم، به ترتیب توسط یک ذره و در کل جمعیت به دست آمده‌اند. ثابت‌های و به ترتیب، پارامتر ادراکی و پارامتر اجتماعی نامیده می‌شوند. مزیت اصلی PSO این است که پیاده‌سازی این الگوریتم ساده بوده و نیاز به تعیین پارامتر‌های کمی دارد. همچنین PSO قادر به بهینه‌سازی توابع هزینه‌ی پیچیده با تعداد زیاد مینیمم محلی است.در شکل ۴-۸ نمایی از الگوریتم بهینه سازی ازدحام ذرات نشان داده شده است.[۵۹]

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


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