数据分析

复习 - 求解线性回归的思路 - 最大似然估计、最小二乘法

2019-01-07  本文已影响147人  白尔摩斯

求解线性回归的思路:\color{red}{最大似然估计、最小二乘法}


一、最大似然估计求解

1、用最大似然估计求解线性回归基于的假设
\color{red}{误差服从的假设:}所有样本的误差ε(i) (1 ≤ i ≤ n) 是独立同分布的,服从均值为 0,方差为某个定值的 б2 的高斯分布。原因:中心极限定理。

由于每个样本的预测值和实际值都存在一定的误差,我们获得这个公式

\color{red}{求解最大似然估计步骤:}
1、写出似然函数L(θ)
2、对似然函数取对数,并整理 ln L(θ)
3、求导数
4、解方程-导数为0的点(极值) ∂ ln L(θ) / ∂ θ = 0

02 回归算法 - 线性回归求解 θ(最大似然估计求解)


2、似然函数

\color{red}{某种样本取得一个参数的可能性,称之为似然函数。}


3、最大似然函数求解θ过程

y(i)= θTX (i) + ε(i);实际值=预测值+误差;
即 ε(i) = y(i) - θTX (i)
由于误差是服从高斯分布的,高斯分布的概率密度函数:

正态分布的概率密度函数

由于 ε(i) 均值为0,将 ε(i) 代入公式得②:

② 第i个观测值对应的误差的概率密度函数

将公式 ε(i) = y(i) - θTX (i) ① 代入概率密度函数②得③:

③ - 左侧的含义:在给定了x和某种参数θ的情况下y的概率密度函数。

∵ 联合概率密度函数等于似然函数,L(θ|x) = f(x|θ);
∴ 得出公式④

④联合概率密度函数等于似然函数
现在似然函数已经求完了,接下来我们要求L(θ) 是最大值情况下的 θ 的值。

首先考虑公式④的求导,显然不太好求。要取\color{red}{对数似然:}

对数似然

该函数是根据极大似然估计推导出来的一个目标函数,我们要使得目标函数值最大,那么就要让式子后面这部分的值最小

\color{red}{即:}所以现在问题转化为求如下式子最小值θ的值:

目标函数

然后再用\color{red}{梯度下降法}去求解这个θ的值。
10 回归算法 - 梯度下降在线性回归中的应用
12 回归算法 - 手写梯度下降代码


梯度下降法

\color{red}{梯度下降的伪代码:} 把步骤写出来即可。

梯度下降的步骤

\color{red}{学习率(步长)的选择:}学习率都是人为设定的,或者可以理解为不断得尝试。根据迭代速度和结果进行不断得调整。学习率没有一个明确的设定范围,一般可以选择1左右的数字进行尝试,如果迭代的速度还可以,且结果能够获得即可。

\color{red}{梯度下降的梯度值要会算。以及其对应的更新式子要会写。}

更新每一个θ的步骤

第一步链式求导,不再赘述。
解释一下最后一步是如何转化的:
∵\sum_{i=1}^n θ_i x_i = ( θ_1 x_1+ θ_2 x_2+ ... + θ_n x_n)

∴ ∂/∂θ_j(\sum_{i=1}^n θ_i x_i )
= ∂( θ_1 x_1+ θ_2 x_2+ ... + θ_j x_j + ... + θ_n x_n) / ∂θj
= xj


然后再思考以下的问题:
步骤1:初始化θ(随机初始化,可以初始化为0)
1、θ2、... 、θn) = (0,0,...,0)

在第1步进行计算的时候,首先应该更新的是θ1的值:
θ1 = θ1 - ( hθ(x)-y )x1
然后要更新θ2的值:
θ2 = θ2 - ( hθ(x)-y )x2

问题来了:
当θ还没有经过更新的时候,所有(θ1、θ2、... 、θn) = (0,0,...,0)
但当数据更新完θ1后,在要更新θ2时,在
θ_1 x_1+ θ_2 x_2+ ... + θ_n x_n 中θ1的值是更新完之前的值0,还是θ1更新完后的值?(完成了最后一次迭代更新后的值)

答案是: 更新完之前的值0。
也就是说,每次在计算更新θ值的时候,我们不会去关心其他θ最终更新后的值是多少。
只有当所有的θ都更新完成后, θ_1 x_1+ θ_2 x_2+ ... + θ_n x_n 中θ1中的θ值才会发生变化。


关于J(θ)的函数要找到极小值点,对应的就是找到最小值点时θ的取值(哪一组θ的向量可以让损失函数最小)。

\color{red}{SGD随机梯度下降。} 选择多个初始值点,来对比梯度下降法收敛时,两个极值点是否有区别。
简单举例:当θ=3时,J(θ)=2.5;当θ=5时,J(θ)=3.3; 最后比较后选择2.5是全局最优解。

注意:梯度下降只能求出近似解,而不是精确的解析解。但是这种求法速度快,能无限接近于真实值。


===\color{red}{BGD、SGD、MBGD}===

11 回归算法 - BGD、SGD、MBGD梯度下降

前面说的梯度下降算法是针对某一个样本进行的。实际上,我们拥有m个样本,针对每一个样本我们都应该有一个对应的梯度下降。

\color{red}{批量梯度下降算法 BGD}

所以引入可批量梯度下降算法(BGD),这是一个\color{red}{求解相对精确} ,但是计算时\color{red}{迭代速度相对比较慢}的算法。

批量梯度下降算法 BGD

如上公式所示,批量梯度算法BGD,是对所有样本的梯度进行了求和的操作。


\color{red}{随机梯度下降算法 SGD}

随机梯度下降算法:不再考虑样本梯度的求和了,而是来一个新的样本,我就更新一次θ。

随机梯度下降算法 SGD

\color{red}{BGD、SGD比较}

如果有m条数据,SGD算法更新了m次。
但是在批量梯度下降算法 BGD中,对于θ我只更新了1次 (全部样本都计算完后求和)

所以在随机梯度下降算法中,迭代更新的速度会更快。
实际生产当中,我们选择随机梯度下降的场景会更多。
毕竟,如果我有上百万条数据,如果一次性全遍历完后再得到θ的值,这样太慢了。

BGD、SGD比较

\color{red}{小批量梯度下降法 MBGD}

小批量梯度下降法 MBGD

\color{red}{BGD、SGD、MBGD的区别}

BGD、SGD、MBGD的区别

\color{red}{梯度下降法总结}


二、最小二乘法求解 (最小平方法)

如果用最大似然估计的思路无法理解上述的目标函数,也可理解为:每个观测值和实际值差的平方和的最小值

每个观测值和实际值差的平方和的最小值

\color{red}{θ的求解过程}

\color{red}{最小二乘法的参数解析式:}

最小二乘法的参数解析式

最小二乘法的使用要求矩阵是\color{red}{可逆的};为了防止不可逆或者过拟合的问题存在,可以增加额外数据影响,导致最终的矩阵是可逆的:

其实本质上就是加入了\color{red}{ L2正则Ridge回归模型}

最小二乘法的参数解析式 + L2正则,Ridge回归
案例
上一篇下一篇

猜你喜欢

热点阅读