机器学习笔记--对数几率回归(逻辑回归)

对数几率回归(逻辑回归)

广义线性模型:

  • 指数族分布

指数族(Exponential family)分布是一类分布的总称,该类分布的分布律(或者概率密度函数)的一般形式如下:
p(y;η)=b(y)exp(ηTT(y)a(η)) p(y ; \eta)=b(y) \exp \left(\eta^{T} T(y)-a(\eta)\right)
其中η\eta称为该分布的自然参数;T(y)T(y)为充分统计量,视具体的分布而定,通常是等于随机变量y本身;a(η)a(\eta)为配分函数;b(y)b(y)为关于随机变量y的函数。常见的伯努利分布和正态分布均属于指数族分布。

以下证明伯努利属于指数族分布:
p(y)=ϕy(1ϕ)1y p(y)=\phi^{y}(1-\phi)^{1-y}
其中y{0,1}y \in {\{0,1\}}p(y=1)=ϕp(y=1) = \phi对上式恒等变形可得
p(y)=ϕy(1ϕ)1y=exp(ln(ϕy(1ϕ)1y))=exp(lnϕy+ln(1ϕ)1y) \begin{aligned} p(y) &=\phi^{y}(1-\phi)^{1-y} \\ &=\exp \left(\ln \left(\phi^{y}(1-\phi)^{1-y}\right)\right) \\ &=\exp \left(\ln \phi^{y}+\ln (1-\phi)^{1-y}\right) \end{aligned}

p(y)=exp(ylnϕ+(1y)ln(1ϕ))=exp(ylnϕ+ln(1ϕ)yln(1ϕ))=exp(y(lnϕln(1ϕ))+ln(1ϕ))=exp(yln(ϕ1ϕ)+ln(1ϕ)) \begin{aligned} p(y) &=\exp (y \ln \phi+(1-y) \ln (1-\phi)) \\ &=\exp (y \ln \phi+\ln (1-\phi)-y \ln (1-\phi)) \\ &=\exp (y(\ln \phi-\ln (1-\phi))+\ln (1-\phi)) \\ &=\exp \left(y \ln \left(\frac{\phi}{1-\phi}\right)+\ln (1-\phi)\right) \end{aligned}

对比指数族分布可知
b(y)=1η=ln(ϕ1ϕ)T(y)=ya(η)=ln(1ϕ)=ln(1+eη) \begin{aligned} b(y) &=1 \\ \eta &=\ln \left(\frac{\phi}{1-\phi}\right) \\ T(y) &=y \\ a(\eta) &=-\ln (1-\phi)=\ln \left(1+e^{\eta}\right) \end{aligned}

  • 广义线性模型的三条假设
    • 在给定xx的条件下,假设随机变量y服从某个指数族分布;
    • 在给定xx的条件下,我们的目标是得到一个模型h(x)h(x)能预测出T(y)T(y)的期望值;
    • 假设该指数族分布中的自然参数η\etaxx呈线性关系,即,η=wTx\eta = w^Tx

对于对数几率回归的广义线性模型推导如下:

对数几率回归是在对一个二分类问题进行建模,并且假设被建模的随机变量y取值为0或1,因此我们可以很自然得假设y服从伯努利分布。此时,如果我们想要构建一个线性模型来预测在给定x的条件下y的取值的话,可以考虑使用广义线性模型来进行建模。

已知y是服从伯努利分布,而伯努利分布属于指数族分布,所以满足广义线性模型的第-条假设,接着根据广义线性模型的第二条假设我们可以推得模型h(x)的表达式为:
h(x)=E[T(yx)] h(\boldsymbol{x})=E[T(y | \boldsymbol{x})]
ϕ=11+eη\phi=\frac{1}{1+e^{-\eta}}代入h(x)h(x)的表达式可得
h(x)=ϕ=11+eη h(x)=\phi=\frac{1}{1+e^{-\eta}}
根据广义线性模型的第三条假设η=wTx\eta=\boldsymbol{w}^{T} \boldsymbol{x}h(x)h(x)最终可化为:
h(x)=ϕ=11+ewTx=p(y=1x) h(\boldsymbol{x})=\phi=\frac{1}{1+e^{-\boldsymbol{w}^{T} \boldsymbol{x}}}=p(y=1 | \boldsymbol{x})
即对数几率回归模型。

