机器学习算法の02 逻辑回归

编程入门 行业动态 更新时间:2024-10-15 02:30:36

机器学习<a href=https://www.elefans.com/category/jswz/34/1770096.html style=算法の02 逻辑回归"/>

机器学习算法の02 逻辑回归

机器学习算法の02 逻辑回归

  • 分类和回归任务的区别
  • 逻辑回归与线性回归的区别和联系
  • 逻辑回归(logistics regression)的判别函数
  • 逻辑回归(logistics regression)的损失函数
  • 交叉熵损失函数的求解

分类和回归任务的区别

分类
输出变量为有限个离散变量的预测问题是分类问题。
回归
输入变量与输出变量均为连续变量的预测问题是回归问题。

例如:预测明天多少度,是一个回归任务;预测明天阴、晴、雨,就是一个分类任务。

逻辑回归与线性回归的区别和联系

区别
线性回归回归算法,可以得到实值。而在名称上类似的逻辑回归虽然也有“回归”两个字,但实际上却是一种分类算法,逻辑回归也称为 对数几率回归
联系
逻辑回归的形式与线性回归的形式有部分是相同的,如果说 线性回归是对于特征的线性组合来拟合真实标记的话( y = w x + b y=wx+b y=wx+b),那么 逻辑回归 是对于特征的线性组合来拟合真实标记为正例的概率的对数几率( l n y 1 − y = w x + b ln\frac{y}{1−y}=wx+b ln1−yy​=wx+b)。可以认为 逻辑回归就是用回归的办法来做分类

逻辑回归(logistics regression)的判别函数

逻辑回归由于存在易于实现、解释性好以及容易扩展等优点,被广泛应用于点击率预估(CTR)、计算广告(CA)以及推荐系统(RS)等任务中。下面我们具体来学习逻辑回归的判别函数(基于sigmod函数构造)。
逻辑回归的判别函数
g ( z ) = 1 1 + e − z , z = w T x \begin{aligned} &g(z)=\frac{1}{1+e^{-z}} ,z=\mathbf{w}^T\mathbf{x} \end{aligned} ​g(z)=1+e−z1​,z=wTx​


sigmod函数的优点
(1)具有很强的鲁棒性(鲁棒是Robust的音译,也就是健壮和强壮的意思);
(2)并且将函数的输入范围 ( − ∞ , + ∞ ) (-∞,+∞) (−∞,+∞)映射到了输出的 ( 0 , 1 ) (0,1) (0,1)之间且具有概率意义具有概率意义的理解:将一个样本输入到我们学习到的函数中,输出0.7,意思就是这个样本有70%的概率是正例,30%的概率为负例)。

逻辑回归输出的预测函数的数学表达式为
h θ ( x ) = g ( θ T x ) = 1 1 + e − θ T x h_θ(x)=g({θ^Tx})=\cfrac{1}{1+e^{−θ^Tx}} hθ​(x)=g(θTx)=1+e−θTx1​
其中 θ θ θ是参数向量。对于 h θ ( x ) h_θ(x) hθ​(x)的直观解释是:对于给定的输入 x x x, h θ ( x ) h_θ(x) hθ​(x)表示其对应类标 y = 1 y=1 y=1(即:属于正例)的概率, h θ ( x ) h_θ(x) hθ​(x)的计算公式为 h θ ( x ) = p ( x i ; w ) h_θ(x)=p(x_i ; w) hθ​(x)=p(xi​;w)。

逻辑回归(logistics regression)的损失函数

逻辑回归的 损失函数 J ( θ ) J(\mathbf{θ}) J(θ),又叫 交叉熵损失函数,它是通过 极大似然估计 推导得到的。
J ( θ ) = − 1 m ∑ i = 1 m y i l o g h θ ( x i ) + ( 1 − y i ) l o g ( 1 − h θ ( x i ) ) \begin{aligned} J(\mathbf{θ})=-\frac{1}{m}∑_{i=1}^{m}y_ilogh_θ(x_i)+(1−y_i)log(1−h_θ(x_i)) \end{aligned} J(θ)=−m1​i=1∑m​yi​loghθ​(xi​)+(1−yi​)log(1−hθ​(xi​))​

