--- \documentclass{article} \usepackage[utf8]{inputenc} \usepackage{amsfonts} \usepackage{amsmath} \usepackage{mathtools} \usepackage{fullpage} \usepackage{amssymb} \usepackage{amsthm} \usepackage{comment} \usepackage{color} --- $%standard maths \newcommand{\R}{\mathbb{R}} %dot products \newcommand{\fdotp}[1]{\langle #1 \rangle} \newcommand{\dotp}[1]{\left( #1 \right)} %brackets \newcommand{\BK}[1]{\left( #1 \right)} \newcommand{\cBK}[1]{\left{ #1 \right}} \newcommand{\sBK}[1]{\left[ #1 \right]} % Probabilistic operators \newcommand{\E}{\mathbb{E}} \newcommand{\EE}[1]{\mathbb{E}\sBK{ #1 }} \newcommand{\P}{\mathbb{P}} \newcommand{\cov}{\mathbf{Cov}} \newcommand{\var}{\mathbf{Var}} \newcommand{\Normal}{\mathcal{N}} %looks nicer \renewcommand{\phi}{\varphi} \renewcommand{\epsilon}{\varepsilon} %this text \newcommand{\e}{\mathbf{e}}$ # White Noise Process Here is a short tutorial on how to generate white noise, which serves as the source of stochasticity in the context of inverse problems. ## Notation In this discussion we adopt the following notations for inner product. For two functions $a,b \in \mathbb{L}^2(\Omega)$ we set $$ \langle a,b \rangle = \int a(x) \, b(x) \, dx,\qquad \fdotp{ a,b } = \int_\Omega a(x) \, b(x) \, dx, $$ while for two finite dimensional vectors $a,b \in \R^d$ we set $$ (a,b) = \sum_{i=1}^d a_i \, b_i, \qquad \dotp{a,b} = \sum_{i=1}^d a_i \, b_i. $$ ## Preliminaries ### Covariance The covariance between two random variables, whose computation will arise often in this discussion, is defined as $$ \cov (X,Y) = \E[X \, Y^T] - \E[X] \, \E[Y]^T.$$ Assuming $X$ and $Y$ both have mean zero, the expression simplifies to $$ \cov (X,Y) = \E[X \, Y^T].$$ Indeed, the variance of a scalar random variable with mean zero is a special case, $$\cov (X,X) = \var (X) = \E[X^2].$$ ### Finite Element Method (FEM) In the finite element method, a function, $f(x)$ that belongs to a Hilbert space, $\mathcal{H}$ is represented as a weighed sum of $N$ basis functions, $e_1, \ldots ,e_N \in \mathcal{H}$, $$ f(x) = \sum_i^N \alpha_i \, \e_i . $$ Hence, once a set of basis functions have been chosen, the finite element approximation of any function is defined by its coefficient vector, $\{\alpha_i\}_{i=1}^N$. ## White Noise ### Vectors in $\R^d$ Let $u,v \in \R^d$ be two vectors and $Z \sim \Normal(0,I_d)$ be a standard Gaussian vector in $\R^d$. We define the two random variables \begin{align*} X_u = (u,Z) \in \R \qquad \textrm{and} \qquad X_v = (v,Z) \in \R. \end{align*} The mean, variance and covariance of $X_u$ and $X_v$ are as follows, \begin{align*} \EE{X_u} &= \E\Big[ \sum_i u_i \, Z_i \Big] =\sum_i \EE{ u_i \, Z_i } =\sum_i \, u_i \, \EE{ Z_i } = 0, \end{align*} \begin{align*} \var(X_u) &= \E[X_u^2] = \E\Big[\Big(\sum_i u_i \, Z_i\Big)^2 \Big] = \E\Big[\sum_{i,j} u_i \, u_j \, Z_i \, Z_j \Big] = \sum_{i,j} u_i u_j \, \E[Z_i \, Z_j]\\ &= \sum_{i} u_i^2 \, \E[Z_i^2] = \sum_{i} u_i^2 = \| u \| ^2. \end{align*} For the covariance, a similar computation yields \begin{align*} \cov(X_u, X_v) &= (u,v). \end{align*} The random $Z \sim \Normal(0,I_d)$ is often called **white noise** and denoted by $W$. It has the property that, given two test vectors $u$ and $v$, the random variables $X_u = (W,u)$ and $X_v = (W,v)$ satisfy the following conditions. \begin{align*} \E[X_u] = \E[X_v] = 0 \qquad \textrm{and} \qquad \cov(X_u,X_v) = (u,v). \end{align*} We now generalize the notion of white noise to function spaces. ### Functions in $\mathbb{L}^2$ The Hilbert space of square-integrable function on a domain $\Omega \subset \R^d$ is denoted as $\mathbb{L}^2(\Omega)$. The dot product is denoted by $$\fdotp{ f, g } = \int_\Omega f(x) \, g(x) \, dx < \infty. $$ Let $Z$ be a random function and $u, v$ test functions, we define the random variables \begin{align*} X_u = \fdotp{ u,Z } \qquad \textrm{and} \qquad X_v = \fdotp{ v,Z}. \end{align*} Since $Z$ is a random function, $X_u$ and $X_v$ are therefore random. Recall that in FEM, functions are represented as a linear combination of basis functions $\{\e_i\}_{i=1}^N$. Hence we may express $Z,u,v$ as \begin{align*} Z = \sum_i W_i \, \e_i, \quad \textrm{and} \quad u = \sum_i \alpha_i \, \e_i, \quad \textrm{and} \quad v = \sum_i \beta_i \, \e_i, \end{align*} where we choose a random vector $W$ such that $W \sim \Normal(0,\Gamma)$ for a covariance matrix $\Gamma \in \R^{N \times N}$ to be determined below. The goal is now to find some conditions to fulfill such that our random function $Z$ qualifies as white noise. This problem translates into finding a good choice of covariance structure $\Gamma$ such that, given any two test functions $u,v \in \mathbb{L}^2(\Omega)$, the random variables $X_u = \fdotp{ W, u }$ and $X_v = \fdotp{ W, v }$ are centred and satisfy the identity $\cov (X_u, X_v) = \fdotp{ u,v }$. Let us examine closer the definition of the inner product of functions, using the FEM framework. We have that \begin{align*} \fdotp{ u,v } &= \fdotp{ \sum_i \alpha_i \e_i \sum_j \beta_j \e_j } = \sum_{i,j} \alpha_i \beta_j \fdotp{ \e_i, \e_j } = \dotp{ \alpha, M \beta} \end{align*} where the mass matrix $M \in \R^{N,N}$ is defined as $M_{ij} = M_{ij}^T = \fdotp{ \e_i, \e_j }$. The covariance between $X_u$ and $X_v$ reads \begin{align*} \cov(X_u, X_v) &= \E[X_u \, X_v] = \E[ \dotp{ \alpha, M \, w} \, \dotp{ \beta, M \, w} ]\\ &= \E[\alpha^T \, M \, w \, w^T \, M \, \beta] = \alpha^T \, M \, \E[w \, w^T] \, M \, \beta \\ &= \alpha^T \, M \, \Gamma \, M \, \beta = \dotp{ \alpha, M \, \Gamma \, M \beta}. \end{align*} Equating the two expressions of the covariances, i.e. $\dotp{ \alpha, M \, \beta} = \dotp{ \alpha, M \, \Gamma M \beta}$ for any vectors $\alpha, \beta \in \R^N$, shows that the covariance matrix $\Gamma$ must be defined as $$\Gamma = M^{-1}.$$ To summarize, a white noise field in $\mathbb{L}^2(\Omega)$ can be approximated using the finite element method by defining \begin{align*} Z = \sum_{i=1}^N \, W_i \, \e_i \end{align*} with random coefficient $W$ distributed as a centred Gaussian vector with covariance $\Gamma = M^{-1}$. After all said and done, our job is to generate a random vector $W$ from $\Normal(0,M^{-1})$ so that the random function $Z = (W,\e)$ qualifies as white noise. ## Generating Gaussian random variables We can readily sample random numbers from the standard normal $\Normal(0,I)$. For generating a Gaussian random vector with mean $\mu$ and covariance $\Gamma$, one can use the fact that $$ \mu + L \xi \sim \Normal(\mu, \Gamma) $$ if $\xi \sim \Normal(0,1)$ and $L$ is obtained from the Cholesky decomposition of $\Gamma$, $$\Gamma = L \, L^T.$$ We can verify that $\mu + L \xi$ has a mean of $\mu$ and as claimed, its covariance matrix checks out to be $$\E[ L \, \xi \, \xi^T \, L^T] = L\,\E[\xi \, \xi^T]L = L \, L^T = \Gamma.$$ In our case, we would like to generate random vector $W \sim \Normal(0,M^{-1})$, i.e. $\mu = 0$. To get the Cholesky decomposition of $M^{-1}$, we start with decomposing $M = L \, L^T$ and see that $M^{-1} = (L^T)^{-1} \, L^{-1}$. It then follows that $W = (L^T)^{-1} \xi \sim \Normal(0,M^{-1})$ for a standard Gaussian random vector $\xi \sim \Normal(0,I_N)$. To solve for $W$, instead of inverting $L^T$ which can be expensive ($\mathcal{O}(N^3)$) especially when $N$ is large, we solve the linear system $$ L^T \, W = \xi. $$ Note that $W$ is random due to the stochastic nature of $\xi$. ## Conclusion In short, to generate a (random) white noise function, 1. Choose a set of basis functions $\e_1, \ldots, \e_N \in \mathcal{H}$ and compute the mass matrix $M_{ij} = \fdotp{ \e_i, \e_j}$. 2. Perform Cholesky decomposition of the mass matrix, i.e. $M = L \, L^T$. 3. Solve the linear system $L^T \, W = \xi$ for a standard Gaussian random vector $\xi \sim \Normal(0,I_N)$. 4. Define the Gaussian white noise field by \begin{align*} Z = \sum_i W_i \, \e_i. \end{align*} Indeed, it is of paramount importance to exploit the sparsity of the mass matrix $M$ in order to scale this methodology to large mesh sizes $N \gg 1$.