二分类 到 多分类 之 逻辑回归多分类推广

本文介绍了如何将二分类的逻辑回归推广到多分类问题,主要涉及概率值转换和loss定义。通过softmax函数将得分转换为概率,并使用交叉熵损失函数。在反向传播过程中,详细推导了参数的梯度计算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

二分类推广至多分类有众多方法:如OVR、OVO等算法。这些算法思想都比较直观,容易理解,但性能上相比二分类差了不少。那经典的二分类算法是怎么兼顾性能问题推广到多分类的呢?这里以逻辑回归算法为例,介绍其二分类推广形式。

1. 基本思路

首先,回顾一下二分类逻辑回归模型的基本思路,详情参见【Loss进化史】:

  1. 根据线性映射函数 f ( x ) = ω T x f(x)=\omega^T x f(x)=ωTx,得到样本属于正类的得分 score;
  2. 通过 sigmoid 函数将得分映射为概率值 probability ;
  3. 最后计算交叉熵作为 loss,反向梯度传播求解最优参数 ω \omega ω

在这里插入图片描述

既然已经知道了二分类的套路,那就把每一步都推广成向量形式,不就可以用于多分类了嘛(机智如我😃)。

先看第一步,一组 ω \omega ω 就可以得到一个得分,那两组不就可以得到两个得分了。反过来,几分类问题就设置几组 ω \omega ω 不就行了。 如下图,实线框代表二分类,加入虚线框后,即为三分类。

实线框代表二分类,加入虚线框后,即为三分类

第二步,将得分映射为概率值。sigmoid 函数只能将单个 score 转为probability,如果分别用 sigmoid 将每个 score 单独转换的话,虽然转换后的每个值都在区间 [0,1] 之间,但不能保证和为1,那就不能被当做概率值,伤脑筋😔

第三步,loss定义。交叉熵函数貌似有多分类形式,那好办了。

由于第一步只涉及到参数维度的调整,没什么好展开的,下面着重展开后面两步。

2. 概率值转换

对于二分类,逻辑回归模型的概率转换表达式为:

y = h θ ( x ) = 1 1 + e ( − ω T x ) y = h_\theta(x)=\dfrac{1}{1+e^{(-\omega^Tx)}} y=hθ(x)=1+e(ωTx)1

这里, y ∈ [ 0 , 1 ] y\in[0,1] y[0,1],为概率值。
假设样本的实际标签为 {0,1},则可根据如下公式判别样本的预测标签:

对于多分类,前面有提到,得到每个类别的得分并不困难,难的是如何把这些得分转换为概率值,使得所有类别的概率之和为1。对于二分类问题,可以通过sigmoid函数将属于某一类的得分 s s s 转换为概率值 p p p ,属于另一类的概率则理所应当的为 1 − p 1-p 1p。可对于多分类,这一点不成立。
我们可以尝试将上述分段函数的权重 ω \omega ω 替换一下,令 ω = ω 1 − ω 2 \omega = \omega_1-\omega_2 ω=ω1ω2,带入上式:

可以看到,这些函数的分子都是一样的,则属于第一类的概率正比于 e ω 1 T x e^{\omega_1^Tx} eω1Tx , 属于第二类的概率正比于 e ω 2 T x e^{\omega_2^Tx} eω2Tx ,那如何让所有的概率值为0,且保持这个正比关系呢?

聪明的前人想到了如下概率转换公式:

P ( y = k ) = e ω k T x e ω 1 T x + e ω 2 T x + . . . + e ω n T x = e ω k T x ∑ i n ( e ω i T x ) P(y=k) = \dfrac{e^{\omega_k^Tx}}{e^{\omega_1^Tx} + e^{\omega_2^Tx} + ...+e^{\omega_n^Tx}} = \dfrac{e^{\omega_k^Tx}}{\sum^n_i(e^{\omega_i^Tx})} P(y=k)=eω1Tx+eω2Tx+...+eωnTxeωkTx=in(eωiTx)eωkTx

哎,注意看哈。转换后,各个类别对应的值总和为1,且每个类别的概率值正比于其得分,这就是我们想要的概率值了。

3. loss定义

逻辑回归的 loss 为交叉熵函数,交叉熵函数能够衡量两个分布的相似性,其二分类和多分类的表达形式如下(具体参见 Loss进化史):
二分类:

L = 1 m ∑ i m L i = 1 m ∑ i m − [ y i ⋅ l o g ( p i ) + ( 1 − y i ) ⋅ l o g ( 1 − p i ) ] L = \dfrac{1}{m}\sum^m_iL_i=\dfrac{1}{m}\sum^m_i-[y_i \cdot log(p_i) +(1-y_i) \cdot log(1-p_i) ] L=m1imLi=m1im[yilog(pi)+(1yi)log(1pi)]

多分类:

L = 1 m ∑ i m L i = 1 m ∑ i m ∑ j n − y i j ⋅ l o g ( p i j ) L = \dfrac{1}{m}\sum^m_iL_i=\dfrac{1}{m}\sum^m_i\sum^n_j-y_{ij} \cdot log(p_{ij}) L=m1imLi=m1imjnyijlog(pij)

最终步骤对比图,如下所示:

在这里插入图片描述

4. 反向传播

如上图所示,逻辑回归的求导过程可分为三个子过程,即三项偏导的乘积:

∂ L i ∂ ω i = ∂ L i ∂ p i ⋅ ∂ p i ∂ s i ⋅ ∂ s i ∂ ω i \dfrac{\partial L_i}{\partial \omega_i} = \dfrac{\partial L_i}{\partial p_i} \cdot \dfrac{\partial p_i}{\partial s_i} \cdot \dfrac{\partial s_i}{\partial \omega_i} ωiLi=piLisipiωisi

4.1 二分类

4.1.1 第一项: ∂ L i ∂ p i \dfrac{\partial L_i}{\partial p_i} piLi

L i = − [ y i ⋅ l o g ( p i ) + ( 1 − y i ) ⋅ l o g ( 1 − p i ) ] L_i = -[y_i \cdot log(p_i) +(1-y_i) \cdot log(1-p_i) ] Li=[yilog(pi)+(1yi)log(1pi)],其中 p i p_i pi 表示样本 i i i 为正例的概率, y i y_i

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值