ஒரு சாதாரண கன்வல்யூஷனல் லேயர் (convolutional layer) விசித்திரமான முறையில் அனைத்தையும் சமமாக நடத்துகிறது. இது டஜன் கணக்கான — சில நேரங்களில் நூற்றுக்கணக்கான — அம்சங்களைக் கண்டறியும் கருவிகளை (feature detectors) அடுக்கி வைத்து, ஒவ்வொன்றையும் ஒரே மாதிரியான முக்கியத்துவத்துடன் நடத்துகிறது. சாய்வான விளிம்புகளைக் கண்டறியக் கற்றுக் கொண்ட ஒரு சேனல், நீல வானத்தின் பிக்சல்களைக் கண்டறியும் சேனலுக்குக் கொடுக்கும் அதே முக்கியத்துவத்தையே பெறுகிறது. ஒரு பூனைப் படத்தில் உள்ள ரோம அமைப்பைக் (fur texture) கண்டறியும் சேனல், பின்னணி இரைச்சலால் (background noise) தூண்டப்படும் சேனலுக்கு இணையாகவே அடுத்தடுத்த அடுக்குகளுக்கு அனுப்பப்படுகிறது. அந்த ஒருமைப்பாடே அதன் பலவீனம். ஒவ்வொரு படத்திற்கும் எல்லா சேனல்களும் சமமான முக்கியத்துவம் வாய்ந்தவை அல்ல, ஆனால் ஆழமான நெட்வொர்க்குகளில் (deep networks) அதைச் சொல்லும் வழிமுறை வரலாற்று ரீதியாக இல்லை.
Hu மற்றும் அவரது குழுவினரால் அறிமுகப்படுத்தப்பட்ட Squeeze-and-Excitation, மிகச்சிறிய மாற்றத்தின் மூலம் இதைச் சரிசெய்கிறது. இது எந்தவொரு கன்வல்யூஷன் பிளாக்கிற்கும் (convolution block) ஒரு கற்றுக்கொள்ளக்கூடிய கேட்டிங் மெக்கானிசத்தை (learnable gating mechanism) இணைக்கிறது. இதன் மூலம், ஒவ்வொரு சேனலும் எவ்வளவு பங்களிக்க வேண்டும் என்பதை நெட்வொர்க் ஒவ்வொரு உள்ளீட்டிற்கும் (input) ஏற்ப மாற்றி அமைத்துக் கொள்ள முடியும். இதற்கான கூடுதல் செலவு மிகக் குறைவு — ResNet-50 உடன் இணைக்கும்போது தோராயமாக 2.5 சதவீதம் கூடுதல் அளவுருக்களே (parameters) தேவைப்படுகின்றன — ஆனால் அதன் பிரதிநிதித்துவத் திறன் (representational power) மிக அதிகம். இதனால் தான் SE பிளாக்குகள் ILSVRC 2017 போட்டியில் வெற்றி பெற உதவியதுடன், தற்போது MobileNetV3 மற்றும் EfficientNet போன்ற பயன்பாட்டு கட்டமைப்புகளில் (production architectures) இடம்பெற்றுள்ளன.
இதன் கருத்தாக்கம் மிகவும் எளிமையானது, இதை மூன்று நிலைகளில் உருவாக்கலாம்.
Squeeze: நெட்வொர்க்கிற்கு ஒரு அகலமான லென்ஸை வழங்குதல்
கன்வல்யூஷன் என்பது வடிவமைப்பிலேயே உள்ளூர் சார்ந்தது (local). ஒரு 3×3 கர்னல் (kernel) படத்தின் மீது நகரும்போது, அதன் அருகாமையில் உள்ள பகுதிகளை மட்டுமே பார்க்கிறது. போதுமான அடுக்குகளைச் சேர்த்தால் அதன் ஏற்புத் திறன் (receptive field) வளரும், இருப்பினும் எந்தவொரு ஒற்றை செயல்பாடும் ஒரு முழு அம்ச வரைபடத்தையும் (feature map) ஒரே பார்வையில் பார்த்துவிட முடியாது. அதாவது, ஒரு நாய் அல்லது காரின் முழு இடஞ்சார்ந்த பரப்பிலும் (spatial extent) ஒரு சேனல் வலுவாகச் செயல்படலாம் (activated), ஆனால் அடுத்த லேயருக்கு "இந்த டிடெக்டர் எல்லா இடங்களிலும் செயல்பட்டுள்ளது" என்று கூறும் தெளிவான சுருக்கம் கிடைப்பதில்லை.
Squeeze படிநிலை, global average pooling மூலம் அந்த இடைவெளியை நிரப்புகிறது. ஒவ்வொரு சேனலுக்கும், H×W இடஞ்சார்ந்த கட்டத்தில் (spatial grid) உள்ள ஒவ்வொரு மதிப்பும் சராசரி செய்யப்பட்டு ஒரு ஒற்றை எண்ணாக மாற்றப்படுகிறது. உங்களிடம் 512 சேனல்கள் இருந்தால், இப்போது உங்களிடம் 512 ஸ்கேலர்கள் (scalars) இருக்கும். ஒவ்வொரு ஸ்கேலரும் அந்த சேனல் எதைக் கண்டறியக் கற்றுக் கொண்டதோ, அதன் உலகளாவிய இருப்பை (global presence) குறியீடாக்குகிறது — அது ஒரு சக்கர விளிம்பாகவோ, புல்வெளியாகவோ அல்லது தோல் நிறமாகவோ இருக்கலாம். இது முழு காட்சியின் சேனல் சார்ந்த சுருக்கமாகும்.
சூழல் (context) என்பது பொருளை மாற்றியமைக்கும் என்பதால் இது முக்கியமானது. ஒரு கிடைமட்டக் கோடு கண்டறியும் கருவி (horizontal-line detector), ஒரு படத்தில் அடிவானத்தைக் கண்டறியப் பயன்படும், ஆனால் மற்றொரு படத்தில் காட்டின் இலைகளுக்கு இடையே உள்ள இரைச்சலைக் கண்டறியப் பயன்படாமல் பயனற்றதாக இருக்கும். இடஞ்சார்ந்த தொகுப்பு (spatial aggregation) இல்லையென்றால், அந்த வேறுபாட்டைத் தீர்மானிக்க நெட்வொர்க்கிற்குத் தெளிவான சிக்னல் கிடைக்காது.
Excite: ஒத்துழைப்பைத் தூண்டும் ஒரு பாட்டில்நெக் (Bottleneck)
Squeeze படிநிலை உலகளாவிய சேனல் விளக்கிகளின் (global channel descriptors) வெக்டரை உருவாக்கியவுடன், அந்த வெக்டரை வைத்து என்ன செய்ய வேண்டும் என்பதை excite படிநிலை கற்றுக்கொள்கிறது. இது ஒரு சிறிய இரண்டு அடுக்கு MLP ஆகும். இது அந்த வெக்டரை எடுத்து, ஒரு பாட்டில்நெக் (bottleneck) நிலைக்குச் சுருக்குகிறது, பின்னர் அதை மீண்டும் அசல் சேனல் அளவுக்கு விரிவுபடுத்துகிறது.
வழக்கமான பயன்பாடுகளில் 16 என்ற reduction ratio பயன்படுத்தப்படுகிறது. உள்ளீடு 512 சேனல்களைக் கொண்டிருந்தால், முதல் லீனியர் லேயர் அந்த 512 ஸ்கேலர்களை 32 ஆகக் குறைக்கிறது, இடையில் ஒரு ReLU செயல்படுகிறது, பின்னர் இரண்டாவது லேயர் அந்த 32-ஐ மீண்டும் 512 ஆக மாற்றுகிறது. அந்தச் சுருக்குதல் (compression) திட்டமிட்டு செய்யப்படுபவை. இது ஒரு புனல் போலச் செயல்படுகிறது: நெட்வொர்க்கால் அசல் மதிப்புகளை மாற்றாமல் அப்படியே கடத்த முடியாது. சேனல்கள் ஒன்றுடன் ஒன்று எவ்வாறு தொடர்பு கொள்கின்றன என்பதன் சுருக்கமான, பகிரப்பட்ட பிரதிநிதித்துவத்தைக் கற்றுக்கொள்ள அது முயல வேண்டும். இந்த பாட்டில்நெக், சேனல்களுக்கு இடையிலான சார்புகளை (cross-channel dependencies) வெளிக்கொண்டு வருகிறது. உதாரணமாக, ஒரு "மரப்பட்டை அமைப்பு" (bark texture) சேனல் வலுவாக இருக்கும்போது, ஒரு "மரத் தண்டு" (tree trunk) கண்டறியும் சேனலும் வலுவாக இருக்க வேண்டும், அதே சமயம் "நீர் பிரதிபலிப்பு" (water reflection) சேனல் குறைக்கப்பட்டிருக்க வேண்டும் என்பதை மாடல் கற்றுக்கொள்ளலாம்.
இங்கு இறுதி ஆக்டிவேஷன் (activation) மிகவும் முக்கியமானது, இது பலரும் தவறு செய்யும் இடமாகும். பலரும் இயல்பாகவே softmax-ஐப் பயன்படுத்த முயல்கிறார்கள், ஏனெனில் கவனம் (attention) என்பது ஒரு நிகழ்தகவு விநியோகமாக (probability distribution) இருக்க வேண்டும் என்று நினைக்கிறார்கள். Softmax என்பது அனைத்து சேனல்களும் ஒன்றையொன்று போட்டியிடச் செய்து, அவற்றின் எடைகளின் (weights) கூடுதல் ஒன்றாக இருக்கும் வரை தொடரும். ஒரு சேனல் உயர்ந்தால், மற்றவை குறைய வேண்டும். இந்தத் தேவைக்கு அது முற்றிலும் தவறானது. ஒரு சூரிய அஸ்தமனப் படத்தில், ஆரஞ்சு நிற ஒளி சேனலும் மேக அமைப்பு சேனலும் ஒரே நேரத்தில் முழு வலிமையுடன் செயல்பட வேண்டியிருக்கலாம். இந்த கேட்கள் (gates) தனித்தனி டிம்மர் சுவிட்சுகளைப் (dimmer switches) போலச் செயல்பட வேண்டுமே தவிர, ஒரு 'zero-sum budget' போலச் செயல்படக் கூடாது.
Sigmoid இதைச் சரிசெய்கிறது. இது ஒவ்வொரு ஸ்கேலரையும் பூஜ்ஜியத்திற்கும் ஒன்றுக்கும் இடைப்பட்ட மதிப்பிற்குச் சுருக்குகிறது, ஆனால் ஒவ்வொரு சேனலும் சுதந்திரமாகச் செயல்பட அனுமதிக்கிறது. மாடல் எந்தவொரு துணைத் தொகுப்பையும் (subset) உயர்த்தவும், மற்றவற்றை நடுநிலையாக விடவும், மீதமுள்ளவற்றைத் தணிக்கவும் முடியும், இவை அனைத்தும் எந்தவிதமான செயற்கையான போட்டியும் இன்றி நடக்கும்.
Scale: கேட்களைப் பயன்படுத்தி அடுத்த கட்டத்திற்குச் செல்லுங்கள்
இறுதிப் படி மிகவும் எளிமையானது, இதுவே அதன் நேர்த்தியின் ஒரு பகுதியாகும். ஒவ்வொரு அசல் feature map-உம் அதன் இணையான sigmoid-activated gate மதிப்பால் பெருக்கப்படுகிறது. gate மதிப்பு ஒன்றுக்கு அருகில் இருந்தால், அந்த சேனல் மாற்றமின்றி கடந்து செல்லும். gate மதிப்பு பூஜ்ஜியத்திற்கு அருகில் இருந்தால், அந்த முழு feature map-உம் மியூட் செய்யப்பட்டு, மெல்ல மறையும். இதன் முடிவு நெட்வொர்க்கின் அடுத்த அடுக்குக்கு அனுப்பப்படுகிறது.
இது spatial maps முழுவதும் வெறும் பெருக்கல் முறை என்பதால், inference நேரத்தில் மிகக் குறைந்த கணக்கீட்டுச் சுமையையே (compute overhead) இது ஏற்படுத்துகிறது. இதன் முக்கிய வேலையை global pooling மற்றும் இரண்டு சிறிய projections செய்கின்றன; இவை சுற்றியுள்ள 3×3 convolutions உடன் ஒப்பிடும்போது மிகச் சிறியவை.
இந்த வடிவமைப்பு ஏன் இன்றும் நீடிக்கிறது
தெளிவான கணிதத்தைத் தாண்டி, Squeeze-and-Excitation பொறியியல் கட்டுப்பாடுகளை (engineering constraints) மதிப்பதாலேயே இன்றும் நிலைத்து நிற்கிறது.
குறைந்த அளவுருக்கள் (Cheap parameters). ResNet-50-இல் SE பிளாக்குகளைச் சேர்ப்பது சுமார் 2.5 சதவீதம் மட்டுமே கூடுதல் அளவுருக்களை (parameters) சேர்க்கிறது. MLP அடுக்குகள் சிறியவை; அவை மாடலைத் தேவையில்லாமல் பெரிதாக்குவதில்லை. துல்லியம் (accuracy) என்பது பெரும்பாலும் மாடலின் அளவை இருமடங்காக்குவதன் மூலம் கிடைப்பதாக இருக்கும் இந்த காலத்தில், SE ஒரு அரிய வாய்ப்பை வழங்குகிறது.
மாடுலாரிட்டி (Modularity). SE என்பது உங்கள் முழு கட்டமைப்பையும் (pipeline) மாற்றி அமைக்கத் தேவையில்லாத ஒரு புதிய backbone architecture அல்ல. இது ஒரு drop-in module ஆகும். ResNet, DenseNet அல்லது தனிப்பயனாக்கப்பட்ட அடுக்குகளில் உள்ள எந்தவொரு convolution block-க்குப் பின்னரும், சுற்றியுள்ள தர்க்கத்தை (logic) மாற்றாமல் இதைச் சேர்க்க முடியும். இந்த நெகிழ்வுத்தன்மை காரணமாக, இது முதலில் ஆராய்ச்சியிலும், பின்னர் மொபைல்-அப்டிமைஸ் செய்யப்பட்ட நெட்வொர்க்குகளிலும் விரைவாக ஏற்றுக்கொள்ளப்பட்டது.
உள்ளீட்டுக்கு ஏற்ப மாறும் தன்மை (Input-adaptive behavior). பயிற்சியின் போது கற்றுக்கொள்ளப்பட்டு மாற்ற முடியாத (frozen) நிலையான சேனல் எடைகளைப் (static channel weights) போலல்லாமல், SE gates ஒவ்வொரு forward pass-க்கும் நிகழ்நேரத்தில் (on the fly) கணக்கிடப்படுகின்றன. நெட்வொர்க்கிற்கு அம்சங்கள் இல்லாத ஒரு வெற்று வானத்தைக் காட்டினால், தொடர்புடைய சேனல்கள் குறைவாகவே இருக்கும். பாதசாரிகள், சிக்னல்கள் மற்றும் வாகனங்கள் கொண்ட ஒரு பரபரப்பான தெருக் காட்சியைத் காட்டினால், அந்த குறிப்பிட்ட படத்திற்குத் தேவையான கண்டறியும் கருவிகளை (detectors) மேம்படுத்த gates மீண்டும் சரிசெய்யப்படுகின்றன (recalibrate). ஒரே நெட்வொர்க் ஒவ்வொரு காட்சியையும் பொறுத்து தனது உணர்திறனைத் (sensitivity) தானாகவே மாற்றிக்கொள்கிறது.
போட்டியின் வெற்றியிலிருந்து அன்றாடப் பயன்பாடு வரை
SE பிளாக்குகள் ILSVRC 2017 இல் முதலிடத்தைப் பிடித்தன, ஆனால் அவற்றின் உண்மையான அங்கீகாரம் பின்னர் கிடைத்தது. அவை MobileNetV3-இல் இணைக்கப்பட்டன, அங்கு அவை மொபைல் பேட்டரியை அதிகம் செலவிடாமல், இலகுரக மாடல்கள் (lightweight models) அவற்றின் திறனை மேம்படுத்த உதவுகின்றன. அவை EfficientNet-இன் compound scaling முறையில் இடம்பெற்றுள்ளன, இது சேனல் அட்டென்ஷன் (channel attention) என்பது கனமான சர்வர்களுக்கான ஆடம்பரம் மட்டுமல்ல, திறமையான வடிவமைப்பிற்கான ஒரு நடைமுறை கருவி என்பதையும் நிரூபிக்கிறது.
இதற்கு உண்மையில் எவ்வளவு குறைவான குறியீடு (code) தேவை என்பதை நீங்கள் காண விரும்பினால், நேரடி டெமோ (live demo) இந்த பிளாக்கை வரி வரியாக விளக்குகிறது:
- Live demo: https://dev48v.infy.uk/dl/day40-squeeze-excitation.html
- Full build walkthrough: https://dev.to/dev48v/squeeze-and-excitation-from-scratch-cheap-channel-attention-that-learns-which-feature-maps-matter-1hic
மேலும் நீங்கள் ஒரு சமூகத்துடன் இணைந்து உருவாக்க விரும்பினால்: https://t.me/GyaanSetuAi
உண்மையான சாராம்சம்
சிறந்த விஷன் மாடல்களுக்கு (vision models) எப்போதும் ஆழமான அடுக்குகள் அல்லது அகலமான ஃபில்டர்கள் தேவையில்லை. சில நேரங்களில், தங்களுக்கு முன்னால் இருக்கும் படத்திற்கு எந்த சேனல்கள் உண்மையில் முக்கியம் என்று கேட்க அவர்களுக்கு ஒரு கணமே போதுமானது. Squeeze-and-Excitation ஒரு pooled average, ஒரு சுருக்கப்பட்ட MLP மற்றும் ஒரு sigmoid gate ஆகியவற்றின் மூலம் அந்த வாய்ப்பை வழங்குகிறது. இதன் விளைவாக, ஒவ்வொரு அம்சத்தையும் சமமான சத்தத்துடன் கத்துவதை நிறுத்திவிட்டு, ஒவ்வொரு சேனலையும் அந்தத் தேவைப்படும் நேரத்தில் மட்டும் மெதுவாகக் கூறவோ, வலியுறுத்தவோ அல்லது அமைதிப்படுத்தவோ கற்றுக்கொள்ளும் ஒரு நெட்வொர்க் உருவாகிறது.
