شبکه هاي Cascade-Correlation

شبکه هاي Cascade-Correlation

 

حسام سقا        –          علي نيک نژاد

 

مقدمه

 

در شبکه هاي عصبي کلاسيک معماري شبکه بايد قبل از شروع کار مشخص شود به اين معني که بايد تعداد لايه هاي مخفي و نرونهاي هر لايه مشخص شوند ، تشخيص دقيق معماري بهينه در اکثر موارد با پيچيدگي همراه است و معمولا” از سعي و خطا براي پيدا کردن معماري مناسب استفاده ميشود. از طرف ديگر آموزش بر روي شبکه بدست آمده بر روي تمامي شبکه همراه با هم صورت ميگيرد. آموزش همه نرون ها با يکديگر اين مشکل را دارد که طي فرآيند آموزش در هر مرحله تمامي ضرايب در جهتي تغيير ميکنند که خطاي کنوني را کاهش دهد و در مراحل مختلف هر بار بزرگترين منبع خطا دنبال ميشود و در مراحل بعدي منبع ( يا منابع ) ديگري که در مرحله کنوني خطاي بزرگتري دارند دنبال ميشود. اين باعث ميشود که شبکه بين منابع مختلف خطا تا حدي رفت و برگشت داشته باشد.

شبکه عصبي Cascade-Correlation رويکرد متفاوتي را در نظر ميگيرند. در اين شبکه ها اولا” معماري شبکه با اضافه کردن نرون هاي جديد بسته به نياز تعيين ميشود و ثانيا” بجاي آموزش تمام شبکه در هر مرحله ، در هر مرحله تنها بخشي از شبکه را آموزش ميدهد. به اين شکل علاوه بر تعيين خودکار معماري ، از رفت و برگشت بين منابع خطا نيز جلوگيري شده و بازدهي افزايش مي يابد.

 

معماري شبکه

شبکه هاي عصبي Cascade-Correlation همانند ساير انواع شبکه هاي عصبي شامل يک لايه ورودي و يک لايه خروجي هستند. تفاوت آنها در نرونهاي hidden آنهاست. اين شبکه ها در هر مرحله با افزودن يک نرون hidden جديد شبکه را گسترش ميدهند . هر نرون جديد از هر يک از نرون هاي ورودي و تمامي نرونهاي hidden قبلي ورودي ميگيرد و به ورودي تمامي نرونهاي خروجي ، خروجي دارد. علاوه بر روابط بين نرونهاي hidden ، بين هر يک از نرونهاي ورودي و نرونهاي خروجي نيز يک ارتباط برقرار ميباشد.

 oo2

الگوريتم

 

شبکه هاي Cascade-Correlation در اولين قدم مانند شبکه هاي کلاسيک تنها با نرونهاي ورودي و نرونهاي خروجي آموزش ميبينند (ضرايب اوليه بصورت Random انتخاب ميشوند و تعيين وزن ها با هر الگوريتم آموزش مي تواند انجام مي شود ولي اينجا ازquickprop  که سريعتر است استفاده شده). در صورتي که خطا پس از طي کردن تعداد epoch هاي مشخصي مناسب بود ( مثلا” کمتر از مقدار مشخصي بود) فرآيند آموزش متوقف ميشود. در غير اينصورت از اين پس در هر مرحله با افزودن يک نرون جديد و آموزش شبکه بشکل مناسب دوباره اين آزمايش صورت ميگيرد تا بتواند خطاي باقيمانده را کاهش دهد. کار تا جايي که بلاخره شبکه به ميزان قابل قبول خطا برسد ادامه مي يابد.

 

افزودن نرون جديد

 

براي افزودن يک نرون جديد ، تعدادي نرون بعنوان کانديد ايجاد شده و ضرايب ورودي آنها بگونه اي تغيير مي يابد تا Correlation خروجي نرون  با ميزان خطاي شبکه افزايش يابد.  با گرفتن مشتق زنجيره اي از correlation نسبت به هر وزن بدست مي آيد:

oo3

 

