众所周知,最小二乘法通过最小化误差平方和获得最佳函数。有时候你可能产生疑问,为什么不能通过其他方式获得最优函数,比如说最小化误差的绝对值的和?本文中,我将会从概率的角度解释最小二乘法的依据(参考自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
最小二乘平面拟合:Ax+By+Cz+D=0
最小二乘法三维(k维)直线拟合
上篇文章已经实现了二维直线Ax+By+C=0的拟合算法。如果要拟合三维直线怎么办?首先,方程Ax+By+Cz+D=0是不可以的,因为他是三维空间中的一个平面。如果要表达一条直线,需要两个三维平面的联立,似乎也不是个好办法。这里我们可以采用直线的“点+向量”方程l = A + dD的方式。 Continue reading
最小二乘法直线拟合:Ax+By+C=0
最小二乘法直线拟合:y= kx+b 及其缺点分析
二维直线常用斜截式方程 y=kx+b表达。 Continue reading