در این پست می‌خواهیم با مفهوم Dropout در شبکه‌های عصبی آشنا شویم. با کمپنا همراه باشید.

واژه Dropout به معنای کنار گذاشتن بخش‌هایی (units) از یک شبکه عصبی است. یک شبکه عصبی که شامل تعدادی نورون است، در نظر بگیرید. Dropout به این معنا است که در حین آموزشِ این نورون‌ها، از تعدادی از آن‌ها به صورت تصادفی چشم‌پوشی شود. چشم‌پوشی یعنی اینکه آن نورون‌های خاص، در مسیر رفت یا برگشت در نظر گرفته نمی‌شوند.

اگر بخواهیم فنی‌تر بررسی کنیم، Dropout یعنی اینکه در هر مرحله از آموزش، نودهایی از شبکه، با احتمال ۱-p کنار گذاشته شده و نودهای دیگری با احتمال p، حفظ می‌شوند. بنابراین یک شبکه کاهش یافته باقی می‌ماند.

حال که با مفهوم Dropout آشنا شدیم، این سوال مطرح می‌شود که، چرا به Dropout نیاز است؟ چرا نیاز است که بخشی از شبکه خاموش شود؟

جواب این سوال این است که، Dropout از over-fitting جلوگیری می‌کند.

در یادگیری ماشین، یکی از راه‌های جلوگیری از overfitting، رگولاریزاسیون است. رگولاریزاسیون با اضافه کردن یک پنالتی به تابع هزینه، overfitting را کاهش می‌دهد. با اضافه کردن این پنالتی، مدل به گونه‌ای آموزش داده می‌شود که وزن‌های ویژگی‌های وابسته، آپدیت نمی‌شوند. Dropout یک رویکرد برای رگولاریزاسیون در شبکه‌های عصبی است که باعث کاهش یادگیری‌های تکراری میان نورون‌ها می‌شود.

لطفا به این پست رای دهید…

۰
برچسب

deep learning tensorflow, Dropout, machine learning, neural network, شبکه عصبی, شبکه عصبی با تنسورفلو, شبکه عصبی عمیق, شبکه عمیق, یادگیری عمیق, یادگیری ماشین,