ഒരു സാധാരണ കൺവല്യൂഷണൽ ലെയർ (convolutional layer) അല്പം വിചിത്രമായ രീതിയിൽ എല്ലാ ഫീച്ചറുകൾക്കും തുല്യ പരിഗണന നൽകുന്ന ഒന്നാണ്. ഇത് ഡസൻ കണക്കിന് — ചിലപ്പോൾ നൂറുകണക്കിന് — ഫീച്ചർ ഡിറ്റക്ടറുകളെ അടുക്കിവെക്കുന്നു, എന്നിട്ട് അവയെല്ലാം ഒരേപോലെ പരിഗണിക്കുന്നു. ചരിഞ്ഞ വശങ്ങൾ (diagonal edges) തിരിച്ചറിയാൻ പഠിച്ച ഒരു ചാനലിന്, നീല ആകാശത്തിലെ പിക്സലുകൾ തിരിച്ചറിയുന്ന ചാനലിന് നൽകുന്ന അതേ പ്രാധാന്യമാണ് ലഭിക്കുന്നത്. ഒരു പൂച്ചയുടെ ഫോട്ടോയിലെ രോമത്തിന്റെ ഘടന (fur texture) തിരിച്ചറിയുന്ന ചാനൽ, പശ്ചാത്തലത്തിലെ നോയിസ് (background noise) തിരിച്ചറിയുന്ന ചാനലിനെപ്പോലെ തന്നെ തുല്യമായ പ്രാധാന്യത്തോടെ മുന്നോട്ട് അയക്കപ്പെടുന്നു. ഈ ഏകതാനതയാണ് (uniformity) ഇതിന്റെ പോരായ്മ. ഓരോ ചിത്രത്തിനും എല്ലാ ചാനലുകളും ഒരുപോലെ പ്രധാനപ്പെട്ടതാകണമെന്നില്ല, എന്നാൽ ആ വ്യത്യാസം തിരിച്ചറിയാനുള്ള സംവിധാനം ചരിത്രപരമായി ഡീപ് നെറ്റ്‌വർക്കുകളിൽ ഇല്ലായിരുന്നു.

Hu-ഉം സഹപ്രവർത്തകരും അവതരിപ്പിച്ച Squeeze-and-Excitation, വളരെ ചെറിയൊരു മാറ്റത്തിലൂടെ ഈ പ്രശ്നം പരിഹരിക്കുന്നു. ഇത് ഏതൊരു കൺവല്യൂഷൻ ബ്ലോക്കിനോടും ഒരു ലേർണബിൾ ഗേറ്റിംഗ് മെക്കാനിസം (learnable gating mechanism) ഘടിപ്പിക്കുന്നു. ഇതിലൂടെ ഓരോ ചാനലും എത്രത്തോളം സംഭാവന നൽകണം എന്ന് നെറ്റ്‌വർക്കിന് ഡൈനാമിക് ആയി പുനർക്രമീകരിക്കാൻ (recalibrate) സാധിക്കുന്നു, കൂടാതെ ഓരോ ഇൻപുട്ടിനും ഇത് പുതുതായി ചെയ്യുന്നു. ഇതിന് അധികമായി വരുന്ന ചിലവ് വളരെ കുറവാണ് — ResNet-50-ലേക്ക് ഇത് ചേർക്കുമ്പോൾ ഏകദേശം 2.5 ശതമാനം പാരാമീറ്ററുകൾ മാത്രമേ കൂടുന്നുള്ളൂ — എന്നാൽ ഇത് നൽകുന്ന പ്രതിനിധീകരണ ശേഷി (representational power) വളരെ വലുതാണ്. ഈ SE ബ്ലോക്കുകൾ ILSVRC 2017 വിജയിക്കാൻ സഹായിക്കുകയും ഇപ്പോൾ MobileNetV3, EfficientNet തുടങ്ങിയ പ്രൊഡക്ഷൻ ആർക്കിടെക്ചറുകളിൽ ഉപയോഗിക്കപ്പെടുകയും ചെയ്യുന്നു.

