Skip to content

[non-record track] Asymmetric Squared Unit (ASQU): learning per-channel asymmetric activations#1035

Open
andrewmouldon wants to merge 5 commits intoopenai:mainfrom
andrewmouldon:asqu-only
Open

[non-record track] Asymmetric Squared Unit (ASQU): learning per-channel asymmetric activations#1035
andrewmouldon wants to merge 5 commits intoopenai:mainfrom
andrewmouldon:asqu-only

Conversation

@andrewmouldon
Copy link
Copy Markdown

Summary

This PR introduces ASQU (Asymmetric Squared Unit), a per-channel activation that allows each feature dimension to learn its own asymmetric response.

Instead of using a single shared activation function across all channels, ASQU learns a per-channel scaling for the negative branch of a squared activation.


Motivation

Activation functions are typically shared across all channels, either fixed (ReLU, GELU) or globally parameterized (e.g. PReLU).

ASQU relaxes this assumption by allowing each channel to specialize its activation behavior with minimal parameter overhead.


Results (10k steps, same setup)

Model Seed Pre-quant BPB ↓ Post-quant BPB ↓ Size (bytes)
ReLU² 1337 1.2262 1.2328 15861272
LeakyReLU² (0.5) 1337 1.2243 1.2315 15861749
ASQU 1337 1.2236 1.2296 15895013
ReLU² 42 1.2276 1.2343 15856563
LeakyReLU² (0.5) 42 1.2247 1.2315 15862578
ASQU 42 1.2240 1.2309 15894743
ReLU² 2025 1.2253 1.2321 15853892
LeakyReLU² (0.5) 2025 1.2234 1.2302 15858384
ASQU 2025 1.2225 1.2295 15892158
Average (ReLU²) 1.2264 1.2331 15857242
Average (LeakyReLU²) 1.2241 1.2311 15860870
Average (ASQU) 1.2234 1.2300 15893971

ASQU provides a consistent improvement over both ReLU² and fixed-slope asymmetric activations.


Notes on Evaluation Setting

ASQU introduces minimal computational overhead and is straightforward to integrate, making it well-suited for both fixed-step and time-constrained settings.

In this work, we evaluate under a fixed 10k step budget to isolate architectural effects from slight potential differences in data exposure. This allows for cleaner comparisons when studying small changes such as activation functions.

See README for further details and discussion.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant