<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Nlms on Corebaseit — POS · EMV · Payments · AI</title><link>https://corebaseit.com/tags/nlms/</link><description>Recent content in Nlms on Corebaseit — POS · EMV · Payments · AI</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><managingEditor>contact@corebaseit.com (Vincent Bevia)</managingEditor><webMaster>contact@corebaseit.com (Vincent Bevia)</webMaster><lastBuildDate>Wed, 29 Apr 2026 10:00:00 +0200</lastBuildDate><atom:link href="https://corebaseit.com/tags/nlms/index.xml" rel="self" type="application/rss+xml"/><item><title>Adaptive Filters and Stochastic Gradient Descent: One Update Rule, Two Vocabularies</title><link>https://corebaseit.com/corebaseit_posts/lms_new_for_corebaseit/</link><pubDate>Wed, 29 Apr 2026 10:00:00 +0200</pubDate><author>contact@corebaseit.com (Vincent Bevia)</author><guid>https://corebaseit.com/corebaseit_posts/lms_new_for_corebaseit/</guid><description>&lt;p>Modern AI is often framed as a clean break from classical engineering. For anyone who has worked in adaptive signal processing, that framing is misleading. The mathematical spine of stochastic gradient descent (SGD) is the same spine that has driven adaptive filters in telecommunications since 1960, and the engineering trade-offs that made LMS-based equalizers and echo cancellers reliable in production map almost directly onto the ones that govern training a deep network today.&lt;/p>
&lt;p>This post lays out that mapping carefully. The intent is not poetry. It is to give engineers who came up through DSP a precise translation table into modern ML, and engineers who came up through ML a sense of what fifty years of adaptive filtering literature already settled.&lt;/p>
&lt;h2 id="a-continuous-lineage-not-a-new-beginning">A Continuous Lineage, Not a New Beginning
&lt;/h2>&lt;p>The historical sequence is short and well-documented. Widrow and Hoff formalized the Least Mean Squares (LMS) algorithm in 1960 for the Adaline (Adaptive Linear Neuron). Rumelhart, Hinton, and Williams scaled the same family of error-driven update rules to multi-layer networks with backpropagation in 1986. The vocabulary moved from &lt;em>adaptive filtering&lt;/em> to &lt;em>deep learning&lt;/em>, but the underlying move — iterative parameter adjustment proportional to error — was continuous across both worlds.&lt;/p>
&lt;p>The claim of this post is narrower than &amp;ldquo;AI came from DSP&amp;rdquo; and more useful: &lt;strong>for a linear model trained on mean squared error, the LMS update is exactly the SGD update&lt;/strong>. Multi-layer training adds the chain rule on top of that local move; it does not replace it.&lt;/p>
&lt;h2 id="lms-as-stochastic-gradient-descent">LMS as Stochastic Gradient Descent
&lt;/h2>&lt;p>The LMS update for a linear combiner (FIR filter or single Adaline) is:&lt;/p>
$$
\mathbf{w}(n+1) = \mathbf{w}(n) + \mu \, e(n) \, \mathbf{x}(n)
$$&lt;p>with \(\mathbf{w}(n)\) the weight vector at step \(n\), \(\mathbf{x}(n)\) the input vector (tap-delay line in DSP, feature vector in ML), \(e(n) = d(n) - y(n)\) the error between the desired response \(d(n)\) and the output \(y(n) = \mathbf{w}^\top(n)\,\mathbf{x}(n)\), and \(\mu\) the step size.&lt;/p>
&lt;p style="text-align: center;">
&lt;img src="https://corebaseit.com/diagrams/LMS_SGD_structural_equivalence_diagram.png" alt="LMS = SGD structural equivalence diagram" style="max-width: 900px; width: 100%;" />
&lt;/p>
&lt;p>The instantaneous squared error is \(\xi(n) = \tfrac{1}{2}e^2(n)\), and its gradient with respect to \(\mathbf{w}\) is \(-e(n)\,\mathbf{x}(n)\). Substituting that gradient into the standard SGD form recovers the LMS update line for line.&lt;/p>
&lt;p>The &amp;ldquo;stochastic&amp;rdquo; qualifier deserves the same scrutiny. Classical Wiener filtering minimizes the &lt;em>expected&lt;/em> squared error \(E[e^2(n)]\), which presupposes knowledge of the input statistics. LMS sidesteps that requirement by using the &lt;em>instantaneous&lt;/em> squared error \(e^2(n)\) as a high-variance, zero-cost estimator of the expectation. SGD uses the same trick at higher dimensionality: the per-batch loss is a noisy estimate of the population loss, and the noise is doing real work in shaping the optimization trajectory.&lt;/p>
&lt;p>The mapping between the two vocabularies for a linear MSE layer is one-to-one:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Symbol&lt;/th>
&lt;th>Adaptive filtering (DSP)&lt;/th>
&lt;th>Deep learning (ML)&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>\(\mathbf{w}\)&lt;/td>
&lt;td>Filter coefficients / weight vector&lt;/td>
&lt;td>Weight vector / parameters&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>\(\mathbf{x}\)&lt;/td>
&lt;td>Input vector / tap-delay line&lt;/td>
&lt;td>Feature vector / activations&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>\(e(n)\)&lt;/td>
&lt;td>Desired response \(d(n)\) minus output&lt;/td>
&lt;td>Target label minus prediction&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>\(\mu\)&lt;/td>
&lt;td>Step size&lt;/td>
&lt;td>Learning rate \(\eta\)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>\(\tfrac{1}{2}e^2\)&lt;/td>
&lt;td>Instantaneous squared error&lt;/td>
&lt;td>MSE loss on a single example&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>So if you have ever shipped an LMS equalizer or echo canceller, you have implemented the local update rule that underlies a large fraction of modern machine learning: small steps proportional to error times input. Notation in Haykin&amp;rsquo;s &lt;em>Adaptive Filter Theory&lt;/em> differs from the PyTorch docs. The mathematics does not.&lt;/p>
&lt;p>Multi-layer networks add the chain rule (backpropagation) so error can be attributed back through nonlinear layers. The local update at any linear layer trained on MSE is still the same structural move: adjust weights in proportion to error and activations. Momentum, Adam, and adaptive learning rates are engineering on top of that spine, not departures from it.&lt;/p>
&lt;h2 id="step-size-learning-rate-and-the-geometry-of-the-loss-surface">Step Size, Learning Rate, and the Geometry of the Loss Surface
&lt;/h2>&lt;p>In telecommunications, the step size \(\mu\) governs the classic compromise between convergence speed and steady-state misadjustment. Too large and the filter can diverge or oscillate. Too small and the filter cannot track a fast-fading channel or a moving echo path. Adaptive filtering textbooks devote whole chapters to stability bounds on \(\mu\), usually expressed in terms of input power and filter length, and to variants designed to fix the worst-case behavior.&lt;/p>
&lt;p style="text-align: center;">
&lt;img src="https://corebaseit.com/diagrams/Step_size_learning_rate_trade-off_diagram.png" alt="Step size / learning rate trade-off diagram" style="max-width: 900px; width: 100%;" />
&lt;/p>
&lt;p>There is a more specific geometric point worth surfacing, because it carries directly into deep learning. The allowable bounds on \(\mu\) for LMS depend on the eigenvalue spread of the input autocorrelation matrix \(\mathbf{R} = E[\mathbf{x}\mathbf{x}^\top]\). When \(\mathbf{R}\) is poorly conditioned — long tap-delay lines with strongly correlated inputs are a familiar offender — convergence in slow eigen-directions becomes painful, and a step size that is safe in one direction is too aggressive in another. Increasing the filter length tends to worsen this conditioning rather than help it.&lt;/p>
&lt;p>This is the same pathology that shows up in deep learning when the loss surface is poorly conditioned. Plain gradient descent crawls along flat directions and bounces along steep ones. Per-coordinate scaling inside Adam, preconditioners, and the entire warm-up / cosine-decay literature exist to attack different facets of that conditioning problem. The DSP community called these &lt;em>eigenvalue spread&lt;/em> problems for decades before the ML community started calling them &lt;em>ill-conditioned loss landscapes&lt;/em>.&lt;/p>
&lt;p>In deep learning, the learning rate \(\eta\) plays the same role as \(\mu\) at higher abstraction. Too high and training diverges or chatters around a minimum. Too low and you underfit or burn compute without making progress. Learning-rate schedules, warm-up, and cosine decay are all variations on a single instinct: the right step size depends on the local geometry and may need to change over time.&lt;/p>
&lt;h2 id="normalization-nlms-rmsprop-adam">Normalization: NLMS, RMSProp, Adam
&lt;/h2>&lt;p>To handle wide variations in input signal power, adaptive-filtering practitioners developed Normalized LMS (NLMS), which scales the update by the inverse of the current input energy:&lt;/p>
$$
\mathbf{w}(n+1) = \mathbf{w}(n) + \frac{\mu}{\|\mathbf{x}(n)\|^2 + \delta} \, e(n) \, \mathbf{x}(n)
$$&lt;p>with \(\delta\) a small regularizer that keeps the denominator from collapsing.&lt;/p>
&lt;p>There is a real conceptual line from NLMS to modern adaptive optimizers like RMSProp and Adam. There is also a real mechanical distinction that pop-ML writeups tend to flatten. NLMS normalizes by the &lt;em>instantaneous&lt;/em> input energy of the current sample. RMSProp and Adam normalize by an &lt;em>exponential moving average of squared gradients&lt;/em>. The intent is shared — keep the update from being driven by signal scale rather than error — but they react on different time horizons and stabilize different things in practice.&lt;/p>
&lt;p>Two further points are worth stating without dressing them up.&lt;/p>
&lt;p>First, computational cost is part of why LMS and NLMS won and stayed. Both are \(O(N)\) per update in the filter length \(N\). Recursive Least Squares (RLS) and Newton-style methods give faster theoretical convergence but cost \(O(N^2)\) or worse, which is why nobody runs full second-order optimization on a 70-billion-parameter model either. &amp;ldquo;Good enough updates, very fast&amp;rdquo; beat &amp;ldquo;perfect updates, eventually&amp;rdquo; both in real-time DSP hardware and in the GPU cluster.&lt;/p>
&lt;p>Second, normalization by signal-scale statistics is the primary defense against divergence in high-variance environments. The exact statistic differs by algorithm, but the principle is shared across NLMS, RMSProp, Adam, and most of the layer-norm / batch-norm family: bound the update magnitude using something derived from the signal, so error can drive the direction without scale dominating the magnitude.&lt;/p>
&lt;h2 id="tracking-not-convergence">Tracking, Not Convergence
&lt;/h2>&lt;p>Adaptive filters were built for non-stationary environments: multipath fading, time-varying echoes, drifting noise floors. The &amp;ldquo;true&amp;rdquo; optimal weights are not fixed; they move. The filter is not supposed to converge once and freeze. It is supposed to &lt;em>track&lt;/em>. That mindset is much closer to production ML than the static batch fit on a fixed dataset that introductory courses still tend to lead with.&lt;/p>
&lt;p>Modern systems face the same phenomenon under different labels:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Distribution shift&lt;/strong> — the input distribution drifts.&lt;/li>
&lt;li>&lt;strong>Concept drift&lt;/strong> — the input-to-target relationship drifts.&lt;/li>
&lt;li>&lt;strong>Stale features&lt;/strong> — engineered signals decay as the underlying world changes.&lt;/li>
&lt;/ul>
&lt;p>The framing change matters. In a non-stationary environment, &amp;ldquo;convergence&amp;rdquo; is the wrong success metric. The right metric is &lt;em>tracking&lt;/em>: how well the system follows the moving optimum, with what lag, and at what excess error. DSP literature has been formal about this for decades — excess mean-square error, lag noise, tracking misadjustment — while production ML still tends to discover it informally, usually after a regression has shipped.&lt;/p>
&lt;p>Research on in-context learning in linear models (Akyürek et al., 2022) even investigates which classical learning algorithms are implicitly approximated by transformers under simplified conditions. That is one more sign that the boundary between adaptive signal processing and contemporary ML is thinner than course catalogs suggest.&lt;/p>
&lt;h2 id="a-continuous-mathematical-thread">A Continuous Mathematical Thread
&lt;/h2>&lt;p style="text-align: center;">
&lt;img src="https://corebaseit.com/diagrams/Historical_lineage_timeline_diagram.png" alt="Historical lineage / timeline diagram" style="max-width: 900px; width: 100%;" />
&lt;/p>
&lt;p>The transition from digital signal processing to artificial intelligence is more a change of vocabulary than a change of fundamental principles. The engineering rigor required to stabilize an echo canceller in 1970 is the same rigor required to train a multi-billion-parameter model today: error-driven updates, step-size discipline, normalization to handle input-scale variance, and the discipline of tracking a moving target rather than converging on a fixed one.&lt;/p>
&lt;p>For engineers coming from telecommunications, the move into AI is not a career pivot. It is recognition that the tools they already carry — stability analysis, second-order statistics, non-stationary tracking, complexity-aware design — are exactly the tools the new domain still depends on. For engineers coming from ML, the DSP literature is a large, well-tested archive of solutions to problems that show up again at scale.&lt;/p>
&lt;p>If you understand LMS, you already understand a piece of what every deep learning framework is doing when it steps the weights. The rest is scale, architecture, and tooling.&lt;/p>
&lt;p style="text-align: center;">
&lt;img src="https://corebaseit.com/diagrams/lms_corebaseit.png" alt="Step size / learning rate trade-off diagram" style="max-width: 900px; width: 100%;" />
&lt;/p>
&lt;hr>
&lt;h2 id="references">References
&lt;/h2>&lt;ul>
&lt;li>Widrow, B., &amp;amp; Hoff, M. E. &amp;ldquo;Adaptive switching circuits.&amp;rdquo; &lt;em>IRE WESCON Convention Record&lt;/em>, 4, 96–104, 1960.&lt;/li>
&lt;li>Haykin, S. &lt;em>Adaptive Filter Theory&lt;/em> (4th ed.). Prentice Hall, 2002.&lt;/li>
&lt;li>Rumelhart, D. E., Hinton, G. E., &amp;amp; Williams, R. J. &amp;ldquo;Learning representations by back-propagating errors.&amp;rdquo; &lt;em>Nature&lt;/em>, 323, 533–536, 1986.&lt;/li>
&lt;li>Sayed, A. H. &lt;em>Adaptive Filters&lt;/em>. Wiley-IEEE Press, 2008.&lt;/li>
&lt;li>Kingma, D. P., &amp;amp; Ba, J. &amp;ldquo;Adam: A Method for Stochastic Optimization.&amp;rdquo; &lt;em>ICLR&lt;/em>, 2015. &lt;a class="link" href="https://arxiv.org/abs/1412.6980" target="_blank" rel="noopener"
>arxiv.org/abs/1412.6980&lt;/a>&lt;/li>
&lt;li>Tieleman, T., &amp;amp; Hinton, G. &amp;ldquo;Lecture 6.5 — RMSProp: Divide the gradient by a running average of its recent magnitude.&amp;rdquo; &lt;em>COURSERA: Neural Networks for Machine Learning&lt;/em>, 2012.&lt;/li>
&lt;li>Akyürek, E., Schuurmans, D., Andreas, J., Ma, T., &amp;amp; Zhou, D. &amp;ldquo;What learning algorithm is in-context learning? Investigations with linear models.&amp;rdquo; 2022. &lt;a class="link" href="https://arxiv.org/abs/2211.15661" target="_blank" rel="noopener"
>arxiv.org/abs/2211.15661&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="further-reading">Further Reading
&lt;/h2>&lt;ul>
&lt;li>&lt;a class="link" href="https://corebaseit.com/posts/lms-adaptive-filters-and-neural-network-training/" >I Spent Years on Adaptive Filters. I Was Already Training Neural Networks.&lt;/a> — the same lineage, told from personal experience.&lt;/li>
&lt;li>&lt;a class="link" href="https://corebaseit.com/posts/stochastic-entropy-ai/" >Stochastic, Entropy &amp;amp; AI: From Thermodynamics to Information Theory to Modern Machine Learning&lt;/a> — adjacent thread on probability, information, and ML foundations.&lt;/li>
&lt;/ul></description></item></channel></rss>