ഇത് മൂന്ന് ഘട്ടങ്ങളിലൂടെ വളരെ ലളിതമായി നിർമ്മിക്കാവുന്നതാണ്.

Squeeze: നെറ്റ്‌വർക്കിന് ഒരു വൈഡ്-ആംഗിൾ ലെൻസ് നൽകുന്നു

കൺവല്യൂഷൻ രൂപകൽപ്പന ചെയ്തിരിക്കുന്നത് പ്രാദേശികമായിട്ടാണ് (local). ഒരു 3×3 കേർണൽ (kernel) ചിത്രത്തിലൂടെ നീങ്ങുമ്പോൾ അതിന്റെ തൊട്ടടുത്ത ഭാഗങ്ങൾ മാത്രമേ കാണുന്നുള്ളൂ. ആവശ്യത്തിന് ലെയറുകൾ അടുക്കിവെക്കുമ്പോൾ റിസെപ്റ്റീവ് ഫീൽഡ് (receptive field) വളരുന്നുണ്ടെങ്കിലും, ഒരു സിംഗിൾ ഓപ്പറേഷന് ഒരു ഫീച്ചർ മാപ്പിനെ മുഴുവനായി ഒറ്റനോട്ടത്തിൽ കാണാൻ കഴിയില്ല. അതായത്, ഒരു നായയുടെയോ കാറിന്റെയോ മുഴുവൻ ഭാഗത്തും ഒരു ചാനൽ ശക്തമായി ആക്ടിവേറ്റ് ആകുന്നുണ്ടാകാം, എന്നാൽ "ഈ ഡിറ്റക്ടർ എല്ലായിടത്തും പ്രവർത്തിക്കുന്നു" എന്ന് വ്യക്തമാക്കുന്ന ഒരു സംഗ്രഹം അടുത്ത ലെയറിന് ലഭിക്കില്ല.

ഗ്ലോബൽ ആവറേജ് പൂളിംഗ് (global average pooling) ഉപയോഗിച്ച് 'Squeeze' ഘട്ടം ഈ വിടവ് നികത്തുന്നു. ഓരോ ചാനലിനും, H×W സ്പേഷ്യൽ ഗ്രിഡിലെ ഓരോ മൂല്യത്തെയും ഒരു ഒറ്റ സംഖ്യയായി (scalar) ചുരുക്കുന്നു. നിങ്ങൾക്ക് 512 ചാനലുകൾ ഉണ്ടെങ്കിൽ, ഇപ്പോൾ നിങ്ങളുടെ പക്കൽ 512 സ്കെയിലറുകൾ ഉണ്ടാകും. ആ ചാനൽ എന്താണോ തിരിച്ചറിയാൻ പഠിച്ചിരിക്കുന്നത് — അത് ഒരു ചക്രത്തിന്റെ റിം ആകട്ടെ, പുല്ല് ആകട്ടെ, അല്ലെങ്കിൽ ചർമ്മത്തിന്റെ നിറമാകട്ടെ — അതിന്റെ ആഗോള സാന്നിധ്യം (global presence) ഓരോ സ്കെയിലറും സൂചിപ്പിക്കുന്നു. ഇത് ആ മുഴുവൻ രംഗത്തിന്റെയും ചാനൽ അടിസ്ഥാനത്തിലുള്ള ഒരു സംഗ്രഹമാണ്.

സന്ദർഭം (context) അർത്ഥം മാറ്റുന്നതുകൊണ്ട് ഇത് പ്രധാനമാണ്. ഒരു തിരശ്ചീന രേഖ തിരിച്ചറിയുന്ന ഡിറ്റക്ടർ ഒരു ചിത്രത്തിൽ ഹൊറൈസൺ (horizon) തിരിച്ചറിയാൻ സഹായിക്കുമ്പോൾ, മറ്റൊരു ചിത്രത്തിൽ കാടിന്റെ മുകൾഭാഗത്തെ നോയിസ് തിരിച്ചറിയാൻ ഉപയോഗപ്പെട്ടേക്കാം. സ്പേഷ്യൽ അഗ്രഗേഷൻ (spatial aggregation) ഇല്ലാതെ, ഈ വ്യത്യാസം തിരിച്ചറിയാനുള്ള വ്യക്തമായ സിഗ്നൽ നെറ്റ്‌വർക്കിന് ലഭിക്കില്ല.

