به بخش پرسش و پاسخ یادگیری عمیق خوش آمدید,
این نسخه آزمایشی سایت است.
لطفا به نکات زیر توجه کنید:
  • برای ارتباط با مدیران میتوانید از صفحه مدیران اقدام کنید.
  • سوال و جواب ها باید به زبان فارسی باشند. استفاده از زبان انگلیسی یا فینگلیش برای پاسخ دادن مجاز نیست.
  • لطفا بعد از پرسش سوال لینک سوال خود را در گرو تلگرام (Iran Deep Learning Group) معرفی کنید تا سریعتر به جواب برسید. برای دسترسی به آخرین لینک از منابع یادگیری استفاده کنید
  • لطفا بجای عکس از متن استفاده کنید. اگر متون طولانی هستند از سایت pastebin.com برای اپلود استفاده کرده و لینک حاصل را در سوال خود قرار دهید. برای قرار دادن تصویر ، از بخش ارسال تصویر ادیتور سایت استفاده کنید.
  • بعد از دریافت پاسخ، بهترین پاسخ را از طریق کلیک بر روی علامت تیک انتخاب کنید
  • اگر با خطا و یا مشکلی مواجه شدید از بخش تماس با ما در انتهای صفحه و یا ایمیل Coderx7@gmail.com موضوع را اطلاع دهید.

با تشکر

دسته بندی ها

0 امتیاز

سلام، فرض کنید در یک مساله دسته‌بندی ، 6 برچسب در خروجی وجود دارد و ما میخواهیم با استفاده از شبکه‌های عصبی کانولوشن این 6 دسته را تشخیص بدیم، یه چیزی شبیه تشخیص تصاویر.
من از یک شبکه کانولوشن با دو لایه کانولوشن ودو لایه ادغام استفاده کردم. ورودیها به صورت ماتریس هستند ، داده‌های آموزش را اعمال کردم و شبکه را آموزش میدم ولی در مرحله تست، با دادن داده های تست ، سیستم تنها قادر به تشخیص یکی از این دسته ها با دقت بسیار بالا ( حدود 99 درصد) هست.
مثلا 200 ماتریس اول داده‌های تست را که متعلق به یک دسته هستند را به خوبی تشخیص میده و بقیه را اصلا نمیتونه تشخیص بده. هر چه تلاش کردم نتونستم مشکلو پیدا کنم.
کسی از دوستان هست که قبلا با این مشکل برخورد کرده باشه. آیا مشکل از داده‌هاست یا شبکه؟. اگر ایراد از شبکه هست چرا این یک دسته را به خوبی تشخیص میده؟
خیلی ممنون

