之前在线性代数课上简单的学了一下二次型在表示空间曲面的用法,但是并没有怎么理解其在坐标变化原理上的作用。
首先,先来介绍一下二次型的定义:n个未知数的、不含常数项的、各项未知数次数和为2的函数,是一个标量多元函数。
$$Q(x) = x^T A x = \sum_{i=1}^{n} \sum_{j=1}^{n} A_{ij} x_i x_j$$
也就是说,二次型可以表述成一个向量的转置和他本身中间夹一个矩阵。通过分析我们可以发现,中间的矩阵不能是任意矩阵,它只能是对称矩阵才能符合条件,但是在大部分的情况下,例如海森矩阵,其本身从原理上就是一个对称矩阵,所以并无大碍。
从构成上去解读一下这个二次型,我们可以发现,二次型的本质可以看作是一个向量先经过矩阵的变换,然后再和该向量自身进行点积运算,其实就是在求变换后的向量与原来向量的相似度。
二次型在函数方面的应用
尤其是在多元函数领域,我们需要大量的运用到二次型。海森矩阵是记录了多元函数在某点处的全部曲率信息的矩阵,通过带入和方向向量,我们可以构建一个二次型函数 $f(X)=X^T HX$,其每个坐标对应的高度就表示该向量在该点处对应的曲率信息。
我们可以通过图形化的方式去理解这个过程:现在抛开曲面和函数,想象空间中存在一个点, 从这个点发射出来一根毛(向量)。这根毛就表示我们的探索方向。现在我用手去摸一下这根毛,有可能把它拔出来一点,也有可能它自己缩回去一点,方向也有可能被我整歪了,也有可能还在原地。这个过程就是矩阵在对这个向量进行 $AX$变化的过程。现在用之前的向量(转置后)点成变化之后的向量不就能求出前后的余弦相似度了对吧。如果这个二次型为正,就说明这次变化导致向量仍和原向量夹角小于90度,且大小反映出数值的变化大小。如果我们取很多这样的方向向量,我们岂不是能够构建出一个新的函数图像,它近似描述了在这个点往各个方向受到这个矩阵什么变化。注意到我们之前还没有提到这个矩阵到底是什么样的,除了说它是一个对称矩阵。如果我们把描述函数曲率变化的海森矩阵引入,是不是也能够得到一个描述某点周围变化情况的二次型?如果曲率决定函数值本身在这个点处朝着某个方向该下降,那么是不是这个二次型函数反映出的新图像也能得到类似的结论和图像?这样子,我们就通过曲率矩阵(海森矩阵)构建了函数在该处的一个近似。
这点很重要,是高斯牛顿法的基础。
二次型在图像处理方面的应用
在角点检测的过程中,我们需要通过窗口在位移 $(u,v)$下,窗口内梯度变化趋势来判断角点。
在点P周围取窗口,构造结构张量
$$M = \sum_{x \in W} w(x) \begin{pmatrix} I_x^2 & I_x I_y \\ I_x I_y & I_y^2 \end{pmatrix}$$
像素变化函数
$$E(u, v) \approx \begin{bmatrix} u & v \end{bmatrix} M \begin{bmatrix} u \\ v \end{bmatrix}$$
这个就是一个二次型,在这个二次型中,像素变化被反映为窗口梯度协方差受到运动uv影响后得到的像素变化的加和。我们可以并不用计算这个式子,毕竟寻找角点的任务是在光流计算之前的行为,不同的运动对同一个角点造成的影响也应该是相同的,我们可以观察结构张量 $M$的特征来判断这个是不是一个可以追踪的角点。
这里也体现出二次型的作用,矩阵反映客观存在的特征,向量反映变化,二次型反映变化作用后的某种数值状态,其受到传入的矩阵和向量的数学含义的共同影响。
