ایک معیاری کنولوشنل لیئر (convolutional layer) حیرت انگیز طور پر سب کے ساتھ یکساں سلوک کرتی ہے۔ یہ درجنوں — بلکہ کبھی کبھی سینکڑوں — فیچر ڈیٹیکٹرز (feature detectors) کو ایک دوسرے کے اوپر رکھتی ہے، اور پھر ہر ایک کے ساتھ ایک ہی طرح کا احترام برتتی ہے۔ ایک چینل جس نے ترچھی لکیروں (diagonal edges) کو پہچاننا سیکھ لیا ہے، اسے وہی اہمیت دی جاتی ہے جو نیلے آسمان کے پکسلز کو پہچاننے والے چینل کو ملتی ہے۔ بلی کی تصویر میں بالوں کی بناوٹ (fur texture) پر کام کرنے والا چینل بھی اسی وزن کے ساتھ آگے بھیجا جاتا ہے جس وزن کے ساتھ پس منظر کے شور (background noise) سے متحرک ہونے والا چینل۔ یہی یکسانیت اس کی کمزوری ہے۔ ہر تصویر کے لیے ہر چینل یکساں طور پر اہم نہیں ہوتا، اور ڈیپ نیٹ ورکس میں تاریخی طور پر ایسا کرنے کے لیے کسی میکانزم کی کمی رہی ہے۔

Hu اور ان کے ساتھیوں کی پیش کردہ Squeeze-and-Excitation، ایک انتہائی چھوٹے اضافے کے ساتھ اس مسئلے کو حل کرتی ہے۔ یہ کسی بھی کنولوشن بلاک کے ساتھ ایک سیکھنے کے قابل گیٹنگ میکانزم (learnable gating mechanism) منسلک کر دیتی ہے تاکہ نیٹ ورک متحرک طور پر (dynamically) یہ دوبارہ ترتیب دے سکے کہ ہر چینل کتنا حصہ ڈال رہا ہے، اور یہ ہر ان پٹ کے لیے نئے سرے سے کیا جاتا ہے۔ اس کا اضافی خرچہ معمولی ہے — ResNet-50 کے ساتھ جوڑنے پر تقریباً 2.5 فیصد زیادہ پیرامیٹرز — لیکن نمائندگی کی طاقت (representational power) میں اضافہ اتنا زیادہ ہے کہ SE بلاکس نے ILSVRC 2017 جیتنے میں مدد دی اور اب یہ MobileNetV3 اور EfficientNet جیسے پروڈکشن آرکیٹیکچرز کا حصہ ہیں۔

یہ آئیڈیا اتنا سادہ ہے کہ اسے تین مراحل میں شروع سے بنایا جا سکتا ہے۔

Squeeze: نیٹ ورک کو ایک وائیڈ اینگل لینس دینا

کنولوشن (Convolution) اپنی ساخت کے لحاظ سے مقامی (local) ہوتا ہے۔ ایک 3×3 کرنل تصویر پر پھسلتا ہے اور صرف اپنے قریبی پڑوسی کو ہی دیکھ پاتا ہے۔ اگر آپ کافی ساری تہیں (layers) لگا دیں تو ریسیپٹیو فیلڈ (receptive field) بڑھ جاتی ہے، پھر بھی کوئی بھی ایک آپریشن ایک نظر میں پورے فیچر میپ (feature map) کو نہیں دیکھ سکتا۔ اس کا مطلب ہے کہ ایک چینل کسی کتے یا کار کی پوری جگہ پر مضبوطی سے متحرک ہو سکتا ہے، لیکن اگلی لیئر کو کبھی بھی کوئی واضح خلاصہ نہیں ملتا کہ "یہ ڈیٹیکٹر ہر جگہ متحرک ہوا ہے"۔

