involution
**Involution** is a **location-specific, channel-sharing operation that inverts the properties of convolution** — while convolution is location-invariant and channel-specific, involution generates unique kernels for each spatial position but shares them across channels.
**How Does Involution Work?**
- **Generate Kernel**: For each position $(i,j)$, generate a kernel $H_{i,j}$ from the input features at that position.
- **Apply**: $Y_{i,j} = sum_{Delta} H_{i,j,Delta} cdot X_{i+Delta_h, j+Delta_w}$ (summed across the kernel neighborhood).
- **Channel Sharing**: The same kernel is applied to all channel groups at position $(i,j)$.
- **Paper**: Li et al. (2021).
**Why It Matters**
- **Complementary**: Captures spatial-varying patterns that convolution (spatially invariant) cannot.
- **Efficiency**: Far fewer parameters than convolution (channel-sharing reduces parameters by $C/G$ factor).
- **Self-Attention Link**: Involution can be seen as a local version of self-attention.
**Involution** is **the spatial inverse of convolution** — generating position-specific but channel-shared kernels, capturing per-location visual patterns.