lr_lru - CSDN
精华内容
参与话题
  • Logistic Regression (LR) 详解

    千次阅读 2018-03-26 15:03:45
    Logistic Regression (LR) 详解 最近忙着准备面试,偶然发现同学Q君在很认真地看LR(Logistics Regression),不由得心生蔑视,这么简单的模型有什么好研究的?结果Q君扔出几个问题给我,一时竟回答不出,殊不知LR...

    Logistic Regression (LR) 详解

    最近忙着准备面试,偶然发现同学Q君在很认真地看LR(Logistics Regression),不由得心生蔑视,这么简单的模型有什么好研究的?结果Q君扔出几个问题给我,一时竟回答不出,殊不知LR也有那么深的学问,本不想深究,直到我看到了这个:

    这里写图片描述

    LR跟最大熵模型还有关系的吗?LR比线性回归好不是理所当然吗?LR还能并行?看完这些问题,一脸懵逼的窝,还想着去腾讯呢,碰到rickjin面试我不是死定了?感觉自己弱爆了,不得已四处搜刮资料,最终整理了这么一份关于LR的资料,有自己的见解和推导,也有别人的成果(我会在最后给出链接),作为机器学习从业者(伪)的自我修养。


    目录


    一、Logistic 分布

    1.1 逻辑斯蒂分布

    F(x)=P(Xx)=11+e(xμ)/γ

    f(x)=1γe(xμ)/γ(1+e(xμ)/γ)2


    二、LR 原理

    2.1 二项逻辑斯蒂回归

    P(y=0|x)=11+ewx

    P(y=1|x)=ewx1+ewx

    2.2 多项逻辑斯蒂回归

    P(y=k|x)=ewkx1+k=1K1ewkx

    P(y=K|x)=11+k=1K1ewkx


    三、LR loss函数求解

    3.1 基于对数似然损失函数

    对数似然损失函数为 L(Y,P(Y|X))=logP(Y|X)
    对于LR来说,单个样本的对数似然损失函数可以写成如下形式:

    L(yi,p(yi|xi))={logexp(wx)1+exp(wx)=log(1+ewx)=log(1+ey^i),yi=1log11+exp(wx)=log(1+ewx)=log(1+ey^i),yi=0

    综合起来,写成同一个式子:
    L(yi,p(yi|xi))=yilog(1+ewx)+(1yi)log(1+ewx)

    于是对整个训练样本集而言,对数似然损失函数是:
    J(w)=1Ni=1N{yilog(1+ewx)+(1yi)log(1+ewx)}

    除此以外,还有下面这种形式,它也是logloss,只不过 y{1,1}。分析一下它的构成,对于(xi,yi=1),若预测f(xi)1,则loss接近于0,对于(xi,yi=1),若f(xi)1,loss也接近于0。
    J(w)=1Ni=1Nlog(1+eyif(xi))

    3.2 基于极大似然估计

    p(y=1|x)=p(x), p(y=0|x)=1p(x),假设样本是独立同分布生成的,它们的似然函数就是各样本后验概率连乘:

    L(w)=P(y|w,x)=i=1Np(xi)yi[1p(xi)]1yi

    为了防止数据下溢,写成对数似然函数形式:
    logL(w)=i=1N[yilogp(xi)+(1yi)log(1p(xi)]

    logL(w)=i=1N[yi(wxi)log(1+ewx)]

    可以看出实际上J(w)=1NlogL(w)J(w)要最小化,而logL(w)要最大化,实际上是等价的。
    在梯度下降系列的算法中,需要用到一阶导数和二阶导数(牛顿法):
    g=(logL(w))w=i=1Nxi(yip(xi))

    h=gw=i=1Nxi2p(xi)(1p(xi))


    四、LR 正则化

    4.1 L1 正则化

    LASSO 回归,相当于为模型添加了这样一个先验知识:w服从零均值拉普拉斯分布。
    首先看看拉普拉斯分布长什么样子:

    f(w|μ,b)=12bexp(|wμ|b)

    下面证明这一点,由于引入了先验知识,所以似然函数这样写:
    L(w)=P(y|w,x)P(w)=i=1Np(xi)yi(1p(xi))1yij=1d12bexp(|wj|b)

    取log再取负,得到目标函数:
    logL(w)=i[yilogp(xi)+(1yi)log(1p(xi))]+12b2j|wj|

    等价于原始的crossentropy后面加上了L1正则,因此L1正则的本质其实是为模型增加了“模型参数服从零均值拉普拉斯分布”这一先验知识。

    4.2 L2 正则化

    Ridge 回归,相当于为模型添加了这样一个先验知识:w服从零均值正态分布。
    首先看看正态分布长什么样子:

    f(w|μ,σ)=12πσexp((wμ)22σ2)

    下面证明这一点,由于引入了先验知识,所以似然函数这样写:
    L(w)=P(y|w,x)P(w)=i=1Np(xi)yi(1p(xi))1yij=1d12πσexp(wj22σ2)=i=1Np(xi)yi(1p(xi))1yi12πσexp(wTw2σ2)

    取log再取负,得到目标函数:
    logL(w)=i[yilogp(xi)+(1yi)log(1p(xi))]+12σ2wTw+const

    等价于原始的crossentropy后面加上了L2正则,因此L2正则的本质其实是为模型增加了“模型参数服从零均值正态分布”这一先验知识。

    4.3 L1正则化和L2正则化的区别

    1. 如上面所讲,两者引入的关于模型参数的先验知识不一样。
    2. L1偏向于使模型参数变得稀疏(但实际上并不那么容易),L2偏向于使模型每一个参数都很小,但是更加稠密,从而防止过拟合。

    为什么L1偏向于稀疏,L2偏向于稠密呢?看下面两张图,每一个圆表示loss的等高线,即在该圆上loss都是相同的,可以看到L1更容易在坐标轴上达到,而L2则容易在象限里达到。

    这里写图片描述

    这里写图片描述


    五、LR 并行化

    本部分暂时没有时间做。
    就我的理解,LR的梯度下降求解,最耗时的就是计算梯度。
    看梯度公式,核心的运算只有加法、乘法和内积。由 i=1N 看出样本之间的计算相互独立,这里可以做样本并行;由 wx=(w1,w2,,wn)(x1,x2,,xn)=iwixi 看出,特征上也可以并行。不同的结点负责不同的样本和不同的特征,同时计算梯度后合并即可。
    以上是基本思路,具体实现还要看代码。

    g=i=1Nxi(yip(xi))=i=1Nxi(yi11+ewxi)


    六、LR 在线学习

        企业中的CTR预估常会用到LR,因为LR简单、可解释性强,又好做并行。然而传统的批量算法无法有效地处理超大规模的数据集和在线数据流,数据每天都在更新,有必要每次更新模型都要重新遍历一次百亿级别的数据集吗?google从理论研究到实际工程化实现的FTRL(Follow-the-regularized-Leader),在处理带L1正则的LR的凸优化问题上表现出色。这里以批量算法、TG,FOBOS、RDA、FTRL的顺序介绍。

    6.1 批量算法

       批量算法,每次迭代(epoch)对整个训练数据集计算梯度,优点在于准确性、精度和收敛程度,缺点在于无法有效处理大数据集(计算全局梯度时间消耗巨大),不能应用于数据流做在线学习。梯度下降法计算一阶导数,牛顿法还需要计算Hesse矩阵的逆,逆牛顿法用不含二阶导数的矩阵拟合Hesse矩阵的逆,其中L-BFGS利用迭代的方式拟合,同时节省了存储空间,所以用得比较多。牛顿法也是批量算法,也有无法处理大数据的硬伤。还有一个问题在于,L1正则常用于模型稀疏化,但L1正则项不处处可导,要想牛顿法能用L1正则还需要做理论修改(比如OWL-QN算法)。
       更多关于牛顿法和拟牛顿法的知识可以参考这里

    梯度下降法

    xt+1=xtηf(xt)

    牛顿法 / 拟牛顿法

    xt+1=xtHt1f(xt)

    6.2 在线学习

    随机梯度下降

    (补全中)


    七、LR与线性回归的关系

    7.1 线性回归

    线性回归(Linear Regression)模型

    f(x)=wx+b

    7.2 LR 与线性回归的区别

    1. 线性回归要求输入x服从正态分布,LR没有要求
      线性回归的目标函数是MSE,用最小二乘法训练参数,原因正是它假设了误差服从正态分布,而误差与输入直接线性相关,因此即要求输入服从正态分布。下面证明这一点。
      假设误差服从零均值正态分布(省略掉常数b):
      p(ϵi)=12πσexp(ϵi22σ2)p(yi|xi,w)=12πσexp((yiwxi)22σ2)

      似然函数:
      L(w)=iN12πσexp((yiwxi)22σ2)

      取对数:
      logL(w)=Nlog12πσ12σ2i(yiwxi)2

      相当于最小二乘:
      mini(yiwxi)2
    2. 线性回归要求输入x和输出y是连续型数值,LR要求y是分类型变量
    3. 线性回归要求x和y呈线性关系,LR没有要求
      线性回归和LR都是线性模型,线性回归本质是回归不是判别,它要做的就是拟合样本构成的直线,LR是判别模型,要求x线性可分,但x和y并非是线性关系。
    4. 线性回归直接分析x和y的关系,LR分析y取某个值的概率和x的关系

    7.3 为什么LR比线性回归效果好?

    我不太明白这个问题想问什么。如果是“为什么LR做分类比线性回归好?”,那是理所当然的,因为线性回归根本就不是做分类的。


    八、LR与最大熵模型的关系

    先说结论,LR与最大熵模型是等价的,下面证明这一点。

    假设我们想要训练的概率模型是P(y|x),我们不知道它长什么样,但是可以给他设定一些符合我们认知的限定条件。

    1. 概率非负性
      p(y=k|x)0
    2. 概率求和为1
      k=1Kp(y=k|x)=1
    3. 对于所有样本(xi,yi),要求 p(y=yi|xi) 尽量大
      设指示函数 A(u,v),当u=vA(u,v)=1,其他情况下 A(u,v)=0。那么上面这个条件可以转化为:希望 p(y=k|xi) 只在 yi=k 时最大,其他情况最小(最好是0),那么它的作用和 A(k,yi) 是一致的。现在用期望来描述这个性质作用于整个数据集的效果:
      Ep(k)(x)=EA(k)(x)

    i=1Np(y=k|xi)xi=i=1NA(k,yi)xik=1,2,,K

    最大熵模型的目标是最大化条件熵:

    H(p)=k=1Ki=1Np(yi=k|xi)logp(yi=k|xi)

    结合上面假设的3个条件,可以将最大熵模型写成约束问题:
    minp(y|x)H(p)=k=1Ki=1Np(yi=k|xi)logp(yi=k|xi)s.t.Ep(k)(x)=EA(k)(x)k=1,2,,Kk=1Kp(k|xi)=1i=1,2,,N

    为每个等式约束引入拉格朗日橙子(o´ω`o) λk0βi0,写成拉格朗日函数:
    L(p,λ,β)=k=1Ki=1Np(k|xi)logp(k|xi)+k=1Kλki=1N(p(k|xi)xiA(k,yi)xi)+i=1Nβi(k=1Kp(k|xi)1)

    将原问题转化为对偶问题,即:
    minpmaxλ,βL(p,λ,β)maxλ,βminpL(p,λ,β)

    先求minpL(p,λ,β),对p(yi=k|xi)求导:
    L(p,λ,β)p(yi=k|xi)=logp(yi=k|xi)+1+λkxi+βi

    让导数为0,得到:
    p(yi=k|xi)=eλkxiβi1

    代入等式约束条件得到(这里假设所有的β相同):
    k=1Keλkxiβi1=1

    eβ=1k=1Keλkxi1

    重新代入p(yi=k|xi)得到:
    p(yi=k|xi)=eλkxj=1Keλjx

    这正是softmax,当K=2时退化为sigmoid。
    后面的对偶函数求解最优λkβi的过程就不写了,实际上那就已经在训练LR了,但是写到这里应该已经能明白,如果希望目标概率分布 p(y|x) 满足最大熵性,则它一定是sigmoid或者softmax的形式。

    因此,结论是:LR与最大熵模型是等价的


    九、LR与SVM的关系

    相同

    1. 都是有监督分类方法,判别模型(直接估计y=f(x)p(y|x)
    2. 都是线性分类方法(指不用核函数的情况)

    不同

    1. loss不同。LR是交叉熵,SVM是Hinge loss,最大化函数间隔
    2. LR决策考虑所有样本点,SVM决策仅仅取决于支持向量
    3. LR受数据分布影响,尤其是样本不均衡时影响大,要先做平衡,SVM不直接依赖于分布
    4. LR可以产生概率,SVM不能
    5. LR不依赖样本之间的距离,SVM是基于距离的
    6. LR是经验风险最小化,需要另外加正则,SVM自带结构风险最小化不需要加正则项
    7. LR一般不用核函数,因为每两个点之间都要做内积,而SVM只需要计算样本和支持向量的内积,计算量更小
    8. 小数据集SVM比LR好,大数据SVM计算复杂,LR简单且能够在线并行训练,因此更多用LR

    十、为什么LR要用sigmoid函数?

    10.1 从广义线性模型和指数分布族的角度

    指数分布族

    p(y|ξ)=b(y)exp(ξTT(y)a(ξ))

    这里ξ是参数,T(y)常常就是y本身,exp(a(ξ))起归一化作用。

    指数分布族中的伯努利分布

    B(ϕ)$$p(y;ϕ)=ϕy(1ϕ)1y

    对应指数分布族,其中T(y)=yξ=logϕ1ϕϕ=11+eξ

    广义线性模型(GLM)三个假设

    1. 后验概率p(y|x,w)服从指数分布族
    2. 目的是预测在输入x的条件下输出y的条件期望E[y|x]
    3. 指数分布族参数ξ与输入x呈现线性相关:ξ=wx

    下面推导LR的sigmoid
    考虑二分类问题,假设p(y|x,w)是服从伯努利分布B(ϕ)的广义线性模型,计算期望:

    p(y=1|x)=E[y|x,w]=ϕ=11+eξ

    根据GLM假设三,ξ=wx,于是得到:
    p(y=1|x)=11+ewx

    10.2 从最大熵模型的角度

    第七节中已经分析过了,sigmoid或softmax函数具有最大熵性。


    十一、为什么LR适合离散特征?

    问题也可以是“为什么LR的输入要先离散化/Onehot?”。以下答案参考自其它博客。

    1. 稀疏向量内积乘法运算速度快,计算结果方便存储,容易扩展。

    2. 离散化后的特征对异常数据有很强的鲁棒性:比如一个特征是年龄>30是1,否则0。如果特征没有离散化,一个异常数据“年龄300岁”会给模型造成很大的干扰。

    3. 逻辑回归属于广义线性模型,表达能力受限;单变量离散化为N个后,每个变量有单独的权重,相当于为模型引入了非线性,能够提升模型表达能力,加大拟合。

    4. 离散化后可以进行特征交叉,由M+N个变量变为M*N个变量,进一步引入非线性,提升表达能力。

    5. 特征离散化后,模型会更稳定,比如如果对用户年龄离散化,20-30作为一个区间,不会因为一个用户年龄长了一岁就变成一个完全不同的人。当然处于区间相邻处的样本会刚好相反,所以怎么划分区间是门学问。


    十二、为什么LR不适合用MSE?

    假设目标函数是MSE而不是交叉熵,即:

    L=(yy^)22

    Lw=(y^y)σ(wx)x

    这里sigmoid的导数项:
    σ(wx)=wx(1wx)

    根据w的初始化,导数值可能很小(想象一下sigmoid函数在输入较大时的梯度)而导致收敛变慢,而训练途中也可能因为该值过小而提早终止训练(参考梯度消失)。
    另一方面,logloss的梯度如下,当模型输出概率偏离于真实概率时,梯度较大,加快训练速度,当拟合值接近于真实概率时训练速度变缓慢,没有MSE的问题。
    g=i=1Nxi(yip(xi))


    总结


    参考

    《统计学习方法》- 李航
    《机器学习》- 周志华
    【博客】逻辑回归LR的特征为什么要先离散化 - yysunlife
    【博客】Logistic Regression 的前世今生
    【博客】机器学习算法与Python实践之(七)逻辑回归(Logistic Regression)
    【博客】各大公司广泛使用的在线学习算法FTRL详解 - EE_NovRain
    【博客】为什么LR不能用平方误差
    【知乎】LR正则化与数据先验的关系
    【论文】LR和熵最大的等价性

    展开全文
  • LR(逻辑回归)

    2019-04-16 10:46:06
    LR(逻辑回归)开篇寄语1、Sigmoid函数2、Logistic Regression3、概率分布4、参数求解5、正则化欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何...

    开篇寄语

    一直想总结下机器学习相关的知识,先从最简单的LR开始吧,温故而知新。自己的写作功底比较弱,所以也借鉴了几位前辈的博客

    1、Sigmoid 与 Logistic Regression

    sigmoid函数是lr的核心,它将普通的线性回归值域映射到了[0,1]
    g(z)=11+ez g(z)=\dfrac{1}{1+e^{-z}}
    回顾一下线性回归,hθ(x)=θTXh_{\theta}(x)=\theta^{T} X,令z=hθ(x)z=h_{\theta}(x),代入公式可得到
    g(x)=11+eθTX g(x)=\dfrac{1}{1+e^{-\theta^{T}X}}
    实际上,逻辑回归是非线性回归的一种,只不过能用于二分类问题,所以很特殊,也很经典。
    (PS:不知道还有没有其它可用于分类的非线性回归,或者是sigmoid简单的变形)

    2、概率分布

    为什么LR能用于二分类问题呢,我们来算一下,首先是Y为0或者1的条件概率分布
    P(Y=1X)=11+ewx=ewx1+ewxP(Y=0X)=1P(Y=1X)=11+ewx \begin{aligned} P(Y=1|X) = \frac{1}{1+e^{-wx}} = \frac{e^{wx}}{1+e^{wx}} \\ P(Y=0|X) = 1- P(Y=1|X) = \frac{1}{1+e^{wx}} \end{aligned}
    发生事件的几率定义为发生与不发生的比值
    odds=p1p odds = \frac{p}{1-p}
    取其对数概率
    logit(p)=logp1p logit(p)=log\frac{p}{1−p}
    那么Y=1的几率就是
    logP(Y=1x)1P(Y=1x)=logP(Y=1x)P(Y=0x)=w.x log \frac{P(Y=1|x)}{1−P(Y=1|x)}=log \frac{P(Y=1|x)}{P(Y=0|x)}=w.x
    即,当 w.x的值越大,P(Y=1|x) 越接近1;w.x越小(f负无穷大),P(Y=1|x) 越接近0,
    其实这个从sigmoid图像也可以看得出来,不过另外一位先辈是这样写的,先暂且这么理解

    3、参数求解

    1,参数估计-最大似然函数

    我们用最大化似然函数来估计参数,首先构建最大似然函数
    L(θ)=P(yi=1xi)yi(1P(yi=1xi))1yi L(\theta) = \prod P(y_i=1|x_i)^{y_i}(1-P(y_i=1|x_i))^{1-y_i}
    对最大似然函数取对数并化简

    LL(θ)=log(L(θ))=log(P(yi=1xi)yi(1P(yi=1xi))1yi)LL(\theta) = log(L(\theta)) = log(\prod P(y_i=1|x_i)^{y_i}(1-P(y_i=1|x_i))^{1-y_i})

    =i=1nyilogP(yi=1xi)+(1yi)log(1P(yi=1xi))= \sum_{i=1}^{n}y_i log P(y_i=1|x_i) + (1-y_i)log(1-P(y_i=1|x_i))

    =i=1nyilogP(yi=1xi)1P(yi=1xi)+i=1nlog(1P(yi=1xi))= \sum_{i=1}^{n}y_i log \frac{P(y_i=1|x_i)}{1-P(y_i=1|x_i)} + \sum_{i=1}^{n}log(1-P(y_i=1|x_i))

    =i=1nyi(w.x)+i=1nlogP(yi=0xi)= \sum_{i=1}^{n}y_i(w.x) + \sum_{i=1}^{n}logP(y_i=0|x_i)

    =i=1nyi(w.x)i=1nlog(1+ew.x)= \sum_{i=1}^{n}y_i(w.x) - \sum_{i=1}^{n}log(1+e^{w.x})

    =i=1nyi(θT.xi)i=1nlog(1+eθT.xi)= \sum_{i=1}^{n}y_i(\theta^T.x_i) - \sum_{i=1}^{n}log(1+e^{\theta^T.x_i})

    我们无法从这个公式求一个全局最优解(目前),但是我们可以从各个维度去逼近最优解,所以对上面的公式求偏导即可得:
    LL(θ)θ=i=1n(yiP(yi=1xi))xi \frac{\partial LL(\theta)}{\partial \theta} = \sum_{i=1}^{n}(y_i - P(y_i=1|x_i))x_i
    注意,这个是最大似然函数的导数,求的是最大值,而损失函数是求最小值,因此需要在前面加上负号,而且需要平均,即
    LLoss(θ)θ=1mi=1m(yiP(yi=1xi))xi \frac{\partial LLoss(\theta)}{\partial \theta} = -\frac{1}{m}\sum_{i=1}^{m}(yi-P(y_i=1|x_i))x_i
    上面的公式推导是基于最大似然函数,下面是基于熵概念的损失函数推导

    2,损失函数-熵/相对熵/交叉熵

    熵用来表示所有信息量的期望:
    H(X)=i=1np(xi)log(p(xi)) H(X)=-\sum_{i=1}^n p(x_i)log(p(x_i))
    对于二分类分体,熵可以化简为:
    H(X)=i=1np(xi)log(p(xi))=p(x)log(p(x))(1p(x))log(1p(x)) \begin{aligned} H(X) &=-\sum_{i=1}^n p(x_i)log(p(x_i)) \\ &=-p(x)log(p(x))-(1-p(x))log(1-p(x)) \end{aligned}
    相对熵又称KL散度,如果我们对于同一个随机变量 x 有两个单独的概率分布 P(x) 和 Q(x),我们可以使用 KL 散度(Kullback-Leibler (KL) divergence)来衡量这两个分布的差异,KL散度的计算公式:
    (3.1)DKL(pq)=i=1np(xi)log(p(xi)q(xi)) D_{KL}(p||q)=\sum_{i=1}^np(x_i)log(\frac{p(x_i)}{q(x_i)}) \tag{3.1}
    交叉熵是相对熵的一部分,我们队相对熵变形
    DKL(pq)=i=1np(xi)log(p(xi))i=1np(xi)log(q(xi))=H(p(x))+[i=1np(xi)log(q(xi))] \begin{aligned} D_{KL}(p||q) &= \sum_{i=1}^np(x_i)log(p(x_i))-\sum_{i=1}^np(x_i)log(q(x_i)) \\ &= -H(p(x))+[-\sum_{i=1}^np(x_i)log(q(x_i))] \\ \end{aligned}
    等式的前一部分恰巧就是p的熵,等式的后一部分,就是交叉熵:
    H(p,q)=i=1np(xi)log(q(xi)) H(p,q)=-\sum_{i=1}^np(x_i)log(q(x_i))

    逻辑回归的损失函数定义即交叉熵:
    J(θ)=1m[im(yilog(hθ(xi)+(1yi)log(1hθ(xi)))] J(\theta) = -\frac{1}{m}[\sum_i^m(y^ilog(h_\theta(x^i)+(1-y^i)log(1-h_\theta(x^i)))]
    这个形式跟最大似然估计取log之后是一样的

    4、梯度下降

    上面我们对公式求偏导,可以在各个维度上逼近最优解。优化方法有很多种,梯度下降是最早和最经典的一种,其求解公式为:
    θnew=θoldαLLoss(θ)θ=θoldα1mi=1m(P(yi=1xi)yi)xi \begin{aligned} \theta^{new} &= \theta^{old}-\alpha\frac{\partial LLoss(\theta)}{\partial \theta} \\ &= \theta^{old} - \alpha\frac{1}{m}\sum_{i=1}^{m}(P(y_i=1|x_i) - y_i )x_i \end{aligned}
    上面是总体的θ\theta求解,单个θ\theta求解如下:
    θj=θjα1mi=1m(P(yi=1xi)yi)xij \theta^{j} = \theta^{j} - \alpha \frac{1}{m} \sum_{i=1}^{m}(P(y_i=1|x_i) - y_i ) x_i^j
    其中mm为batch_size,xx下标为batch里的第ii个样本,上标为第jj个feature

    其它的优化方法,再开一个帖子专门讲

    5、正则化

    正常LR的参数估计到上一步梯度下降就已经结束了,但是,可避免的会出现过拟合的现象,所以引入了正则化的方法,一定程度上可以缓解这种情况
    目前有两个正则化范数可以用,即L1范数与L2范数
    L1范数:也称叫“稀疏规则算子”(Lasso Regularization),泛化能力比较差,:引入是为了实现特征自动选择,它会将没有信息的特征对应的权重置为0
    L2范数:在回归里面中又称岭回归”(Ridge Regression),与 L1 范数不同的是L2是使得特征对应的权重尽量的小,接近于0,越小的参数说明模型越简单,越简单的模型则越不容易产生过拟合现象,为什么呢?
    首先,我们看损失函数
    J(θ)=1m[im(yilog(hθ(xi)+(1yi)log(1hθ(xi)))]+λ2mjnθj2 J(\theta) = -\frac{1}{m}[\sum_i^m(y^ilog(h_\theta(x^i)+(1-y^i)log(1-h_\theta(x^i)))] + \frac{\lambda}{2m}\sum_j^n\theta_j^2
    想让损失函数趋近于0,则需让函数的两部分无限重合,如下图
    在这里插入图片描述
    L1倾向于使某些特征对应的参数变为0,因此能产生稀疏解。而 L2 使 w 接近0

    引用
    [1]: https://blog.csdn.net/buracag_mc/article/details/77620686
    [2]: https://www.jianshu.com/p/a47c46153326
    [3]: https://blog.csdn.net/yumei7865/article/details/75194772
    [4]: https://blog.csdn.net/tsyccnh/article/details/79163834

    展开全文
  • LR算法(基础及核心概念)

    万次阅读 2017-08-28 11:36:27
    前言首先需要清楚的是,LR(Logistic Regression)虽然是回归模型,但却是经典的分类方法。 为什么分类不用SVM呢?我们对比一下SVM,在二分类问题中,如果你问SVM,它只会回答你该样本是正类还是负类;而你如果问LR...

    前言

    首先需要清楚的是,LR(Logistic Regression)虽然是回归模型,但却是经典的分类方法。 为什么分类不用SVM呢?我们对比一下SVM,在二分类问题中,如果你问SVM,它只会回答你该样本是正类还是负类;而你如果问LR,它则会回答你该样本是正类的概率是多少~

    • 文章主要内容如下:

      • LR的理论基础

      • LR的参数求解过程

      • 正则化

    LR的理论基础

    Logistic

    如指数分布、高斯分布等分布一样,logistic是一种变量的分布,它也有自己的概率分布函数和概率密度函数,其中概率分布函数如下:

    F(x)=P(Xx)=11+e(xμ)/γ

    对概率分布函数求导,记得到对应的概率密度函数:

    f(x)=e(xμ)/γγ(1+e(xμ)/γ)2

    其中,μ就是分布对应的均值,γ是对应的形状参数。

    对应示例图如下:
    这里写图片描述

    Regression

    为什么我们说LR(Logistic Regression)是个分类模型而不是回归模型呢?对于二项LR模型,设因变量的Y为0或者1,得到如下条件概率分布:

    P(Y=1|X)=ewx1+ewx

    P(Y=0|X)=11+ewx

    • 一个事件的几率(odds),定义为该事件发生与不发生的概率比值,若事件发生概率为p:

      odds=p1p

    • 那么该事件的对数几率(log odds或者logit)如下:

      logit(p)=logp1p

    那么,对于上述二项LR逻,Y=1的对数几率就是:

    logP(Y=1|x)1P(Y=1|x)=logP(Y=1|x)P(Y=0|x)=w.x

    也就是说,输出Y=1的对数几率是由输入x的线性函数表示的模型,这就是逻辑回归模型。易知,当 w.x的值越大,P(Y=1|x) 越接近1;w.x越小(f负无穷大),P(Y=1|x) 越接近0。

    其实,LR就是一个线性分类的模型。与线性回归不同的是:LR将线性方程输出的很大范围的数压缩到了[0,1]区间上;更优雅地说:LR就是一个被logistic方程归一化后的线性回归

    LR的参数求解过程

    极大似然估计

    接下来便是参数估计过程,统计学中,常根据最大化似然函数的值来估计总体参数。其实,在机器学习领域,我们听到的更多是损失函数的概念,常通过构建损失函数,然后最小化损失函数求得目标参数。在这里,最大化对数似然函数与最小化对数似然损失函数其实是等价的,下面我们可以看到。


    • 假设我们有n个独立的训练样本{(x1,y1),(x2,y2),(x3,y3),...,(xn,yn)},y=0,1,那么每一个观察到的样本(xi,yi)出现的概率是:

      P(yi,xi)=P(yi=1|xi)yi(1P(yi=1|xi))1yi

      显然,yi为1时,保留前半部分;yi为0时,保留后半部分。

    • 构建似然函数:

      L(θ)=P(yi=1|xi)yi(1P(yi=1|xi))1yi

    • OK,对似然函数取对数,得到对数似然函数:
      LL(θ)=log(L(θ))=log(P(yi=1|xi)yi(1P(yi=1|xi))1yi)

      =ni=1yilogP(yi=1|xi)+(1yi)log(1P(yi=1|xi))

      =ni=1yilogP(yi=1|xi)1P(yi=1|xi)+ni=1log(1P(yi=1|xi))

      =ni=1yi(w.x)+ni=1logP(yi=0|xi)

      =ni=1yi(w.x)ni=1log(1+ew.x)

      =ni=1yi(θT.xi)ni=1log(1+eθT.xi)

    • LL(θ)θ 求偏导,得:
      LL(θ)θ=ni=1yixini=1eθT.xi1+eθT.xi.xi

      =ni=1(yiP(yi=1|xi))xi