Squeeze کا مرحلہ گلوبل ایوریج پولنگ (global average pooling) کے ذریعے اس خلا کو پر کرتا ہے۔ ہر چینل کے لیے، H×W اسپیشل گرڈ (spatial grid) کی ہر ویلیو کو اوسط نکال کر ایک عدد میں بدل دیا جاتا ہے۔ اگر آپ کے پاس 512 چینلز ہیں، تو اب آپ کے پاس 512 اسکیلرز (scalars) ہیں۔ ہر اسکیلر اس چیز کی عالمی موجودگی کو ظاہر کرتا ہے جسے اس چینل نے پہچاننا سیکھا ہے — چاہے وہ پہیہ ہو، گھاس کی پٹی ہو، یا جلد کا رنگ ہو۔ یہ پورے منظر کا چینل کے لحاظ سے خلاصہ ہے۔

یہ اس لیے اہم ہے کیونکہ سیاق و سباق (context) معنی بدل دیتا ہے۔ ایک افقی لکیروں کا ڈیٹیکٹر (horizontal-line detector) ایک تصویر میں مفید ہو سکتا ہے کیونکہ یہ افق (horizon) کی نشاندہی کرتا ہے، لیکن دوسری تصویر میں بیکار ہو سکتا ہے کیونکہ یہ جنگل کی چھتری (forest canopy) میں شور کو پکڑ رہا ہے۔ اسپیشل ایگریگیشن (spatial aggregation) کے بغیر، نیٹ ورک کے پاس اس فرق کو کرنے کے لیے کوئی صاف سگنل نہیں ہوتا۔

Excite: ایک باٹل نیک (Bottleneck) جو تعاون پر مجبور کرتا ہے

جب squeeze مرحلے نے گلوبل چینل ڈسکرپٹرز کا ایک ویکٹر تیار کر لیا ہو، تو excite مرحلہ سیکھتا ہے کہ ان کے ساتھ کیا کرنا ہے۔ یہ ایک چھوٹا دو تہوں والا MLP ہے۔ یہ ویکٹر لیتا ہے، اسے ایک باٹل نیک (bottleneck) تک دباتا ہے، اور پھر اسے اصل چینل ڈائمینشن تک دوبارہ پھیلا دیتا ہے۔

عام طور پر اس میں 16 کا ریڈکشن ریشو (reduction ratio) استعمال کیا جاتا ہے۔ اگر ان پٹ میں 512 چینلز ہیں، تو پہلی لینیئر لیئر (linear layer) 512 اسکیلرز کو 32 تک کم کر دیتی ہے، درمیان میں ایک ReLU ہوتا ہے، اور دوسری لیئر ان 32 کو واپس 512 پر لے آتی ہے۔ یہ کمپریشن جان بوجھ کر کی جاتی ہے۔ یہ ایک فنل (funnel) کی طرح کام کرتا ہے: نیٹ ورک اصل ویلیوز کو بغیر کسی تبدیلی کے آگے نہیں بھیج سکتا۔ اسے چینلز کے آپس کے تعلق کا ایک کمپریسڈ اور مشترکہ نمائندگی سیکھنی پڑتی ہے۔ باٹل نیک کراس چینل انحصار (cross-channel dependencies) کو ابھرنے پر مجبور کرتا ہے۔ مثال کے طور پر، ماڈل یہ سیکھ سکتا ہے کہ جب "bark texture" (چھال کی بناوٹ) والا چینل مضبوط ہو، تو "tree trunk" (درخت کے تنے) کے کنارے والا چینل بھی نمایاں ہونا چاہیے، جبکہ "water reflection" (پانی کا عکس) والا چینل خاموش ہونا چاہیے۔