损失函数 J ( θ ) J(\mathbf{θ}) J(θ)的推导过程
由于 y y y只能取0或1,服从二项分布,则后验概率
p ( y ∣ x ; θ ) = ( h θ ( x ) ) y ( 1 − h θ ( x ) ) 1 − y p(y|x;θ)=(h_θ(x))^y(1−h_θ(x))^{1−y} p(y∣x;θ)=(hθ​(x))y(1−hθ​(x))1−y
对于 m m m个独立同分布的训练样本 x x x,其似然函数写作
L ( θ ) = ∏ i = 1 m p ( y ∣ x ; θ ) = ∏ i = 1 m h θ ( x i ) y i ( 1 − h θ ( x i ) ) 1 − y i L(θ)=∏_{i=1}^{m}p(y|x;θ)=∏_{i=1}^{m}h_θ(x_i)^{y_i}(1−h_θ(x_i))^{1−y_i} L(θ)=i=1∏m​p(y∣x;θ)=i=1∏m​hθ​(xi​)yi​(1−hθ​(xi​))1−yi​
为了方便操作,取对数,则对数似然函数
l ( θ ) = l o g L ( θ ) = ∑ i = 1 m y i ⋅ l o g h θ ( x i ) + ( 1 − y i ) ⋅ l o g ( 1 − h θ ( x i ) ) l(θ)=logL(θ)=∑_{i=1}^{m}y_i ·logh_θ(x_i)+(1−y_i)·log(1−h_θ(x_i)) l(θ)=logL(θ)=i=1∑m​yi​⋅loghθ​(xi​)+(1−yi​)⋅log(1−hθ​(xi​))
根据“最大似然估计”,求 l ( θ ) l(θ) l(θ)取最大值时的 θ θ θ,定义 损失函数 J ( θ ) J(θ) J(θ)为:
J ( θ ) = − 1 m l ( θ ) = − 1 m ∑ i = 1 m y i ⋅ l o g h θ ( x i ) + ( 1 − y i ) ⋅ l o g ( 1 − h θ ( x i ) ) J(θ)=−\frac{1}{m}l(θ)=-\frac{1}{m}∑_{i=1}^{m}y_i·logh_θ(x_i)+(1−y_i)·log(1−h_θ(x_i)) J(θ)=−m1​l(θ)=−m1​i=1∑m​yi​⋅loghθ​(xi​)+(1−yi​)⋅log(1−hθ​(xi​))
所以最后目标变成取 J ( θ ) J(θ) J(θ)最小值时的 θ θ θ为最佳参数。
利用梯度下降法得到最优 θ θ θ值参数更新) :
θ j : = θ j − α ∂ ∂ θ j J ( θ ) = θ j − α 1 m ∑ i = 1 m ( h θ ( x i ) − y i ) x i j θ_j:=θ_j−α\frac{∂}{∂θ_j}J(θ)=θ_j−α\frac{1}{m}∑_{i=1}^m\Big(h_θ(x_i)−y_i\Big)x_i^j θj​:=θj​−α∂θj​∂​J(θ)=θj​−αm1​i=1∑m​(hθ​(xi​)−yi​)xij​

交叉熵损失Cost函数
C o s t ( h θ ( x ) , y ) = { − l o g ( h θ ( x ) ) , if y=1 − l o g ( 1 − h θ ( x ) ) , if y=0 Cost(h_θ(x),y)= \begin{cases} −log(h_θ(x)),& \text{if y=1}\\ −log(1−hθ(x)),& \text{if y=0} \end{cases} Cost(hθ​(x),y)={−log(hθ​(x)),−log(1−hθ(x)),​if y=1if y=0​
数据集全部损失 J ( θ ) J(\mathbf{θ}) J(θ)函数
J ( θ ) = 1 m ∑ i = 1 m C o s t ( h θ ( x ( i ) ) , y ( i ) ) = − 1 m ∑ i = 1 m [ y ( i ) l o g h θ ( x ( i ) ) + ( 1 − y ( i ) ) l o g ( 1 − h θ ( x ( i ) ) ) ] \begin{aligned} J(\mathbf{θ})&=\frac{1}{m}\sum_{i=1}^mCost(h_θ(x^{(i)}),y^{(i)}) \\&=-\frac{1}{m}\sum_{i=1}^{m}\big[y^{(i)}logh_θ(x^{(i)})+(1−y^{(i)})log(1−h_θ(x^{(i)}))\big] \end{aligned} J(θ)​=m1​i=1∑m​Cost(hθ​(x(i)),y(i))=−m1​i=1∑m​[y(i)loghθ​(x(i))+(1−y(i))log(1−hθ​(x(i)))]​

交叉熵损失函数的求解

与线性回归类似,利用梯度下降法求解交叉熵损失函数,求解步骤概况如下:
(1)随机选择一组W;
(2)将W带入交叉熵损失函数,让得到的点沿着负梯度的方向移动;
(3)循环第二步;
求解梯度部分同样是对损失函数求偏导,过程如下:

对损失函数求偏导
∂ ∂ θ j J ( θ ) = − 1 m ∑ i = 1 m ( y i 1 h θ ( x i ) ∂ ∂ θ j h θ ( x i ) − ( 1 − y i ) 1 1 − h θ ( x i ) ∂ ∂ θ j h θ ( x i ) ) = − 1 m ∑ i = 1 m ( y i 1 g ( θ T x i ) − ( 1 − y i ) 1 1 − g ( θ T x i ) ) ∂ ∂ θ j g ( θ T x i ) = − 1 m ∑ i = 1 m ( y i 1 g ( θ T x i ) − ( 1 − y i ) 1 1 − g ( θ T x i ) ) g ( θ T x i ) ( 1 − g ( θ T x i ) ) ∂ ∂ θ j θ T x i = − 1 m ∑ i = 1 m ( y i ( 1 − g ( θ T x i ) ) − ( 1 − y i ) g ( θ T x i ) ) x i j = − 1 m ∑ i = 1 m ( y i − g ( θ T x i ) ) x i j = − 1 m ∑ i = 1 m ( y i − h θ ( x i ) ) x i j = 1 m ∑ i = 1 m ( h θ ( x i ) − y i ) x i j \begin{aligned} \frac{\partial}{\partialθ_j}J(\mathbf{θ})&=-\frac{1}{m}∑_{i=1}^{m} \bigg(y_i\frac{1}{h_θ(x_i)}\frac{\partial}{\partialθ_j}{h_θ(x_i)}-(1−y_i)\frac{1}{1−h_θ(x_i)}\frac{\partial}{\partialθ_j}{h_θ(x_i)}\bigg) \\&=-\frac{1}{m}∑_{i=1}^{m} \bigg(y_i\frac{1}{g(θ^Tx_i)}-(1−y_i)\frac{1}{1−g(θ^Tx_i)}\bigg)\frac{\partial}{\partialθ_j}{g(θ^Tx_i)} \\&=-\frac{1}{m}∑_{i=1}^{m} \bigg(y_i\frac{1}{g(θ^Tx_i)}-(1−y_i)\frac{1}{1−g(θ^Tx_i)}\bigg){g(θ^Tx_i)}\Big(1-{g(θ^Tx_i)}\Big)\frac{\partial}{\partialθ_j}θ^Tx_i \\&=-\frac{1}{m}∑_{i=1}^{m} \bigg(y_i\Big(1-{g(θ^Tx_i)}\Big)-(1−y_i){g(θ^Tx_i)}\bigg)x_i^j \\&=-\frac{1}{m}∑_{i=1}^{m} \bigg(y_i-{g(θ^Tx_i)}\bigg)x_i^j \\&=-\frac{1}{m}∑_{i=1}^{m} \bigg(y_i-{h_θ(x_i)}\bigg)x_i^j \\&=\frac{1}{m}∑_{i=1}^{m} \bigg({h_θ(x_i)}-y_i\bigg)x_i^j \end{aligned} ∂θj​∂​J(θ)​=−m1​i=1∑m​(yi​hθ​(xi​)1​∂θj​∂​hθ​(xi​)−(1−yi​)1−hθ​(xi​)1​∂θj​∂​hθ​(xi​))=−m1​i=1∑m​(yi​g(θTxi​)1​−(1−yi​)1−g(θTxi​)1​)∂θj​∂​g(θTxi​)=−m1​i=1∑m​(yi​g(θTxi​)1​−(1−yi​)1−g(θTxi​)1​)g(θTxi​)(1−g(θTxi​))∂θj​∂​θTxi​=−m1​i=1∑m​(yi​(1−g(θTxi​))−(1−yi​)g(θTxi​))xij​=−m1​i=1∑m​(yi​−g(θTxi​))xij​=−m1​i=1∑m​(yi​−hθ​(xi​))xij​=m1​i=1∑m​(hθ​(xi​)−yi​)xij​​
交叉熵损失函数的梯度和最小二乘法的梯度形式上完全相同,区别在于,交叉熵损失函数的 h θ ( x ) = g ( z ) h_{θ}(x) = g(z) hθ​(x)=g(z),而最小二乘法的 h θ ( x ) = w T x h_{θ}(x) =\mathbf{w}^T\mathbf{x} hθ​(x)=wTx。

更多推荐

机器学习算法の02 逻辑回归

本文发布于:2024-03-23 16:52:55,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1740553.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:算法   逻辑   机器

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!