众所周知,最小二乘法通过最小化误差平方和获得最佳函数。有时候你可能产生疑问,为什么不能通过其他方式获得最优函数,比如说最小化误差的绝对值的和?本文中,我将会从概率的角度解释最小二乘法的依据(参考自andrew ng 《机器学习课程》 第三讲)。最小二乘问题可以分为线性最小二乘和非线性最小二乘两类,本文的目标是介绍两种经典的最小二乘问题解法:高斯牛顿法与莱文贝格-马夸特方法。实际上,后者是对前者以及梯度下降法的综合。 Continue reading
Category Archives: 数学算法
梯度下降法(gradient descent)与牛顿法(newton’s method)求解最小值
梯度下降法与牛顿法是求解最小值/优化问题的两种经典算法。本文的目标是介绍两种算法的推导思路与流程,并且从初学者的角度就一些容易混淆的话题如 梯度下降法(gradient descent)与最速下降法(steepest descent)的联系与区别、牛顿求根迭代方法(Newton–Raphson method) 与牛顿法求解最小值算法的联系(来自 Andrew Ng 机器学习课程第四讲)进行说明。本文的内容将对高斯牛顿法(Gauss–Newton algorithm) ,Levenberg-Marquardt算法(LM算法)等非线性最小二乘问题解法起到引出作用。
根据三点估算导数/Bessel Tangent方法
在曲线拟合问题中,通常需要根据已知曲线上的离散点,估算出曲线在端点处的导数(严格来说是导矢),常用的一种导数估计方法称为“Bessel Tangent”方法。 Continue reading
最小二乘圆拟合: Pratt 方法
kasa方法圆拟合作为最常见的圆拟合方法,虽然计算方法简单,效率快,但是拟合结果存在较大偏差(Heavy bias)。通过将\(D=\sqrt{(x-a)^2+(y-b)^2}\)与半径R的差值\(D-R\)转换为\(D^2-R^2\),将非线性问题转换为线性问题。但是因为\(D^2-R^2 = d(d+2R) (令d=D-R)\),当偏离值d较大时,kasa方法导致R明显变小。Pratt通过将kasa方法的目标除以\((2R)^2\)的方式,取得更准确的结果。 Continue reading
最小二乘法圆拟合:kasa’s method
在圆拟合方法中,最常见的是一 种代数圆拟合方法,在我查阅的资料中,这种方法被称为“kasa’s method”。已知采样点集\( \{(x_1,y_1),(x_2,y_2),…,(x_n,y_n)\}\) 欲求圆$$(x-a)^2 + (y-b)^2 = r^2$$使得采样点到圆的距离的平方和最近。 Continue reading
最小二乘平面拟合:Ax+By+Cz+D=0
三维平面的表达方式有很多种,通常采用的形式为$$Ax+By+Cz+D=0$$其中\(\begin{bmatrix}A\\B\\C \end{bmatrix}\)为平面法向量。 Continue reading
最小二乘法三维(k维)直线拟合
上篇文章已经实现了二维直线\(Ax+By+C=0\)的拟合算法。如果要拟合三维直线怎么办?首先,方程\(Ax+By+Cz+D=0\)是不可以的,因为他是三维空间中的一个平面。如果要表达一条直线,需要两个三维平面的联立,似乎也不是个好办法。这里我们可以采用直线的“点+向量”方程\(l = A + dD\)的方式。 Continue reading
最小二乘法直线拟合:Ax+By+C=0
因为\( y =kx+b\) 在斜率无穷大或接近无穷大时的数值计算问题,所以在直线方程的选择上选用更一般的形式:$$Ax+By+C=0$$ Continue reading
最小二乘法直线拟合:y= kx+b 及其缺点分析
二维直线常用斜截式方程 \(y=kx+b\)表达。 Continue reading