یہاں آخری ایکٹیویشن (activation) بہت اہم ہے، اور یہ وہ جگہ ہے جہاں اکثر وجدان غلط ہو جاتا ہے۔ بہت سے لوگ فطری طور پر softmax کا انتخاب کرتے ہیں، کیونکہ انہیں لگتا ہے کہ توجہ (attention) کو ایک پروببلٹی ڈسٹری بیوشن (probability distribution) ہونا چاہیے۔ Softmax تمام چینلز کو ایک دوسرے کے خلاف مقابلہ کرنے پر مجبور کرے گا یہاں تک کہ ان کے وزن کا مجموعہ ایک ہو جائے۔ اگر ایک چینل بڑھتا ہے، تو دوسروں کو کم ہونا پڑے گا۔ اس کام کے لیے یہ بالکل غلط ہے۔ غروبِ آفتاب کی تصویر میں نارنجی چمک والے چینل اور بادلوں کی بناوٹ والے چینل دونوں کو ایک ہی وقت میں پوری طاقت کے ساتھ کام کرنے کی ضرورت ہو سکتی ہے۔ گیٹس (gates) کو آزاد ڈمر سوئچز (dimmer switches) کی طرح کام کرنا چاہیے، نہ کہ کسی زیرو سم بجٹ (zero-sum budget) کی طرح۔

Sigmoid اس کا حل ہے۔ یہ ہر اسکیلر کو صفر اور ایک کے درمیان ایک ویلیو تک دباتا ہے، لیکن ہر چینل آزادانہ طور پر حرکت کرنے کے لیے آزاد ہوتا ہے۔ ماڈل کسی بھی ذیلی سیٹ (subset) کو بڑھا سکتا ہے، دوسروں کو غیر جانبدار چھوڑ سکتا ہے، اور باقیوں کو دبا سکتا ہے، اور یہ سب مصنوعی مقابلے کے بغیر ممکن ہے۔

Scale: گیٹس کا اطلاق کریں اور آگے بڑھیں

آخری مرحلہ تقریباً غیر متوقع ہے، جو کہ اس کی خوبصورتی کا حصہ ہے۔ ہر اصل فیچر میپ (feature map) کو اس کی متعلقہ sigmoid-activated گیٹ ویلیو سے ضرب دی جاتی ہے۔ اگر گیٹ ایک (one) کے قریب ہے، تو چینل بغیر کسی تبدیلی کے گزر جاتا ہے۔ اگر گیٹ صفر (zero) کے قریب ہے، تو وہ پورا فیچر میپ خاموش ہو جاتا ہے، جیسے کہ وہ مدہم ہو رہا ہو۔ نتیجہ نیٹ ورک کی اگلی لیئر میں بھیج دیا جاتا ہے۔

چونکہ یہ اسپیشل میپس (spatial maps) پر محض ضرب کا عمل ہے، اس لیے یہ انفرنس (inference) کے دوران کمپیوٹیشن کا بہت کم بوجھ ڈالتا ہے۔ اصل کام گلوبل پولنگ (global pooling) اور دو چھوٹے پروجیکشنز (projections) نے کیا ہے، جو کہ ارد گرد کے 3×3 کنولوشنز (convolutions) کے مقابلے میں نہ ہونے کے برابر ہیں۔

یہ ڈیزائن کیوں برقرار ہے

سادہ ریاضی سے ہٹ کر، Squeeze-and-Excitation اس لیے برقرار ہے کیونکہ یہ انجینئرنگ کے تقاضوں کا احترام کرتا ہے۔

کم قیمت پیرامیٹرز۔ ResNet-50 میں SE بلاکس شامل کرنے سے پیرامیٹرز میں صرف تقریباً 2.5 فیصد اضافہ ہوتا ہے۔ MLP لیئرز چھوٹی ہیں؛ وہ ماڈل کو بوجھل نہیں کرتیں۔ ایک ایسے دور میں جہاں درستگی (accuracy) میں اضافہ اکثر ماڈل کے سائز کو دوگنا کرنے سے حاصل ہوتا ہے، SE ایک نایاب اور آسان فائدہ فراہم کرتا ہے۔

