1. 模型引入

线性模型可以进行回归学习(参见【机器学习模型1】- 线性回归),但如何用于分类任务?需要找一个单调可微函数将分类任务的真实标记y与线性回归模型的预测值联系起来。
对于二分类任务,输出标记 yy 取值 {0,1}\{0, 1\},而线性回归预测值 z=wTx+bz = w^Tx+b 属于实数集 RR,所以需要一个变换使实值 zz 映射到 0/10/1 值。
引入 SigmoidSigmoid 函数:y=11+ezy=\frac{1}{1+e^{-z}},可以将 zz 值转为一个接近0或1的 yy 值,而且单调可微。图像如下:
【机器学习模型2】- 逻辑回归

2. 模型描述

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

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

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

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

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

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

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

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

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

2)推导过程:

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

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

X,y表示如下:
X=[X1(1)X2(1)...Xn(1)X1(2)X2(2)...Xn(2)............X1(m)X2(m)...Xn(m)]θ=[θ1θ2...θn]y=[y1y2...ym] 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},

相关文章:

  • 2021-07-25
  • 2021-05-24
  • 2021-12-01
  • 2021-07-04
猜你喜欢
  • 2021-04-24
  • 2021-07-29
  • 2022-01-03
  • 2021-06-20
  • 2021-11-28
  • 2022-01-04
  • 2021-06-19
相关资源
相似解决方案