2.3 多类分类
在二元分类中,目标变量 的可能取值只有 ;现在我们将二元分类进行拓展,让 取 :即更多的类。我们该如何建模呢?
在这种情况下, 是多项分布。多项分布包含了 个参数 ,它们表示了出现各个结果的概率,并满足 。我们将会构造一个模型,使得输出的 满足上述条件。
我们引入 组参数 ,每一个都是 中的向量。依照我们先前的经验,我们会使用 来表示 ,但这种方法有两种问题:一是 不一定落在区间 内部;二是 不一定为 。因此,我们不能使用这种简单的方法。一种解决思路是使用 函数将 转化为概率向量,使得每一个分量都非负且总和为 。
定义函数 如下
其中,输入项向量 常常被称作逻辑特 (logits)。
下面,我们令 ,这样我们就能够利用 函数,将线性向量转变为合法的概率向量。我们不妨将输出的概率向量作为条件概率 ,然后我们就得到了下面的概率模型
为了记号的简洁,我们令 ,于是有
接下来我们对单个训练样本 计算负对数似然函数:
损失函数,即整个训练集的负对数似然函数为
我们定义交叉熵损失函数 为
使用这个记号,我们可以把 改写为
交叉熵损失函数的梯度表达式极其简洁。如果令 ,结合 ,可推导出
其中 为指示函数,即
若将上面的梯度写成向量形式,则有
其中 是第 个自然基向量。由链式法则,我们有
其中 是模型预测 样本的输出为 的概率。
在计算出上面梯度的基础上,我们可以利用梯度下降法,使得损失函数 最小化。