Стандартний згортковий шар дивно егалітарний. Він накопичує десятки — іноді сотні — детекторів ознак, а потім ставиться до кожного з них однаково поважно. Канал, який навчився розпізнавати діагональні краї, отримує такий самий голос, як і канал, що виявляє пікселі блакитного неба. Канал, що реагує на текстуру хутра на фото кота, передається далі з такою ж вагою, як і той, що активується фоновим шумом. Ця одноманітність і є слабкістю. Не кожен канал є однаково важливим для кожного зображення, а глибоким мережам історично бракувало механізму, щоб це висловити.
Squeeze-and-Excitation, запропонований Ху та його колегами, виправляє це за допомогою надзвичайно малого доповнення. Він приєднує навчальний механізм гейтування до будь-якого згорткового блоку, щоб мережа могла динамічно перекалібрувати внесок кожного каналу, і робить це заново для кожного вхідного сигналу. Додаткові витрати є незначними — приблизно на 2,5 відсотка більше параметрів при додаванні до ResNet-50 — але приріст представницької здатності настільки суттєвий, що блоки SE допомогли виграти ILSVRC 2017 і зараз використовуються в робочих архітектурах, таких як MobileNetV3 та EfficientNet.
Ідея досить проста, щоб реалізувати її з нуля у три етапи.
Squeeze: надання мережі ширококутного об'єктива
Згортка за своєю природою є локальною. Ядро 3×3 ковзає по зображенню і бачить лише своє безпосереднє оточення. Нашакуйте достатньо шарів, і рецептивне поле зросте, проте жодна окрема операція не оглядає всю карту ознак одним поглядом. Це означає, що канал може бути сильно активований по всьому просторовому об'єкту собаки чи автомобіля, але наступний шар ніколи не отримає чіткого підсумку на кшталт: «Цей детектор спрацював усюди».
Крок squeeze заповнює цю прогалину за допомогою глобального усереднення (global average pooling). Для кожного каналу кожне значення в просторовій сітці H×W усереднюється до одного числа. Якщо у вас є 512 каналів, тепер у вас є 512 скалярів. Кожен скаляр кодує глобальну присутність того, що цей канал навчився виявляти — будь то обод колеса, смужка трави чи ділянка відтінку шкіри. Це підсумок усієї сцени в розрізі каналів.
Це важливо, тому що контекст змінює значення. Детектор горизонтальних ліній корисний на одному зображенні, бо він ідентифікує горизонт, і марний на іншому, бо він вловлює шум у листі дерев. Без просторової агрегації мережі бракує чіткого сигналу, щоб зробити це розрізнення.
Excite: вузьке місце, що змушує до співпраці
Після того, як крок squeeze створив вектор глобальних дескрипторів каналів, крок excite вчиться, що з ними робити. Це крихітний двошаровий MLP. Він бере вектор, стискає його до «вузького місця» (bottleneck), а потім розширює назад до початкової розмірності каналів.
Типові реалізації використовують коефіцієнт стиснення (reduction ratio) 16. Якщо вхід має 512 каналів, перший лінійний шар проєктує 512 скалярів до 32, між ними стоїть ReLU, а другий шар мапує 32 назад у 512. Це стиснення є навмисним. Воно працює як лійка: мережа не може просто передати початкові значення без змін. Вона повинна вивчити стиснуте, спільне представлення того, як канали пов'язані між собою. Вузьке місце змушує виникати міжканальні залежності. Модель може навчитися, наприклад, що коли канал «текстури кори» сильний, канал «контуру стовбура дерева» також має бути підсилений, тоді як канал «відблиску на воді» слід приглушити.
Фінальна активація тут є вирішальною, і це поширене місце, де інтуїція підводить. Багато людей інстинктивно обирають softmax, тому що здається, ніби увага (attention) має бути розподілом ймовірностей. Softmax змусив би всі канали конкурувати один з одним, доки їхні ваги не сумувалися б до одиниці. Якщо один канал зростає, інші мають зменшитися. Це саме те, що неправильно для цього завдання. Фотографія заходу сонця може потребувати одночасного роботи на повну потужність і каналу помаранчевого сяйва, і каналу текстури хмар. Гейти мають діяти як незалежні регулятори яскравості, а не як бюджет із нульовою сумою.
Sigmoid вирішує цю проблему. Він стискає кожен скаляр до значення між нулем і одиницею, але кожен канал вільний рухатися незалежно. Модель може підняти будь-яку підмножину, залишити інші нейтральними та приглушити решту — і все це без штучної конкуренції.
Scale: застосування гейтів та продовження
The final step is almost anticlimactic, which is part of the elegance. Each original feature map is multiplied by its corresponding sigmoid-activated gate value. If the gate is near one, the channel passes through unchanged. If the gate is near zero, that entire feature map is muted, fading toward silence. The result is fed into the next layer of the network.
Because this is pure multiplication across spatial maps, it adds minimal compute overhead at inference. The heavy lifting was done by the global pooling and two small projections, which are negligible compared to the surrounding 3×3 convolutions.
Why the Design Persists
Beyond the clean math, Squeeze-and-Excitation endures because it respects engineering constraints.
Cheap parameters. Adding SE blocks to ResNet-50 costs only about 2.5 percent more parameters. The MLP layers are small; they do not bloat the model. In an era where accuracy gains often come from doubling model size, SE offers a rare free lunch.
Modularity. SE is not a new backbone architecture demanding you redesign your pipeline. It is a drop-in module. You can insert it after any convolution block in ResNet, DenseNet, or custom stacks without rewriting the surrounding logic. That flexibility made adoption quick, first in research and later in mobile-optimized networks.
Input-adaptive behavior. Unlike static channel weights learned during training and frozen, SE gates are computed on the fly for every forward pass. Feed the network a flat, featureless sky, and the relevant channels stay subdued. Show it a busy street scene with pedestrians, signs, and vehicles, and the gates recalibrate to boost the detectors that matter for that specific image. The same network adjusts its own sensitivity scene by scene.
From Competition Winner to Everyday Deployment
SE blocks claimed top spot at ILSVRC 2017, but their real validation came later. They were folded into MobileNetV3, where they help lightweight models punch above their weight class without burning mobile battery. They appear in EfficientNet’s compound scaling recipe, proving that channel attention is not a luxury for heavyweight servers but a practical tool for efficient design.
If you want to see how little code this actually requires, the live demo breaks the block down line by line:
- 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
And if you are building alongside a community: https://t.me/GyaanSetuAi
The Real Takeaway
Better vision models do not always need deeper stacks or wider filters. Sometimes they just need a moment to ask which channels actually matter for the image in front of them. Squeeze-and-Excitation gives them that moment with nothing more than a pooled average, a compressed MLP, and a sigmoid gate. The result is a network that stops shouting every feature at equal volume and learns instead to whisper, emphasize, or silence each channel exactly when the scene demands it.
