精细推导机器学习:逻辑斯蒂回归模型原理

逻辑斯蒂回归(分类)

sigmoid函数与二项逻辑回归模型

  1. \(sigmoid\)函数为:

    \[sigmoid(x)=\pi(x)=\frac{1}{1+e^{-x}}\\ \]

    其中\(x \in \mathbb{R}\)\(sigmoid(x)\in (0,1)\).

    又,其导数

    \[\pi'(x)=\pi(x)(1-\pi(x))\\ \]

  2. 二项逻辑斯蒂回归模型是如下的条件概率分布:

    \[P(Y=1|x)=\frac{exp(w \cdot x+b)}{1+exp(w \cdot x+b)}\\ P(Y=0|x)=\frac{1}{1+exp(w \cdot x+b)}\\ \]

    其中\(x \in \mathbf{R}^{n}\)\(Y \in\{0,1\}\)为输出,\(w \in \mathbf{R}^{n}\)\(b \in \mathbf{R}\)为参数,\(w\)为权值向量,\(b\)称为偏置,\(w \cdot x\)\(w\)\(x\)和内积。

  3. 增广权值向量和增广特征向量

    \(w=\left(w^{(1)}\right.\left.w^{(2)}, \cdots, w^{(n)}, b\right)^{\mathrm{T}}, \quad x=\left(x^{(1)}, x^{(2)}, \cdots, x^{(n)}, 1\right)^{\mathrm{T}}\)分别为增广权值向量和增广特征向量,仍用\(w\)\(x\)标记,则逻辑斯蒂回归模型可以简写为:

    \[P(Y=1|x)=\frac{exp(w \cdot x)}{1+exp(w \cdot x)}\\ P(Y=0|x)=\frac{1}{1+exp(w \cdot x)}\\ \]

  4. 几率与对数几率

    如果设某事件发生的概率是\(p\),则此事件发生的概率与其不发生的概率\(1-p\)的比值

    \[\frac{p}{1-p}\\ \]

    为事件的几率.

    此事件的对数几率

    \[logit(p)=log \frac{p}{1-p}\\ \]

    在逻辑斯蒂回归中,\(p=P(Y=1|x)=\frac{exp(w \cdot x)}{1+exp(w \cdot x)}\),可知

    \[\begin{align}logit(p)&=\log\frac{p}{1-p}\\ &=\log \frac{P(Y=1 | x)}{1-P(Y=1 | x)}\\ &=\log \frac{exp(w\cdot x)}{1}\\ &=w \cdot x\end{align}\\ \]

    可知输出\(Y=1\)的对数几率是输出\(x\)的线性函数,或者说,输出\(Y=1\)的对数几率是由输入\(x\)的线性函数表示,或者再反过来,用线性回归模型的预测结果去逼近真实标记的对数几率,即逻辑斯蒂回归模型,也称对数几率回归。

    另,还可以视为逻辑斯蒂回归将线性函数\(w\cdot x\)转化为概率,如果线性函数的值接近正无穷,则概率值越接近于\(1\);如果线性函数的值越接近于负无穷,概率值就越接近于\(0\)

2 - 逻辑斯蒂回归模型参数估计与学习

  1. 给定训练集\(T=\left\{\left(x_{1}, y_{1}\right),\left(x_{2}, y_{2}\right), \cdots,\left(x_{N}, y_{N}\right)\right\}\),其中\(x_i\in \mathbb{R^{n+1}}\)\(y_i \in \{0,1\}\)\(i=1,2,\dots,N\). 设

    \[\begin{align}P(Y=1|x)&=\frac{\exp(w \cdot x)}{1+\exp(w \cdot x)}=\pi(x)\\ P(Y=0|x)&=\frac{1}{1+\exp(w \cdot x)}=1-\pi(x)\end{align}\\ \]

    对数似然函数为

    \[l(w)=\prod_{i=1}^{N}P(y_i|x_i)=\prod_{i=1}^{N}[\pi(x_i)]^{y_i}[1-\pi(x_i)]^{1-y_i}\\ \]

    可知当\(y_i=1\)时,\(1-y_i=0\),此时每一项的值就是前半项\(\pi(x)\);当\(y_i=0\)时,\(1-y_i=1\),此时每一项的值就是后半项\(1-\pi(x)\).

    对数似然函数为

    \[\begin{align} L(w)=\log l(w)&=\log\prod_{i=1}^{N}P(y_i|x_i)=\log\prod_{i=1}^{N}[\pi(x_i)]^{y_i}[1-\pi(x_i)]^{1-y_i}\\ &=\sum_{i=1}^{N}[y_i \log\pi(x)+(1-y_i)\log(1-\pi(x))]\\ &=\sum_{i=1}^{N}[y_i \log\frac{\pi(x)}{1-\pi(x)}+\log(1-\pi(x))]\\ &=\sum_{i=1}^{N}[y_i(w\cdot x)-\log(1+\exp(w\cdot x_i))] \end{align}\\ \]

    这里的\(\log\)对数为自然对数。

    第一行利用对数运算的性质变连乘变连加,在第二行中拆开了\((1-y_i)\)使用了对数减法运算法则,第四行两个部分都用了本部分开始部分的设定,代入即可。参数作最大似然估计即为答案:

    \[w^*=\arg\max_w L(w)\\ \]

  2. 随机梯度法学习参数。对\(L(w)\)求偏导

    \[\begin{align} \frac{\partial L}{\partial w}&=\sum_{i=1}^{N}[y_ix_i-\frac{\exp(w\cdot x)}{1+\exp(w\cdot x)}x_i]\\ &=\sum_{i=1}^{N}[y_ix_i-\pi(x_i)x_i]\\ &=\sum_{i=1}^{N}(y_i-\pi(x_i))x_i \end{align}\\ \]

    考虑到这里求的是最大值,可使用梯度上升法进行迭代求解。

    • 初始化

    \[w=0\\ \]

    • \(t+1\)轮迭代的参数

    \[w_{t+1}\leftarrow w_t+\alpha \sum_{i=1}^{N}(y_i-\pi_{w_t}(x_i))x_i\\ \]

    其中\(\alpha\)为学习率,\(\pi_{w_t}(x_i)\)为上一轮在参数为\(w_t\)时模型的输出,左向箭头意为【赋值】。

posted @ 2019-10-24 14:24  剑雨星澄  阅读(1784)  评论(0编辑  收藏  举报