![]() |
استفاده از pso در شبکه عصبی
سلام
من کمی با مفهوم الگوریتم تجمعی ذرات مشکل دارم و درست نمی تونم اونو درک کنم ممنون می شم اگه منو کمک کنید. بر اساس این الگوریتم ما ذراتی را توی فضای نمونه به صورت تصادفی پخش می کنیم و برای یافتن بهترین هدف بر اساس موقعیت قبلی و شتاب و یک سری پارامتر دیگه تمام ذرات را به سمت نقطه مورد نظر سوق می دهیم. حالا مشکل من اینجاست که چطوری می تونیم از الگوریتم برای آموزش شبکه عصبی استفاده کنیم. من برای نوشتن کد های شبکه عصبی و الگوریتم تجمعی مشکلی ندارم ولی نموتنم ارتباط بین این دو رو درک کنم. با تشکر |
نقل قول:
شما باید آموزش شکه عصبی رو به صورت یک مسئله بهینه سازی مدل کنید و با استفاده از الگوریتم PSO حلش کنید. به طور مثال فرض کنید هدف از آموزش شبکه عصبی فقط پیدا کردن وزن ها میباشد و ساختار شبکه شما ثابت هست. در این صورت ذرات شما به صورت مجموعه ای از وزن ها تعریف میشوند. در این حالت شما n بردار وزنی دارید و باید برداری را بدست بیاوید که بهترین مقدار برازش را داشته باشد یا به عبارت دیگر global best باشد. البته این یکی از ساده ترین حالات هستش و ما فقط به دنبال پیدا کردن بردار وزنی هستیم که به طور مثال حداقل MSE را داشته باشد. موفق باشی. |
ممنون بابک عزیر از پاسخی که دادی .
توی شبکه مقدار وزن ها می بایست طوری تعیین شود که خروجی شبکه به سمت تابع هدف همگرا شود و مثلا ما از روش مربع خطا مقدار این وزن ها را طوری تغییر می دادیم که در کل شبکه به تابع مورد نظر نزدیک شود حالا مشکل من هم همین جاست مگه قرار نیست کل شبکه به مقدار مورد نظر برسه پس چرا ما ( اگه قرار باشه ذرات رو به عنوان بردار وزنمون در نظر بگیریم ) این وزن ها رو به سمت نقطه مورد نظر میل می دیم که حتی به نظر من کل شبکه دیگه به نقطه مورد نظر همگرا نمی شه . ممنون می شم اگه منو در این مورد راهنمایی کنی. |
نقل قول:
این روال تا زمان اتمام فرایند آموزش ادامه داره. با این سیستم شما به صورت تکاملی به وزن هایی میرسید که حداقل مقدار mse رو داشته باشه. موفق باشی |
ممنون از لطفتون
می شه لطف کنید بگید که بهترین مکان رو برای ذراتم چطوری انتخاب کنم. به عنوان مثال من یک شبکه mlp طراحی می کنم که 3 لایه هستش. لایه ورودی 2 نورن لایه میانی 3 و خروجی یک نورن داره حالا من می خوام تابع سینوسی رو دنبال کنم. شما می فرمایید من وزن های رو بر اساس ذرات در الگوریتم تجمع ذرات در نظر بگیرم حالا بیام خطای خروجی رو بر روی ذرات اعمال کنیم. اگه تا اینجا درست گفتم پس حالا من چطوری می تونم بهترین موقعیت تجربه شده یک ذره را بدست بیارم . اگه جواب این هستش که در هر مرحله ای که خطا به حداقل رسید این موقعیت همزمان برای تمام ذرات بهترین موقعیت هستش حالا با این فرض بهترین موقعیت یک ذره رو من چطوری اعمال کنم (با توجه به رابطه، شتاب متاثر از اینرسی ذره + بهترین موقعیت دیده شده ذره + بهترین موقعیت بدست آمده در کل ذرات می باشد ) ممنون می شم اگه رفرنسی از یک کد ساده نوشته شده دارید به من بدید. |
نقل قول:
همونطور که گفتی بهترین مکان برای ذرات شما جایی هستش که خطا به حداقل رسیده باشه. شما خودت بهتر از من بلد هستی :4: متاسفانه من کدی راجع به این موضوع ندارم. اما اگر جستجو کنی حتما بدست میاری موفق باشی |
نقل قول:
چون ما برای بدست آوردن شتاب می بایست 3 پارامتر رو در نظر می گرفتیم. مشکل من بدست آوردن 2 پارامتر بود (بهترین موقعیت ذره و بهترین موقعیت دیده شده در کل ذرات) فرض کردیم که بهتری مکان برای ذرات مکانی هست که خطا به حداقل برسه حالا پس ما فقط یک مشکل برای بدست آوردن پارامتر داریم اونم اینه که چه جوری می توان از بین این ذرات تعیین کنیم که کدام ذره دارای بهترین موقعیت هستش!!!! در حالتی که تنها بخواهیم pso را پیاده سازی کنیم مشکلی نداریم چرا که قرار است تمام ذرات به سمت یک هدف سوق داده بشن برای همین بهترین موقعیت در کل ذرات بدست میاد و اون نقطه ای هستش که به موقعیت مورد نظر نزدیک تر باشه ولی زمانیکه ما شبکه عصبی رو ادغام می کنیم دیگه قرار نیست که ذرات به سمت هدف مورد نظر نزدیک بشند و می بایست که ذرات کمترین خطای خروجی رو به ما بدهند پس در این صورت نمی توانیم تعیین کنیم بهترین موقعیت برای کل ذرات کجا هستش. نمی دونم تونستم مشکلمو درست بیان بکنم یا نه ؟ ممنون |
زمان محلي شما با تنظيم GMT +3.5 هم اکنون ۱۰:۲۲ بعد از ظهر ميباشد. |
Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.1.0 ©2007, Crawlability, Inc.