Excite: സഹകരണം നിർബന്ധമാക്കുന്ന ഒരു ബോട്ടിൽനെക്ക് (Bottleneck)

Squeeze ഘട്ടം ഗ്ലോബൽ ചാനൽ ഡിസ്ക്രിപ്റ്ററുകളുടെ ഒരു വെക്റ്റർ തയ്യാറാക്കിയുകഴിഞ്ഞാൽ, അവ എന്തുചെയ്യണമെന്ന് 'Excite' ഘട്ടം പഠിക്കുന്നു. ഇതൊരു ചെറിയ രണ്ട് ലെയറുകളുള്ള MLP ആണ്. ഇത് വെക്റ്ററിനെ എടുത്ത് ഒരു ബോട്ടിൽനെക്കിലേക്ക് (bottleneck) ചുരുക്കുകയും പിന്നീട് യഥാർത്ഥ ചാനൽ ഡൈമൻഷനിലേക്ക് വികസിപ്പിക്കുകയും ചെയ്യുന്നു.

സാധാരണയായി 16 എന്ന റിഡക്ഷൻ റേഷ്യോ (reduction ratio) ആണ് ഇതിനായി ഉപയോഗിക്കുന്നത്. ഇൻപുട്ടിന് 512 ചാനലുകൾ ഉണ്ടെങ്കിൽ, ആദ്യത്തെ ലീനിയർ ലെയർ ആ 512 സ്കെയിലറുകളെ 32 ആയി കുറയ്ക്കുന്നു, ഇടയിൽ ഒരു ReLU പ്രവർത്തിക്കുന്നു, രണ്ടാമത്തെ ലെയർ ആ 32-നെ വീണ്ടും 512 ആയി മാറ്റുന്നു. ഈ ചുരുക്കൽ മനഃപൂർവ്വമാണ്. ഇത് ഒരു ഫണൽ പോലെ പ്രവർത്തിക്കുന്നു: നെറ്റ്‌വർക്കിന് യഥാർത്ഥ മൂല്യങ്ങളെ മാറ്റമില്ലാതെ കടത്തിവിടാൻ കഴിയില്ല. ചാനലുകൾ തമ്മിലുള്ള ബന്ധത്തെക്കുറിച്ച് ഒരു ചുരുക്കിയ, പങ്കിട്ട പ്രതിനിധീകരണം (shared representation) പഠിക്കാൻ അത് നിർബന്ധിതമാകുന്നു. ഈ ബോട്ടിൽനെക്ക് ചാനലുകൾ തമ്മിലുള്ള പരസ്പര ബന്ധങ്ങൾ (cross-channel dependencies) പുറത്തുവരാൻ സഹായിക്കുന്നു. ഉദാഹരണത്തിന്, ഒരു "പാർപ്പിന്റെ ഘടന" (bark texture) ചാനൽ ശക്തമാകുമ്പോൾ, ഒരു "മരത്തിന്റെ തടി" (tree trunk) കണ്ടൂർ ചാനലും ഊന്നൽ നൽകപ്പെടണമെന്നും, എന്നാൽ "വെള്ളത്തിലെ പ്രതിഫലനം" (water reflection) ചാനൽ കുറയ്ക്കണമെന്നും മോഡൽ പഠിച്ചേക്കാം.

