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

با تشکر

دسته بندی ها

0 امتیاز

سلام دوستان
تعداد سلولهای هر بلاک lstm بر چه اساسی تعیین میشه؟
و اگر مثلا برای یک سیگنال بخوایم تایم اسپ ها رو مشخص کنیم برچه اساسی تعیین میشن یعنی فاصله هر تایم اسپ برچه اساسی هست؟
ممنون

توسط (109 امتیاز)

1 پاسخ

0 امتیاز
 
بهترین پاسخ

سلام
تعداد سلولها در یک بلاک یا یه لایه مثل بقیه شبکه‌های عصبی، بیشتر بر اساس آزمون و خطا و cross validation بدست میاد و فرمول مستقیمی برای تعیین این تعداد وجود نداره
بعد از یه مدت توی مسائلی که باهاش کار میکنید دستتون میاد که مثلا اگه 100 تا بذارم باید جواب نسبتا خوب باشه اما بازم باید با cross validation و تست، ساختار و معماری شبکه رو تعیین کنید

تایم استپ و فاصله بین sample ها هم کاملا دست خودتونه. یعنی توی پیاده سازی lstm، زمان و گام ها میشه 1، 2، 3 و ....
اما اینکه این اعداد چه مفهومی داره دست خودتونه
یه مثال سادش اینطوری میشه که یه سیگنال از قلب دارید که می خواید تشخیص بدید چه بیماری داره، ممکنه فرکانس نمونه برداریتون، در یه دیتاست 200 هرتز باشه، توی یکی دیگه مثلا 1000 هرتز. توی 2 تاش هم مثلا ده هزار تا نمونه گرفتید و قراره بدید به شبکه lstm
در دو حالت شما یه بردار از نمونه ها می دید به شبکه که هر عنصرش یک گام حساب میشه. وقتی بردار ورودی از 200 هرتز به دست اومده، فاصله هر گام 1/200 ثانیس و برای دیتاست بعدی فاصله هر گام 1/1000 ثانیس
اما این موضوع رو شما می دونید و از نظر پیاده سازی، شبکه فقط درایه های مختلف یه ارایه رو پردازش می کنه
یعنی فاصله بین هر دو گام رو شما بر اساس مساله و شرایطش تعیین می کنید

توسط (1.6k امتیاز)
انتخاب شده توسط
ممنون.یعنی منظورتون اینه که مثلا در نمونه 200 هرتزی هر نمونه در بردار 200 هرتزکه برای learn شدن به lstm داده میشه هر کدوم از نمونه ها در تایم استپ ها با فاصله 1/200 داده میشه درسته؟
بعد میشه روی همین مثال منظور از batch size رو هم توضیح بدید؟
خواهش میکنم
هر داده با بعدیش 1/200 ثانیه فاصله داره(ما می دونیم)، اما از دید پیاده سازی، lstm میدونه این دو تا عنصر یه اندیس با هم فاصله دارن. اگه 1000 هرتز هم بود، داده های ما 1/1000 با هم فاصله دارن اما بازم از دید lstm دو تا نمونه پشت سر هم، 1 اندیس با هم فاصله دارن

برای batch size هم می تونید فرض کنید، ما هر سیگنالمون 10 تا گام داره، هر نمونه از سیگنال(یعنی هر کدوم از اون گام ها) هم یه بردار 5 بعدیه، پس شبکه lstm ده تا گام روی ورودی طی میکنه که هر بار یه بردار 5 بعدی میگیره. یعنی اندازه ورودی (10,5) ه
حالا برای آموزش، ما هر دفعه مثلا 20 تا از این سیگنالها رو می دیم به شبکه که نتیجه رو حساب کنه و گرادیان خطا رو حساب کنیم و بقیه اتفاقاتی که توی آموزش هست
به این 20 می گن batch size، یعنی شما در کل برای هر چرخه آموزش، با داده هایی با بعد (20,10,5) کار میکنید که اولی batch size، دومی تعداد گام های زمانی و سومی تعداد ابعاد هر نمونه اس
خیلی ممنونم.
این که گفتید هر سیگنال 10تا گام داره منظورتون همون 10 تا تایم استپ هست که هر کدوم از تایم استپ ها دارای 5 ویژگی هستند که 5 بعدی میشه درسته؟؟؟
چون بالا گفته بود هر نمونه از سیگنال ها خودش یک گامه من یه کم گیج شدم.
پس این 5و10و20 . input-dim حساب میشه یا input-shape?
و اگه اصلا فرض کنیم یک عدد سیگنال بیشتر نداریم و اینو میخوایم بدیم به شبکه batch size همون یک میشه ؟ یا میشه همون یک سیگنال رو هم در چند دفعه به شبکه بدیم؟
بله منظور همون 10 تا timestep هستش هر کدوم با 5 بعد
هر نمونه می تونه یه گام حساب بشه، مثلا از قلب یه سیگنال به دست اوردید و می خواید کل سیگنال رو طبقه بندی کنید، حالا هر نمونه این سیگنال میشه یه گام یا timestep یا چندتا نمونه رو می تونید به عنوان یه گام بدید، خلاصه دستتون بازه
مفهوم input_dim و input_shape می تونه یکی باشه، اما نمی دونم اینا رو کجا استفاده کردید
بله اگه یه سیگنال دارید که باید کلش طبقه بندی بشه اندازه بچ یک میشه، اما ممکنه که شما بتونید از روی همون یه سیگنال چندتا سیگنال دیگه بسازید یا اینکه خودش رو به قسمت های مختلف طبقه بندی کنید و هر قسمت جدا جدا بررسی بشه که اندازه batch می تونه بیشتر هم بشه
...