ماڈیولرٹی (Modularity)۔ SE کوئی نیا بیک بون آرکیٹیکچر نہیں ہے جو آپ کو اپنے پائپ لائن کو دوبارہ ڈیزائن کرنے پر مجبور کرے۔ یہ ایک 'ڈراپ ان' (drop-in) ماڈیول ہے۔ آپ اسے ResNet، DenseNet، یا کسٹم اسٹیکس میں کسی بھی کنولوشن بلاک کے بعد ارد گرد کے لاجک کو دوبارہ لکھے بغیر شامل کر سکتے ہیں۔ اسی لچک نے اسے تحقیق میں اور بعد میں موبائل کے لیے موزوں نیٹ ورکس میں تیزی سے مقبول بنایا۔

ان پٹ کے مطابق رویہ (Input-adaptive behavior)۔ ٹریننگ کے دوران سیکھے گئے اور فریز شدہ اسٹیٹک چینل ویٹس (static channel weights) کے برعکس، SE گیٹس ہر فارورڈ پاس (forward pass) کے لیے فوری طور پر (on the fly) کیلکولیٹ کیے جاتے ہیں۔ اگر نیٹ ورک کو ایک ہموار اور بے رنگ آسمان دکھایا جائے، تو متعلقہ چینلز دبی رہتی ہیں۔ اگر اسے پیدل چلنے والوں، سائن بورڈز اور گاڑیوں والا مصروف شاہراہ کا منظر دکھایا جائے، تو گیٹس خود کو دوبارہ ترتیب دیتے ہیں تاکہ ان ڈیٹیکٹرز کو بڑھاوا دے سکیں جو اس مخصوص تصویر کے لیے اہم ہیں۔ یہی نیٹ ورک منظر کے لحاظ سے اپنی حساسیت کو خود ایڈجسٹ کرتا ہے۔

مقابلے کے فاتح سے روزمرہ کے استعمال تک

SE بلاکس نے ILSVRC 2017 میں پہلی پوزیشن حاصل کی، لیکن ان کی اصل اہمیت بعد میں ثابت ہوئی۔ انہیں MobileNetV3 میں شامل کیا گیا، جہاں وہ ہلکے پھلکے ماڈلز کو موبائل بیٹری خرچ کیے بغیر اپنی صلاحیت سے بڑھ کر کارکردگی دکھانے میں مدد دیتے ہیں۔ وہ EfficientNet کے کمپاؤنڈ اسکیلنگ (compound scaling) فارمولے میں بھی نظر آتے ہیں، جو یہ ثابت کرتا ہے کہ چینل اٹینشن (channel attention) بھاری بھرکم سرورز کے لیے کوئی عیاشی نہیں بلکہ موثر ڈیزائن کے لیے ایک عملی ٹول ہے۔

اگر آپ دیکھنا چاہتے ہیں کہ اس کے لیے کتنے کم کوڈ کی ضرورت ہوتی ہے، تو لائیو ڈیمو اس بلاک کی لائن بہ لائن وضاحت کرتا ہے:

اور اگر آپ ایک کمیونٹی کے ساتھ مل کر کام کر رہے ہیں: https://t.me/GyaanSetuAi

اصل سبق

بہتر ویژن ماڈلز کو ہمیشہ گہرے اسٹیکس (deeper stacks) یا چوڑے فلٹرز (wider filters) کی ضرورت نہیں ہوتی۔ کبھی کبھی انہیں صرف ایک لمحے کی ضرورت ہوتی ہے تاکہ وہ پوچھ سکیں کہ ان کے سامنے موجود تصویر کے لیے کون سے چینلز اصل میں اہم ہیں۔ Squeeze-and-Excitation انہیں وہ لمحہ فراہم کرتا ہے، اور اس کے لیے اسے صرف ایک پولڈ ایوریج (pooled average)، ایک کمپریسڈ MLP، اور ایک sigmoid گیٹ کی ضرورت ہوتی ہے۔ نتیجہ ایک ایسا نیٹ ورک ہے جو ہر فیچر کو ایک ہی آواز میں چیخنا بند کر دیتا ہے اور اس کے بجائے ہر چینل کو بالکل اسی وقت سرگوشی کرنے، زور دینے یا خاموش کرنے کا سیکھ لیتا ہے جب منظر کی ضرورت ہو۔