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

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

0 امتیاز
277 بازدید
سلام.

دوستان dropout چه نقشی تو عملیات یادگیری داره ؟
سوال شده فروردین 12  بوسیله ی korosh (امتیاز 133)   1 4 21

3 پاسخ

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

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

dropout

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

پاسخ داده شده تیر 6 بوسیله ی sharp man (امتیاز 121)   2
+1 امتیاز
سلام.
باعث میشه اون نرون هایی که بود و نبودشون ان چنان تاثیری در خروجی نداره کلا از ساختار خارج بشن و به نوعی شبکه ساختار سبک تری نسبت به قبل پیدا کنه
پاسخ داده شده خرداد 25 بوسیله ی mlghost (امتیاز 100)   3
0 امتیاز

استفاده از 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 بوسیله ی asgari (امتیاز 91)   2
...