Exponential Smoothing

The Recursive Update

For any state variable $s_t$ (such as an evolution path or a covariance matrix component), the update follows this linear recursive form:

$$s_t = (1 - c)s_{t-1} + c \cdot x_t$$

Where:

  • $s_t$: The current smoothed state.
  • $s_{t-1}$: The state from the previous generation.
  • $x_t$: The "innovation" or new information observed in the current generation.
  • $c \in (0, 1]$: The learning rate or smoothing constant.

Why it is "Exponential"

To see the underlying structure, we can expand (unroll) the recursion. By substituting the expression for $s_{t-1}$ into the equation for $s_t$, we get:$$s_t = c x_t + (1-c)[c x_{t-1} + (1-c)s_{t-2}]$$$$s_t = c x_t + c(1-c)x_{t-1} + (1-c)^2 s_{t-2}$$If we continue this back to the initial state $s_0$, the formula becomes a weighted sum:$$s_t = c \sum_{i=0}^{t-1} (1-c)^i x_{t-i} + (1-c)^t s_0$$

The weight of each past observation $x_{t-i}$ is $c(1-c)^i$. Since $(1-c)$ is less than 1, these weights decay exponentially (with exponent $i$) as the information gets older. Because the constant base $(1-c)$ is between 0 and 1, the contribution of each generation shrinks by a fixed percentage for every step we look back in time. This ensures that while the algorithm "remembers" the past, it prioritizes recent discoveries and naturally "forgets" outdated information.

Time Horizon ($1/c$)

The "time horizon" $\tau$ represents the average age of the data influencing the current state. We calculate this by taking the weighted average of the age $i$:$$\tau = \sum_{i=0}^{\infty} i \cdot c(1-c)^i$$Using the geometric series identity $\sum_{i=0}^{\infty} i r^i = \frac{r}{(1-r)^2}$ where $r = (1-c)$:$$\tau = c \cdot \frac{(1-c)}{(1-(1-c))^2} = c \cdot \frac{1-c}{c^2} = \frac{1-c}{c}$$For the small learning rates typically used in optimization ($c \ll 1$), we approximate the horizon as:$$\tau \approx \frac{1}{c}$$

Comparison of Memory Horizons:

  • Stable Horizon ($c \ll 1$): If $c = 0.01$, the average age $\tau \approx 99$ generations. The algorithm has a "long memory," making it robust against noise but slow to react to sudden changes in the landscape.
  • Reactive Horizon ($c \to 1$): If $c = 0.5$, the average age $\tau = 1$ generation. The algorithm is "short-sighted" and highly reactive. While this allows for rapid adaptation on perfectly smooth, simple slopes, it is risky on complex or "rugged" landscapes because the solver will "chase" every local fluctuation.
In [ ]: