美文网首页逻辑回归
机器学习算法深度总结(5)-逻辑回归

机器学习算法深度总结(5)-逻辑回归

作者: 婉妃 | 来源:发表于2018-10-08 13:03 被阅读27次

    1. 模型定义

    逻辑回归属于基于概率分类的学习法. 基于概率的模式识别是指对模式x所对应的类别y的后验概率p(y|x)禁行学习.
    其所属类别为后验概率最大时的类别:
    \hat y = \underset{y=1,\cdots,c}{argmax}\ p(y|x)
    预测类别的后验概率p(y=\hat y|x), 可理解为模式x所属类别y的可信度.
    逻辑回归(logistic), 使用线性对数函数对分类后验概率p(y|x)进行模型化:
    q(y|x;\theta) = \frac{\exp(\sum_{j=1}^b\theta_j^{(y)}\phi_j(x))}{\sum_{y'=1}^c \exp(\sum_{j=1}^b\theta_j^{(y')}\phi_j(x))}
    上式, 分母是满足概率总和为1的约束条件的正则化项, 参数向量\theta维数为b \times c:

    考虑二分类问题y\in \{+1,-1\}:
    q(y=+1|x;\theta) + q(y=-1|x;\theta) = 1
    使用上述关系式, logistic模型的参数个数从2b降为b个, 模型简化为:
    q(y|x;\theta) =\frac{1}{1 + \exp(-y\sum_{j=1}^b\theta_j\phi_j(x))}

    补充知识 -对数似然:

    似然函数: \prod_{i=1}^{n}q(y_i|x_i;\theta)
    对数似然: \sum_{i=1}^n\log\ q(y_i|x_i;\theta)
    似然是n次相乘的结果, 一个非常小的值, 经常发生计算丢位现象, 因此, 一般用对数来解决, 即将乘法变换为加法防止丢位现象发生.

    二分类逻辑回归模型改写为对数自然最大化:
    \underset{\theta}{\min}\sum_{i=1}^n\log\{1+\exp(-y_i\sum_{j=1}^b\theta_j\phi_j(x_i))\}

    已知关于参数的线性模型:
    f_\theta(x) = \sum_{j=1}^b\theta_j\phi_j(x)
    的间隔m=f_\theta(x)y和逻辑回归的损失\log(1+\exp(-m))是等价的.

    2. 从最大似然估计 (MLE)理解

    1. 决策函数

    一个机器学习的模型,实际上是把决策函数限定在某一组条件下,这组限定条件就决定了模型的假设空间。当然,我们还希望这组限定条件简单而合理。而逻辑回归模型所做的假设是:
    P(y=1|x;θ)=g(θ^Tx)=\frac{1}{1+\exp(−θ^Tx)}
    这里的 g(h) 是sigmoid 函数,相应的决策函数为:
    y^∗=1, if \ P(y=1|x)>0.5
    选择0.5作为阈值是一个一般的做法,实际应用时特定的情况可以选择不同阈值,如果对正例的判别准确性要求高,可以选择阈值大一些,对正例的召回要求高,则可以选择阈值小一些。

    选择0.5作为阈值是一个一般的做法,实际应用时特定的情况可以选择不同阈值,如果对正例的判别准确性要求高,可以选择阈值大一些,对正例的召回要求高,则可以选择阈值小一些。

    2. 参数求解

    对数似然最大化
    在逻辑回归模型中,令q(y=+1|x;\theta) =h_\theta(x) = \frac{1}{1+e^{-\theta x}}, 则q(y=-1|x;\theta) = 1-h_\theta(x)
    故似然度可表示为:
    \prod_{i=1}^m[h_\theta(x^{(i)}]^{y^{(i)}}[1-h_\theta(x^{(i)}]^{1-y^{(i)}}
    对数似然:
    J(θ)=−\frac{1}{m}\sum_{i=1}^m [y^{(i)} \log \; h_\theta(x^{(i)}) + (1-y^{(i)}) \log (1- h_\theta(x^{(i)})) ]

    逻辑回归模型中,我们最大化似然函数和最小化交叉熵损失函数实际上是等价的。对于该优化问题,存在多种求解方法,这里以梯度下降的为例说明。梯度下降(Gradient Descent)又叫作最速梯度下降,是一种迭代求解的方法,通过在每一步选取使目标函数变化最快的一个方向调整参数的值来逼近最优值。

    对于该优化问题,存在多种求解方法,这里以梯度下降求解为例说明。

    1. \theta以初始值
    2. 随机选择一个训练样本(x_i,y_i)
    3. 对于选定的训练样本, 已梯度上升方向对参数\theta进行更新:
      \theta_j \leftarrow \theta_j - \epsilon \nabla _{\theta}J_j(\theta)
      其中:
      \nabla _{\theta}J_j(\theta) = \frac{1}{N}(h_\theta(x^{(i)})-y^{(i)})x^{(i)} \\
      故:
      \theta_j= \theta_j - \epsilon[ \frac{1}{m}\sum_{j=1}^m(h_\theta(x^{(i)})-y^{(i)})x_j^{(i)}]

    L2约束的逻辑回归:
    J(θ)=−\frac{1}{m}\sum_{i=1}^m [y^{(i)} \log \; h_\theta(x^{(i)}) + (1-y^{(i)}) \log (1- h_\theta(x^{(i)})) ] + \frac{\lambda}{2m}\sum_{j=1}^n\theta_j^2

    参数更新(梯度下降):
    \theta_j= \theta_j - \epsilon[ \frac{1}{m}\sum_{j=1}^m(h_\theta(x^{(i)})-y^{(i)})x_j^{(i)}] - \epsilon \frac{\lambda}{m}\theta_j
    此处的h_\theta(x^{(i)}) = \frac{1}{1+\exp(-\theta^Tx^{(i)})}, 在这里λ称作正则化参数,它通过平衡拟合训练的目标和保持参数值较小的目标。从而来保持假设的形式相对简单,来避免过度的拟合。

    3. 从最小化Logstic损失来理解

    回顾逻辑回归模型, 并考虑二分类y \in \{+1,-1\}:
    q(y|x;\theta) = \frac{\exp(\sum_{j=1}^b\theta_j^{(y)}\phi_j(x))}{ \exp(\sum_{j=1}^b\theta_j^{(y'=+1)}\phi_j(x)) + \exp(\sum_{j=1}^b\theta_j^{(y'=-1)}\phi_j(x))}
    逻辑斯蒂回归二分类模型的基本假设是输出Y=1的对数几率是输入x的线性函数,换句话说
    \log\frac{q(y=+1|x;\theta)}{q(y=-1|x;\theta)} = \theta^Tx \ \ (1)
    对于二分类问题, 有:
    q(y=+1|x;\theta) + q(y=-1|x;\theta) = 1 \ \ (2)
    q(y=+1|x;\theta) = p_{+1}, q(y=-1|x;\theta) = p_{-1}, 结合(1)(2)式:
    p_{+1} = p_{-1} \cdot \exp(\theta^Tx) = (1-p_{+1})exp(\theta^Tx)
    故:
    p_{+1} = \frac{\exp(\theta^Tx)}{1+\exp(\theta^Tx)} = \frac{1}{1+ \exp(-\theta^Tx)}\ \ (3) \\ p_{-1} = \frac{p_{+1}}{\exp(\theta^Tx)} = \frac{1}{1+\exp(\theta^Tx)} \ \ (4)
    这里得到了q(y=+1|x;\theta)的决策函数\frac{1}{1+\exp(-z)}, 综合(3)(4)得:
    q(y|x;\theta) = \frac{1}{1+\exp(-y\theta^Tx)}
    在 training data 上进行 maximum log-likelihood 参数估计:
    \underset{\theta}{\max}\log \prod_{i=1}^m P(y_i|x_i) = \underset{\theta}{\max}\sum_{i=1}^m\log(\frac{1}{1+\exp({-y_i\theta^Tx_i})})= \underset{\theta}{\max}\sum_{i=1}^m-\log(1+\exp({-y_i\theta^Tx_i}))
    等价于:
    \underset{\theta}{\min}\sum_{i=1}^m\log(1+\exp({-y_i\theta^Tx_i}))
    L(\theta) = \sum_{i=1}^m\log(1+\exp({-y_i\theta^Tx_i})), 此时目标函数是 strongly convex 的。接下来我们考虑用 gradient descent 来对目标函数进行优化。首先其 Gradient 是:
    \nabla_{\theta}L(\theta) = \sum_{i=1}^m-\frac{\exp(-y_i)}{1+\exp(-y_i\theta^Tx_i)}y_ix_i

    L2正则化:
    L'(\theta) = L(\theta) + \frac{\lambda}{2}\theta^T\theta \\ \nabla_{\theta}L'(\theta) = \sum_{i=1}^m-\frac{\exp(-y_i)}{1+\exp(-y_i\theta^Tx_i)}y_ix_i + \lambda \theta

    相关文章

      网友评论

        本文标题:机器学习算法深度总结(5)-逻辑回归

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