با سلام
در اين پست نحوه آموزش و بدست آوردن وزنهاي بهينه يك شبكه عصبي بسيار ساده، با استفاده از الگوريتم بهينه سازي فاخته را توضيح مي دهيم. مثال مورد استفاده براي اين آموزش تابع sin(x)/x در بازه 6- تا 6 مي باشد. اين تابع با گامهاي 0.5 نمونه برداري مي شود.
شبكه عصبي مورد نظر براي آموزش يك شبكه با 3 نرون در يك لايه پنهان مي باشد. ساختار اين شبكه در زير مشاهده مي شود:
با توجه به تنظيم كردن، باياسها روي عدد 1، تعداد وزنهاي مجهول، برابر 10 خواهند بود. هدف استفاده از الگوريتم بهينه سازي فاخته بدست آوردن مقادير مناسب براي اين 10 پارامتر است. البته بگونه اي كه با وارد شدن عددي در input مقدار sin(input)/input توسط شبكه ي آموزش ديده برگشت داده شود.
در هر بار تكرار الگوريتم فاخته، يكسري وزن كانديد توليد شده و شبكه توسط داده هاي ورودي تغذيه مي شود. سپس درصد خطاي خروجي توليدي شبكه فعلي در مقايسه با خروجي واقعي به عنوان هزينه به الگوريتم فاخته برگشت داده مي شود.
برنامه اي كه در ادامه براي تست توانايي الگوريتم قرار داده شده است نحوه بهينه شدن وزن هاي شبكه را در طول تكرارهاي مختلف برنامه بصورت ديناميك نشان مي دهد.
با وجود اينكه آموزش شبكه عصبي و تعيين وزنهاي بهينه معمولا بسيار كند صورت ميگيرد ولي الگوريتم فاخته بعد از حدود 50 تكرار وزنهاي بهينه براي اين مثال را بدست مي آورد. همانطور كه از نتيجه معلوم است برنامه فقط 1.5% خطا در مدلسازي دارد.
براي دانلود برنامه به ضميمه ي همين پست مراجعه كنيد.
==============
با سلام خدمت تمام كاربران محترم سايت
جهت اطلاع از آخرين مطالب بروز در مورد الگوريتم بهينه سازي فاخته و آموزش هاي مربوط به آن حتما در كانال مربوط به اين الگوريتم عضو شويد.
آدرس كانال:
با سپاس
رامين رجبيون