【机器学习模型详细推导2】- 逻辑回归

逻辑回归

  • 1. 模型引入
  • 2. 模型描述
  • 3. 模型求解策略(代价函数)
  • 4. 模型求解算法 - 梯度下降

1. 模型引入

线性模型可以进行回归学习(参见【机器学习模型1】- 线性回归),但如何用于分类任务?需要找一个单调可微函数将分类任务的真实标记y与线性回归模型的预测值联系起来。
对于二分类任务,输出标记 y y y 取值 { 0 , 1 } \{0, 1\} {0,1},而线性回归预测值 z = w T x + b z = w^Tx+b z=wTx+b 属于实数集 R R R,所以需要一个变换使实值 z z z 映射到 0 / 1 0/1 0/1 值。
引入 S i g m o i d Sigmoid Sigmoid 函数: y = 1 1 + e − z y=\frac{1}{1+e^{-z}} y=1+ez1,可以将 z z z 值转为一个接近0或1的 y y y 值,而且单调可微。图像如下:
【机器学习模型详细推导2】- 逻辑回归_第1张图片

2. 模型描述

根据广义线性模型 y = g − 1 ( θ T x ) y=g^{-1}(\theta^T x) y=g1(θTx)定义,将Sigmoid函数作为 g − 1 ( ) g^{-1}() g1()代入:
h θ ( x ) = 1 1 + e − θ T x h_\theta(x) = \frac{1}{1+e^{-\theta^T x}} hθ(x)=1+eθTx1

对数几率函数:逻辑回归也称为对数几率函数。

  • h θ ( x ) h_\theta(x) hθ(x)反映了作为正例的可能性 ,则 1 − h θ ( x ) 1-h_\theta(x) 1hθ(x) 反映了作为负例的可能性
  • 所以 h θ ( x ) 1 − h θ ( x ) \frac{h_\theta(x)}{1-h_\theta(x)} 1hθ(x)hθ(x)反映了作为正例的相对可能性, h θ ( x ) 1 − h θ ( x ) > 1 \frac{h_\theta(x)}{1-h_\theta(x)} > 1 1hθ(x)hθ(x)>1,则为正例,称为 “几率”
  • l n h θ ( x ) 1 − h θ ( x ) ln\frac{h_\theta(x)}{1-h_\theta(x)} ln1hθ(x)hθ(x)“对数几率”

所以,逻辑回归实际上是用线性回归模型的预测来逼近真实的对数几率。

3. 模型求解策略(代价函数)

1) 代价函数公式:
J ( θ ) = − 1 m ∑ i = 1 m [ y ( i ) l n h θ ( x ( i ) ) + ( 1 − y ( i ) ) l n ( 1 − h θ ( x ( i ) ) ) ] J(\theta) = -\frac{1}{m}\sum_{i=1}^{m}[ y^{(i)}lnh_\theta(x^{(i)})+(1-y^{(i)})ln(1-h_\theta(x^{(i)})) ] J(θ)=m1i=1m[y(i)lnhθ(x(i))+(1y(i))ln(1hθ(x(i)))]
2)推导过程:
极大似然法 :根据给定数据集,最大化对数似然函数:
L ( θ ) = ∑ i = 1 m l n P ( y ( i ) ∣ x ; θ ) L(\theta) = \sum_{i=1}^{m}lnP(y^{(i)}|x;\theta) L(θ)=i=1mlnP(y(i)x;θ)由于 y 只能取 0 / 1,所以
P ( y = 0 ∣ x ; θ ) = h θ ( x ) = 1 1 + e − θ T x P ( y = 1 ∣ x ; θ ) = 1 − h θ ( x ) = e − θ T x 1 + e − θ T x = 1 e θ T x + 1 P(y=0|x;\theta) = h_\theta(x)=\frac{1}{1+e^{-\theta^T x}}\\ P(y=1|x;\theta) = 1-h_\theta(x)=\frac{e^{-\theta^T x}}{1+e^{-\theta^T x}} = \frac{1}{e^{\theta^T x}+1} \\ P(y=0x;θ)=hθ(x)=1+eθTx1P(y=1x;θ)=1hθ(x)=1+eθTxeθTx=eθTx+11所以:
P ( y ∣ x ; θ ) = ( h θ ( x ) ) y ( 1 − h θ ( x ) ) ( 1 − y ) P(y|x;\theta) = (h_\theta(x))^y(1-h_\theta(x))^{(1-y)} P(yx;θ)=(hθ(x))y(1hθ(x))(1y)可以求得:
L ( θ ) = ∑ i = 1 m [ y ( i ) l n h θ ( x ( i ) ) + ( 1 − y ( i ) ) l n ( 1 − h θ ( x ( i ) ) ) ] L(\theta) =\sum_{i=1}^{m}[ y^{(i)}lnh_\theta(x^{(i)})+(1-y^{(i)})ln(1-h_\theta(x^{(i)})) ] L(θ)=i=1m[y(i)lnhθ(x(i))+(1y(i))ln(1hθ(x(i)))]为了使用梯度下降法求解,将 L ( θ ) L(\theta) L(θ)取负,定义损失函数:
J ( θ ) = − 1 m L ( θ ) = − 1 m ∑ i = 1 m [ y ( i ) l n h θ ( x ( i ) ) + ( 1 − y ( i ) ) l n ( 1 − h θ ( x ( i ) ) ) ] J(\theta) = -\frac{1}{m}L(\theta) = -\frac{1}{m}\sum_{i=1}^{m}[ y^{(i)}lnh_\theta(x^{(i)})+(1-y^{(i)})ln(1-h_\theta(x^{(i)})) ] J(θ)=m1L(θ)=m1i=1m[y(i)lnhθ(x(i))+(1y(i))ln(1hθ(x(i)))]

