数学干货——最小二乘问题(线性空间求解以及矩阵求解)

最小二乘是一个最简单的二次型凸优化问题,在不考虑约束问题时,方式式可写为:

y=min_{x}\left \| Ax-b \right \|_{2}^{2}

其解为:x=A^{\dagger }b=(A^{\top }A)^{-1}Ab

x的求解方法可以有不同的理解,在这里详细讲述线性代数法和矩阵求导求解法。

一、线性代数法:

假设A=(m×n)大小的一个矩阵,我们将其理解为一个由n个m维的基向量长成的子空间。其解x=(n×1),为n个基向量的组合系数。也就是Ax为A长成的子空间上的一个向量。b=(m×1),是一个在空间上的任意向量。现在我们的目的就是在子空间上找到一个基向量的组合系数构成一个新向量,这个向量是整个A长成的平面中距离b的距离最短的向量。

首先我们知道垂直距离最短,那么一切就好办了。

将(Ax-b)理解为两个向量之间的距离向量,由于垂直距离最短,所以此凸优化问题的最优解即使(Ax-b)垂直于A长成的面。即(Ax-b)与A的每一个列向量垂直(相乘为0),故有:

A^{\top }(Ax-b)=0

A^{\top }Ax=A^{\top }b

x=(A^{\top }A)^{-1}Ab

二、矩阵求导法:

首先此处需要理解基础的矩阵求导(向量求导)相关知识,具体可以参见:

https://en.wikipedia.org/wiki/Matrix_calculus#Scalar-by-vector_identities

以及矩阵的迹的相关知识(在后面整理matrix computing相关的时候会系统讲一下)

现在关于y对x求导可得:

\frac{\partial y}{\partial x}=\frac{\partial tr(Ax-b)^{\top }(Ax-b)}{\partial x}=\frac{\partial tr(x\mathbf{I}x^{\top }A^{\top })}{\partial x}-\frac{\partial tr(x^{\top }A^{\top }b)}{\partial x}-\frac{\partial tr(xb^{\top }A)}{\partial x}=2(A^{\top }Ab-A^{\top }b)

由于我们知道极值处梯度为零,于是根据\frac{\partial y}{\partial x}=0求得x。

你可能感兴趣的:(deep-learning,math)