اطلاعیه

Collapse
No announcement yet.

طبقه بندی با شبکه عصبی

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

    طبقه بندی با شبکه عصبی

    سلام .
    من یه مشکلی دارم این که نمیدونم از اطلاعات چطور برای شبکه عصبی استفاده کنم و دقیقا این که شبکه عصبی برای من میتونه چیکار کنه .
    ببنید من دو تا سیگنال ECG دارم که مربوط به افرد سالمه و 2 تا که مربوط به افراد بیماره .
    حالا من با شبکه عصبی چطور میتونم این سیگنال ها رو طبقه بندی کنم ؟
    هر 4 سیگنال من ماتریس 1200*1 هستند .
    وارد nftool شدم که میتونی یک ورودی انتخاب کنی و یک خروجی . خوب خروجی من چیه ؟ من که میخوام دسته بندی کنم خروجی رو چی باید انتخاب کنم . خروجی رو میخوام از شبکه عصبی بگیرم .
    میشه خواهش کنم یه نفر قدم به قدم توضیح بده چطوری توی nftool این 4 تا سیگنال رو طبقه بندی کنم ؟

    مرسی

    #2
    پاسخ : طبقه بندی با شبکه عصبی

    سلام.
    تاپیک های زیر رو یه نگاهی بنداز و یه سرچی هم بزن اگه نتیجه نداد ادامه بدیم.
    http://www.eca.ir/forum2/index.php?topic=65368
    http://www.eca.ir/forum2/index.php?topic=77339.0
    لطفاً برای انجام پروژه های دانشجویی پیام خصوصی نفرستید.
    لطفاً سؤالاتی که در انجمن قابل طرح شدن هستند پیام خصوصی نکنید.
    با تمام وجود گناه کرديم اما نه نعمتش را از ما گرفت نه گناهان ما را فاش کرد اطاعتش کنيم چه مي کند؟"دکتر شريعتي"
    اگر جايي که ايستاده ايد را نمي پسنديد، عوضش کنيد شما درخت نيستيد!! "پاسكال"
    يا به اندازه ي آرزوهايت تلاش کن يا به اندازه تلاشت آرزو کن. "شکسپير"

    دیدگاه


      #3
      پاسخ : طبقه بندی با شبکه عصبی

      هادی جان خوندم ولی نتونستم چیزی متوجه بشم. اگه ممکنه پله پله بهم بگید چیکار کنم ممنون میشم .

      دیدگاه


        #4
        پاسخ : طبقه بندی با شبکه عصبی

        1- شبکه عصبی برای آموزش معتبر نیاز به نمونه های زیادی داره. تعداد داده های شما اون قدر کمه که حتی تعیین درصد داده های آموزشی،validation و تست مشکله.
        2- داده ها باید قبلاً در محیط Workspace موجود باشند که فرمت اونها رو در ادامه میگم.
        در command window تایپ کن: nprtool
        صفحه اول فقط Next بزن.
        در صفحه بعد، باید بردارهای ویژگی ورودی و برچسب اونها رو مشخص کنی:
        در صورتی که بردار ویژگی هر داده در یک ستون قرار گرفته (ستون اول=بردار ویژگی داده اول و ...) گزینه Matrix columns باید انتخاب شود و در صورتی که ویژگی ها به صورت سطری باشند، Matrix rows.
        فرض کن که 100 تا داده داریم با بردار ویژگی 10 عنصری، اگه در هر ستون یک داده داشته باشیم میشه یک ماتریس 10 در 100.
        در این صورت باید ماتریس برچسب (کلاسها) به صورت یک ماتریس c در 100 باشه که c تعداد کلاسهای خروجیه که برای یک مسأله باینری مثل مسأله شما میشه 2.
        در ستون 1 که مربوط به اولین نمونه است، اگه متعلق به کلاس 1 باشه سطر اول، 1 و سطر دوم 0 میشه و اگه متعلق به کلاس 2 باشه برعکس. برای پر کردن این ماتریس میتونی خودت توی یک function برنامه بنویسی.
        در صفحه بعد درصد دیتای آموزش، مرحله Validation و تست رو مشخص می کنی. در صفحه بعد تعداد لایه های مخفی و در صفحه بعد با زدن Train آموزش شبکه شروع میشه. در پنجره آموزش شبکه عصبی، نمودارهای مختلفی که معمولاً گزارش میشن وجود دارن.
        در صفحه بعد nprtool میتونی مجدداً شبکه رو آموزش بدی، در صفحه بعد هم میتونی داده های تست جدیدی به شبکه بدی و در صفحه آخر هم میتونی پارامترها و خروجی های شبکه رو ذخیره کنی.
        یکی از محدودیت های nprtool اینه که پارامترهای شبکه رو نمیشه کامل مشخص کرد در حالی که در کدنویسی همه پارامترها قابل تغییر و بهینه سازی هستند مثلاً تعداد لایه های پنهان در محیط گرافیکی فقط یکیه در حالی که در کدنویسی میشه هر چیزی تعریف کرد (معمولاً تأثیر چندانی نداره) یا روش آموزش و ... .
        در صورتی که میخوای کد بنویسی چون تازه کاری توصیه می کنم در همون صفحه آخر nprtool یکی از گزینه های simple script یا advanced script رو بزنی تا کدش رو بهت بده و بعد تغییرات مورد نظرت رو اعمال کنی و نتیجه رو مقایسه کنی.
        موفق باشی.
        لطفاً برای انجام پروژه های دانشجویی پیام خصوصی نفرستید.
        لطفاً سؤالاتی که در انجمن قابل طرح شدن هستند پیام خصوصی نکنید.
        با تمام وجود گناه کرديم اما نه نعمتش را از ما گرفت نه گناهان ما را فاش کرد اطاعتش کنيم چه مي کند؟"دکتر شريعتي"
        اگر جايي که ايستاده ايد را نمي پسنديد، عوضش کنيد شما درخت نيستيد!! "پاسكال"
        يا به اندازه ي آرزوهايت تلاش کن يا به اندازه تلاشت آرزو کن. "شکسپير"

        دیدگاه


          #5
          پاسخ : طبقه بندی با شبکه عصبی

          حالا یه سوال برام پیش اومده در مورد خروجی یا همون target .
          پس برای قسمت target من خودم باید تک تک این مثلا 100 تا نمونه مربوط به افراد تست شده رو بررسی کنم ببینم کدوم متعلق به کلاس سالمه کدوم کلاس بیمار .
          اگه سالم بود سطر یک رو میزارم 1 و سطر دو 0 اگه مریض بود سطر دو رو میزارم 1 و سطر یک میشه 0 . یک ماتریس 100*2 . درسته ؟
          حالا سوال دوم این که من که خودم میدونم این 100 تا فرد تست شده کدوم سالمه کدوم بیمار حالا پس نقش شبکه عصبی چیه ؟ یعنی شبکه عصبی چه کمکی میتونه بهم بکنه و چه کارهایی از دستش برمیاد ؟
          مرسی

          دیدگاه


            #6
            پاسخ : طبقه بندی با شبکه عصبی

            بله درسته.
            شما یک بار نمونه های آموزشی به شبکه میدی و بر اساس اون شبکه آموزش میبینه و اگه صحت خروجی خوب باشه میتونی از اون برای نمونه های جدید که کلاسش مشخص نیست استفاده کنی.
            لطفاً برای انجام پروژه های دانشجویی پیام خصوصی نفرستید.
            لطفاً سؤالاتی که در انجمن قابل طرح شدن هستند پیام خصوصی نکنید.
            با تمام وجود گناه کرديم اما نه نعمتش را از ما گرفت نه گناهان ما را فاش کرد اطاعتش کنيم چه مي کند؟"دکتر شريعتي"
            اگر جايي که ايستاده ايد را نمي پسنديد، عوضش کنيد شما درخت نيستيد!! "پاسكال"
            يا به اندازه ي آرزوهايت تلاش کن يا به اندازه تلاشت آرزو کن. "شکسپير"

            دیدگاه


              #7
              پاسخ : طبقه بندی با شبکه عصبی

              حالا که یک بار train کردم ورودی های جدید رو چطور باید وارد کنم توی صفحه آخر ؟
              اینو هم توضیح بدین دیگه خیلی خیلی ممنون میشم

              دیدگاه


                #8
                پاسخ : طبقه بندی با شبکه عصبی

                توی این صفحه میتونی داده های جدید (به همراه کلاس) رو در قسمت optionally perform additional task وارد کنی و با داده های جدید شبکه رو دوباره تست کنی.
                برای طبقه بندی داده های بدون برچسب،باید از دستور sim (شبکه ذخیره شده (آبجکت net) یکی از ورودی های این تابعه) استفاده کنی.
                لطفاً برای انجام پروژه های دانشجویی پیام خصوصی نفرستید.
                لطفاً سؤالاتی که در انجمن قابل طرح شدن هستند پیام خصوصی نکنید.
                با تمام وجود گناه کرديم اما نه نعمتش را از ما گرفت نه گناهان ما را فاش کرد اطاعتش کنيم چه مي کند؟"دکتر شريعتي"
                اگر جايي که ايستاده ايد را نمي پسنديد، عوضش کنيد شما درخت نيستيد!! "پاسكال"
                يا به اندازه ي آرزوهايت تلاش کن يا به اندازه تلاشت آرزو کن. "شکسپير"

                دیدگاه


                  #9
                  پاسخ : طبقه بندی با شبکه عصبی

                  اگر دو نوع target داشته باشم مهمه که ترتیب رعایت بشه یا نه ؟
                  مثلا 100 تا case داریم یک ماتریس 100*1 ، برای پر کردن ماتریس 50 تا بیمار به ترتیب باید در یک ردیف باشند و 50 تا فرد سالم پشت هم یا باید درهم باشه تا بهتر جواب بده و یا کلا فرقی نمی کنه چطور باید ماتریس target رو پر کنم.
                  البته هر کلاس به ترتیب باشند راحت تره. :biggrin:

                  دیدگاه


                    #10
                    پاسخ : طبقه بندی با شبکه عصبی

                    مهمه که ترتیب داده ها برای آموزش شبکه عصبی حالت تصادفی داشته باشه تا شبکه به سمت یک کلاس بایاس نشه ولی چون ورود داده ها به صورت یکباره انجام میشه خود تولباکس شبکه عصبی متلب این کار رو انجام میده پس فرقی نمی کنه که داده ها رو به ترتیب کلاس بدی یا به هم بریزی ولی میتونی امتحان کنی البته باید توجه کنی چون وزندهی اولیه مقادیر گره ها تصادفی هست ممکنه در هر بار آموزش شبکه عصبی نتیجه فرق کنه به همین خاطر باید برای سنجش کارایی هر تغییر لازمه که از نتیجه چند تست میانگین گیری کنی.
                    لطفاً برای انجام پروژه های دانشجویی پیام خصوصی نفرستید.
                    لطفاً سؤالاتی که در انجمن قابل طرح شدن هستند پیام خصوصی نکنید.
                    با تمام وجود گناه کرديم اما نه نعمتش را از ما گرفت نه گناهان ما را فاش کرد اطاعتش کنيم چه مي کند؟"دکتر شريعتي"
                    اگر جايي که ايستاده ايد را نمي پسنديد، عوضش کنيد شما درخت نيستيد!! "پاسكال"
                    يا به اندازه ي آرزوهايت تلاش کن يا به اندازه تلاشت آرزو کن. "شکسپير"

                    دیدگاه

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