机器学习--02算法--05逻辑回归和Softmax回归

本文介绍两种基本的分类方法,逻辑回归和softmax回归。

一、逻辑回归(Logistic Regression)

1. 基本概念

逻辑回归不是回归,而是二分类,又称对数几率回归。它是在线性回归的外面包裹一层Sigmoid函数,把线性回归压缩(映射)到(0,1)区间上。
回忆一下,线性回归表达式为 f ( x ) = w T x f(x)=w^Tx f(x)=wTx。那么逻辑回归的表达式为 h ( x ) = g ( f ( x ) ) = g ( w T x ) h(x)=g(f(x))=g(w^Tx) h(x)=g(f(x))=g(wTx),其中, g g g为sigmoid函数,表达形式见下图。
在这里插入图片描述

2.工作原理

在这里插入图片描述

以二维平面样本为例,线性回归是求一条直线,对应方程为: y = w 1 x + w 0 y=w_1x+w_0 y=w1x+w0, 参数有二: w 1 w_1 w1 w 0 w_0 w0;逻辑回归方程为 h ( x ) = g ( f ( x ) ) = g ( w 1 x 1 + w 2 x 2 + w 0 ) h(x)=g(f(x))=g(w_1x_1+w_2x_2+w_0) h(x)=g(f(x))=g(w1x1+w2x2+w0),参数有三: w 1 、 w 2 w_1、w_2 w1w2 w 0 w_0 w0. 线性回归的目标值是一个值,逻辑回归的目标值是二分类布尔型,对或者错,为了方便计算,分别赋值为 1 和 0.
逻辑回归的目的就是求出一组 w 1 、 w 2 w_1、w_2 w1w2 w 0 w_0 w0,使得对于目标值为 1 的样本, h ( x ) h(x) h(x)的值尽量接近 1;对于目标值为 0 的样本, h ( x ) h(x) h(x)的值尽量接近 0 。
在实际应用中,基于已经求得的参数,和已知的样本值,得到一个 h ( x ) h(x) h(x)值, h ( x ) < 0.5 h(x)<0.5 h(x)<0.5,将其归类为类别“0”; h ( x ) > 0.5 h(x)>0.5 h(x)>0.5,将其归类为类别 “1”。可以理解 h ( x ) h(x) h(x)为概率值。

3.损失函数

想要求参数,需要损失函数,即如何构建函数,能表达出上表中的 h ( x ) 和 y h(x)和y h(x)y的差异,并且使得这种差异最小。显然,无法使用线性回归中的均方误差损失函数,因为 h ( x ) h(x) h(x)是计算得出的实际值, y y y是概率值,二者不是一个层级上的。此处用交叉熵损失函数(cross entropy loss),又称对数似然损失函数,求解时利用梯度下降法。
J ( w ) = − 1 n ∑ i = 1 n [ y i log ⁡ ( h w ( x i ) ) + ( 1 − y i ) log ⁡ ( 1 − h w ( x i ) ) ] J(w)=-{\frac{1}{n}}\sum_{i=1}^{n}\left[y^{i}\log(h_{w}(x^{i}))+(1-y^{i})\log(1-h_{w}(x^{i}))\right] J(w)=n1i=1n[yilog(hw(xi))+(1yi)log(1hw(xi))]

其中: w w w为参数, n n n为样本总量, i i i 为样本序号, h w ( x i ) h_{w}(x^{i}) hw(xi)为计算值, y i y^i yi为目标值。
这个算式的意思是, y i y^i yi只有 0 和 1 两个值,且每个样本 i i i 只有一个 y y y,中括号中的两项只有1项不为0。 对于 y = 1 y=1 y=1,前面项不为0,要求 h w ( x i ) h_{w}(x^{i}) hw(xi)尽量接近1,才能保证此项为0;对于 y = 0 y=0 y=0,后面项不为0,要求 h w ( x i ) h_{w}(x^{i}) hw(xi)尽量接近0,才能保证此项为0。注:当不接近1时, J ( w ) J(w) J(w)是大于0的。

4.参数求解

w i + 1 = w i − α ∂ J ( w ) ∂ w i = w i − α 1 m ∑ i = 1 m ( h w ( x i ) − y i ) x i \begin{aligned} w_{i+1}&=w_i-\alpha\frac{\partial J(w)}{\partial{w}_i}\\ \\ &=w_i-\alpha\frac{1}{m}\sum_{i=1}^m(h_w(x^i)-y^i)x^i \end{aligned} wi+1=wiαwiJ(w)=wiαm1i=1m(hw(xi)yi)xi

详细推导见邱锡鹏书
实际运用中损失函数会加入L2范数防止过拟合,具体见logistic回归分类与softmax回归

二、Softmax回归

1. 基本概念

逻辑回归是二分类,Softmax回归是多分类,y值不再局限于0和1。是第一类、第二类、第三类这种概念,转成方便计算的形式一般写成one-hot,[1,0,0],[0,1,0],[0,0,1]分别对应第1、2、3类的形式。

2. 工作原理

