广义线性模型(5)Softmax回归

根据文章 广义线性模型(4)逻辑回归(Logistic regression)多分类实战:一文掌握 One-vs-All 策略 我们已经知道,逻辑回归是一种处理二分类问题的常用方法,当需要处理多分类问题是,除了使用 One vs All 策略之外,我们还可以选择使用Softmax回归多分类器。

softmax函数又称归一化指数函数,是基于 sigmoid 二分类函数在多分类任务上的推广;在多分类网络中,常用 Softmax 作为最后一层进行分类。

一 原理

1.1 从逻辑回归到 Softmax

softmax 回归(softmax regression)其实是 logistic 回归模型在多分类问题上的推广,logistic 回归用于二分类,而 softmax 回归用于多分类,从 广义线性模型(4)逻辑回归(Logistic regression) 中我们知道,逻辑回归模型的输出是样本点标记为正样本的概率 p p p,其函数形式为:

因为是二分类,所以输出标记为正样本的概率也就可以得到标记为负样本的概率 1 − p 1-p 1p 了,如果是多分类呢,只知道一个类别的概率肯定不能推出其他的,所以需要把样本点被标记为各个类别的概率都输出才行,因此,Softmax回归模型的形式为:

式中, θ 0 , θ 1 , θ 2 , . . . + θ k ∈ R θ_0,θ_1,θ_2,...+θ_k\in R θ0,θ1,θ2,...+θkR 为模型参数, 1 ∑ j = 1 k e θ j T x i \frac{1}{\sum_{j=1}^k e^{θ_j^T x_i}} j=1keθjTxi1 为归一化因子,其作用是使各个类别对应的输出结果值域为 [ 0 , 1 ] [0,1] [0,1],并且和为 1,即使结果表现为概率的形式。

我们之前说逻辑回归可以理解为有两部分:一个线性回归和一个 sigmod 函数做值域映射,Softmax 回归是将 logistic 回归中的 sigmod 函数换成了 Softmax 函数,当然,可以认为 Softmax 函数是 logistic 函数的一种一般化推广,对多个类别中的一个类别 i i i 来说:

p ( y = i ∣ x , θ ) = e θ i T x ∑ j = 1 k e θ j T x p(y=i|x,θ)=\frac{e^{θ_i^T x}}{\sum_{j=1}^k e^{θ_j^T x}} p(y=ix,θ)=j=1keθjTxeθiTx

1.2 图解 Softmax

Softmax函数的计算过程可以用下图来理解,与线性回归一样,softmax回归也是一个单层神经网络。 由于计算每个输出 o 1 o1 o1 o 2 o2 o2 o 3 o3 o3取决于 所有输入 x 1 x1 x1 x 2 x2 x2 x 3 x3 x3 x 4 x4 x4, 所以softmax回归的输出层也是全连接层。这里 Softmax 在神经网络中作为激活函数:

未添加Softmax作为激活函数时的神经网络结构:

添加 Softmax 作为激活函数时的神经网络结构:

在softmax回归中,包括了两个步骤。

  1. 线性输出:输入一个样本的特征向量,输出多个线性预测结果。

  2. Softmax运算:将这些结果输入到softmax函数,softmax函数会将多个线性输出,转换为每个类别的概率。

先看步骤1线性输出:

o 1 = x 1 w 11 + x 2 w 12 + x 3 w 13 + x 4 w 14 + b 1 , o 2 = x 1 w 21 + x 2 w 22 + x 3 w 23 + x 4 w 24 + b 2 , o 3 = x 1 w 31 + x 2 w 32 + x 3 w 33 + x 4 w 34 + b 3 . \begin{split}\begin{aligned} o_1 &= x_1 w_{11} + x_2 w_{12} + x_3 w_{13} + x_4 w_{14} + b_1,\\ o_2 &= x_1 w_{21} + x_2 w_{22} + x_3 w_{23} + x_4 w_{24} + b_2,\\ o_3 &= x_1 w_{31} + x_2 w_{32} + x_3 w_{33} + x_4 w_{34} + b_3. \end{aligned}\end{split} o1o2o3=x1w11+x2w12+x3w13+x4w14+b1,=x1w21+x2w22+x3w23+x4w24+b2,=x1w31+x2w32+x3w33+x4w34+b3.

在某多分类问题中,有三个目标类别o1、o2、o3,四个输入特征,x1到x4。

softmax回归会基于输入x,计算o1、o2、o3三个线性输出。

我们可以将softmax回归,看做是一个具有多个输出的单层神经网络。

我们可以基于矩阵,计算线性输出o。

例如,在计算 o=Wx+b 时,W 是一个3 * 4的权重矩阵,b代表了一个3 * 1的偏置列向量,x是 4 * 1的特征向量。经过计算,会得到 3 * 1 的输出结果 o。

计算出线性输出o后,进行步骤2(Softmax运算):

将 o 输入到 softmax 函数,从而将线性输出 o 转换为每个类别的预测概率 y。

只看从最后一层输出到激活函数计算的过程,跟我们上面的公式是完全一样的:

通过下图可以帮助理解Softmax是怎么在分类中起作用的,就是选概率大的那个类别:

二 模型参数求解

三 softmax VS OVA策略

如果你在开发一个音乐分类的应用,需要对k种类型的音乐进行识别,那么是选择使用 softmax 分类器呢,还是使用 logistic 回归算法建立 k 个独立的二元分类器呢?

在实际使用中:

  • 如果模型输出为非互斥类别,且可以同时选择多个类别,则采用OVA策略。
  • 如果模型输出为互斥类别,且只能选择一个类别,则采用Softmax回归。

例如,如果你有四个类别的音乐,分别为:古典音乐、乡村音乐、摇滚乐和爵士乐,那么你可以假设每个训练样本只会被打上一个标签(即:一首歌只能属于这四种音乐类型的其中一种),此时你应该使用类别数 k = 4 的softmax回归。(如果在你的数据集中,有的歌曲不属于以上四类的其中任何一类,那么你可以添加一个“其他类”,并将类别数 k 设为5。)

如果你的四个类别如下:人声音乐、舞曲、影视原声、流行歌曲,那么这些类别之间并不是互斥的。例如:一首歌曲可以来源于影视原声,同时也包含人声 。这种情况下,使用4个二分类的 logistic 回归分类器更为合适。这样,对于每个新的音乐作品 ,我们的算法可以分别判断它是否属于各个类别。

现在我们来看一个计算视觉领域的例子,你的任务是将图像分到三个不同类别中。

  1. 假设这三个类别分别是:室内场景、户外城区场景、户外荒野场景。你会使用sofmax回归还是 3个logistic 回归分类器呢?

  2. 现在假设这三个类别分别是室内场景、黑白图片、包含人物的图片,你又会选择 softmax 回归还是多个 logistic 回归分类器呢?

在第一个例子中,三个类别是互斥的,因此更适于选择softmax回归分类器 。而在第二个例子中,建立三个独立的 logistic回归分类器更加合适。

  • 32
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大数据AI

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值