一、 Softmax函数与多元逻辑回归
为了之后更深入地讨论神经网络,本节将介绍在这个领域里很重要的softmax函数,它常被用来定义神经网络的损失函数(针对分类问题)。
根据机器学习的理论,二元逻辑回归的模型公式可以写为如下的形式:
在公式(1)中,对分子、分母同时乘以,得到公式(2),其中,;。
事实上,多元逻辑回归的模型公式也可以写成类似的形式。具体地,假设分类问题有个类,分别记为,则多元逻辑回归的模型可以表示为如下的形式。
不妨记,。在公式(3)中对分子分母同时乘以,可以得到公式(4)。
公式(4)中的函数其实就是softmax函数(softmax function),记为。这个函数的输入是一个维的行向量,而输出也是一个维行向量,向量的每一维都在区间中,而且加总的和等于1,如图1所示。从某种程度上来讲,softmax函数与sigmoid函数非常类似,它们都能将任意的实数“压缩”到区间。
在softmax函数的基础上,可以将逻辑回归转换成图的形式,这样可以更直观地在神经网络里使用这个模型(在机器学习领域,复杂的神经网络常被表示为图)。以二元逻辑回归为例,得到的图像如图2所示。图中的方块表示线性模型。另外值得注意的是,图2所表示的模型与《神经网络(一)》中的sigmoid神经元模型是一致的,只是图2可以很轻松地扩展到多元分类问题(增加图中方块的数目)。
另外,借助softmax函数,逻辑回归模型的损失函数可以被改写为更简洁的形式,如公式(5)所示。
那么,对于元分类问题,假设第个数据的类别是,用一个维的行向量来表示它的类别[^1]:这个行向量的第个维度等于1,即,其他维度等于0,即。基于此,逻辑回归在这一个数据点上的损失可以写成softmax函数与行向量矩阵乘法的形式(也可以认为是向量内积的形式),如公式(6)所示,其中是一个维的行向量。
类似地,整个模型的损失函数也可以写为矩阵乘法的形式(因为),这样的形式对神经网络的工程实现十分有用,在之后的讨论里会经常遇到基于它的代码实现。
二、广告时间
这篇文章的大部分内容参考自我的新书《精通数据科学:从线性回归到深度学习》。
李国杰院士和韩家炜教授在读过此书后,亲自为其作序,欢迎大家购买。
另外,与之相关的免费视频课程请关注这个链接