اطلاعیه

Collapse
No announcement yet.

تاثیر اندازه ماتریس ورودی در عملکرد شبکه عصبی

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

    تاثیر اندازه ماتریس ورودی در عملکرد شبکه عصبی

    آیا تعداد نمونه ها تاثیری در میزان یادگیری و عملکرد شبکه عصبی داره؟
    دقت کنید که منظورم تعداد ویژگیها نیست.
    It's nice to be important but it's important to be nice!

    از اینکه نمی رسم جواب دوستان را بدم معذرت می خوام.

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

    لزوما نه-به عنوان مثال میشه با تعداد کمی نمونه و ازمایش ولی در صورتی که نمونه ها هماهنگ و رابطه صحیحی داشته باشند میتونید خروجی و ارتباط خوبی بگیرید ولی اگر حتی تعداد نمونه ها هم چند میلیون باشه ولی اون هماهنگی و ارتباط بین ورودی ها و خروجی ها نباشه اون جوابی رو که با 70-80 تا نمونه هم میگرید نخواهید گرفت.

    دیدگاه


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

      خوب مشکل اینجاست که از کجا میشه فهمید بهترین تعداد برای robust بودن سیستم چقدره؟
      نکته مهمی که این وسط هست اینه که تعداد یک نمونه اونقدر زیاد نباشه که اثر نمونه های دیگه رو از بین ببره.
      نکته ای که یکی از همکاران مطرح کرد اینه که به عنوان مثال شما به یک بچه دبستانی عمل ضرب رو یاد میدید هر چی تعداد مثالها بیشتر باشه اون شخص بهتر یاد میگیره.
      البته مهم اینه که مثالها تکراری و بیهوده نباشه.
      It's nice to be important but it's important to be nice!

      از اینکه نمی رسم جواب دوستان را بدم معذرت می خوام.

      دیدگاه


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

        تعداد داده های آموزشی مسلما هرچه بیشتر باشه بهتره ولی اینجا چند نکته وجود داره
        1- از صحت داده ها باید مطمئن شد زیرا داده های غلط شبکه را به خطاهای فاحش میکشاند
        2- باید داده ها در فضای ورودی همگن باشند
        3- تعداد داده های خیلی زیاد مدت زمان آموزش در هر epoch را زیاد کرده و ممکن است سرعت همگرایی را کندتر هم کند.
        مهم نیست چه مدرکى دارید
        مهم این است که چه درکى دارید . . .

        دیدگاه


          #5
          پاسخ : تاثیر اندازه ماتریس ورودی در عملکرد شبکه عصبی

          تعداد داده های آموزشی مناسب برای یک شبکه عصبی به عوامل زیادی بستگی دارد.در مواردی که ساختن و یا تهیه داده های آموزشی امکان پذیر است مهمترین نکته تنوع داده ها میباشد. و باید گفت که تنوع داده ها از تعداد آنها بسیار بسیار مهمتر است!
          برای روشن شدن موضوع یک مثال عرض میکنم فرض کنید شبکه ای با یک وروردی و یک خروجی داریم که میخواهیم تابع y=x^2 را تقریب بزنیم. اگر هدف ما تقریب در محدوده x بین 5 تا منفی 5 باشد. باید ورودیها را بصورت یکنواخت در این ناحیه تعیین کنیم و خروجی های متناظر آنرا تولید کنیم. اگر داده های آموزشی مثلا بیشتر بین صفر تا مثبت 5 باشند. داده ها مناسب نخواهد شد. البته یکنواختی به معنی خطی بودن فواصل داده های ورودی نیست. بلکه بیشتر باید به داده های خروجی متناظر توجه کرد. و بیشتر باید خطی بودن فواصل داده های خروجی مورد توجه باشد. تا خطا در کل بازه دادههای آموزشی یکسان گردد. در شبکه های با ابعاد بیشتر رعایت کردن این موضوع و تهیه دادههای آموزشی با تنوع مناسب اندکی پیچیده خواهد شد.
          نکته بعدی در مورد تعداد داده ها باید عرض کنم که تعداد داده ها رابطه خاصی ندارد ولی باید متناسب با دقت مورد نیاز برای خروجی شبکه در مورد داده های تست خواهد بود.( نه آموزشی)
          من خودم یک روش برای تعداد داده های لازم در نظر میگرفتم که بدین صورت است: ابتدا دقت مورد نیاز برای خروجی شبکه را تعیین میکنیم. و فاصله میانگین بین دادهای آموزشی خروجی را دو برابر این مقدار در نظر میگیریم. به عنوان مثال اگر دقت 0.1 را در مثال قبل نیاز داشته باشیم محدوده خروچی بین 0 تا 25 خواهد شد. بنابراین تعداد داده های مورد نیاز 250 عدد خواهد شد. البته برای این تابع برای داده هایی خیلی کمتر هم به دقت موردنظر میرسیم ولی در بدترین حالت به شرط این تعداد و رعایت تنوع حتما دقت مورد نظر حاصل خواهد شد.
          مهم نیست چه مدرکى دارید
          مهم این است که چه درکى دارید . . .

          دیدگاه


            #6
            پاسخ : تاثیر اندازه ماتریس ورودی در عملکرد &#1588

            بذارید کمی بیشتر راجع به کار توضیح بدم.
            امروز یکی از دانشجویان برای طرح پروپوزال آمده بود و یک دیتابیس معتبر با داده های معتبر آورده بود. تعداد ویژگی ها 40 تا و تعداد نمونه ها 500,000 تا
            قرار شد من راهنماییش کنم ولی از اونجایی که تابحال به این مشکل برخورد نکرده بودم نتونستم جواب قانع کننده ای بدم. چون تا بوده ما مشکل کمبود نمونه داشتیم و هیچ وقت این مقدار داده نداشتیم که رم کامپیوتر به مشکل برخورد کنه.
            برای همین نکته ای که برام سوال شد این بود که اگر میتونیم ویژگی های بی ارزش رو حذف کنیم تا کار شبکه رو سبک تر کنیم آیا بهتر هست که تعداد نمونه ها رو هم کم کنیم یا نه بهتره که هر چقدر میتونیم داده های بیشتری به شبکه بدیم البته با حفظ توازن بین تعداد نمونه های متنوع؟
            It's nice to be important but it's important to be nice!

            از اینکه نمی رسم جواب دوستان را بدم معذرت می خوام.

            دیدگاه


              #7
              پاسخ : تاثیر اندازه ماتریس ورودی در عملکرد شبکه عصبی

              اگر داده های همگی صحیح و قابل اعتماد باشند.
              و از تنوع لازم هم در فضای حالت ورودی برخوردار باشند.
              داده های زیاد هیچ مشکلی ندارند حتی کمک میکنند که خطای واقعی شبکه کمتر هم بشود.
              ولی فقط مدت زمان آموزش را زیاد میکنند که اون هم مساله مهمی نیست.
              فقط یک نکته مهم میمونه که اون طرز چینش دادهها در هنگام آموزشه
              صرف اینکه داده ها تنوع لازم را دارند مهم نیست بلکه اینکه ترتیب فراخوانی داده های آموزشی در هر epoch هم مهم است.
              و این مسئله در داده های زیاد خود را به طور فاحشی نشان میدهد و خیلی مهم است.
              در واقع وقتی داده های شما زیاد است ممکن است شبکه مدت زمان زیادی را در حال آموزش توسط داده های قسمت اندکی از فضای حالت ورودی صرف کند
              و اصلاح این نوع overfitting در epoch های بعدی آموزش سخت تر و سخت تر میشود.
              بنابراین باید داده ها نه تنها در محتوا بلکه در ترتیب فراخوانی برای آموزش شبکه نیز تنوع داشته باشند.
              مهم نیست چه مدرکى دارید
              مهم این است که چه درکى دارید . . .

              دیدگاه


                #8
                پاسخ : تاثیر اندازه ماتریس ورودی در عملکرد شبکه عصبی

                shuffling توسط خود متلب انجام میشه اگر منظورتون اینه. درسته؟
                It's nice to be important but it's important to be nice!

                از اینکه نمی رسم جواب دوستان را بدم معذرت می خوام.

                دیدگاه


                  #9
                  پاسخ : تاثیر اندازه ماتریس ورودی در عملکرد شبکه عصبی

                  از پاسخ های اقای عزیزی متشکرم- اقای شفقی 500000 تا برای 40 ویژگی تقریبا مناسبه-ولی اگر از روند نمونه ها اطلاع دارید یعنی اگر میتونید سلکشن انجام بدید میتونید تعدادی از داده ها رو بر اساس یه روندی حذف کنید یا میانگین گیری کنید- البته بستگی به نمونه ها و روند اونها داره و اینکه از این خصوصیت تا حدودی اطلاع داشته باشید- اینکه اجرای شبکه عصبی باعث میشه رم کامپیوتر کم بیاره که این هم بستگی خیلی زیادی داره به نوع پیاده سازی شبکه - به نظر من اگر بتونید داده ها رو کمتر کنید البته با یه الگویی خوب سریعتر جواب میگیرید چون همونطوری که گفتم لازم نیست حتما اینقدر نمونه داشته باشید- من شبکه عصبی رو با متلب انجام ندادم و از سرعتش در این زمینه اطلاعی ندارم ولی چون در کاری که قبلا انجام دادم تعداد نمونه ها میلیونی :biggrin: بود من با اکسل و یه نرم افزار شبکه عصبی دیگه که با اکسل مچ میشد این کار رو انجام دادم که سرعت هم خوب بود البته تعداد داده ها رو به حدود 700 800 تا برای هر خصوصیت کم کرده بودم چون از روند داده ها اطلاع داشتم-

                  دیدگاه


                    #10
                    پاسخ : تاثیر اندازه ماتریس ورودی در عملکرد شبکه عصبی

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

                    دیدگاه

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