Probabilistic spectral analysis
November 13, 2019 — November 25, 2020
Graphical introduction to nonstationary modelling of audio data. The input (bottom) is a sound recording of female speech. We seek to decompose the signal into Gaussian process carrier waveforms (blue block) multiplied by a spectrogram (green block). The spectrogram is learned from the data as a nonnegative matrix of weights times positive modulators (top).(W. J. Wilkinson et al. 2019a)
I am interested in probabilistic analogues of time frequency analysis and, what is nearly the same thing, autocorrelation analysis, but for non-stationary signals. This is natural with Gaussian processes.
I am especially interested in this for audio signals, which can be very large, but have certain simplicities — i.e. being scalar functions of a univariate time index, usually regularly sampled.
In signal processing we frequently use Fourier transforms as a notionally nonparametric model for such a system, or a source of features for analysis.
That is classic stuff but it is (for me) always unsatisfying just taking the Fourier transform of something and hoping to have learned stuff about the system. There are a lot of arbitrary tuning parameters and awkward assumptions about, e.g. local stationarity and arbitrary ways of introducing non-local correlation. The same holds for the deterministic autocorrelogram, on which I have recently published a paper. I got good results, but I had no principled way to select the regularisation and interpretation of the methods. Unsatisfying.
I think we can do better by looking at the probabilistic behaviour of Fourier transforms and treating these as Bayesian nonparametric problems. This could solve a few problems at once.
This is an active area, with several approaches.
1 Classic: stochastic processes studied via correlation function
I’ve discussed basic stationary signal analysis everywhere, but why not check out some backgrounders in (Wiener and Masani 1957; Yaglom 1987b)?
2 Non-stationary spectral kernel
The central tool here in practice is Bochner’s theorem, which states that the Fourier transform of some spectral measure is a valid covariance kernel:
\[\kappa(\Delta t)=\mathcal{F}_{\Delta t}.\]
Taking this insight and running with it you can do lots of fun stuff. Turner and Sahani (2014) is sometimes mentioned as ground-zero of this kind of research, although the connections are certainly much older, e.g. Curtain (1975). Wiener and Khintchine approaches were not far from this (Wiener and Masani 1958, 1957) and it is implicit in Kalman-Bucy filtering (R. Kalman 1959; R. E. Kalman 1960; Kailath 1971). There are natural extensions of classic results, e.g. a Shannon-Nyquist theorem Tobar (2019). In modern times we have related but more specialised techniques such as the probabilistic phase vocoder (Godsill and Cemgil 2005). See also the connections to time series state models of Hartikainen and Särkkä (2010), Lindgren, Rue, and Lindström (2011), Reece and Roberts (2010) and Liutkus, Badeau, and Richard (2011).
There are nice introductions in some papers (Solin 2016; Alvarado, Alvarez, and Stowell 2019; W. J. Wilkinson et al. 2019a), which unite various pieces I was discussing above with actual applications. I will work through these methods here for my own edification.
🏗
The basic setting is the same as for typical audio signal analysis; we begin with a (random) signal \(f:\mathbb{R}\to\mathbb{R}\), where the argument is a continuous time index. We do not know this signal, but will infer its properties from some countable number of discrete observations, \(\mathbf{f}:=\{f(t_k);k=1,2,\dots,K\}.\)
We imagine observations from this signal are modelled by a Gaussian process, giving us the same setup as Gaussian process regression. We introduce the additional assumption here that the scalar index \(\mathcal{I}:=\mathbb{R}\) represents time.
I suppose what we are doing here is requiring that there be some model for sampling error and that it may as well be the most convenient possible model to work with, which is additive Gaussian. More general noise models are indeed possible, and if we allow other Gaussian processes as additive noise models then we are on the way to constructing a source separation model. That is indeed what (Liutkus, Badeau, and Richard 2011) do.1
Anyway, with these choices, this becomes absolutely the classic Gaussian process regression with some specialisation. (univariate index, mean-0)
It is also not far from the classic time frequency spectral analysis setup, where we take Fourier transforms over fixed size windows to estimate a kind of deterministic approximation to \(\kappa\) (thanks Wiener-Khintchine theorem); in that context we are effectively assuming that for each window we have an independent estimation problem, and a periodic kernel. I should make that relationship precise. 🏗
There is clearly a lot wrapped up in the kernel, \(\kappa(t, t';\mathbf{\theta}).\)
Typically this is some kind of spectral mixture kernel (W. J. Wilkinson et al. 2019b; Wilson and Adams 2013). W. J. Wilkinson et al. (2019a) summarises these as:
\[ \begin{aligned} \kappa_{\mathrm{sm}}\left(t, t^{\prime}\right) &=\sum_{d=1}^{D} \kappa_{z}^{(d)}\left(t, t^{\prime}\right) \\ \kappa_{z}^{(d)}\left(t, t^{\prime}\right) &=\sigma_{d}^{2} \cos \left(\omega_{d}\left(t-t^{\prime}\right)\right) \kappa_{d}\left(t, t^{\prime}\right) \end{aligned} \]
\(\kappa_{d}\) is free to be chosen, but is typically from the Matérn class of kernel functions. Parameters \(\omega_{d}\) determine the periodicity of the kernel components, which can be interpreted as the centre frequencies of the filters in a probabilistic filter bank. By choosing the exponential kernel \(\kappa_{d}\left(t, t^{\prime}\right)=\exp \left(\left|t-t^{\prime}\right| / \ell_{d}\right)\) we recover exactly the probabilistic phase vocoder (Cemgil & Godsill, 2005), and the lengthscales \(\ell_{d}\) control the filter bandwidths.
More generally we would like this to be a non-stationary kernel, which requires a model for the density of these kernels. W. J. Wilkinson et al. (2019a) uses a NMF model with a GP prior on some matrix rows and applying a softmax link. (Remes, Heinonen, and Kaski (2018) seems to get a similar structure?)
3 Locally stationary
Connection to the short time Fourier transform, where signals are assumed stationary. Change point detection version TBD.
There is an alternative approach which looks at switching between covariance kernels/spectrogram. One strand is the AdaptSpect family of methods (Bertolacci et al. 2020; Rosen, Wood, and Stoffer 2012), which develop fast MCMC samplers by using Whittle likelihood approaches over randomised change points. Disclosure of bias: I just enjoyed a seminar by my colleague Michael Bertolacci on this theme, and Sally Cripps née Wood works 20m from me and was co-author on these.
Russell Tsuchida has made me aware of a parallel body of work (Adams and MacKay 2007; Edwards, Meyer, and Christensen 2019; Osborne 2010; Roberts et al. 2013; Saatçi, Turner, and Rasmussen 2010) which keeps the spectrogram implicit and changes the covariance kernel. This is still reasonably fast thanks to Lattice GP tricks.
🚧TODO🚧 compare and contrast these methods. ls -al /dev/disk/by-uuid/I suspect a major difference is that the former targets statisticians and the latter ML people but they can probably be combined, or at least a neat cherry-picked method leveraging both should be feasible.
4 Non-Gaussian approaches
For now, see sparse stochastic processes.
5 References
Footnotes
We might more generally consider a sampling problem where we observe the signal through inner products with some sampling kernel, possibly even a stochastic one, but that sounds complicated.↩︎