机器学习基础专题:逻辑回归

逻辑回归

广义线性模型。

原理

输入

训练集数据 T = ( x 1 , y 1 ) . . . ( x M , y M ) T = {(x_1,y_1) ... (x_M,y_M)} T=(x1,y1)...(xM,yM) x i ∈ X ⊆ R n x_i \in \mathcal{X} \subseteq R^n xiXRn y i ∈ Y ⊆ R K y_i \in \mathcal{Y} \subseteq R^K yiYRK,二分类 y i ∈ { − 1 , + 1 } y_i \in \{-1, +1\} yi{ 1,+1}

损失函数 C o s t ( y , f ( x ) ) Cost(y,f(x)) Cost(y,f(x))

学习速率 α \alpha α β \beta β

输出

逻辑回归模型 f ^ ( x ) \hat f(x) f^(x)

判断函数候选

单位阶跃函数

不连续并且不充分光滑

对数概率函数 Sigmoid

y = 1 1 + e − z y = \frac{1}{1+e^{-z}} y=1+ez1
z = w T x + b z = w^Tx+b z=wTx+b

在这里插入图片描述

如果将y视为样本x作为正例的可能性,则1-y是反例可能性,两者的比值y/(1-y)称为几率,反映了x作为正例的相对可能性。上式是在用线性回归模型的预测结果去逼近真实标记的对数几率。

我们可以通过极大似然法来估计w和b。

l ( w , b ) = ∑ i = 1 M l n p ( y i ∣ x i ; w , b ) l(w,b) = \sum_{i=1}^M ln p(y_i | x_i;w,b) l(w,b)=i=1Mlnp(yixi;w,b)

P w ( y = j ∣ x ) = e x p ( x T w ( j ) ) ∑ k = 1 K e x p ( x T w ( k ) ) P_w(y=j|x) = \frac{exp(x^Tw^{(j)})}{\sum_{k=1}^{K}exp(x^Tw^{(k)})} Pw(y=jx)=k=1Kexp(xTw(k))exp(xTw(j))

损失函数

c o s t = − y l o g ( p ^ ) − ( 1 − y ) l o g ( 1 − p ^ ) cost = -ylog(\hat{p}) - (1-y)log(1-\hat{p}) cost=ylog(p^)(1y)log(1p^).

我们之所以使用对数概率函数而不是MSE的原因:(1)对数概率函数是一个凸函数;(2) 当误差较大时,对数概率函数可以提供较大的更新。

推导w的MLE。
w ∗ = a r g m a x x P ( Y ∣ X ) = a r g m a x w ∏ i = 1 M P ( Y i ∣ x i ) = a r g m a x w ∑ i = 1 M l o g P ( Y i ∣ x i ) = a r g m a x w ∑ i = 1 M [ y i l o g p 1 + ( 1 − y i ) l o g p 0 ] w^* = argmax_x P(Y|X) \\\\ = argmax_w \prod_{i=1}^{M} P(Y_i|x_i) \\\\ = argmax_w \sum_{i=1}^{M} log P(Y_i|x_i) \\\\ = argmax_w \sum_{i=1}^{M} [y_i log p_1 + (1-y_i) log p_0] \\\\ w=argmaxxP(YX)=argmaxwi=1MP(Yixi)=argmaxwi=1MlogP(Yixi)=argmaxwi=1M[yilogp1+(1yi)logp0]

算法

逻辑回归算法

  1. 随机初始化 θ \theta θ

  2. 计算 θ j + 1 = θ j − α 1 m ∑ i = 1 m x i [ h ( x i ) − y i ] \theta_{j+1} = \theta_{j} - \alpha\frac{1}{m}\sum_{i=1}^{m}x_i[h(x_i)-y_i] θj+1=θjαm1i=1mxi[h(xi)yi]

  3. 迭代

在迭代求解时使用高效的优化算法,如LBFGS、信赖域算法。这些求解方法是基于批量处理的,无法高效处理超大规模的数据集,也无法对线上模型进行快速实时更新。

随机梯度下降(SGD)是另一种优化方法,比如google的FTRL算法。

FTRL算法

  1. 对于 i ∈ { i ∼ d } i\in\{i \sim d\} i{ id},初始化 z i = 0 , n i = 0 z_i = 0, n_i = 0 zi=0,ni=0

  2. 对样本t = 1 to T,

    1. 计算 x t + 1 , i = { 0 , i f ∣ z t , i ∣ ≤ λ 1   − ( β + n i α + λ 2 ) − 1 ( z t , i − s i g n ( z t , i ) λ 1 ) , o t h e r w i s e x_{t+1,i} = \left\{\begin{aligned} &0 ,&if |z_{t,i}| \leq \lambda_1 \\\ & -(\frac{\beta+\sqrt{n_i}}{\alpha}+\lambda_2)^{-1}(z_{t,i} - sign(z_{t,i})\lambda_1),& otherwise\end{aligned}\right. xt+1,i= 0,(αβ+ni +λ2)1(zt,isign(zt,i)λ1),ifzt,iλ1otherwise

    2. 计算 p t = σ ( x t w ) p_t = \sigma(x_tw) pt=σ(xtw),使用label函数和预测值 p t p_t pt迭代

    3. 对于i

      g i = ( p t − y t ) x i g_i = (p_t - y_t)x_i gi=(ptyt)xi

      σ i = 1 α ( n i + g i 2 − n i ) \sigma_i = \frac{1}{\alpha}(\sqrt{n_i + g_i^2} - \sqrt{n_i}) σi=α1(ni+gi2 ni )

      z i = z i + g i − σ i w t , i z_i = z_i + g_i - \sigma_iw_{t,i} zi=zi+giσiwt,i

      n i = n i + g i 2 n_i = n_i +g_i^2 ni=ni+gi2

  3. 迭代

建议 β \beta β取1。

Reference

  • 《美团机器学习实践》by美团算法团队,第三章
  • 《机器学习》by周志华,第三、四章
  • 白板推导系列,shuhuai007

猜你喜欢

转载自blog.csdn.net/qq_40136685/article/details/108727963
今日推荐