توسط (100 امتیاز)
داده ها رو shuffle کردید ؟ از صحت دیتاست اطمینان دارید که درست برچسب خورده باشن؟
معماری رو رویه یه دیتاست دیگه تست کردید مثل mnist یا cifar10 ؟
روي ديتاست mnist جواب ميده، در حقيقت اين برنامه براي ديتاست mnist نوشته شده بود ...چندبار چك كردم به نظرم درست برچسب خورده...داده هاي آموزش به صورت تصادفي به شبكه داده ميشه ولي داده هاي تست به ترتيب هستند مثلا ٥٠٠ ماتريس اول برچسب ١ ،  ٤٠٠ تاي بعدي برچسب ٢ و ....من شخصا فكر نميكنم به اين دليل باشه، نظر شما چيه؟...در ضمن بايد بگم هر بار كه مرحله آموزش صورت ميگيره،  چون به طور تصادفي داده هاي اموزش را ميگيره، نتيجه تست متفاوته بعني هر بار يه دسته اي را تشخيص ميده ولي اون دسته را كاملا و با دقت بالا تشخيص ميده، همچنين بايد بگم كه داده هاي من  تصوير نيست  و به صورت سري زماني بوده كه من به ماتريس تبديل كردم. و برچسب زدم....
سلام. وقتی روی دیتاست دیگه جواب میگیرید مشکل از شبکه شما نیست . میمونه دیتاست و خود فرایند اموزش.
نتیجه تست روی دیتای آموزشی رو میگید یا ولیدیشن (تست) ؟  من متوجه نشدم یعنی چی هربار یک دسته ای رو میگیره؟ عمل تست روی تمام تست ست شما انجام میشه معمولا (مگه اینکه شما کار خاصی کرده باشید و اینطور انجام ندید) و دقتی که میگیرید میانگین حاصل از همه دقتهای گرفته شده در بچ های مختلفه.
اگه بخوام دقیق تر توضیح بدم باید بگم که داده های آموزش ما 7352 ماتریس و داده های تست 2947 ماتریس هست...در مرحله آموزش، جهت بالا بردن سرعت، داده  ها به 919 دسته (بچ)8 تایی تقسیم میشه و هر بار 8 ماتریس به شبکه تزریق میشه که انتخاب این دسته های 8 تایی از بین 7352 ماتریس ، به صورت تصادفی هست که با هر بار اجرای برنامه این دسته‌ها تغییر میکنه (البته میشه کاری کرد که این دسته ها در هر بار ران کردن، تغییر نکنند) و با اعمال 2947 ماتریس تست به صورت یکجا، در هر بار اجرا، تنها ماتریسهای متعلق به یک دسته شناسایی میشن مثلا یه بار ماتریسهای متعلق به دسته اول ، بار بعد دسته های متعلق به گروه سوم و ....ولی اگه نحوه انتخاب دسته های 8 تایی داده های آموزش در هر بار اجرا تغییر نکنه، در مرحله تست نیز نتیجه یکسان خواهد بود یعنی مثلا در هر بار اجرا ماتریسهای متعلق به دسته اول را با دقت خیلی بالا شناسایی میکنه ...امیدوارم تونسته باشم منظورمو برسونم....به نظر شما اگر ایراد از داده ها باشه چطور ماتریسهای متعلق به یک دسته را با این دقت بالا شناسایی میکنه؟...چجوری میتونم مشکل برنامه را پیدا کنم؟...در ضمن منظورم از دقت، تعداد ماتریسهای صحیح طبقه بندی شده ماتریسهای تست به کل ماتریسهای تست (2947) است...راستی منظور شما از بچ چیه؟...از توجه و پاسخگوییتون ممنون..
شما از فریم ورک خاصی استفاده میکنید یا کد رو خودتون میزنید ؟ لطفا از کد و هرچیزی که استفاه میکنید به متن سوال اضافه کنید تا من یا بقیه بهتر بتونیم ببینم و اگر کمکی میتونیم ارائه کنیم خدمت شما.
وقتی شما داده ها رو در قالب بچ میدید در هر بار تکرار بله یک بچ بصورت تصادفی از دیتای شما به شبکه تغذیه میشه. و بنظر میاد تمام تست ست رو هم در قالب یک بچ با اندازه 2947 به شبکه تغذیه میکنید.
با توجه به حرفهای شما بنظر من شما کدتون(بخش تست احتمالا) یکجایی اشکال داره .
معمولا وقتی از این دست اتفاق ها می افته که دیتا شافل نشده باشه برای همین چون دیتاها پشت سر هم از یک نوع هستن باعث میشه شبکه به اشتباه بیوفته و عوض پیدا کردن فیچرهای مورد نیاز برای همه دسته ها یکی یا تعداد معدودی از دسته ها رو لحاظ کنه.  و باز چون گفتید دیتای شما شافل میشه هر بار پس این قضیه رد میشه. تنها چیز دیگه ای که به ذهن من میرسه مشکل دار بودن بخش تست شماس.
سلام، كد را خودم ننوشتم ، از يه تولباكس deeplearn كه دانلود كردم استفاده كردم فقط يه تغييراتي در ديتاست و تعداد فيلترها دادم، يه برنامه اصلي هست با چندتا زيربرنامه كه توي متلب ران ميشه...تمام برنامه ها و ديتاست را بفرستم ؟...اگر مشكل از بخش تست برنامه هست پس چرا روي داده mnist جواب ميده؟...كد اصلي و تولباكس را از لينك زير دانلود كردم

http://mccormickml.com/2015/01/10/understanding-the-deeplearntoolbox-cnn-example/

به قسمت 'the code' مراجعه كنيد ، دو تا لينك ميبينين كه يكيش مربوط به تولباكس هست و اون يكي خود كد اصلي كه روي ديتاي mnist تست شده...اگه نيازه من ديتاي خودم را براتون ميفرستم...بازم خيلي خيلي ممنون كه راهنمايي ميكنين..
سلام . من متاسفانه متلب کار نمیکنم و اطلاعی ندارم . اگه رو یه فریم ورک مثل کفی یا حتی تنسورفلو بود میتونستم بیشتر کمک کنم . از طرفی متاسفانه امکان تست روی کد و دیتا شما رو ندارم چون خودم مشغول انجام تستهای پروژه خودم هستم و منابع سیستم همه مشغولن.

لطفا وارد شده یا عضو شوید تا بتوانید سوال بپرسید

...