بخشی از مقاله
*** این فایل شامل تعدادی فرمول می باشد و در سایت قابل نمایش نیست ***
اجتماع شبکه های عصبی مصنوعی تکاملی با تقویت توپولوژی و انتخاب ویژگی ها
چکیده - اجتماع شبکه های عصبی توانایی عمومیت و دقت سیستم کلاس بندی را افزایش می دهد. تکامل عصبی، تکامل مصنوعی شبکه های عصبی با استفاده از الگوریتمهای ژنتیک، نتایج خوبی برای سیستمهای یادگیری پیچیده بوجود آورده است. در روشهای تکامل عصبی موجود، توپولوژی قبل از آغاز تکامل تعیین می شود. پروسه تکامل، فضای وزن اتصالات این توپولوژی کاملاً متصل را جستجو کرده و به شبکههایی که عملکرد بهتری دارند اجازه ی تولید مثل می دهد و فضای وزنها جستجو می شود. بنابراین هدف روشهای تکاملی موجود، بهینه کردن وزن اتصالات و در نهایت عملکرد کلی شبکه است. در حالی که، وزنهای اتصالات تنها عامل تاثیر گذار در رفتار شبکه نیستند. توپولوژی شبکه عصبی و تعیین اتوماتیک یک مجموعه ی مناسب از ورودیها برای شبکه، انتخاب ویژگیها، نیز روی عملکرد آن تاثیر می گذارد. در این مقاله، ما از NEAT استفاده کرده و ورودی، توپولوژی و وزنهای شبکه را تحت پروسه تکامل همزمان بهینه خواهیم کرد، بعد از تولید چنین کلاس بندهای شبکهای عصبی، که با هم در توپولوژی، وزن اتصالات و مجموعه ورودی متفاوتند، از خروجی این کلاسی بندها استفاده کرده و با ترکیب آنها یک خروجی واحد ایجاد می کنیم، آزمایشات نشان میدهد که روش ارائه شده نتایج بهتری نسبت به روشهای موجود بدست می دهد.
کلید واژه - اجتماع شبکه های عصبی، انتخاب ورودی، تکامل عصبی، توپولوژی شبکه های عصبی، گروه بندی.
۱- مقدمه
تاثیر ترکیب چندین کلاس بند در افزایش دقت کلاس بندی، توسط افراد زیادی آزمایش و تایید شده است. طرحهای مختلفی برای ترکیب کلاسی بندها پیشنهاد شده است. بعضی از متدهای معروف که بیشتر استفاده شده اند عبارتند از: رای اکثریت [[] ، رای میانگین [2] ، میانگین وزن داده شده [3]. تکنیکهای دیگر شامل معیار Borda ]4]، متدهای احتمالی و بیز، تئوری دمپستر شیفر [5] و انتگرالهای فازی [0] هستند. میتوان به این روشهای مختلف، به منزلهای ابزاری نگاه کرد که به وسیله ی آن به هر کدام از کلاس بندها یک وزن نسبی، نسبت داده می شود.
ایجاد مجموعه هایی از کلاسی بندهای متفاوت، یکی از کلیدهای موفقیت در سیستمهای دارای چندین کلاس بند است. روشهای گوناگونی برای ایجاد کلاس بندهای متفاوت وجود دارد [7]، شرایط اولیه متفاوت، داده های آموزش متفاوت، توپولوژیهای متفاوت شبکه یا استفاده از الگوریتمهای آموزش متفاوت از راههای ایجاد کلاسی بندهای متفاوت است.
در روشهای تکامل عصبی موجود، توپولوژی قبل از آغاز تکامل تعیین می شود (معمولاً دارای یک لایه ی مخفی است و هر نورون در لایه ی مخفی مستقیما به همه ی ورودی ها و خروجی ها متصل است). پروسه تکامل، فضای وزن اتصالات این توپولوژی کاملاً متصل را جستجو کرده و به شبکههایی که عملکرد بهتری دارند اجازه ی تولید مثل میدهد. فضای وزنها از طریق Crossover آرایههای وزن شبکهها و جهش در وزنهای یک شبکه، جستجو می شود. بنابراین هدف روشهای تکامل موجود، بهینه کردن وزن اتصالات و در نهایت عملکرد کلی شبکه است. در حالی که، به جز وزنهای اتصالات، توپولوژی شبکه عصبی و تعیین اتوماتیک یک مجموعه ی مناسب از ورودیها برای شبکه، انتخاب ویژگیها، نیز مسئله ای مهم در کلاس بندی است. در این مقاله روشی برای ایجاد کلاسی بندهای متفاوت ارائه می دهیم و بعد از آن ساختارهای متفاوت برای ترکیب کلاسی بندها را روی خروجی این کلاسی بندها اعمال می کنیم.
ساختار مقاله به اینصورت است، با توضیح مختصری از مجموعه داده هایی که مورد استفاده قرار دادیم شروع می کنیم. سپس روشی را که بوسیله آن کلاس بندهای شبکه عصبی متفاوت را ایجاد می کنیم، شرح میدهیم، در ادامه مختصراً متدهای ترکیب کلاس بندها را توضیح می دهیم
2 – داده ها
در این مقاله از ۴ مجموعه داده استفاده کرده ایم، این
1 – 2 - Wine در مسائلی کلاسی بندی، این مجموعه داده معروف و دارای ساختار کلاسه خوش رفتاری است. این مجموعه داده برای تست اولیه کلاسی بندهای جدید مناسب است ولی خیلی چالش انگیز نیست. این مجموعه داده دارای ۱۳ ورودی است و نمونه ها در ۳ کلاس دستهبندی می شوند، در کلاس ۱، ۵۹ نمونه، در کلاس ۲، ۷۱ نمونه و در کلاس ۳، ۴۸ نمونه وجود دارد.
2-2 Waveform
تعداد نمونه های این مجموعه داده، ۵۰۰۰ است که در ۳ کلاس قرار می گیرند، هر موج 21 ویژگی با مقادیر پیوسته بین ۰ تا ۶ دارد.
3 – 2 Ionosphere
تعداد نمونه ها ۳۵۱، که در ۲ کلاسی قرار می گیرند، هر نمونه ۳۴ ویژگی دارد. این مجموعه داده مرتبط با کلاس بندی رادارها است.
4-2 Glass
در این مجموعه داده نوع خاصی همپوشانی گنجانده شده است. داده های این مجموعه داده دارای ۹ ویژگی هستند و در ۶ کلاس قرار می گیرند، که نشان دهنده انواع مختلف شیشه هستند. ۳ کلاس از این ۶ کلاس دارای همبستگی بالایی هستند.
۳- ایجاد کلاسش بندهای مختلف
ایجاد مجموعه های مختلف از کلاسی بندها، یکی از نکات کلیدی سیستمهای چند کلاس بند است. متدهای مختلفی برای ایجاد مجموعه ای از کلاسی بندها وجود دارد. اجتماع کلاسی بندهای شبکه عصبی میتواند از طریق استفاده از شرایط اولیه متفاوت، داده ی آموزشی متفاوت، توپولوژیهای شبکه متفاوت یا الگوریتمهای اموزشی متفاوت، ایجاد شود.
• تغییر وزنها: میتوان با تغییر وزنهای اولیه که بصورت تصادفی تولید شدهاند و یادگیری شبکه از آنجا شروع می شود، مجموعه ای از شبکه های متفاوت بوجود آورد.
• تغییر توپولوژی شبکه: توپولوژی و معماریهای متفاوت شبکه می تواند طراحی شود، این تغییرات میتواند در تعداد نودهای مخفی یا لایه ها باشد.
• تغییر مجموعه ورودی: می توان مجموعه ورودی متفاوتی به هر کدام از کلاسی بندها ارائه کرد.
• تغییر الگوریتم آموزشی: میتوان الگوریتمهای متفاوتی برای آموزش شبکه استفاده کرد [9[ روشی که ما برای ایجاد کلاسی بندهای متفاوت استفاده می کنیم NEAT نام دارد [10] و با استفاده از الگوریتمهای تکاملی، همزمان ورودیها، توپولوژی و وزن اتصالات بهینه شبکه را تعیین می کند. این متد بر اساس سه ایده بنا شده است. اول، اینکه شیوه رمزگذاری خاصی برای تکامل ساختار شبکه لازم است. هر ژنوم شامل لیستی از ژنهای اتصال است. هر ژن اتصال شامل فیلدهای، گره ورودی، گره خروجی، وزن اتصال، فعالی بودن ژن اتصال و عدد innovation است که به پیدا کردن ژنهای مربوطه هنگام Crossover کمک می کند.
جهش می تواند وزن اتصالات، ساختار شبکه و ورودیها را تغییر دهد. جهش وزنهای اتصالات مانند دیگر متدهای NE است. جهش ساختاری باعث ازدیاد پیچیدگی می شود، بدین ترتیب که یا یک گره و یا یک اتصال جدید به شبکه ایجاد می کند. از طریق جهشی، ژنومهایی با سایز متفاوت ایجاد می شود. به هر ژن خاصی در جمعیت یک عدد خاص innovation نسبت داده می شود، و این عدد هنگام Crossoverنیز منتقلی میشود، عدد innovation، اجازہ می دهد که الگوریتم تکاملی، Crossover را بدون احتیاج به انالیز پر هزینه توپولوژی انجام دهد.
دوم، در NEAT جمعیت به گروههای مختلفی قسمت میشود، بنابراین افراد درون گروه خود به رقابت می پردازند، نه با تمام افراد جمعیت. از این طریق، نوآوری توپولوژیکی محافظت شده و به آنها زمان داده می شود که با بقیه گروهها نیز رقابت کنند. اشتراک برازندگی (fitness) صریح، در این متد استفاده میشود، به اینصورت که ارگانیسمهای درون یک گروه، باید با برازندگی گروه نیز شریک شوند. این مسئله باعث می شود که یک جمعیت یک گروه به شدت افزایش نیافته و همه ی جمعیت را پر نکند.
سوم، بر خلاف متدهای دیگر که توپولوژی و وزنها را تحت تکامل قرار می دهند، در این روش با جمعیت یکنواختی از شبکه های بسیار ساده بدون نودهای مخفی شروع می کنیم و تنها اتصال، اتصال یکی از ورودیها به خروجی هاست.
در طی پروسه ی تکامل، اتصالات و گره های مخفی از طریق جهش به شبکه اضافه می شود. انتخاب صفات نیز بصورت ضمنی انجام می شود، به اینصورت که از گره های ورودی مفید اتصالاتی ایجاد می شود. از آنجاییکه اتصالات و گره هایی که مفید هستند باقی می مانند، شبکههای کوچکی که ساختار اضافه ندارند ایجاد می شود [2].
1 – 3 منشا تاریخی
در NEAT، منشاء تاریخی هر ژن در سیستم در طی تکامل مشخصی است. از طریق عدد innovation سیستم میتواند تشخیص دهد که کدام ژن با کدام ژن هماهنگ است. ژنهایی که هماهنگ نیستند با توجه به اینکه آیا داخل یا خارج از محدوده ی عدد innovation والد دیگر هست یا نه، یا disjoint و یا excess هستند . هنگام Crossover ژنهایی که در هر دو والد دارای عدد innovation یکسان هستند به فرزند منتقل شده و زنهای disjoint) یا excess از والد برازنده تر به فرزند منتقل می شوند. دانستن منشاء تاریخی ژنها، باعث می شود بتوانیم Crossover را بدون احتیاج به تحلیل پیچیده و پرهزینه توپولوژی انجام دهیم. ژنومهای با سایز و ساختار متفاوت با هم همساز می مانند و مسئله هماهنگ شدن توپولوژیهای متفاوت برطرف می شود.
۳- ۲- گروه بندی در بیشتر موارد، اضافه کردن ساختارهای جدید (گره و اتصالی) به شبکه باعث کاهش برازندگی شبکه میشود. بنابراین باید جمعیت به دسته های مختلفی تقسیم شود تا شبکه ها بتوانند به جای آنکه با همه جمعیت رقابت کنند فقط با شبکه های درون دسته خود به رقابت بپردازند. از این طریق، تغییرات جدید در شبکه محافظت شده و شبکه زمان می یابد ساختار خود را قبل از رقابت با دیگر شبکههای دسته های دیگر بهبود بخشد. جمعیت شبکهها بر اساسی شباهت ساختاری به دستههای مختلفی تقسیم می شود، بنابراین هر دسته شامل شبکههایی می شود که با هم ساختار مشابهی دارند. فاصله ی بین دو شبکه، ترکیب خطی سادهای از تعداد ژنهای (Excess(E، ژنهای (Disjoint(D، و میانگین اختلاف وزن ژنهای تطابق یافته ( W ) است.
۴- روشهای ترکیب رای اکثریت، رای بیشینه، رای میانگین، معیار Borda، رای Nash، متدهای ثابت ترکیب کلاسی بندها هستند. میانگین وزن دار و انتگرال Choquet، متدهای ترکیب آموزشی هستند در ادامه هریک را مختصراً شرح میدهیم.
۱-۴- رای ماکزیمم کلاس با بیشترین اطمینان به عنوان خروجی انتخاب می شود.
که n تعداد کلاسی بندها و خروجی iامین کلاسی بند برای بردار ورودی X است.
۴- ۲- رای اکثریت کلاس درست، کلاسی است که بیشتر کلاس بندها به آن رای داده اند. اگر همه کلاس بندها کلاسهای متفاوتی را به عنوان خروجی داده باشند، کلاسی انتخاب می شود که خروجی کلاس بند با بیشترین اطمینان، می باشد.
۴- ۳- رای میانگین
این روش خروجی کلاسی بندهای موجود در مجموعه را میانگین گیری می کند. کلاسی که بیشترین مقدار میانگین را داشته باشد به عنوان کلاسی درست انتخاب می شود.
که در آن K تعداد کلاسها، با خروجی iامین کلاس بند برای kامین کلاس برای ورودی بردار X می باشد.
4-4 بردار Borda
برای هر کلاس k معیار Borda، مجموع تعداد کلاسهای است که زیر k توسط هر کلاس بند درجه بندی شده است. اگر تعداد کلاسهایی باشد که زیر کلاس k توسط iامین کلاسی بند درجه بندی شده است، معیار Borda برای کلاس K به شکل زیر خواهد بود.
خروجی کلاس با بزرگترین معیار Borda است.
Nash s! –d–f
هر رای دهنده عددی بین صفر و یک برای هر کاندیدا مشخص می کند. حاصلضرب مقادیر مربوط به هر کلاسی بند را برای تمامی کاندیداها مقایسه می کنیم. مقدار بیشتر برنده است و به عنوان خروجی در نظر گرفته می شود.
۴- ۶- میانگین وزن دار
برای هر کلاس بند با یک خروجی تک خروجی به شکل زیر نمایش داده می شود.
که (d(X خروجی مطلوب برای ورودی X و خطای مربوط به آن است. بنابراین میانگین خطای کلاس بند iام می تواند