اطلاعیه

Collapse
No announcement yet.

سوال در مود آموزش شبکه عصبی در مطلب

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    سوال در مود آموزش شبکه عصبی در مطلب

    من می خواهم یه پیش بینی با شبکه عصبی انجام بدم . ساخت شبکه و آموزش و بقیه ی کارها را انجام دادم فقط مشکلی که هست اینه که شبکه هر دفعه یه جوابی میده یعنی یه بار پیش بینی خوبی انجام میده ولی دوباره که برنامه را اجرا می کنم جواب فرق میکنه.هر دفعه هم تمام متغیرهای قبلی را پاک میکنم منظور اینکه نمی تونه اثر اجراهای قبلی باشه .برا نوشتن برنامه از toolbox خود مطلب استفاده می کنم حتما یه جایی تویه یکی از این الگوریتم ها داره از تابع rand استفاده می کنه ولی من که نتونستم پیداش کنم و درستش کنم . کسی نمی تونه کمکم کنه ، آخه اینکه خودم بخوام تمام الگوریتم ها را بنویسم خیلی سخت میشه . لطفا اگه کسی پیشنهادی داره کمکم کنه

    #2
    پاسخ : سوال در مود آموزش شبکه عصبی در مطلب

    سلام دوست عزیز
    اول از همه تقضا می کنم که سئوالتون رو در یک جا مطرح کنید.
    ببینید قسمت رندوم قضیه به این صورت هست:

    الگوریتم آموزشی شبکه عصبی به این صورت کار آموزش شبکه رو آغاز می کنه که ابتدا وزن های تصادفی رو به شبکه اختصاص میده و الگوریتم آموزش کار خودش رو شروع می کنه و بنابراین با هر بار اجرای آموزش چون در فضای وزن ها از نقطه ی متفاوتی شروع می کنیم،بنابراین در هر بار ا جرای آموزش جواب های متفائتی برای وزن ها می گیریم.

    راه حل:
    وقتی شما شبکه رو آموزش میدهید،و از نتایج اموش راضی هستید،باید شبکه ی عصبی رو تحت یه مغیر Save کنید و سپس در هر برنامه ای به اون شبکه نیاز داشتید با دستور Load شبکه رو دوباره با همون وزن ها داشته باشید.
    مثلا شبکه ای به عنوان net 2 ساخته اید و آموزش داده اید،سپس باید با دستور
    save net 2
    اون رو ذخیره کنید و از این به بعد با دستور
    Load net2
    همه ی وزن های شبکه که شما save کردید loadمیشن.
    انجمن طراحی مدارهای مایکرویو(فرکانس بالا)(http://www.eca.ir/forum2/index.php?board=283.0)
    انجمن شبکه های عصبی(http://www.eca.ir/forum2/index.php?board=207.0)
    *****

    دیدگاه


      #3
      پاسخ : سوال در مود آموزش شبکه عصبی در مطلب

      از راهنماییتون خیلی ممنون این کار تا حدی خوبی مشکلم را رفع میکنه فقط مشکلی که هست اینه که من میخوام پیش بینی انجام بدم و برای این کار مثلا دیتاهای مربوط به 20سال را برای آموزش استفاده می کنم و 5 سال بعدی را پیش بینس می کنم خوب حالا مثلا میخوام از سال 25 تا 30 را پیش بینی کنم برای این کار باید از 25 سال برای آموزش استفاده کنم این یعنی باید شبکه تغییر کنه کهsave کردن اون بی فایده میشه یا باید با استفاده از همون اوزان شبکه ی قبلی، 5 سال بعدی را پیش بینی کنم که چون این طوری عملا در آموزش از 5 سال دیتا صرف نظر کرده ایم در نتیجه جواب خوبی نخواهد داشت . نمی دونم شاید اگه بتونم یه مقدار اولیه خودم به وزن ها بدم بهتر باشه یعنی مثلا با مقدار اولیه ی صفر یا یه مقدار ثابت دیگه . با این کار همون طور که شما گفتید دیگه هر مرتبه شبکه یه جواب متفاوت نمیده و میشه هر دفعه شبکه ی جدیدی داشت که بشه تضمین کرد اگه چند بار هم از اول برنامه اجرا بشه باز هم جواب ثابت خواهد بود .نمی دونم درست کفتم یا نه ولی اگه درسته خواهشا راهنماییم کنید چطوری باید این کار را انجام بدم یعنی با چه دستوری می تونم همه ی وزن ها و بایاس ها را مقدار دهی کنم. ممنون

      دیدگاه


        #4
        پاسخ : سوال در مود آموزش شبکه عصبی در مطلب

        فرمول دسترسی به وزن های شبکه به طور صریح در راهنمای Matlab آمده است،تقاضا مندم ابتدا راهنمای تولباکس شبکه عصبی متلب را دانلود کنید و مطالعه کنید و سپس به برنامه نویسی بپردازید.من لینک دانلود راهنما رو در چند جای این انجمن گذاشتم.
        ***
        فرمول دسترسی به وزن لایه اول از ورودی یه به نرون یک:
        net.IW{1,1}=0.5
        فرمول دسترسی به وزن از خروجی نرون لایه یک به لایه بعدی:
        net.LW{1,1}=0.5
        ولی بازهم می خوام ازتون که ابتدا راهنما رو مطالعه کنید،می تونید یک هفته وقت بزارید و به صورت خلاصه وار مطالب مهم رو بخونید که با دستورات کلیدی آشنا بشید،حتما فصل 12(advanced topic) رو مطالعه کنید.
        انجمن طراحی مدارهای مایکرویو(فرکانس بالا)(http://www.eca.ir/forum2/index.php?board=283.0)
        انجمن شبکه های عصبی(http://www.eca.ir/forum2/index.php?board=207.0)
        *****

        دیدگاه

        لطفا صبر کنید...
        X