سپس نروني که بيشترين Correlation را دارد انتخاب ميگردد. ضرايب ورودي اوليه هر يک از اين نرونها بصورت Random انتخاب ميشود و اين ضرايب با يکديگر تفاوت دارند ( براي اينکه بتوان نرونهاي کانديد متفاوتي ايجاد کرد) . از طرف ديگر اين نرونها ميتوانند از لحاظ تابع نرون نيز متفاوت باشند (اين مسئله بسيار جالب توجه است چون اين نوع شبکه ها ميتوانند بصورت dynamic از توابع متفاوتي استفاده نمايند)

انتخاب نروني که خروجي آن بيشترين Correlation يا همبستگي را با خطاي باقيمانده دارد اين کاربرد را دارد که با انتخاب ضريب خروجي مناسب ميتوان خطاي خروجي را کاهش داد . اگر اين همبستگي مثبت باشد ، با انتخاب ضريب منفي و اگر منفي باشد با انتخاب ضريب خروجي مثبت ، منفي خطاي باقيمانده در خروجي ظاهر شده و آن را کاهش مي دهد .

پس از انتخاب نرون مناسب، نرون جديد در شبکه قرار گرفته و کليه ضرايب ورودي آن ثابت ميشوند (در تمامي مراحل بعدي تغيير نخواهند کرد) و ضرايب ورودي نرون هاي خروجي آموزش داده ميشوند(مجددا با quickprop). اين آموزش تا جايي ادامه پيدا ميکند که يا خطا از حد مورد نظر کمتر گردد و يا سرعت تغييرات کاهش يابد . سپس شبکه با توجه به مقدار خطاي کنوني تصميم ميگيرد که نرون جديدي اضافه کند و يا الگوريتم را خاتمه دهد.

 

 

 

الگوريتم :

 

1-     براي وزنهاي خروجي ، شبکه را آموزش بده تا خطا پايدار شود و يا از حد مورد نظر کمتر گردد.

2-     اگر خطا کمتر از حد مورد نظر بود الگوريتم پايان مي يابد.

3-     تعدادي نرون کانديد ايجاد کن.

4-     وزنهاي ورودي نرونهاي کانديد را آموزش بده تا خطا به وضعيت پايدار برسد.

5-     نروني که بيشترين همبستگي را دارد پيدا کن و در شبکه اضافه کن.

6-      به مرحله اول برگرد.

 

انواع شبکه هاي Cascade-Correlation

 

علاوه بر شبکه هاي Cascade-Correlation کلاسيک که در بالا توضيح داده شد ، انواع ديگري از اين شبکه ها نيز موجود ميباشند :

 

—        Pruned-Cascade-Correlation(PCC)

—        Recurrent-Cascade-Correlation(RCC)

—        Genetic-Cascade-Correlation

 

شبکه هاي Pruned-Cascade-Correlation

 

ايده اصلي اين نوع شبکه ها اين است که ما ميتوانيم با حذف بعضي از ارتباطهاي بين نرونها (وزنها) بازدهي شبکه را افزايش دهيم.

اين شبکه ها يک Selection criterion که معمولا” عکس خطاي شبکه بر روي يک قسمت از داده هاي آموزشي(prune) است, در نظر ميگيرند . بکمک اين Selection criterion شبکه در هر مرحله قبل از افزودن نرون Selection criterion را محاسبه کرده و سپس در پايان نيز آن را محاسبه ميکند . اگر اين مقدار افزايش يافته باشد که نشاندهنده پيشرفت صحيح شبکه است ولي در غير اينصورت شبکه در حال بزرگ شدن بدون حاصل است و الگوريتم متوقف ميگردد. از طرف ديگر پس از افزودن نرون جديد شبکه با استفاده از اين Selection criterion ، تک تک هر يک از وزنها را حذف ميکند ، اگر اين مقدار افزايش يافت که نشاندهنده درست بودن تصميم ميباشد و در غير ايصورت وزن برگردانده ميشود.

 

شبکه هاي Recurrent-Cascade-Correlation

شبکه هاي recurrent کاربردهاي فراواني دارند از جمله ميتوان به توانايي تحليل داده هايي که وابستگي به زمان دارند و يا  به ترتيب خاصي به شبکه ارائه ميشوند اشاره کرد. (مانند سري هاي زماني) .

