總體最小二乘法(Total Least Squares)擬合直線

Huntto發表於2024-03-18

前言

最小二乘法是最小化每個點到直線的垂直誤差,由於誤差採用的是垂直誤差,導致越接近垂直線(平行於\(y\)軸),擬合效果越差,無法擬合垂直線。

ols

透過最小化每個點到直線的距離誤差可以解決最小二乘法無法擬合垂直線的問題,也就是總體最小二乘法(Total Least Squares)。
tls

總體最小二乘法

將直線使用如下方程表示:

\[ax+by+c=0 \tag{1} \]

\((x_1, y_1)\)到直線的距離可以表示為:

\[\pmb{e} = \frac{|ax_1+bx_1+c|}{\sqrt{a^2+b^2}} \tag{2} \]

假設\(a^2+b^2=1\),那麼點\((x_1, y_1)\)到直線的距離可以表示為:

\[\pmb{e} = |ax_1+by_1+c| \quad , \quad a^2+b^2=1 \tag{3} \]

如果擬合直線的引數為\(a,b,c\),點到擬合直線距離稱為該點的擬合誤差,給定\(n\)個點\((x_1,y_1),(x_2,y_2),\cdots,(x_n,y_n)\),那麼直線的擬合方差為:

\[\begin{Vmatrix}\pmb{\sigma}\end{Vmatrix}^2=\frac{1}{n}\sum\limits_{i=1}^{i=n}{(ax_i+by_i+c)^2} \quad , \quad a^2+b^2=1 \tag{4} \label{4} \]

方差最小時的\(a,b,c\)為直線的擬合引數。這裡把方差記為\(\pmb{E}\),即\(\pmb{E}=\begin{Vmatrix}\pmb{\sigma}\end{Vmatrix}^2\)。由於極值處的偏導為0,先對\(\pmb{E}\)\(c\)的偏導:

\[\frac{\partial \pmb{E}}{\partial c}=\frac{2}{n}\sum\limits_{i=1}^{i=n}{\big(ax_i+by_i+c\big)}=0 \tag{5} \]

得到:

\[c=-\frac{a}{n}\sum\limits_{i=1}^{i=n}x_i-\frac{b}{n}\sum\limits_{i=1}^{i=n}y_i=-a\overline{x}-b\overline{y} \tag{6} \]

代入方差表示式\(\eqref{4}\)得:

\[\begin{align*} \pmb{E} &=\frac{1}{n}\sum\limits_{i=1}^{i=n}{(ax_i+by_i-a\overline{x}-b\overline{y})^2} \tag{7} \\ &= \frac{1}{n}\sum\limits_{i=1}^{i=n}\Big({a(x_i-\overline{x})+b(y_i-\overline{y})}\Big)^2 \\ &= \begin{Vmatrix} \begin{bmatrix} x_1-\overline{x} & y_1-\overline{y} \\ \vdots & \vdots \\ x_n-\overline{x} & y_n-\overline{y} \end{bmatrix} \begin{bmatrix} a \\ b \end{bmatrix} \end{Vmatrix}^2 \\ &=\begin{Vmatrix}\pmb{Bz}\end{Vmatrix}^2 \end{align*} \]

其中:

\[\pmb{B}= \begin{bmatrix} x_1-\overline{x} & y_1-\overline{y} \\ \vdots & \vdots \\ x_n-\overline{x} & y_n-\overline{y} \end{bmatrix} \tag{8} \]

\[\pmb{z}=\begin{bmatrix}a\\b\end{bmatrix} \tag{9} \]

由於\(a^2+b^2=1\),即\(\pmb{z}^T\pmb{z}=1\)。可使用Lagrange乘法求解,目標函式為:

\[J(\pmb{z})=\begin{Vmatrix}\pmb{Bz}\end{Vmatrix}^2+\lambda\big(1-\pmb{z}^T\pmb{z}\big) \tag{10} \]

式中\(\lambda\)為Lagrange乘數,由\(\frac{\partial J(\pmb{z})}{\partial \pmb{z}}=0\),得到:

\[\pmb{B}^T\pmb{B}\pmb{z}=\lambda \pmb{z} \tag{11} \]

可見\(\lambda\)\(\pmb{z}\)分別為矩陣\(\pmb{B}^T\pmb{B}\)的特徵值和特徵向量。

\[\pmb{B}^T\pmb{B} = \begin{bmatrix} \sum\limits_{i=1}^{i=n}\big(x_1-\overline{x}\big)^2 & \sum\limits_{i=1}^{i=n}\big(x_1-\overline{x}\big)\big(y_1-\overline{y}\big) \\ \sum\limits_{i=1}^{i=n}\big(x_1-\overline{x}\big)\big(y_1-\overline{y}\big) & \sum\limits_{i=1}^{i=n}\big(y_1-\overline{y}\big)^2 \end{bmatrix} \tag{12} \]

可見矩陣\(\pmb{B}^T\pmb{B}\)為2階矩陣,因此存在2個特徵值和特徵向量。\(\pmb{E}=\begin{Vmatrix}\pmb{Bz}\end{Vmatrix}^2=\pmb{z}\pmb{B}^T\pmb{B}\pmb{z}=\pmb{z}^T\lambda\pmb{z}=\lambda\)的最小值為矩陣\(\pmb{B}^T\pmb{B}\)最小的特徵值,而直線擬合引數\(a,b\)為最小特徵值對應的特徵向量。

參考文件

  1. 計算機視覺入門-最小二乘法、隨機取樣法、魯棒估計、霍夫變換
  2. 矩陣分析與應用(第2版)張賢達
  3. 直線擬合——最小二乘法、hough變換

相關文章