پایان نامه درباره ، الگوریتم، تکاملی، الگوریتمهای، s، //، تکامل، layer

جدول_شماره_ * ARABIC s 1 1: شبه کد الگوریتم پیش انتشار خطاinitialize network weights (often small random values)
do
forEach training example ex
prediction = neural-net-output(network, ex) // forward pass
actual = teacher-output(ex)
compute error (prediction – actual) at the output units
compute for all weights from hidden layer to output layer // backward pass
compute for all weights from input layer to hidden layer // backward pass continued
update network weights // input layer not modified by error estimate
until all examples classified correctly or another stopping criterion satisfied
return the network
برای آموزش شبکه عصبی مصنوعی الگوریتم های دیگری توسط محققان پیشنهاد گردیده است. الگوریتمهای بهینه سازی کلاسیک مورد اشاره در روشهای تحقیق در عملیات، روشهای ابتکاری و فراابتکاری بهینه سازی و نیز الگوریتم های بهینه سازی تکاملی مانند الگوریتم ژنتیک و الگوریتم بهینه سازی ازدحام ذرات از ان جمله اند.
به منظور طراحی و معماری شبکه عصبی مصنوعی می باید تعداد لایه ها و تعداد نورون ها در هر لایه به همراه تابع فعالسازی را مشخص نمود. عموما تعداد لایه پنهان بیش از سه عدد سبب بیش برازش شده و مدل به جای یادگیری اقدام به حفظ کردن می نماید. تعداد نورون های در هر لایه نیز با توجه به محدودیتهای محاسباتی و اثرگذاری بر قطعیت خروجی شبکه عصبی مصنوعی تعیین می گردد. عموما در شبکه عصبی مصنوعی با یک لایه پنهان، تعداد نورون ها در لایه پنهان از جذر ضرب تعداد نورون های ورودی در تعداد نورون های خروجی تخمین زده می شود. تابع فعالسازی نیز حسب ماهیت رفتار داده مورد بررسی از بین توابع اشاره شده انتخاب می گردد.
برای محاسبه دقت و یا خطای شبکه عصبی مصنوعی از شاخصهای متنوعی استفاده می گردد که پرکاربردترین آنها میانگین مربع خطا (mse) و جذر میانگین مربع خطا (rmse) می باشند.
3-3-3 الگوریتمهای تکاملیالگوریتم های متعددی با عنوان الگوریتمهای تکاملی توسط محققان ارائه شده اند. ایده کلی در کلیه اینگونه الگوریتمها مشابه یکدیگر می باشد: بر روی یک جمعیت از اعضاء به علت طبیعی ای انتخاب صورت می گیرد (بقای منطبق) و این سبب افزایش میزان تطبیق جمعیت می شود. با در نظر گرفتن یک تابع هزینه به صورت تصادفی مجموعه راه حلهای کاندیدا انتخاب می شود. بر اساس این تطبیق برخی از بهترین کاندیداها برای رفتن به نسل بعد با به کارگیری بازترکیب و یا جهش انتخاب می شوند. بازترکیب عملگری است که روی دو یا بیشتر کاندیدای انتخاب شده اعمال شده و یک یا بیشتر کاندیدای جدید ایجاد می نماید. جهش روی یک کاندیدا صورت گرفته و یک کاندیدای جدید ایجاد می نماید. کاندیداهای خروجی بازترکیب و یا جهش مجموعه جدیدی را تشکیل داده و بر سر میزان تطبیق برای رفتن به نسل بعد با مجموعه کاندیداهای قبلی به رقابت می پردازند. این مراحل تا آنجا که یکی از کاندیداها سطح کیفیت مورد انتظار را برآورده نماید و یا حد مورد انتظار از پیش تعیین شده ای ارضاء شود تکرار می شود. در الگوریتمهای تکاملی، تکامل به سمت بهینگی است و یا حداقل نزدیکی. به صورت کلی، تکامل یک فرایند تطبیق است. به عبارت دیگر، الگوریتم تکاملی جمعیت را با محیط بیشتر و بیشتر تطبیق می دهد. شکل کلی الگوریتمهای تکاملی در شبه کد جدول شماره ‏32 نمایش داده شده است.
جدول شماره STYLEREF 1 s ‏3 SEQ جدول_شماره_ * ARABIC s 1 2: شبه کد عمومی الگوریتم های تکاملیBEGIN
INITIALISE population with random candidate solutions;
EVALUATE each candidate;
REPEAT UNTIL (TEMINATION CONDITION is satisfied) DO
1 SELECT parents;
2 RECOMBINE pairs of parents;
3 MUTATE the resulting offspring;
4 EVALUATE new candidates;
5 SELECT individuals for the nxt generation;
DO
END
REF _Ref412629788 h * MERGEFORMAT شکل شماره ‏36 در قالب فلوچارت الگوریتمهای تکاملی را نمایش می دهد:

شکل شماره STYLEREF 1 s ‏3 SEQ شکل_شماره_ * ARABIC s 1 6 : فلوچارت عمومی الگوریتم های تکاملیاجزای اصلی الگوریتمهای تکاملی عبارتند از عضو، تابع تکامل (تابع تطبیق)، جمعیت، مکانیزم انتخاب والدین، عملگر بازترکیب و جهش، مکانیزم انتخاب بازماندگان (مکانیزم جایگزینی).
از شناخته شده ترین الگورتمیهای تکاملی می توان به الگوریتمهای زیر اشاره نمود:
الگوریتم ژنتیک، الگوریتم توده مورچگان، الگوریتم توده زنبور عسل، الگوریتم استراتژی تکامل، الگوریتم تبرید شبیه سازی شده، الگوریتم بهینه سازی ازدحام ذرات
3-3-3-1 الگوریتم ژنتیکالگوریتم ژنتیک CITATION JSG05 l 1065 [20] روش یادگیری بر پایه تکامل بیولوژیک است که در سال 1970 توسط John Holland معرفی گردید. یک الگوریتم ژنتیک برای حل یک مساله مجموعه بسیار بزرگی از راه حل های ممکن را تولید می کند. هر یک از راه حل ها با استفاده از یک تابع تناسب مورد ارزیابی قرار گرفته و تعدادی از بهترین راه حل ها در فرایندی به نام تکامل کاندید تولید راه حل های جدید می شوند. بدین ترتیب فضای جستجو در جهتی تکامل پیدا می کند که به راه حل مطلوب برسد.
الگوریتم ژنتیک در مسائلی که فضای جستجوی بزرگی داشته باشند می تواند به کار گرفته شود. همچنین در مسائلی که با فضای فرضیه پیچیده که تاثیر اجزای آن در فرضیه کلی ناشناخته باشند می توان از این الگوریتم برای جستجو استفاده نمود. بهینه سازی گسسسته از دیگر کاربردهای این الگوریتم بوده و مزیت حداقل بودن احتمال به تله افتادن در کمینه محلی در آن نسبت به سایر الگوریتم های تکاملی مناسب تر می باشد. این الگوریتم از لحاظ محاسباتی پرهزینه بوده و ضمنا تضمینی برای رسیدن به جواب بهینه ندارد.
روش متداول پیاده سازی الگوریتم ژنتیک بدین ترتیب می باشد که ابتدا مجموعه ای از حل ها (کاندیداها) که جمعیت نامیده می شود تولید و به طور متناوب با حل های دیگر جایگزین می شوند. در هر مرتبه، تمامی حل ها با استفاده از یک تابع تناسب مورد ارزیابی قرار داده می شوند. آنگاه تعدادی از بهترین حل ها با استفاده از یک تابع احتمال، انتخاب شده و جمعیت جدید را تشکیل می دهد. تعدادی از فرضیه های انتخاب شده به همان صورت مورد استفاده واقع شده و مابقی با استفاده از عملگرهای ژنتیکی نظیر ترکیب و جهش برای تولید فرزندان به کار می روند.
به صورت کلی می توان این الگوریتم را به صورت شبه کد جدول شماره ‏33 نمایش داد:
جدول شماره STYLEREF 1 s ‏3 SEQ جدول_شماره_ * ARABIC s 1 3: شبه کد الگوریتم ژنتیک// Initialise generation 0:
k := 0;
Pk := a population of n randomly-generated individuals;
// Evaluate Pk:
Compute fitness(i) for each i ∈ Pk;
do
{
// Create generation k + 1:
// 1. Copy:
Select (1 − χ) × n members of Pk and insert intoPk+1;
// 2. Crossover:
Select χ × n members of Pk; pair them up; produce offspring; insert the offspring intoPk+1;
// 3. Mutate:
Select µ × n members of Pk+1; invert a randomly-selected bit in each;
// Evaluate Pk+1:
Compute fitness(i) for each i ∈ Pk;
// Increment:
k := k + 1;
}
while fitness of fittest individual in Pk is not high enough;
return the fittest individual from Pk;
عملگر ترکیب با استفاده از دو رشته والد دو رشته فرزند به وجود می آورد. برای این کار قسمتی از بیت های والدین در بیتهای فرزندان کپی می شود. انتخاب بیت هایی که باید از هر یک از والدین کپی شوند به روشهای مختلف انجام شده و برای تعیین



قیمت: 10000 تومان

متن کامل در سایت homatez.com