美文网首页数据分析
复习 - 求解线性回归的思路 - 最大似然估计、最小二乘法

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

作者: 白尔摩斯 | 来源:发表于2019-01-07 11:33 被阅读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回归
    案例

    相关文章

      网友评论

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

        本文链接:https://www.haomeiwen.com/subject/gvzyrqtx.html