上述线性模型实现了回归学习,需找一个单调可微函数将分类任务的真实标记y与线性回归模型的预测值联系起来。

考虑二分类任务,输出标记y(0,1)y \in {(0,1)},最理想的是“单位阶跃函数”
y={0,z<00.5,z=01,z>0 y=\left\{\begin{array}{cl}{0,} & {z<0} \\ {0.5,} & {z=0} \\ {1,} & {z>0}\end{array}\right.
机器学习笔记--对数几率回归(逻辑回归)

由于不连续,所以不能直接使用g()g^{-}(\cdot)。寻找一个近似单位阶跃函数的“替代函数”:
y=11+ez y=\frac{1}{1+e^{-z}}
将对数几率函数作为g()g^{-}(\cdot)代入
y=11+e(wTx+b) y=\frac{1}{1+e^{-\left(\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}+b\right)}}

lny1y=wTx+b \ln \frac{y}{1-y}=\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}+b

若将y视为样本x作为正例的可能性,则1-y是其反例可能性,两者的比值
y1y \frac{y}{1-y}
称为“几率”。

几率对数:
lny1y \ln \frac{y}{1-y}
由此可看出,实际上是在用线性回归模型的预测结果去逼近真实标记的对数几率,因此,其对应的模型称为**“对数几率回归”(logistic regression,亦称logit regression).特别需注意到,虽然它的名字是“回归”,但实际却是一种分类学习方法**.这种方法有很多优点,例如它是直接对分类可能性进行建模,无需事先假设数据分布,这样就避免了假设分布不准确所带来的问题;它不是仅预测出“类别”,而是可得到近似概率预测,这对许多需利用概率辅助决策的任务很有用;此外,对率函数是任意阶可导的凸函数,有很好的数学性质,现有的许多数值优化算法都可直接用于求取最优解.

上式可重写为
lnp(y=1x)p(y=0x)=wTx+b \ln \frac{p(y=1 | \boldsymbol{x})}{p(y=0 | \boldsymbol{x})}=\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}+b
有:
p(y=1x)=ewTx+b1+ewTx+bp(y=0x)=11+ewTx+b \begin{array}{l}{p(y=1 | \boldsymbol{x})=\frac{e^{\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}+b}}{1+e^{\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}+b}}} \\ {p(y=0 | \boldsymbol{x})=\frac{1}{1+e^{\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}+b}}}\end{array}

极大似然估计的具体方法:

通常记
L(y1,y2,,ym;w1,w2,,wk)=L(w)L\left(y_{1}, y_{2}, \ldots, y_{m} ; w_{1}, w_{2}, \ldots, w_{k}\right)=L(\boldsymbol{w})
,并称其为似然函数。于是求ww的极大似然估计就归结为求L(w)L(w)得最大值点。由于对数函数是单调递增函数,所以
lnL(w)=ln(i=1mf(yi,w1,w2,,wk))=i=1mlnf(yi,w1,w2,,wk) \ln L(\boldsymbol{w})=\ln \left(\prod_{i=1}^{m} f\left(y_{i}, w_{1}, w_{2}, \ldots, w_{k}\right)\right)=\sum_{i=1}^{m} \ln f\left(y_{i}, w_{1}, w_{2}, \ldots, w_{k}\right)
L(w)L(w)有相同得最大值点,而在许多情况下,求lnL(w)lnL(w)的最大值点比较简单,于是,我们就将求L(w)L(w)的最大值点转化为求lnL(w)lnL(w)的最大值点,通常称lnL(w)lnL(w)为对数似然函数。

