R10 · 同一份 logits,怎样变成一次训练损失?
R09已连接分数与分布。这条延伸只取输出接口做一次手算,检查真实下一词如何形成loss,并把信号送回产生分数的参数。
状态 b0
前缀已到I gave her a,book是批改目标。先区分已知输入、三个候选和正确标签。
状态 b1
分数指数化为1、2、3,再除以总和6。观察同一列从logit变成候选概率。
状态 b2
从book的概率取负对数得到loss,再读p减one-hot的梯度。目标项的负号解释了局部下降方向如何提高其相对分数。
实际计算softmax时,可先减去这一组最大logit再指数化;各候选共同平移不改变概率,但能降低数值溢出风险。
公式与算例详情
本例将前缀推进到I gave her a,并另设her、a、book三候选;它是独立输出接口手算,不与R09五候选图当作同一次前向。
为只关注输出接口,设三个候选的logits为$[0,\ln2,\ln3]$。softmax先指数再除以和,得到$[1/6,1/3,1/2]$。真实目标为第三个候选book,损失$L=-\ln p(book)=\ln2\approx0.6931$ nats。
对logits求导为$p-y$,即$[1/6,1/3,-1/2]$。这表明梯度下降在输出接口上会推动目标相对得分增加;实际共享参数更新还同时影响其他样本,不意味着每一次更新都会提高所有预测准确率。损失评估真实目标概率,不等于只判断argmax是否猜中;生成选择是另外一步。
原课页采用记录:M07 LM究竟预测什么、M10 RNN怎样训练。页码均按PDF物理页计。
继续学习
本页自学核对:沿给定 logits 复算 softmax 与正确词 loss;整理成概率、归一化和损失。
若loss的数值会算,却不清楚它与生成好坏的关系,可进入《把预测、训练与评价摊在同一张样本表上》;动手时打开LAB01的“B · 同一预测目标,三个模型;训练一次,生成多次”:固定同一预测目标,比较NLL与自由生成输出;核对梯度更新的是模型参数。 实施范围见实验路线B。