神经网络(二):Softmax函数与多元逻辑回归

作者: tgbaggio | 来源:发表于2018-10-01 14:22 被阅读14次

一、 Softmax函数与多元逻辑回归

为了之后更深入地讨论神经网络,本节将介绍在这个领域里很重要的softmax函数,它常被用来定义神经网络的损失函数(针对分类问题)。
根据机器学习的理论,二元逻辑回归的模型公式可以写为如下的形式:

P(y = 1) = \frac{1}{1 + e^{-XW^T + b}} \tag{1}

在公式(1)中,对分子、分母同时乘以,得到公式(2),其中,W_0 = W_1 - Wb_0 = b_1 - b

P(y = 1) = \frac{e^{XW_1^T + b_1}}{e^{XW_0^T + b_0} + e^{XW_1^T + b_1}}\\ P(y = 0) = \frac{e^{XW_0^T + b_0}}{e^{XW_0^T + b_0} + e^{XW_1^T + b_1}}\tag{2}

事实上,多元逻辑回归的模型公式也可以写成类似的形式。具体地,假设分类问题有个类,分别记为,则多元逻辑回归的模型可以表示为如下的形式。

\begin{cases} P(y = 1) = \frac{e^{X\beta_1 + c_1}}{1 +\sum_{j =1}^{k - 1} e^{X\beta_j + c_j}}\\ ... \\ P(y = 0) = \frac{1}{1 +\sum_{j =1}^{k - 1} e^{X\beta_j + c_j}} \end{cases} \tag{3}

不妨记W_i^T = W_0^T + \beta_ib_i = b_0 + c_i。在公式(3)中对分子分母同时乘以e^{XW_0^T + b_0},可以得到公式(4)。

P(y = l) = \frac{e^{XW_l^T + b_l}}{\sum_{j = 1}^{k - 1}e^{XW_j^T + b_j}} \tag{4}

公式(4)中的函数其实就是softmax函数(softmax function),记为\sigma(Z)。这个函数的输入是一个k维的行向量,而输出也是一个k维行向量,向量的每一维都在区间中,而且加总的和等于1,如图1所示。从某种程度上来讲,softmax函数与sigmoid函数非常类似,它们都能将任意的实数“压缩”到区间。

图1

在softmax函数的基础上,可以将逻辑回归转换成图的形式,这样可以更直观地在神经网络里使用这个模型(在机器学习领域,复杂的神经网络常被表示为图)。以二元逻辑回归为例,得到的图像如图2所示。图中的方块表示线性模型。另外值得注意的是,图2所表示的模型与《神经网络(一)》中的sigmoid神经元模型是一致的,只是图2可以很轻松地扩展到多元分类问题(增加图中方块的数目)。

图2

另外,借助softmax函数,逻辑回归模型的损失函数可以被改写为更简洁的形式,如公式(5)所示。

L = -\sum_i \sum_{j = 0}^{k - 1}1_{\{y = j\}}\ln(\frac{e^{XW_l^T + b_l}}{\sum_{j = 1}^{k - 1}e^{XW_j^T + b_j}})\tag{5}

那么,对于k元分类问题,假设第i个数据的类别是t,用一个k维的行向量\theta_i = (\theta_{i, 0}, \theta_{i, 1}, ..., \theta_{i, k - 1})来表示它的类别[^1]:这个行向量的第t个维度等于1,即\theta_{i, t} = 1,其他维度等于0,即\theta_{i, j} = 0, \forall j \neq t。基于此,逻辑回归在这一个数据点上的损失可以写成softmax函数与行向量\theta_i矩阵乘法的形式(也可以认为是向量内积的形式),如公式(6)所示,其中Z_i = (X_iW_0^T + b_0, ..., X_iW_{k - 1}^T + b_{k - 1})是一个k维的行向量。

L_i = -\theta_i\ln\sigma(Z_i)^T

类似地,整个模型的损失函数也可以写为矩阵乘法的形式(因为L = \sum_i L_i),这样的形式对神经网络的工程实现十分有用,在之后的讨论里会经常遇到基于它的代码实现。

二、广告时间

这篇文章的大部分内容参考自我的新书《精通数据科学:从线性回归到深度学习》

李国杰院士和韩家炜教授在读过此书后,亲自为其作序,欢迎大家购买。

相关文章

  • 神经网络(二):Softmax函数与多元逻辑回归

    一、 Softmax函数与多元逻辑回归 为了之后更深入地讨论神经网络,本节将介绍在这个领域里很重要的soft...

  • README.md

    ex1 - 线性回归 ex2 - 逻辑回归(二元分类) ex3 - 逻辑回归(多元分类) 与 神经网络 ex4 -...

  • 使用神经网络进行回归

    由于与逻辑回归的关系,人工神经网络通常被认为仅用于分类:神经网络通常使用逻辑激活函数并且输出0到1的值,如逻辑回归...

  • 机器学习-从线性回归到神经网络

    outline 线性回归 逻辑回归 softmax回归 神经元模型 激活函数 多层网络 本文主要简单介绍从线性回归...

  • softmax回归

    softmax是逻辑回归的泛化算法 因为逻辑回归只能做二分类或者多个二分类 但是softmax可以直接做多分类 对...

  • UD机器学习 - C5 深度学习

    1 神经网络 sigmod函数和softmax函数最大似然概率和交叉熵和多类别交叉熵Logistic回归和梯度下降...

  • 神经网络02

    softmax 函数 显示图像 神经网络推理处理

  • TensorFlow HOWTO 1.4 Softmax 回归

    1.4 Softmax 回归 Softmax 回归可以看成逻辑回归在多个类别上的推广。 操作步骤 导入所需的包。 ...

  • 深度学习-1

    深度学习基础 介绍单层神经网络:线性回归和softmax回归多层神经网络:多层感知机 1.线性回归 例如房价预测,...

  • chap.3

    逻辑回归 高级方法 多元分类情况,转换成二分法,1vs all 梯度下降还是要在温习下,代价函数 逻辑回归

网友评论

    本文标题:神经网络(二):Softmax函数与多元逻辑回归

    本文链接:https://www.haomeiwen.com/subject/exdnoftx.html