通过极大似然法来估计wwbb。给定数据集{(xi,yi)}i=1m\left\{\left(\boldsymbol{x}_{i}, y_{i}\right)\right\}_{i=1}^{m}对率回归最大化“对数似然”
(w,b)=i=1mlnp(yixi;w,b) \ell(\boldsymbol{w}, b)=\sum_{i=1}^{m} \ln p\left(y_{i} | \boldsymbol{x}_{i} ; \boldsymbol{w}, b\right)
β=(w;b)\boldsymbol{\beta}=(\boldsymbol{w} ; \boldsymbol{b})x^=(x;1)\hat{\boldsymbol{x}}=(\boldsymbol{x} ; 1)。则wTx+bw^Tx+b可简写为βTx^\boldsymbol{\beta}^{\mathrm{T}} \hat{\boldsymbol{x}}。再令p1(x^;β)=p(y=1x^;β)p_{1}(\hat{\boldsymbol{x}} ; \boldsymbol{\beta})=p(y=1 | \hat{\boldsymbol{x}} ; \boldsymbol{\beta})。$ p_{0}(\hat{\boldsymbol{x}} ; \boldsymbol{\beta})=p(y=0 | \hat{\boldsymbol{x}} ; \boldsymbol{\beta})=1-p_{1}(\hat{\boldsymbol{x}} ; \boldsymbol{\beta})$

则上式的似然项可重写为
p(yixi;w,b)=yip1(x^i;β)+(1yi)p0(x^i;β) p\left(y_{i} | \boldsymbol{x}_{i} ; \boldsymbol{w}, b\right)=y_{i} p_{1}\left(\hat{\boldsymbol{x}}_{i} ; \boldsymbol{\beta}\right)+\left(1-y_{i}\right) p_{0}\left(\hat{\boldsymbol{x}}_{i} ; \boldsymbol{\beta}\right)
代入得(书上为损失函数,加负号)
(β)=i=1m(yiβTx^i+ln(1+eβTz^i)) \ell(\boldsymbol{\beta})=\sum_{i=1}^{m}\left(-y_{i} \boldsymbol{\beta}^{\mathrm{T}} \hat{\boldsymbol{x}}_{i}+\ln \left(1+e^{\boldsymbol{\beta}^{\mathrm{T}} \hat{\boldsymbol{z}}_{i}}\right)\right)
上式为β\beta的高阶可导连续凸函数,根据凸优化理论,梯度下降法、牛顿法等都可求得其最优解,就得到:
β=argminβ(β) \boldsymbol{\beta}^{*}=\underset{\boldsymbol{\beta}}{\arg \min } \ell(\boldsymbol{\beta})
以牛顿法为例,其第t+1轮迭代解的更新公式为
βt+1=βt(2(β)ββT)1(β)β \boldsymbol{\beta}^{t+1}=\boldsymbol{\beta}^{t}-\left(\frac{\partial^{2} \ell(\boldsymbol{\beta})}{\partial \boldsymbol{\beta} \partial \boldsymbol{\beta}^{\mathrm{T}}}\right)^{-1} \frac{\partial \ell(\boldsymbol{\beta})}{\partial \boldsymbol{\beta}}
其中关于β\beta的一阶、二阶导数分别为:
(β)β=i=1mx^i(yip1(x^i;β))2(β)ββT=i=1mx^ix^iTp1(x^i;β)(1p1(x^i;β)) \begin{aligned} \frac{\partial \ell(\boldsymbol{\beta})}{\partial \boldsymbol{\beta}} &=-\sum_{i=1}^{m} \hat{\boldsymbol{x}}_{i}\left(y_{i}-p_{1}\left(\hat{\boldsymbol{x}}_{i} ; \boldsymbol{\beta}\right)\right) \\ \frac{\partial^{2} \ell(\boldsymbol{\beta})}{\partial \boldsymbol{\beta} \partial \boldsymbol{\beta}^{\mathrm{T}}} &=\sum_{i=1}^{m} \hat{\boldsymbol{x}}_{i} \hat{\boldsymbol{x}}_{i}^{\mathrm{T}} p_{1}\left(\hat{\boldsymbol{x}}_{i} ; \boldsymbol{\beta}\right)\left(1-p_{1}\left(\hat{\boldsymbol{x}}_{i} ; \boldsymbol{\beta}\right)\right) \end{aligned}