無跡變換

無跡變換（unscented transform、UT）是有關非線性轉換及機率分佈的數學工具。在特定機率分佈只有少數統計特徵的情形下，無跡變換可以估計其經過非線性轉換後的結果，是由美國科學研究人員Jeffrey Uhlmann所創。

無跡變換最常見的用途是在卡爾曼濾波（Kalman filter）的非線性版本下，估計其平均值及共變異數在非線性投影下的值。其創建者Jeffrey Uhlmann解釋其名稱中的「無跡」（unscented）是隨便取的，目的是不要讓此方法稱為「Uhlmann濾波器」。

## 背景

許多濾波和控制技術會用平均向量以及誤差共變異數矩陣，來表示系統狀態的估計。例如某物體的2維位置估計會表示為平均位置向量$[x, y]$，其不確定性會用2x2的共變異數矩陣表示，其中有$x$和$y$的變異數，以及兩者之間的互協方差。若變異數為零，表示沒有不確定性的誤差，物體的位置可以完全用位置的平均向量表示。

平均值和共變異數只表示了機率分佈的前二個動差（moment），沒有其他更高次的資訊。以移動物體的例子來說，不確定性的機率分佈可以表示物體位置在某個時間的不確定性。用平均值向量和共變異數矩陣來表示不確定性，在數學上很方便，因為可將任何的線性變換$T$應用在平均值向量$m$和共變異數矩陣$M$上，得到$Tm$和$TMT^\mathrm{T}$。但針對其他更高次的動差，線性變換後就沒有類似的線性特性，因此一般來說無法針對平均值向量$m$和共變異數矩陣$M$，得到非線性變換後的平均值向量和共變異數矩陣通式，因為這不只和平均值向量及共變異數矩陣，也和更高次所有的動差有關。

以定義來說，共變異數矩陣是有關平均的預期方差，但實務上會設法讓共變異數矩陣是實際方差的上界。平均和共變異數的估計值$(m,M)$會保守處理，使得共變異數矩陣$M$恆大於或等於和平均$m$有關的實際方差。在數學上，共變異數矩陣$M$減去預期方差（多半無法求得）會是半正定或是正定矩陣。以保守方式處理共變異數矩陣的原因是大部份的濾波演演算法或是控制波演演算法，在低估共變異數矩陣的情形下可能會發散失效。這是因為一個錯誤的小共變異數，意味著不確定性比較小，濾波器會給予過高的權重，而不是依平均數的準確性給與權重。

回到上述的問題，若共變異數為0，可以直接求得該物體的位置在非線性變換$f(x,y)$後的值：就直接對平均值向量使用非線性變換即可。若共變異數矩陣不為0，變換後的平均值一般來說不一定會等於$f(x,y)$，也無法只靠原來的平均向量和共變異數矩陣得到轉換後機率分佈的平均值。非線性變換下的平均向量和共變異數矩陣只能靠近似方式求得。最早的近似方式是將非線性變換線性化，再用雅可比矩陣求得平均向量和共變異數矩陣。這是擴展卡爾曼濾波器（EKF）。已知此方式在許多情形下的結果不佳，但數十年來沒有其他可行方式可以取代此方法。

## 發展無跡變換的原因

Jeffrey Uhlmann在1994年年注意到EKF讓系統狀態的非線性函數以及部份的分佈資訊（以平均及共變異數的形式表示）要用近似方式表示，而不是使用不準確性已知的機率分佈。他建議一個必較好的作法，是直接將非絈線性函數加在近似的機率分佈上。此作法的原因在他的博文論文中有提到，其中也首次定義了「unscented變換」：

考慮以下直覺的看法：「利用固定個數的參數，比較容易近似已知的分佈，比近似任意的非線性函數/變換要簡單。」依照上述的直覺看法，目標是要找到可以捕捉平圴以及共變異數的一組參數，而同時可以透過任意的非線性方程變換這組參數。這可以用產生一組有相同一次動差及二次動差（也許還包括更高次動差）的離散分佈，而離散分佈下的每一個點都可以直接變換。可以將離散分佈經過變換，再計算其平均以及共變異數，以這個當作原分佈在非線性變換下的平均以及共變異數估計值。更準確地說，將已知的非線性變換加在幾個點組成的離散分佈上，以此計算，來當成未知分佈的統計量，這就是「unscented變換」

換句話說，可以用一組資料完整記錄平均以及共變異數的資訊，這組資料稱為sigma points，這組貟料當成離散機率分佈來處理，但其平均以及共變異數和原分佈的值相同。可以用非線性函數直接處理這些數據，將其進行非線性變換。轉換後資料的平均和共變異數就代表轉換後分佈的估計值。此作法主要的好處是充分利用了非線性變換，而不是像EKF用線性化的版本代替非線性變換。去除了線性化的需求，也有可以獨立提昇估計水準的優點。UT還有一個好處，是可以用在不可微分、無法線性化的函數上。另一個優點是UT比較容易實作，不需推導線性化的雅克比矩陣。

## Sigma points

若要計算unscented transform，需要先選一組sigma points。由於Uhlmann開創性的工作，在文獻中已有提出許多不同的sigma points。在Menegaz等人的論文中有對這些sigma points的徹底研究。一般來說，若要定義$n$維下有特定平均以及共變異數的離散分佈，其充份條件及必要條件是要用$n+1$個sigma points。

