机器学习和人工智能入门大数据深度学习·神经网络·计算机视觉

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

2018-10-01  本文已影响14人  tgbaggio

一、 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),这样的形式对神经网络的工程实现十分有用,在之后的讨论里会经常遇到基于它的代码实现。

二、广告时间

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

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

上一篇 下一篇

猜你喜欢

热点阅读