4.8 多项逻辑回归中的学习
多项逻辑回归的损失函数把二元逻辑回归的损失从 2 类推广到 K 类。回顾二元逻辑回归的交叉熵损失(式 4.19):
LCE(y^,y)=−logp(y∣x)=−[ylogy^+(1−y)log(1−y^)](4.37) 多项逻辑回归把式 4.37 中的两项——y=1 时非零的一项和 y=0 时非零的一项——推广为 K 项。此时,y 和 y^ 都表示向量。真实标签 y 有 K 个元素,每个元素对应一个类别;若正确类别为 c,则 yc=1,其余元素均为 0。分类器输出的估计向量 y^ 也有 K 个元素,每个 y^k 表示估计概率 p(yk=1∣x)。
对单个样本 x,损失函数是 K 个输出类别的对数之和,每项以指示值 yk 加权(式 4.38)。它恰好等于正确类别 c 的负对数概率(式 4.39):
LCE(y^,y)=−∑k=1Kyklogy^k=−logy^c,(c 为正确类别)=−logp^(yc=1∣x)=−log∑j=1Kexp(wj⋅x+bj)exp(wc⋅x+bc)(4.38–4.40) 为什么式 4.38 会化为式 4.39?因为只有一个类别 c 正确,向量 y 只在 k=c 时取 1,即 yc=1 且 yj=0,∀j=c。因此式 4.38 求和中除真实类别 c 对应的项之外,其余各项均为 0。交叉熵损失便是正确类别输出概率的负对数,所以式 4.39 也称为负对数似然损失(negative log likelihood loss)。
进行梯度下降时,真正需要的是损失的梯度。单个样本的梯度与式 4.26 中二元逻辑回归的梯度 (y^−y)x 非常相似。考察其中一个权重:对每个类别 k,输入 x 第 i 个元素的权重为 wk,i。损失对 wk,i 的偏导数,就是类别 k 的真实值(0 或 1)与分类器输出概率之差,再以输入值 xi 加权:
∂wk,i∂LCE=−(yk−y^k)xi=−(yk−p(yk=1∣x))xi=−(yk−∑j=1Kexp(wj⋅x+bj)exp(wk⋅x+bk))xi(4.41)