和逻辑回归一样,计算方式分为两步,第一步,计算 w T x w^Tx wTx,第二步包裹Softmax函数。
考虑1个简单的图像分类问题:图像有4个像素,分别记为 x 1 , x 2 , x 3 , x 4 x_1,x_2,x_3,x_4 x1,x2,x3,x4,表示3种动物:狗、猫、鸡。
那么先进行第一步:
o 1 = w 11 x 1 + w 12 x 2 + w 13 x 3 + w 14 x 4 + b 1 o 2 = w 21 x 1 + w 22 x 2 + w 23 x 3 + 2 24 x 4 + b 2 o 3 = w 31 x 1 + w 32 x 2 + w 33 x 3 + 2 34 x 4 + b 3 \begin{array} {c}o_1=w_{11}x_1+w_{12}x_2+w_{13}x_3+w_{14}x_4+b_1\\ o_2=w_{21}x_1+w_{22}x_2+w_{23}x_3+2_{24}x_4+b_2\\ o_3=w_{31}x_1+w_{32}x_2+w_{33}x_3+2_{34}x_4+b_3 \end{array} o1=w11x1+w12x2+w13x3+w14x4+b1o2=w21x1+w22x2+w23x3+224x4+b2o3=w31x1+w32x2+w33x3+234x4+b3
第二步包裹Softmax:
y 1 ^ , y 2 ^ , y 3 ^ = S o f t m a x ( o 1 , o 2 , o 3 ) \begin{array} {c}\hat{y_{1}},\hat{y_{2}},\hat{y_{3}}=Softmax\big(o_{1},o_{2},o_{3}\big)\\ \end{array} y1^,y2^,y3^=Softmax(o1,o2,o3)
其中, y 1 ^ = exp ⁡ ( o 1 ) ∑ i = 1 3 exp ⁡ ( o i ) , y 2 ^ = exp ⁡ ( o 2 ) ∑ i = 1 3 exp ⁡ o i , y 3 ^ = exp ⁡ ( o 3 ) ∑ i = 1 3 exp ⁡ o i \hat {y_1}=\dfrac{\exp(o_1)}{\sum_{i=1}^3\exp(o_i)},\hat{y_2}=\dfrac{\exp (o_2)}{\sum_{i=1}^3\exp o_i},\hat{y_3}=\dfrac{\exp (o_3)}{\sum_{i=1}^3\exp o_i} y1^=i=13exp(oi)exp(o1),y2^=i=13expoiexp(o2),y3^=i=13expoiexp(o3)

y 1 ^ 、 y 2 ^ 、 y 3 ^ \hat {y_1}、\hat {y_2}、\hat {y_3} y1^y2^y3^分别是三种动物的概率,3类概率总和为 1。

写成矩阵计算的形式为:

系数矩阵为:
W = [ w 11 w 12 w 13 w 21 w 22 w 23 w 31 w 32 w 33 w 41 w 42 w 43 ] , b = [ b 1 b 2 b 3 ] , \mathbf{W}=\begin{bmatrix}w_{11}&w_{12}&w_{13}\\ w_{21}&w_{22}&w_{23}\\ w_{31}&w_{32}&w_{33}\\ w_{41}&w_{42}&w_{43}\end{bmatrix},\quad\mathbf{b}=\begin{bmatrix}b_1&b_2&b_3\end{bmatrix}, W= w11w21w31w41w12w22w32w42w13w23w33w43 ,b=[b1b2b3],
输入样本为:
x ( i ) = [ x 1 ( i ) x 2 ( i ) x 3 ( i ) x 4 ( i ) ] , \boldsymbol{x}^{(i)}=\begin{bmatrix}x^{(i)}_1&x^{(i)}_2&x^{(i)}_3&x^{(i)}_4\end{bmatrix}, x(i)=[x1(i)x2(i)x3(i)x4(i)],
上标 i i i 为样本序号。

输出为:
o ( i ) = [ o 1 ( i ) o 2 ( i ) o 3 ( i ) ] , \boldsymbol{o}^{(i)}=\left[\begin{array}{ccc}o_1^{(i)}&o_2^{(i)}&o_3^{(i)}\\ \end{array}\right], o(i)=[o1(i)o2(i)o3(i)],
概率为:
y ^ ( i ) = [ y ^ 1 ( i ) y ^ 2 ( i ) y ^ 3 ( i ) ] . \hat{\boldsymbol{y}}^{(i)}=\begin{bmatrix}\hat{y}_1^{(i)}\quad\hat{y}_2^{(i)}\quad\hat{y}_3^{(i)}\end{bmatrix}. y^(i)=[y^1(i)y^2(i)y^3(i)].
总体形式为:
o ( i ) = x ( i ) W + b , y ^ ( i ) = softmax ⁡ ( o ( i ) ) . \begin{array}{l}\boldsymbol{o}^{(i)}=\boldsymbol{x}^{(i)}\boldsymbol{W}+\boldsymbol{b},\\ \boldsymbol{\hat{y}}^{(i)}=\operatorname{softmax}(\boldsymbol{o}^{(i)}).\end{array} o(i)=x(i)W+b,y^(i)=softmax(o(i)).
第一步可以表示成神经网络的形式:
在这里插入图片描述

3.损失函数

同逻辑回归一样,此处也是使用交叉熵损失函数。
对于一个样本:
H = − ∑ j = 1 m y j log ⁡ y ^ j , H=-\sum_{j=1}^m y_j\log\hat{y}_j, H=j=1myjlogy^j,
其中, j j j 为分类数,本例中为狗猫鸡共3类。

对于多个样本,将所有样本的损失熵平均:
H = − 1 m ∑ i = 1 n ∑ j = 1 m y j ( i ) log ⁡ y ^ j ( i ) , H=-\frac1 m \sum_{i=1}^n\sum_{j=1}^m y_j^{(i)}\log\hat{y}_j^{(i)}, H=m1i=1nj=1myj(i)logy^j(i),
其中, i i i为样本, n n n为样本总量。

4.参数求解

同逻辑回归求解。

三、逻辑回归和Softmax回归的关系

逻辑回归是Softmax回归的二分类一般形式,详细推导见LR回归(逻辑回归)和softmax回归

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值