Md. Asif Uddin
I.3.X09

SiLU, and a derivative that exceeds one

symbolic▲▲△

SiLU (also called Swish) is φ(z)=zσ(z)\varphi(z) = z\,\sigma(z). Derive its derivative in terms of σ\sigma alone, show it can exceed 11, find its minimum, and compare with GELU’s 0.1289-0.1289.

Hint

Product rule, then use σ=σ(1σ)\sigma' = \sigma(1-\sigma) to eliminate the derivative.

Solution

The derivative. By the product rule and then I.3.1:

φ(z)=σ(z)+zσ(z)=σ(z)+zσ(z)(1σ(z))\varphi'(z) = \sigma(z) + z\,\sigma'(z) = \sigma(z) + z\,\sigma(z)\big(1-\sigma(z)\big)

which can be tidied to

φ(z)=σ(z)(1+z(1σ(z)))\varphi'(z) = \sigma(z)\Big(1 + z\big(1 - \sigma(z)\big)\Big)

Written this way it costs one sigmoid evaluation and three arithmetic operations, and needs nothing but the value already computed in the forward pass — the same economy I.3.B02 noted for sigmoid itself.

It exceeds 1. At z=1z = 1: σ(1)=0.7311\sigma(1) = 0.7311, so

φ(1)=0.7311(1+1(0.2689))=0.7311×1.2689=0.9276\varphi'(1) = 0.7311\big(1 + 1(0.2689)\big) = 0.7311 \times 1.2689 = 0.9276

not yet. Try z=2z = 2: σ(2)=0.8808\sigma(2) = 0.8808,

φ(2)=0.8808(1+2(0.1192))=0.8808×1.2384=1.0908\varphi'(2) = 0.8808\big(1 + 2(0.1192)\big) = 0.8808 \times 1.2384 = 1.0908

Greater than 1. Scanning, the maximum is about 1.09981.0998 near z=2.4z = 2.4.

Why that is notable. Every derivative met so far is at most 11: sigmoid 1/4\le 1/4, tanh 1\le 1, ReLU 1\le 1. SiLU can amplify a gradient. Over LL layers a factor above 11 compounds upward rather than downward — the mirror image of I.3.B03’s problem, and one reason SiLU networks can be sensitive to learning rate in a way ReLU networks are not.

The minimum. Setting φ=0\varphi'' = 0 numerically gives z1.2785z \approx -1.2785, where

φ(1.2785)=(1.2785)σ(1.2785)=(1.2785)(0.2178)=0.2785\varphi(-1.2785) = (-1.2785)\sigma(-1.2785) = (-1.2785)(0.2178) = -0.2785

and the derivative there is about 0.0998-0.0998.

Comparison with GELU.

most negative outputmost negative derivativeat zz
GELU0.1700-0.17000.1289-0.12892=1.4142-\sqrt2 = -1.4142
SiLU0.2785-0.27850.0998-0.09981.2785\approx -1.2785

SiLU has the deeper output dip; GELU has the deeper derivative dip. They are different functions with the same qualitative shape — smooth, non-monotonic, ReLU-like in the tails — and the practical difference between them is small enough that the choice is usually made by what a codebase already uses.

The honest summary. Both were found by search rather than derived from a principle. SiLU came out of an automated activation search; GELU from a stochastic-regularisation argument that the final formula does not really depend on. The literature’s post-hoc explanations for why either works should be read with that history in mind.

Draws on