ഇതിലെ അവസാന ആക്ടിവേഷൻ (activation) വളരെ നിർണ്ണായകമാണ്, പലപ്പോഴും ആളുകൾക്ക് തെറ്റുപറ്റുന്ന ഇടമാണിത്. അറ്റൻഷൻ (attention) എന്നത് ഒരു പ്രോബബിലിറ്റി ഡിസ്ട്രിബ്യൂഷൻ (probability distribution) ആയിരിക്കണം എന്ന് കരുതി പലരും സ്വാഭാവികമായും softmax ഉപയോഗിക്കാൻ ശ്രമിക്കാറുണ്ട്. Softmax ഉപയോഗിച്ചാൽ എല്ലാ ചാനലുകളും തമ്മിൽ മത്സരിക്കേണ്ടി വരും, അങ്ങനെ അവയുടെ തുക (sum) ഒന്ന് ആകണം. ഒരു ചാനലിന്റെ മൂല്യം കൂടിയാൽ മറ്റുള്ളവ കുറയണം. ഈ ടാസ്കിന് അത് തെറ്റായ രീതിയാണ്. ഒരു സൂര്യാസ്തമയത്തിന്റെ ഫോട്ടോയിൽ ഓറഞ്ച് നിറത്തിലുള്ള ചാനലും മേഘങ്ങളുടെ ഘടന കാണിക്കുന്ന ചാനലും ഒരേസമയം പൂർണ്ണ ശക്തിയിൽ പ്രവർത്തിക്കേണ്ടി വന്നേക്കാം. ഗേറ്റുകൾ ഒരു സീറോ-സം ബജറ്റ് (zero-sum budget) പോലെയാകരുത്, മറിച്ച് സ്വതന്ത്രമായ ഡിമ്മർ സ്വിച്ചുകൾ (dimmer switches) പോലെയാണ് പ്രവർത്തിക്കേണ്ടത്.

Sigmoid ഇതിന് പരിഹാരം നൽകുന്നു. ഇത് ഓരോ സ്കെയിലറിനെയും പൂജ്യത്തിനും ഒന്നിനും ഇടയിലുള്ള ഒരു മൂല്യത്തിലേക്ക് ചുരുക്കുന്നു, എന്നാൽ ഓരോ ചാനലിനും സ്വതന്ത്രമായി പ്രവർത്തിക്കാൻ സാധിക്കും. കൃത്രിമമായ മത്സരമില്ലാതെ തന്നെ ഏതെങ്കിലും ഒരു കൂട്ടം ചാനലുകളെ വർദ്ധിപ്പിക്കാനും മറ്റുള്ളവയെ മാറ്റമില്ലാതെ വിടാനും ബാക്കിയുള്ളവയെ കുറയ്ക്കാനും മോഡലിന് കഴിയും.

Scale: ഗേറ്റുകൾ പ്രയോഗിച്ച് മുന്നോട്ട് നീങ്ങുക

അവസാന ഘട്ടം വളരെ ലളിതമാണ്, ആ ലളിതമാണ് ഇതിന്റെ പ്രത്യേകത. ഓരോ ഒറിജിനൽ ഫീച്ചർ മാപ്പിനെയും അതിന് അനുയോജ്യമായ sigmoid-activated ഗേറ്റ് മൂല്യം കൊണ്ട് ഗുണിക്കുന്നു. ഗേറ്റ് മൂല്യം ഒന്ന് (one) എന്നതിനോട് അടുത്ത് ആണെങ്കിൽ, ആ ചാനൽ മാറ്റമില്ലാതെ കടന്നുപോകുന്നു. ഗേറ്റ് മൂല്യം പൂജ്യത്തോടടുത്ത് (zero) ആണെങ്കിൽ, ആ ഫീച്ചർ മാപ്പ് മുഴുവനായി നിശബ്ദമാക്കപ്പെടുന്നു. ഇതിന്റെ ഫലം നെറ്റ്‌വർക്കിന്റെ അടുത്ത ലെയറിലേക്ക് നൽകുന്നു.

ഇത് സ്പേഷ്യൽ മാപ്പുകൾക്കിടയിലുള്ള വെറും ഗുണനമായതുകൊണ്ട്, ഇൻഫറൻസ് സമയത്ത് കമ്പ്യൂട്ട് ഓവർഹെഡ് വളരെ കുറവായിരിക്കും. പ്രധാനപ്പെട്ട ജോലികൾ ഗ്ലോബൽ പൂളിംഗും രണ്ട് ചെറിയ പ്രൊജക്ഷനുകളും ആണ് ചെയ്യുന്നത്; ഇവ ചുറ്റുമുള്ള 3×3 കൺവല്യൂഷനുകളെ അപേക്ഷിച്ച് വളരെ നിസ്സാരമാണ്.

എന്തുകൊണ്ടാണ് ഈ ഡിസൈൻ നിലനിൽക്കുന്നത്

ലളിതമായ ഗണിതശാസ്ത്രത്തിന് അപ്പുറം, എഞ്ചിനീയറിംഗ് പരിമിതികളെ മാനിക്കുന്നു എന്നതുകൊണ്ടാണ് Squeeze-and-Excitation ഇന്നും നിലനിൽക്കുന്നത്.

കുറഞ്ഞ പാരാമീറ്ററുകൾ. ResNet-50-ലേക്ക് SE ബ്ലോക്കുകൾ ചേർക്കുന്നത് ഏകദേശം 2.5 ശതമാനം പാരാമീറ്ററുകൾ മാത്രമേ അധികമായി കൂട്ടുന്നുള്ളൂ. ഇതിലെ MLP ലെയറുകൾ ചെറുതാണ്; അവ മോഡലിന്റെ വലിപ്പം അനാവശ്യമായി കൂട്ടുന്നില്ല. മോഡലിന്റെ വലിപ്പം ഇരട്ടിയാക്കിയാൽ മാത്രമേ കൃത്യത വർദ്ധിപ്പിക്കാൻ കഴിയൂ എന്ന കാലഘട്ടത്തിൽ, SE വളരെ കുറഞ്ഞ ചിലവിൽ വലിയ നേട്ടം നൽകുന്നു.

മോഡുലാരിറ്റി. നിങ്ങളുടെ പൈപ്പ്‌ലൈൻ പുനർരൂപകൽപ്പന ചെയ്യാൻ ആവശ്യപ്പെടുന്ന പുതിയൊരു ബാക്ക്ബോൺ ആർക്കിടെക്ചർ അല്ല SE. ഇതൊരു drop-in module ആണ്. ചുറ്റുമുള്ള ലോജിക് മാറ്റാതെ തന്നെ ResNet, DenseNet അല്ലെങ്കിൽ കസ്റ്റം സ്റ്റാക്കുകളിലെ ഏത് കൺവല്യൂഷൻ ബ്ലോക്കിന് ശേഷവും നിങ്ങൾക്ക് ഇത് ചേർക്കാം. ഈ ഫ്ലെക്സിബിലിറ്റി കാരണം ഗവേഷണങ്ങളിലും പിന്നീട് മൊബൈൽ ഒപ്റ്റിമൈസ്ഡ് നെറ്റ്‌വർക്കുകളിലും ഇത് വേഗത്തിൽ സ്വീകരിക്കപ്പെട്ടു.

ഇൻപുട്ടിന് അനുസൃതമായ പെരുമാറ്റം. ട്രെയിനിംഗിനിടെ പഠിച്ചെടുക്കുന്നതും മാറ്റമില്ലാതെ തുടരുന്നതുമായ സ്റ്റാറ്റിക് ചാനൽ വെയ്റ്റുകളിൽ നിന്ന് വ്യത്യസ്തമായി, ഓരോ ഫോർവേഡ് പാസ്സിനും (forward pass) SE ഗേറ്റുകൾ തത്സമയം കണക്കാക്കുന്നു. നെറ്റ്‌വർക്കിന് പ്രത്യേകതകളില്ലാത്ത ഒരു ആകാശം കാണിച്ചാൽ, പ്രസക്തമായ ചാനലുകൾ കുറഞ്ഞ അളവിൽ മാത്രം പ്രവർത്തിക്കും. എന്നാൽ കാൽനടയാത്രക്കാരും ബോർഡുകളും വാഹനങ്ങളുമുള്ള തിരക്കുള്ള ഒരു തെരുവ് കാണിച്ചാൽ, ആ ചിത്രത്തിന് ആവശ്യമായ ഡിറ്റക്ടറുകളെ വർദ്ധിപ്പിക്കാൻ ഗേറ്റുകൾ സ്വയം ക്രമീകരിക്കും. ഒരേ നെറ്റ്‌വർക്ക് തന്നെ ഓരോ രംഗത്തിനനുസരിച്ച് അതിന്റെ സെൻസിറ്റിവിറ്റി ക്രമീകരിക്കുന്നു.

