最小二乘法理论、推导、算法

最小二乘法理论、推导、算法


author@jason_ql
http://blog.csdn.net/lql0716


1、引言

  • 求最小二乘的实例:

假定 x , y有如下数值:
y | 1.00 | 0.90 | 0.90 | 0.81 | 0.60 | 0.56 | 0.35
x | 3.60 | 3.70 | 3.80 | 3.90 | 4.00 | 4.10 | 4.20

解:将这些数值画图可以看出接近一条直线,故用 y=ax+b 表示,故将上面的数值代入表达式有:

3.6a+b1.00=03.7a+b0.90=03.8a+b0.90=03.9a+b0.81=04.0a+b0.60=04.1a+b0.56=04.2a+b0.35=0

由于直线只有两个未知数 a , b,理论上只需要两个方程就能求得,但是实际上是不可能的,因为所有点并没有真正的在同一条直线上,即不可能所有的数值都满足

ax+by0
,故只需找到一对儿 a b,使得误差平方和
(axi+byi)2=(ax0+by0)2+(ax1+by1)2+......+(axn+byn)2
最小即可。

误差的平方即二乘方,故成为最小二乘法。

2、最小二乘法理论(使得平方和最小)

2.1 数学理论推导

  • 线性方程组

a11x1+a12x2+...+a1sxsb1=0,a21x1+a22x2+...+a2sxsb2=0,......an1x1+an2x2+...+ansxsbn=0, (1)

该方程组可能无解,即任何一组 x1,x2,...,xs (这里为系数)都可能使得

i=1n(ai1x1+ai2x2+...+aisxsbi)2(2)

不等于零。所以找到一组 x1,x2,...,xs 使得(2)式最小,称这样的解为最小二乘解,这种问题就叫最小二乘方问题。

对于(1)式,我们可以用矩阵来表示,
自变量矩阵 A :

A=a11a21.an1a12a22.an2..........a1sa2s.ans(3)

函数值 B :

B=b1b2...bn(4)

系数 X :

X=x1x2...xs(5)

函数值 Y :

Y=j=1sa1jxjj=1sa2jxj...j=1sanjxj=AX(4)

故(2)式等价于:

|YB|2=|AXB|2=i=1n(ai1x1+ai2x2+...+aisxsbi)2

也就是说,最小二乘法就是找 x1,x2,...,xs 使得 Y B 的距离最短。

对于(4)式 Y ,可以写为如下形式:

Y=x1a11a21...an1+x2a12a22...an2+...+xsa1sa2s...ans=x1α1+x2α2+...+xsαs(5)

其中 αi 为对应的列向量,由 αi 生成的子空间为 L(α1,α2,...,αs) ,那么 Y 就是 L(α1,α2,...,αs) 中的向量,故最小二乘法问题可叙述成:

X 使得(2)式最小,就是在 L(α1,α2,...,αs) 中找一向量 Y 使得B到它的距离比到子空间 L(α1,α2,...,αs) 中其它向量的距离都短。

Y=AX=x1α1+x2α2+...+xsαs ,则

C=BY=BAX

必须垂直于子空间 L(α1,α2,...,αs) ,故有

(C,α1)=(C,α2)=...=(C,αs)=0

由向量内积的定义可知:

α1C=0,α2C=0,...,αsC=0(6)

向量的内积:

α=(a1,a2,...,an) ,

β=(b1,b2,...,bn) ,

α β 的内积为: (α,β)=a1b1+a2b2+...+anbn

由(6)式可得:

AC=0

即:

AC=A(BY)=A(BAX)=0

从而有:

ABAAX=0

AB=AAX

X=(AA)1AB

其中 |AA|0

2.2 常见形式

2.2.1 理论

根据2.1节,可以得出以下形式( s+1n ):

a1x11+a2x12+...+asx1s+by1=0,a1x21+a2x22+...+asx2s+by2=0,......a1xn1+a2xn2+...+asxns+byn=0, (2.2.1)

这里是常见的方程表示形式 aj 为系数, b 为常数项,xij为自变量, yi 为函数值。一般我们解方程都是根据 aj b 求得yi=a1xi1+a2xi2+...+asxis+b,但在解决实际问题时,一般我们都是知道 xij yi ,需要反过来求解 aj b

根据(2.2.1)式,设:

X=x11x21.xn1x12x22.xn2..........x1sx2s.xns1111

a=a1a2...asb

y=y1y2...yn

那么:

Xa=y

XXa=Xy

a=(XX)1Xy

2.2.2 算法


  • 算法步骤

1、输入 X y

2、求 a=(XX)1Xy

参考

《高等代数》北大三版

干货分享

最小二乘法是一种常用的优化方法,它被广泛应用于数据拟合和统计回归问题中,目的是找到一个函数,使得这个函数的预测值与实际观测值之间的误差平方和最小。梯度下降法则是求解最小化函数的一种迭代优化算法,尤其适用于非凸优化问题。 **最小二乘法**: 1. 假设我们有一个线性模型 \( y = \theta_0 + \theta_1x_1 + \theta_2x_2 + ... + \theta_nx_n \),其中 \( y \) 是目标变量,\( x_i \) 是特征向量,\( \theta \) 是模型参数。最小二乘法的目标是找到一组参数 \( \theta \),使得所有数据点到直线 \( y = f(x) \) 的垂直距离之和最小。 2. 实质上,这转化为求解一个代价函数 \( J(\theta) = \sum_{i=1}^{m}(y_i - f(x_i))^2 \),其中 \( m \) 是数据点的数量,\( J \) 随 \( \theta \) 的变化而变化。 **梯度下降法推导过程**: 1. **初始化**:随机选择或设置一个初始参数 \( \theta_0 \)。 2. **计算梯度**:对于每个参数 \( \theta_j \),计算代价函数关于该参数的偏导数(梯度分量),即 \( \frac{\partial J}{\partial \theta_j} = -2\sum_{i=1}^{m}(y_i - f(x_i))\frac{\partial f}{\partial \theta_j} \)。 3. **更新步骤**:沿着梯度的反方向(负梯度)移动一个学习率 \( \alpha \),新的参数值为 \( \theta_j := \theta_j - \alpha \cdot \frac{\partial J}{\partial \theta_j} \)。这一步会降低代价函数值,但不一定每次都能达到全局最小值,可能陷入局部最优。 4. **重复**:如果未达到预设的停止条件(如达到一定的迭代次数、学习率减小到阈值等),重复步骤2和3。 **相关问题--:** 1. 最小二乘法在哪些领域应用广泛? 2. 梯度下降法的其他变种有哪些?它们在什么情况下更适用? 3. 如何调整学习率以提高梯度下降法的性能?
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI人工智能科学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值