为什么除以m?在使用样本不同数量的多个批次来更新 θ \theta θ 时,除以样本数量 m 来抵消不同批次样本数量不同带来的影响。

4. 模型求解算法 - 梯度下降

1)参数更新方程:
θ j = θ j − α 1 m ∑ i = 1 m [ h θ ( x ( i ) ) − y ( i ) ] x j ( i ) \theta_j = \theta_j - \alpha\frac{1}{m}\sum_{i=1}^{m}[h_\theta(x^{(i)})-y^{(i)}]x_j^{(i)} θj=θjαm1i=1m[hθ(x(i))y(i)]xj(i)

2)推导过程:

  • 设定:初始值 θ \theta θ、学习步长 α \alpha α
  • 不断更新 θ \theta θ
    θ j = θ j − α ∂ ∂ θ j J ( θ ) \theta_j = \theta_j -\alpha\frac{\partial }{\partial \theta_j} J(\theta) θj=θjαθjJ(θ)其中,梯度计算如下:
    【机器学习模型详细推导2】- 逻辑回归_第2张图片
    (Ref:参考吴恩达Cousera机器学习课程 6.4节)
  • 直到 梯 度 Δ θ = ∂ ∂ θ j J ( θ ) < 阈 值 ε 梯度\Delta\theta = \frac{\partial }{\partial \theta_j} J(\theta) < 阈值\varepsilon Δθ=θjJ(θ)<ε,得到最优 θ \theta θ

3)向量化表示
θ = θ − α m X T ( 1 1 + e − X θ − y ) \theta = \theta - \frac{\alpha}{m}X^T(\frac{1}{1+e^{-X\theta}}-y) θ=θmαXT(1+eXθ1y)

X,y表示如下:
X = [ X 1 ( 1 ) X 2 ( 1 ) . . . X n ( 1 ) X 1 ( 2 ) X 2 ( 2 ) . . . X n ( 2 ) . . . . . . . . . . . . X 1 ( m ) X 2 ( m ) . . . X n ( m ) ] , θ = [ θ 1 θ 2 . . . θ n ] , y = [ y 1 y 2 . . . y m ] , X=\begin{bmatrix} X^{(1)}_1& X^{(1)}_2& ...& X^{(1)}_n& \\ X^{(2)}_1& X^{(2)}_2& ...& X^{(2)}_n& \\ ...& ...& ...& ...& \\ X^{(m)}_1& X^{(m)}_2& ...& X^{(m)}_n& \\ \end{bmatrix}, \theta=\begin{bmatrix} \theta_1& \\ \theta_2& \\ ...& \\ \theta_n& \\ \end{bmatrix}, y=\begin{bmatrix} y_1& \\ y_2& \\ ...& \\ y_m& \\ \end{bmatrix}, X=X1(1)X1(2)...X1(m)X2(1)X2(2)...X2(m)............Xn(1)Xn(2)...Xn(m)θ=θ1θ2...θny=y1y2...ym

你可能感兴趣的:(机器学习,机器学习模型详细推导)