شبکه کانولوشنی با گروه بندی (Grouped Convolutional Network)، در ریاضیات (Mathematics)
انواع شبکه های عصبی (Neural Networks) را در آموزش زیر شرح دادیم :
شبکه کانولوشنی با گروه بندی (Grouped Convolutional Network) :
کانولوشن گروهی (grouped convolution) توسط الکساندر کری ژفسکی در AlexNet معرفی شد (به دلیل محدودیت حافظه GPU) و بعدها در معماری هایی مانند ResNeXt و Xception به عنوان یک روش کارآمد برای افزایش کارایی و دقت به کار رفت. در کانولوشن گروهی، کانال های ورودی به چندین گروه تقسیم می شوند و هر گروه به صورت جداگانه با فیلترهای خود کانولوشن می شود. سپس خروجی گروه ها در بعد کانال با هم ترکیب می شوند.
اگر تعداد گروه ها
\[ g \]باشد، هر گروه دارای
\[ C_{in}/g \]کانال ورودی و
\[ C_{out}/g \]کانال خروجی است (به شرطی که
\[ C_{in} \]و
\[ C_{out} \]بر
\[ g \]بخش پذیر باشند). تعداد پارامترها:
\[ D_K^2 \cdot (C_{in}/g) \cdot (C_{out}/g) \cdot g = \frac{D_K^2 \cdot C_{in} \cdot C_{out}}{g} \]یعنی به نسبت
\[ 1/g \]کاهش می یابد. عملیات محاسباتی نیز به همین نسبت کاهش می یابد.
از نظر ریاضی، اگر ورودی
\[ X \]را به گروه های
\[ X_1, ..., X_g \]تقسیم کنیم، خروجی:
\[ Y = [X_1 * K_1, X_2 * K_2, ..., X_g * K_g] \]که
\[ K_i \]فیلترهای مختص گروه
\[ i \]هستند.
مزایا: کاهش پارامترها و محاسبات، امکان افزایش عرض شبکه بدون افزایش هزینه، و در برخی موارد بهبود دقت به دلیل regularization ضمنی. معایب: اگر گروه بندی زیاد باشد، ارتباط بین کانال های گروه های مختلف کاهش می یابد که با تکنیک هایی مانند channel shuffle قابل جبران است.