تبديل شبکه هاي Cascade Correlation به شبکه Recurrent از اين جهت مشکل است که مطابق تعريف ارائه شده ما ورودي هر يک از نرونهاي جديد را ثابت در نظر ميگيريم و اگر غير از اين باشد در واقع ما از مفهوم شبکه هاي CC خارج شده ايم. بنابراين در تعريف ارائه شده از نوع Recurrent اين شبکه ها تنها رابطه Feedback در اين شبکه ها بين هر نرون مخفي و خودش برقرار ميگردد . يعني نرون پس از delay مشخص شده ، خروجي خود را در ورودي دريافت ميکند. وزن اين ارتباط نيز همانند ساير وزنهاي ورودي نرون مورد نظر پس از قرار گرفتن در شبکه ثابت ميگردد.

 oo4

شبکه هاي Genetic-Cascade-Correlation

 

ايده اصلي اين نوع شبکه ها استفاده از الگوريتم ژنتيک بجاي هر دو فاز آموزش(الگوريتم quickprop) در شبکه است. مشکلي که در شبکه هاي معمولي Cascade-Correlation وجود دارد کم بودن تعداد نرونهاي کانديد و همچنين عدم وجود ارتباط بين آنها مي باشد. در اين روش با در نظر گرفتن تعداد بيشتري کانديد ، در هر مرحله بکمک الگوريتم ژنتيک نسل بهتري از آنها ايجاد ميگردد.

در اين روش وزنها نقش کروموزوم را دارند و هر دسته از وزنهاي ورودي و خروجي نقش Individual ها را دارند. 50% کل جمعيت را وزنهاي ورودي و 50% ديگر را وزنهاي خروجي تشکيل ميدهند.

تابع ارزيابي در فاز ورودي همبستگي بين خروجي نرون مخفي و جمع خطاي شبکه  و براي فاز خروجي جمع خطاي شبکه ميباشد. براي جفت گيري از روش استاندارد 2-cross استفاده مي شود و جهش نيز با احتمال کم وجود دارد.

 

نتيجه گيري

 

همانطور که ديديم شبکه هاي Cascade-Correlation سعي مي کنند بعضي از مشکلات شايع در شبکه هاي عصبي را حل کنند. يکي از خصوصيات ويژه اين شبکه ها عدم نياز به دانستن معماري شبکه است. ما نيازي نداريم که تعداد نرونهاي لايه مخفي را بدانيم ( تعداد نرونهاي لايه هاي ورودي و خروجي بسته به طبيعت مسئله مشخص است) و اين ما را از حدس و خطاي معماري شبکه بي نياز مي کند از طرف ديگر نيازي به تعيين کردن تابع نرونها نيست چون در مرحله ايجاد نرون جديد در بين کانديد هاي مختلف ، توابع مختلفي ميتوانند حضور داشته باشند . شبکه اي که در نهايت توليد ميشود نسبت به شبکه هاي ديگر نسبتا” کوچک است و بازدهي بالاتري دارد. فرآيند آموزشي بدليل اينکه آموزش در هر مرحله تنها بر روي بخشي از شبکه صورت مي پذيرد سريعتر است. اما اين شبکه ها بدليل ساختار ويژه اي که دارند که در هر مرحله تلاش ميکند بزرگترين منبع خطا را حذف کنند ، نسبت به نويز حساس ترند و اگر داده ها Fuzzy(مبهم و پيچيده) باشند ممکن است نتايج مناسبي بدست نيايد و يا سرعت همگرايي نسبت به ساير روشها کمتر باشد.

 

 

مراجع

 

—  Scott E. Fahlman and Christian Lebiere,”The Cascade-Correlation Learning Architecture”, Carnegie Mellon University, 1991.

—  Scott E. Fahlman,”The Recurrent Cascade-Correlation Architecture”, Carnegie Mellon University,1991.

—  Mitchell A.Potter,”A Genetic Cascade-Correlation Learning Algorithm”, George Mason University,COGANN-92,1992

—  Jose Demisio,”The Cascade-Correlation Neural Network Growing Algorithm using the Matlab Environment”

blank

2 دیدگاه دربارهٔ «شبکه هاي Cascade-Correlation»

  1. blank

    با سلام.من یک سری توضیحات راجع به 3شبکه casecade-feedforward-rbf میخواستم.
    مثلا روش کار هر شبکه،معایب و مزایا هر کدوم و …

دیدگاه‌ خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *