我想知道为什么吗?仅仅因为DLT涉及使用SVD和$ A $求解线性系统而可能是奇异的?
#1 楼
归一化基本上是减少矩阵$ A $的条件数的预处理(条件数越大,矩阵离奇异矩阵越近)。归一化变换也由a表示在单应性估计的情况下,矩阵恰好可用作良好的前置条件矩阵。这样做的原因更为详尽,并在H&Z的书(4.4.4,第107页:为什么要进行规范化?)中作了简要说明,或者在“防御八点算法”一文中作了更详细的说明。简单地说,矩阵$ A $由图像坐标的乘积组成,可以具有不同的比例。如果比例尺相差$ 10 $,则乘积相差$ 10 ^ 2 $。
源坐标和目标坐标数据通常都很嘈杂。如果不进行归一化,则来自源的数据的方差可能比来自目标的方差大两个数量级(反之亦然)。仅在参数方差相同(或预先知道,但更实际的是对输入进行归一化)时才可找到估计值。例如,将一个非常大的数除以一个非常小的数很容易导致数值溢出。)
迭代求解器需要更多次迭代才能与条件差的矩阵作斗争。
因此规范化不是必不可少的仅用于数值稳定性,还用于在存在噪声和更快求解的情况下进行更准确的估计(对于迭代求解器)。
#2 楼
Wikipedia文章指出:“使直接线性变换问题不同的原因是,定义方程[X = AY]的左侧[X]和右侧[AY]可以不同由未知的乘数决定,该乘数取决于k“
在上面的X,A,Y中是矩阵。
因此,为了避免估计因子,您只需将其标准化即可您拥有的所有数据。
评论
$ \ begingroup $
这听起来不对...如果我们可以归一化以使因子不重要,则可以使用常规方法$ A = XY ^ T(YY ^ T)^ {-1} $解决问题。
$ \ endgroup $
– Michael Litvin
2014年7月24日17:00
#3 楼
这是数值精度的问题。通过标准化数据集,您可以使数据居中并为其提供单位方差。那么,这些条件最好由solbver处理。评论
$ \ begingroup $
通过更好地解决问题,您的意思是说,当我通过SVD解决这种线性系统时,我应该始终对数据集进行归一化吗?
$ \ endgroup $
–鳄梨
2013年9月29日在1:39
$ \ begingroup $
请注意,规范化甚至会影响SVD计算(moe稳定)。然后,您应该获得较小的奇异值之间的比率。还要注意,数据集通常比较嘈杂,最好对所有点使用相同的方差以获得更准确的估计。
$ \ endgroup $
– Libor
2013年9月29日在18:40
评论
$ \ begingroup $
另外,我想知道为什么预处理矩阵不像以前那么奇异?通过标准化,预处理矩阵的条件数会减少吗?
$ \ endgroup $
–鳄梨
2013年9月29日23:55
$ \ begingroup $
因为数据中的错误不会对结果造成太大的影响。想象一下通过钟面上的两个点来估计指针在钟上的位置。如果一个点非常靠近中心而另一个点位于边界上,则中心附近的点的位置波动会严重影响结果,而边界上的点会轻微影响手的位置。归一化基本上将两个点都放在边界上,这使解更稳定,并使它离钟面中心(奇点)更远。
$ \ endgroup $
– Libor
2013年9月30日18:00