മത്സരവിജയത്തിൽ നിന്ന് ദൈനംദിന ഉപയോഗത്തിലേക്ക്

SE ബ്ലോക്കുകൾ ILSVRC 2017-ൽ ഒന്നാം സ്ഥാനം നേടിയെങ്കിലും, അവയുടെ യഥാർത്ഥ വിജയം പിന്നീട് സംഭവിച്ചതാണ്. അവ MobileNetV3-ൽ ഉൾപ്പെടുത്തപ്പെട്ടു, അവിടെ മൊബൈൽ ബാറ്ററിയുടെ ഉപയോഗം കൂട്ടാതെ തന്നെ ലൈറ്റ് വെയ്റ്റ് മോഡലുകൾക്ക് മികച്ച പ്രകടനം കാഴ്ചവെക്കാൻ അവ സഹായിക്കുന്നു. EfficientNet-ന്റെ കോമ്പൗണ്ട് സ്കെയിലിംഗ് റെസിപ്പിയിലും ഇവ കാണാം; ചാനൽ അറ്റൻഷൻ എന്നത് വലിയ സെർവറുകൾക്ക് മാത്രമുള്ള ആഡംബരമല്ല, മറിച്ച് കാര്യക്ഷമമായ ഡിസൈനിനായുള്ള പ്രായോഗികമായ ഒരു മാർഗ്ഗമാണെന്ന് ഇത് തെളിയിക്കുന്നു.

ഇതിന് എത്ര കുറഞ്ഞ കോഡ് ആവശ്യമാണെന്ന് കാണാൻ, ലൈവ് ഡെമോ ഓരോ വരിയും വിശദമായി വിവരിക്കുന്നു:

കൂടാതെ, ഒരു കമ്മ്യൂണിറ്റിക്കൊപ്പം ചേർന്ന് പ്രവർത്തിക്കാൻ ആഗ്രഹിക്കുന്നുവെങ്കിൽ: https://t.me/GyaanSetuAi

യഥാർത്ഥ പാഠം

മികച്ച വിഷൻ മോഡലുകൾക്ക് എപ്പോഴും കൂടുതൽ ലെയറുകളോ വീതിയുള്ള ഫിൽട്ടറുകളോ ആവശ്യമില്ല. ചിലപ്പോൾ തങ്ങളുടെ മുന്നിലുള്ള ചിത്രത്തിന് ഏത് ചാനലുകളാണ് യഥാർത്ഥത്തിൽ പ്രസക്തമെന്ന് ചോദിക്കാൻ അവർക്ക് ഒരു നിമിഷം മതിയാകും. ഒരു പൂൾഡ് ആവറേജ്, ഒരു കംപ്രസ്ഡ് MLP, ഒരു sigmoid ഗേറ്റ് എന്നിവയിലൂടെ Squeeze-and-Excitation അവർക്ക് ആ നിമിഷം നൽകുന്നു. എല്ലാ ഫീച്ചറുകളെയും ഒരേ ശബ്ദത്തിൽ ഉച്ചത്തിൽ വിളിച്ചു പറയുന്നതിന് പകരം, ഓരോ ചാനലിനും ആവശ്യമായ സമയത്ത് മാത്രം അതിന് ഊന്നൽ നൽകാനോ, ശബ്ദം കുറയ്ക്കാനോ, അല്ലെങ്കിൽ നിശബ്ദമാക്കാനോ പഠിക്കുന്ന ഒരു നെറ്റ്‌വർക്കായി ഇത് മാറുന്നു.