آموزش شبکه هاي Cascade-Correlation در متلبشنبه 20, فوریه 2021
آموزش شبکه هاي Cascade-Correlation در متلب
در ادامه آموزش های سایت همیارپروژه برنامه نویسی متلب ارائه خواهد شد .آموزشها از مقدماتی تا پیشرفته ادامه دارد و ما به شما کدنویسی در نرم افزار متلب را رایگان یاد خواهیم داد. با ما همراه باشید.
شبکه هاي Cascade-Correlation در متلب
در شبکه هاي عصبي کلاسيک معماري شبکه بايد قبل از شروع کار مشخص شود.
به اين معني که بايد تعداد لايه هاي مخفي و نرونهاي هر لايه مشخص شوند .
تشخيص دقيق معماري بهينه در اکثر موارد با پيچيدگي همراه است .
معمولا” از سعي و خطا براي پيدا کردن معماري مناسب استفاده مي شود.
از طرف ديگر آموزش بر روي شبکه بدست آمده بر روي تمامي شبکه همراه با هم صورت ميگيرد.
آموزش همه نرون ها با يکديگر اين مشکل را دارد که طي فرآيند آموزش در هر مرحله تمامي ضرايب در جهتي تغيير ميکنند.
که خطاي کنوني را کاهش دهد و در مراحل مختلف هر بار بزرگترين منبع خطا دنبال ميشود.
در مراحل بعدي منبع ( يا منابع ) ديگري که در مرحله کنوني خطاي بزرگتري دارند دنبال ميشود.
اين باعث ميشود که شبکه بين منابع مختلف خطا تا حدي رفت و برگشت داشته باشد.
شبکه عصبي Cascade-Correlation رويکرد متفاوتي را در نظر ميگيرند.
در اين شبکه ها اولا” معماري شبکه با اضافه کردن نرون هاي جديد بسته به نياز تعيين ميشود .
ثانيا” بجاي آموزش تمام شبکه در هر مرحله ، در هر مرحله تنها بخشي از شبکه را آموزش ميدهد.
به اين شکل علاوه بر تعيين خودکار معماري ، از رفت و برگشت بين منابع خطا نيز جلوگيري شده و بازدهي افزايش مي يابد.
معماري شبکه در متلب
شبکه هاي عصبي Cascade-Correlation همانند ساير انواع شبکه هاي عصبي شامل يک لايه ورودي و يک لايه خروجي هستند.
تفاوت آنها در نرونهاي hidden آنهاست.
اين شبکه ها در هر مرحله با افزودن يک نرون hidden جديد شبکه را گسترش ميدهند .
هر نرون جديد از هر يک از نرون هاي ورودي و تمامي نرونهاي hidden قبلي ورودي ميگيرد و به ورودي تمامي نرونهاي خروجي ، خروجي دارد.
علاوه بر روابط بين نرونهاي hidden ، بين هر يک از نرونهاي ورودي و نرونهاي خروجي نيز يک ارتباط برقرار ميباشد.
الگوريتم در متلب
شبکه هاي Cascade-Correlation در اولين قدم مانند شبکه هاي کلاسيک تنها با نرونهاي ورودي و نرونهاي خروجي آموزش ميبينند (ضرايب اوليه بصورت Random انتخاب ميشوند.
تعيين وزن ها با هر الگوريتم آموزش مي تواند انجام مي شود ولي اينجا ازquickprop که سريعتر است استفاده شده).
در صورتي که خطا پس از طي کردن تعداد epoch هاي مشخصي مناسب بود ( مثلا” کمتر از مقدار مشخصي بود) فرآيند آموزش متوقف ميشود.
در غير اينصورت از اين پس در هر مرحله با افزودن يک نرون جديد و آموزش شبکه بشکل مناسب دوباره اين آزمايش صورت ميگيرد.
تا بتواند خطاي باقيمانده را کاهش دهد. کار تا جايي که بلاخره شبکه به ميزان قابل قبول خطا برسد ادامه مي يابد.
افزودن نرون جديد در متلب
براي افزودن يک نرون جديد ، تعدادي نرون بعنوان کانديد ايجاد شده و ضرايب ورودي آنها بگونه اي تغيير مي يابد تا Correlation خروجي نرون با ميزان خطاي شبکه افزايش يابد.
با گرفتن مشتق زنجيره اي از correlation نسبت به هر وزن بدست مي آيد:
سپس نروني که بيشترين Correlation را دارد انتخاب ميگردد. ضرايب ورودي اوليه هر يک از اين نرونها بصورت Random انتخاب ميشود .
اين ضرايب با يکديگر تفاوت دارند ( براي اينکه بتوان نرونهاي کانديد متفاوتي ايجاد کرد) .
از طرف ديگر اين نرونها ميتوانند از لحاظ تابع نرون نيز متفاوت باشند (اين مسئله بسيار جالب توجه است چون اين نوع شبکه ها ميتوانند بصورت dynamic از توابع متفاوتي استفاده نمايند)
انتخاب نروني که خروجي آن بيشترين Correlation يا همبستگي را با خطاي باقيمانده دارد.
اين کاربرد را دارد که با انتخاب ضريب خروجي مناسب ميتوان خطاي خروجي را کاهش داد .
اگر اين همبستگي مثبت باشد ، با انتخاب ضريب منفي و اگر منفي باشد با انتخاب ضريب خروجي مثبت ، منفي خطاي باقيمانده در خروجي ظاهر شده و آن را کاهش مي دهد .
پس از انتخاب نرون مناسب، نرون جديد در شبکه قرار گرفته و کليه ضرايب ورودي آن ثابت ميشوند (در تمامي مراحل بعدي تغيير نخواهند کرد) .
ضرايب ورودي نرون هاي خروجي آموزش داده ميشوند(مجددا با quickprop).
اين آموزش تا جايي ادامه پيدا ميکند که يا خطا از حد مورد نظر کمتر گردد و يا سرعت تغييرات کاهش يابد .
سپس شبکه با توجه به مقدار خطاي کنوني تصميم ميگيرد که نرون جديدي اضافه کند و يا الگوريتم را خاتمه دهد.
الگوريتم :
براي وزنهاي خروجي ، شبکه را آموزش بده تا خطا پايدار شود و يا از حد مورد نظر کمتر گردد.
اگر خطا کمتر از حد مورد نظر بود الگوريتم پايان مي يابد.
تعدادي نرون کانديد ايجاد کن.
وزنهاي ورودي نرونهاي کانديد را آموزش بده تا خطا به وضعيت پايدار برسد.
نروني که بيشترين همبستگي را دارد پيدا کن و در شبکه اضافه کن.
به مرحله اول برگرد.
در اینجا آشنایی با محیط متلب بخش صد و بیستم به پایان رسیده است و در آموزش های بعدی به مباحث دیگر آموزش متلب می پردازیم. همچنین از شما مخاطبین عزیز سایت همیارپروژه دعوت می کنم که برای انجام پروژه متلب خود آموزش های ما را دنبال نمایید.
نویسنده: زهرا رستمی
جهت سفارش پروژه به لینک زیر مراجعه نمایید :
همچنین می توانید برای ارتباط سریعتر با شماره و آیدی تلگرام زیر تماس حاصل کنید :
۰۹۱۲۹۵۴۰۱۲۲ – آیدی تلگرام : @fnalk
از طریق کلیک برروی آیکن های زیر میتوانید پروژه خود را در تلگرام و یا واتساپ برای ما ارسال کنید:
دیدگاهتان را بنویسید