Uhlmann最早提出的canonical sigma point是一組對稱的資料。考慮在二維下，以原點為質心的正三角形的三個頂點：

$$<pre> s_1 = \frac{1}{\sqrt{2}}\left[0, 2\right]^\mathrm{T}, \quad s_2 = -\frac{1}{\sqrt{2}}\left[\sqrt{3}, 1\right]^\mathrm{T}, \quad s_3 = -\frac{1}{\sqrt{2}}\left[-\sqrt{3}, 1\right]^\mathrm{T} </pre>$$

可以驗證這三個點的平均 $s=\left[0, 0\right]^\mathrm{T},\quad$，且共變異數矩陣為$S=I$（單位矩陣）。給定任意二維的平均值以及共變異數$(x, X)$，可以將上述的點乘以$X$的矩陣平方根，再加上$x$，就可以得到想要的點。可以用類似方式產生任意維度$n$的canonical sigma points，也就是平均為0向量，變異數矩陣為單位矩陣的點。

Uhlmann證明可以很方便的從$\pm\sqrt{nX}$（其中$X$是給定的共變異數矩陣）的行以及零向量產生對稱的$2n+1$個sigma points，不需計算矩陣倒數。此方式在計算上也很方便，因為這三個點是對稱分佈，其三次動差（偏度）已知，或是可以假設為對稱。他也發現權重（包括負的權重）可以影響這組資料的統計特性。Julier也發展了針對可以捕捉任意分佈下其三次動差（偏度），以及對稱分佈下四次動差（峰度）sigma points的方法，並且對這些方法進行檢驗。

## 例子

無跡變換是應用在將已知的函數應用在只知部份資訊的分佈中，但最常見的情形是只知道分佈的平均值以及共變異數。常見的例子是座標變換，例如從直角座標變換為極座標。

假設以下是直角座標下的二維的平均以及共變異數估計值$(m, M)$：

$$m = [12.3, 7.6]^\mathrm{T}, \quad M = \begin{bmatrix}1.44 & 0 \\0 & 2.89\end{bmatrix}$$

以下是變換到極座標的變換$f(x, y) \rightarrow [r, \theta]$：

$$r = \sqrt{x^2 + y^2}, \quad \theta = \arctan\left(\frac{y}{x}\right)$$

將前面提到的canonical sigma points乘以$M^\frac{1}{2} = \begin{bmatrix}1.2 & 0 \\0 & 1.7\end{bmatrix}$，再加上平均$m$，可得：

$$\begin{align} <pre> m_1 &= [0, 2.40] + [12.3, 7.6] = [12.3, 10.0] \\ m_2 &= [-1.47, -1.20] + [12.3, 7.6] = [10.8, 6.40] \\ m_3 &= [1.47, -1.20] + [12.3, 7.6] = [13.8, 6.40] </pre> \end{align}$$

上述每一個點進行座標變換：

$$\begin{align} <pre> {m^+}_1 &= f(12.3, 10.0) = [15.85, 0.68] \\ {m^+}_2 &= f(10.8, 6.40) = [12.58, 0.53] \\ {m^+}_3 &= f(13.8, 6.40) = [15.18, 0.44] </pre> \end{align}$$

轉換後的平均值$m_{UT} = \frac{1}{3}\Sigma^3_{i=1}{m^+}_i$，是極座標下平均值的UT估計：

$$m_{UT} = [14.539, 0.551]$$

共變異數的UT估計是：

$$M_{UT} = \frac{1}{3}\Sigma^3_{i=1}\left({m^+}_i - m_{UT}\right)^2$$

和裡的每一個平方項都是向量外積。可以得到：

$$M_{UT} = \begin{bmatrix}2.00 & 0.0443 \\0.0443 & 0.0104\end{bmatrix}$$

可以和線性化的平均值和共變異數比較：

$$\begin{align} <pre> m_\text{linear} &= f(12.3, 7.6) = [14.46,0.554]^\mathrm{T} \\ M_\text{linear} &= \nabla_f M \nabla_f^\mathrm{T} = \begin{bmatrix}1.927 & 0.047 \\0.047 & 0.011\end{bmatrix} </pre> \end{align}$$

UT和線性化估計值的絕對差相對較小，但在濾波應用中，小誤差的累計效果仍可能造成估計值不可回復的發散。若低估共變異數時，濾波器會過度相信平均的準確度，因此誤差的效果會被放大。在上述例子中，線性化的共變異數估計值較小，因此此例中，線性化比較可能低估平均的實際誤差。

## 應用

無跡變換可用來將擴展非線性的卡爾曼濾波器，稱為無跡卡爾曼濾波器（Unscented Kalman Filter，簡稱UKF）。此濾波器在許多非線性濾波及控制領域已取代了擴展卡爾曼濾波器，這些領域包括水下、陸上及空中導航和太空船。無跡變換也已經是Riemann-Stieltjes最佳控制的計算框架。此計算框架稱為是無跡最佳控制。

### 無跡卡爾曼濾波器

Uhlmann和Simon Julier發表過數篇將無跡變換應用在卡爾曼濾波器（無跡卡爾曼濾波器）上的論文，指出此方法相較於擴展卡爾曼濾波器，在許多領域都有顯著的性能提昇。