اطلاعیه

Collapse
No announcement yet.

کد کامل شبکه عصبی MLP

Collapse
این موضوع برجسته شده است.
X
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    #46
    پاسخ : کد کامل شبکه عصبی MLP

    نوشته اصلی توسط av_saber
    چند تا چیز جدید هم فهمیدم
    و اون اینکه متغیر های موجود در فایل KFData2 باید به این صورت باشند
    T یا همون target که بردار هدف یا خروجی مورد نظر در اون ذخیره می شه
    P که همون ماتریس ورودی هست
    ‏‏TT که target test هست و باید تعدادی از دیتاها رو مثلا 10٪ رو برای تست شبکه و گرفتن نتایج خروجی استفاده کرد این ماتریس همون ماتریس خروجی تست هست
    ‏TP و این ماتریس ماتریس ورودی تست هست
    ولی بازم شبکه من یه خطا مبنی بر یکی منطبق نبودن اندازه ماتریس ها می ده علتش رو نفهمیدم ؟؟؟ :angry:
    خب بعد اینا رو چجوری باید توی فایل مربوطه قرار داد؟...سطری یا ستونی؟...اول باید ورودی رو قرار داد یا هدف رو...اول باید تست رو قرار داد یا آموزش رو؟...این همه زحمت کشیدید کد رو نوشتید یه فایل هم می ذاشتید کنارش و توضیح می دادید نحوه ساختن فایل KFData2 چجوریه؟...البته الان 2 سال از پست اول گذشته و معلوم نیست آقای نحوی کجا باشن؟...جالب اینه که این فایل تو چند تا سایت دیگه هم پلود شده و هیچ توضیحی داده نشده!

    دیدگاه


      #47
      پاسخ : کد کامل شبکه عصبی MLP

      لینک این کد کجاست؟ من نیخوام ذخیرش کنم

      دیدگاه


        #48
        پاسخ : کد کامل شبکه عصبی MLP

        با سلام خدمت آقای نحوی و دوستان دیگر
        من درحال پیاده سازی یک شبکه عصبی با ماتریس ورودی 2750*50 ( مشابه همون ماتریس ضرایب PCA) که در آموزش که در سایت گذاشته بودید، هستم و تعداد تصاویر ورودی من هم 50 تصویر هست( البته فعلا)
        دو سوال از شما دارم
        1. طبیعتا newff جواب نمیده و هنوز هم فایل شما رو که در این تاپیک گذاشتید امتحان نکردم. اما میخوام بپرسم در مورد ماتریس ضرایب PCA از چه نوع شبکه عصبی استفاده بشه بهتر هست؟
        2. از این ام فایلهایی که اینجا قرار دادید میشه برای این کاربرد هم استفاده کرد؟ منظورم اینه که در برابر این حجم بالا که قراره بیشتر هم بشه( تعداد تصاویر حدود 100 تا خواهد شد) جواب خوبی میتونه بده
        با تشکر
        گویند که فریادرسی می آید...

        دیدگاه


          #49
          پاسخ : کد کامل شبکه عصبی MLP

          [WI WO]=UpdateWeight(P,T,PT,TT,WI,WO,D,ETAI,ETAO,ALPHA,NT mp,NumNet,Iteration)
          درمورد دستور بالا در ام فایلهایی که در اینجا قرار دادید یک سوال دارم
          منظور از PT,TT همان بردارهای ورودی و تارگت تست هست؟( میتوان برای تست شبکه به جای آنها همانP,T را قرار داد که ببینیم چه جوابی در ازای داده های اولیه خواهیم داشت؟)
          با تشکر
          گویند که فریادرسی می آید...

          دیدگاه


            #50
            پاسخ : کد کامل شبکه عصبی MLP

            نوشته اصلی توسط mr_ghl
            خب بعد اینا رو چجوری باید توی فایل مربوطه قرار داد؟...سطری یا ستونی؟...اول باید ورودی رو قرار داد یا هدف رو...اول باید تست رو قرار داد یا آموزش رو؟...این همه زحمت کشیدید کد رو نوشتید یه فایل هم می ذاشتید کنارش و توضیح می دادید نحوه ساختن فایل KFData2 چجوریه؟...البته الان 2 سال از پست اول گذشته و معلوم نیست آقای نحوی کجا باشن؟...جالب اینه که این فایل تو چند تا سایت دیگه هم پلود شده و هیچ توضیحی داده نشده!
            واسه اجرای برنامه باید ماتریس¬های زیر را در work space داشته باشیم یا اونها رو load کنیم:
            P : ماتریس ورودی برای آموزش شبکه که عناصر موجود در هر ستون، ویژگی¬های استخراج شده مورد نظر ماست و تعداد ستون¬های آن برابر تعداد داده های آموزش شبکه است.
            T : ماتریس هدف متناظر با ماتریس ورودی P است. یعنی اگر تعداد ستون های ماتریس P برابر 1000 بود، تعداد ستون های ماتریس T هم برابر 1000 می¬شود. فرض کنیم شبکه عصبی وظیفه شناسایی سه کلاس را داشته باشد، در اینصورت تعداد سطرهای ماتریس T برابر 3 خواهد بود.
            PT : ماتریس ورودی برای تست شبکه می¬باشد.
            TT : ماتریس هدف متناظر با ماتریس PT است.
            من این کد رو واسه شبکه عصبی که قرار بود 10 تا کلاس رو شناسایی کنه بکار بردم و جواب داد، نتیجه خوب نبود (حدود 75 درصد درست بود، البته شاید ویژگی هام ضعیف بودن) ولی سرعتی که داشت فوق العاده بود نسبت به خود تابع newff.

            دیدگاه


              #51
              پاسخ : کد کامل شبکه عصبی MLP

              سلام
              آقای نحوی فکر کنم یه اشتباه کوچیک تو الگوریتم برنامه هست، موقع نرمالیزه کردن ورودی های تست، از مینیمم و ماکزیمم ورودی های آموزش استفاده شده در صورتی که باید از مینیمم و ماکزیمم های ورودی های تست استفاده بشه. برنامه خودم رو تو این حالت اجرا کردم و نرخ شناسایی از 75درصد به 95 درصد رسید.
              موفق باشید.

              دیدگاه


                #52
                پاسخ : کد کامل شبکه عصبی MLP

                نوشته اصلی توسط alitajari
                سلام
                آقای نحوی فکر کنم یه اشتباه کوچیک تو الگوریتم برنامه هست، موقع نرمالیزه کردن ورودی های تست، از مینیمم و ماکزیمم ورودی های آموزش استفاده شده در صورتی که باید از مینیمم و ماکزیمم های ورودی های تست استفاده بشه. برنامه خودم رو تو این حالت اجرا کردم و نرخ شناسایی از 75درصد به 95 درصد رسید.
                موفق باشید.
                سلام.
                نه دوست عزیز کد درست هست شما اشتباه کردید. شما اجازه هیچ گونه استفاده ای از داده های آزمایش ندارید.
                ببینید شما فرض کنید قراره دستگاه هوشمند شما در دنیای واقعی بکار گرفته بشه و مثلا ارقام چک های مختلف رو بخونه، شما یه سری داده آموزش به سامانه تون میدید و اون رو آموزش میدید ولی دیگه هیچ دسترسی ای به داده هایی که قراره بعدا به دستگاه داده بشه ندارید، داده های آزمایش با معیار هایی که از داده های آموزش بدست آوردید سنجیده میشن. بنابراین نرمالیزه کردن داده های آزمایش بوسیله خود اونها کاملا اشتباه هست و در دنیای واقعی شما این اطلاعات رو در اختیار ندارید.

                حقیقت اینکه من این کد رو سال 85-86 نوشتم، یه روش خیلی بهتری برای نرمالیزه کردن داده ها وجود داره میتونید از اون استفاده کنید که فکر میکنم نرخ بازشناسی تون رو افزایش بده اونم اینکه به جای اینکه داده ها رو اینطوری بین مثلا صفر و یک یا بین 1- و 1 نمالیزه کنیم، بیاییم داده های ورودی رو که مثلا یک ماتریس با یک سطر و 50 ستون هست به عنوان یک بردار در فضای 50 بعدی فرض کنیم که در واقع این بردار در فضای 50 بعدی داره به یه جهتی اشاره می کنه. در مسئله بازشناسی ارقام دستنوشته، اگه در فضای استخراج ویژگی، بردار ویژگی تصویر هر رقم یه بردار 50 بعدی باشه، برای تصاویر ارقام مثلا صفر این بردار ها دارن به یه جهت مشخصی در فضای 50 بعدی اشاره میکنن برای رقم 1 همینطور و ... . پس جهت این بردار ها اهمیت داره برای بدست آوردن این جهت(فارغ از اندازه این بردار) میتونیم بردار رو یکه کنیم. دقیقا مثل یکه کردن بردار های دو بعدی و سه بعدی که در ریاضی داشتیم. تک تک مولفه ها رو به توان 2 میرسونیم، با هم جمع میکنیم و رادیکال میگیرم و تک تک درایه های بردار ویژگی رو بر عدد بدست اومده از رادیکال تقسیم می کنیم.
                این روش خیلی بهتر از روش قبلی جواب میده.
                سوالی بود در خدمتم موفق باشید
                شأن انسان در ايمان و هجرت و جهاد است و هجرت، مقدمهآ‌ي جهاد فيآ‌سبيلآ‌الله.
                هجرت، هجرت از سنگينيآ‌هاست و جاذبهآ‌هايي كه تو را به خاك ميآ‌چسباند.
                چكمهآ‌هايت را بپوش، رهآ‌توشهآ‌ات را بردار و هجرت كن.

                دیدگاه


                  #53
                  پاسخ : کد کامل شبکه عصبی MLP

                  نوشته اصلی توسط michel
                  [WI WO]=UpdateWeight(P,T,PT,TT,WI,WO,D,ETAI,ETAO,ALPHA,NT mp,NumNet,Iteration)
                  درمورد دستور بالا در ام فایلهایی که در اینجا قرار دادید یک سوال دارم
                  منظور از PT,TT همان بردارهای ورودی و تارگت تست هست؟( میتوان برای تست شبکه به جای آنها همانP,T را قرار داد که ببینیم چه جوابی در ازای داده های اولیه خواهیم داشت؟)
                  با تشکر
                  سلام.
                  بله منظور همونه.
                  بله میشه
                  شأن انسان در ايمان و هجرت و جهاد است و هجرت، مقدمهآ‌ي جهاد فيآ‌سبيلآ‌الله.
                  هجرت، هجرت از سنگينيآ‌هاست و جاذبهآ‌هايي كه تو را به خاك ميآ‌چسباند.
                  چكمهآ‌هايت را بپوش، رهآ‌توشهآ‌ات را بردار و هجرت كن.

                  دیدگاه


                    #54
                    پاسخ : کد کامل شبکه عصبی MLP

                    نوشته اصلی توسط michel
                    با سلام خدمت آقای نحوی و دوستان دیگر
                    من درحال پیاده سازی یک شبکه عصبی با ماتریس ورودی 2750*50 ( مشابه همون ماتریس ضرایب PCA) که در آموزش که در سایت گذاشته بودید، هستم و تعداد تصاویر ورودی من هم 50 تصویر هست( البته فعلا)
                    دو سوال از شما دارم
                    1. طبیعتا newff جواب نمیده و هنوز هم فایل شما رو که در این تاپیک گذاشتید امتحان نکردم. اما میخوام بپرسم در مورد ماتریس ضرایب PCA از چه نوع شبکه عصبی استفاده بشه بهتر هست؟
                    2. از این ام فایلهایی که اینجا قرار دادید میشه برای این کاربرد هم استفاده کرد؟ منظورم اینه که در برابر این حجم بالا که قراره بیشتر هم بشه( تعداد تصاویر حدود 100 تا خواهد شد) جواب خوبی میتونه بده
                    با تشکر
                    سلام.
                    1. ارتباطی به روش استخراج ویژگی نداره بلکه بستگی به پیچیدگی داده ها در فضای ویژگی داره. تفاوت بین اینکه مثلا MLPآ‌ بهتره یا RBF هم در اکثر مواقع با آزمون و خطا بدست میاد واین بهتر بودن هم به معنای تفاوت اساسی بین این دو طبقه بند نیست بلکه ممکنه در یه مسئله ای یکشون کمی بهتر کار کنه.
                    2.بله میشه استفاده کرد. من این کد رو بر روی پایگاه داده هدی اعمال کردم یعنی 60 هزار داده آموزش و 20 هزار داده آزمایش فکر کنیم محک خوبی بوده.
                    موفق باشید
                    شأن انسان در ايمان و هجرت و جهاد است و هجرت، مقدمهآ‌ي جهاد فيآ‌سبيلآ‌الله.
                    هجرت، هجرت از سنگينيآ‌هاست و جاذبهآ‌هايي كه تو را به خاك ميآ‌چسباند.
                    چكمهآ‌هايت را بپوش، رهآ‌توشهآ‌ات را بردار و هجرت كن.

                    دیدگاه


                      #55
                      پاسخ : کد کامل شبکه عصبی MLP

                      نوشته اصلی توسط mr_ghl
                      خب بعد اینا رو چجوری باید توی فایل مربوطه قرار داد؟...سطری یا ستونی؟...اول باید ورودی رو قرار داد یا هدف رو...اول باید تست رو قرار داد یا آموزش رو؟...این همه زحمت کشیدید کد رو نوشتید یه فایل هم می ذاشتید کنارش و توضیح می دادید نحوه ساختن فایل KFData2 چجوریه؟...البته الان 2 سال از پست اول گذشته و معلوم نیست آقای نحوی کجا باشن؟...جالب اینه که این فایل تو چند تا سایت دیگه هم پلود شده و هیچ توضیحی داده نشده!
                      سلام. خوبی دوست عزیز؟
                      حتما در اولین فرصت نسخه جدید برنامه + راهنما + یه مثال رو در سایت قرار میدم.
                      موفق باشید
                      شأن انسان در ايمان و هجرت و جهاد است و هجرت، مقدمهآ‌ي جهاد فيآ‌سبيلآ‌الله.
                      هجرت، هجرت از سنگينيآ‌هاست و جاذبهآ‌هايي كه تو را به خاك ميآ‌چسباند.
                      چكمهآ‌هايت را بپوش، رهآ‌توشهآ‌ات را بردار و هجرت كن.

                      دیدگاه


                        #56
                        پاسخ : کد کامل شبکه عصبی MLP

                        سلام دوستان
                        اگر این کدها رو تونستید توی متلب اجرا کنید ممنون میشم یک نمونه از داده های ورودی و خروجی مناسب که به ازای اونها شبکه جواب داده رو اینجا بگذارید. من برای اجرای برنامه وقتی از دستور newff متلب استفاده میکنم جواب میده. یعنی درصد پاسخ صحیح حدودا 80 درصد هست اما خیلی کنده ولی وقتی از این برنامه استفاده میکنم خطا میده . ماتریس p در شبکه من یک ماتریس 75*480 هست.که 75 تعداد تصاویر و 480 تعداد ویژگی های هر تصویر هست.
                        یه سوال هم درمورد شبکه عصبی دارم. وقتی از دستورهای newff یا newelm استفاده میکنم مثلا
                        net.trainparam.goal=0.0001; رو به عنوان شرط توقف میذارم اما هرچقدر هم آموزش رو طولانی تر میکنم اصلا مقدار ترین از 0.1 کمتر نمیشه علتش چیه؟ و چطور میتونم مشکل رو برطرف کنم؟
                        ممنون
                        گویند که فریادرسی می آید...

                        دیدگاه


                          #57
                          پاسخ : کد کامل شبکه عصبی MLP

                          نوشته اصلی توسط michel
                          سلام دوستان
                          اگر این کدها رو تونستید توی متلب اجرا کنید ممنون میشم یک نمونه از داده های ورودی و خروجی مناسب که به ازای اونها شبکه جواب داده رو اینجا بگذارید. من برای اجرای برنامه وقتی از دستور newff متلب استفاده میکنم جواب میده. یعنی درصد پاسخ صحیح حدودا 80 درصد هست اما خیلی کنده ولی وقتی از این برنامه استفاده میکنم خطا میده . ماتریس p در شبکه من یک ماتریس 75*480 هست.که 75 تعداد تصاویر و 480 تعداد ویژگی های هر تصویر هست.
                          یه سوال هم درمورد شبکه عصبی دارم. وقتی از دستورهای newff یا newelm استفاده میکنم مثلا
                          net.trainparam.goal=0.0001; رو به عنوان شرط توقف میذارم اما هرچقدر هم آموزش رو طولانی تر میکنم اصلا مقدار ترین از 0.1 کمتر نمیشه علتش چیه؟ و چطور میتونم مشکل رو برطرف کنم؟
                          ممنون
                          سلام دوست عزیر علمی
                          یه سری داده که برنامه باهاشون کار میکنه واسه دانلود گذاشتم، البته اینا فقط ماتریس هستند و انتظار جواب خوب ازش نداشته باش، فقط ببین که برنامه بدون خطا اجرا می شه: لینک دانلود داده ها:
                          http://ifile.it/rwthvsx/matlab.mat
                          البته میتونم حدس بزنم چرا برنامه خطا میده بهت، اینکاری که میگم رو انجام بده احتمالا مشکلت حل میشه و با داده های خودت میتونی برنامه را اجرا کنی:
                          خط 19 فایل CMLP را باید با توجه به برنامه خودت و تعداد کلاس هایی که میخوای طبقه بندی کنی اصلاح کنی، به این صورت که اگه تعداد کلاس هات 8 تا هست، درایه آخر (سوم) ماتریس D را باید مقدارش را از 10 به 8 تغییر بدی. تو داده هایی که من لینک گذاشتم واسشون، 4 تا کلاس داریم پس واسه اجرای اونا باید درایه سوم ماتریس D را به 4 تغییر بدی تا برنامه با این داده ها اجرا بشه. (این عدد اگه اشتباه نکنم تعداد نرون های لایه خروجی رو مشخص میکنه، البته نویسنده برنامه آقای نحوی هست، از خودشون بپرسی مطمئن تره، من فقط حدس میزنم)
                          موفق باشید.

                          دیدگاه


                            #58
                            پاسخ : کد کامل شبکه عصبی MLP

                            من هم یک برنامه برای شبکه عصبی با یک لایه مخفی نوشتم. الگوریتم دقیقاً مشابه کتاب Duda هست. اگه سوالی داشتید در خدمتم.
                            http://vip.eca.ir/sharing/uploads/13987003701.rar
                            لطفاً برای انجام پروژه های دانشجویی پیام خصوصی نفرستید.
                            لطفاً سؤالاتی که در انجمن قابل طرح شدن هستند پیام خصوصی نکنید.
                            با تمام وجود گناه کرديم اما نه نعمتش را از ما گرفت نه گناهان ما را فاش کرد اطاعتش کنيم چه مي کند؟"دکتر شريعتي"
                            اگر جايي که ايستاده ايد را نمي پسنديد، عوضش کنيد شما درخت نيستيد!! "پاسكال"
                            يا به اندازه ي آرزوهايت تلاش کن يا به اندازه تلاشت آرزو کن. "شکسپير"

                            دیدگاه


                              #59
                              پاسخ : کد کامل شبکه عصبی MLP

                              سلام مهندس نحوی عزیز
                              من کد کامل شمارو دانلود کردم، تا انتهاش هم رفتم اما وقتی end زدم، این پیغام اومد؟
                              -----------------------------------------------------------------
                              ??? Error using ==> mtimes
                              Inner matrix dimensions must agree.

                              Error in ==> testPhase at 14
                              Y1=(USF(PT(:,i)'*WI{NC,1}));
                              -----------------------------------------------------------------
                              اول اینکه مشکلم کجاست؟ شاید به خاطر اینه که پارامتر P من 3 عنصر داره؟ کد شما باهاش مطابقت نداره؟ نمیدونم اگر میدونید لطفاً راهنماییم کنید.
                              بعدش چیکار باید بکنم؟ یعنی مدلم ساخته شد؟ روند آموزش چی!! دیده نشد!! تست شد؟ حالا چطور میتونم نتایج مدلمو ببینم؟ R یا R squre ...؟

                              حقیقتش میخوام یک شبکه عصبی بسازم که قادر به پیش بینی باشه. 3 پارامتر ورودی دارم یک خروجی، کلا 391 دسته داده دارم میخوام 30% برای اعتبارسنجی و تست و مابقی رو برای آموزش بکار ببرم.

                              آیا دستور ساده NEWFF که با خوندن راهنمای متلب بهش رسیدم مناسبه؟
                              net=newff(minmax(p),[5 5 1],{'tansig' 'logsig' 'purelin'},'trainscg','le arngdm','mse'
                              [W,b]=initp(p,t)
                              net.inputweights{1,1}.initFcn='rands';
                              net.biases{1}.initFcn='rands';
                              net=init(net);
                              net.trainParam.epochs=5000;
                              net.trainParam.lr=0.05;
                              net.trainParam.show=50;
                              net.trainParam.goal=1e-5;
                              net1=train(net,p,t);
                              a=sim(net1,pnew);
                              [m,b,r]=postreg(a,tnew)

                              از دستورهای بالا استفاده کردم، اما رگرسیون تست و اعتبارسنجی شبکه خیلی پایین در میاد (0.5&gt
                              ممنون میشم کمکم کنید

                              دیدگاه


                                #60
                                پاسخ : کد کامل شبکه عصبی MLP

                                من میخوام با استفاده از شبکه عصبی پرسپترون نرخ ارز و پیش بینی کنم میشه من و راهنمایی کنید؟ :cry:

                                دیدگاه

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