استفاده از dropout در یادگیری عمیق - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

استفاده از dropout در یادگیری عمیق

0 امتیاز
سلام.

دوستان dropout چه نقشی تو عملیات یادگیری داره ؟
سوال شده فروردین 12, 1396  بوسیله ی korosh (امتیاز 155)   11 32 37

5 پاسخ

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

یعنی به جای آموزش کل نودهای شبکه  فقط برخی از نودها را به صورت تصادفی انتخاب کنید و آموزش بدید.پیاده سازی آن هم به نظر من خیلی ساده هست و تو همه فریم ورک های یادگیری عمیق هم وجود داره.به شکل زیر نگاه کنید.

dropout

درصد مشخصی از نود ها در هر مرحله از آموزش خروجی آنها صفر می کنیم و بدین ترییب نود ها را غیر فعال می کنیم.میزان این صفر کردن به ترتیب 50 و 25 درصد برای لایه ورودی و لایه های مخفی است.همچنین این تکنیک باعث میشه تا مدل  overfiiting نشه.

پاسخ داده شده تیر 6, 1396 بوسیله ی sharp man (امتیاز 179)   3
انتخاب شد تیر 6, 1396 بوسیله ی korosh
+1 امتیاز
سلام.
باعث میشه اون نرون هایی که بود و نبودشون ان چنان تاثیری در خروجی نداره کلا از ساختار خارج بشن و به نوعی شبکه ساختار سبک تری نسبت به قبل پیدا کنه
پاسخ داده شده خرداد 25, 1396 بوسیله ی mlghost (امتیاز 75)   3
+1 امتیاز

استفاده از dropout تو tensorflow هم به سادگی قابل انجامه.مثلاً یک dropout به صورت 50 درصدی

features = tf.constant([-0.1, 0.0, 0.1, 0.2])
sess = tf.Session()
print(sess.run(features))
print(sess.run([tf.nn.dropout(features, keep_prob=0.5)]))

#خروجی
[array([-0.1, 0., 0.1, 0.2], dtype=float32),
array([-0., 0., 0.2, 0.40000001], dtype=float32)]

 

پاسخ داده شده آبان 11, 1396 بوسیله ی asgari (امتیاز 147)   3 8 14
ویرایش شده آبان 11, 1396 بوسیله ی asgari
0 امتیاز
البته یک نکته ای در این میان وجود داره که دوستان عزیز به آن اشاره ای نکردند استفاده از dropout فقط در فاز آموزش مدل صورت می گیره و برای inference یا همان تست مدل از dropout استفاده نمی کنیم.
پاسخ داده شده دی 2, 1396 بوسیله ی farnoosh (امتیاز 8,362)   20 44 59
0 امتیاز
dropout تکنیکی است که برای رسیدگی به بیش از حد برازش در مدل های یادگیری عمیق استفاده می شود. این با حذف تصادفی (تنظیم روی صفر) برخی از نورون های شبکه در طول هر تکرار آموزشی کار می کند. این به طور موثر چندین مدل فرعی مستقل را ایجاد می کند که هر کدام با پیکربندی متفاوتی به طور همزمان آموزش داده می شوند. در طول ارزیابی، همه نورون‌ها فعال هستند و نتایج در تمام مدل‌های فرعی به‌طور میانگین محاسبه می‌شوند، که باعث می‌شود مدل نسبت به داده‌های دیده نشده قوی‌تر باشد. نرخ انصراف (یعنی درصد نورون هایی که باید حذف شوند) یک فراپارامتر است که باید تنظیم شود، با مقادیر معمولاً از 0.1 تا 0.5. Dropout یک راه ساده و در عین حال موثر برای بهبود توانایی تعمیم شبکه های عصبی عمیق است.
پاسخ داده شده بهمن 11, 1401 بوسیله ی toopak (امتیاز 2,458)   16 47 66
...