Vince Jiang

CSCI3230 / 课程伴读 · 本站更新

CSCI3230 L03 · Part 4/5 Summary

课程:CSCI3230 (ESTR3108) Fundamentals of Artificial Intelligence · 2026T1 本讲:L03,第 4 部分 / 共 5 部分 · 原件 L03-Logistic-Regression-2026T1.pdf(本地课件) p.53–55 定位:用一句完整的因果链解释逻辑回归,而不是孤立背 sigmoid 公式。 前后:上一份 Optimizing logistic regression · 下一份 ESTR3108:凸性与解析解

p.53 为 Summary 分节页。到这里先停下来,把这一讲变成一条能亲手运行的链,而不是五个背过但互不连接的名词。你应已经能读一个特征向量,知道 sigmoid 把分数变成概率,知道训练如何修改参数;哪一环不熟,就回该环,不必硬读后面的矩阵证明。

模型、目标、求解分别回答什么(p.54–55)

p.54 列出分类、逻辑回归、交叉熵、梯度下降。它们分别回答不同问题。

问题 对应对象 输入与输出
想预测什么? 二分类任务 输入特征,输出0或1类别
参数已知时怎样预测? 逻辑回归模型 特征和参数先算分数,再算正类概率
参数好不好? 交叉熵损失 概率与真实标签得到一个损失数
参数怎样变好? 梯度下降 旧参数与梯度得到新参数

补充·用同一条数据走完一圈(数字自取,不是作业):一维特征 x=2x=2,标签 y=1y=1;增广输入为 (1,2)(1,2),参数 (b,w)=(0,0)(b,w)=(0,0),学习率0.1。先算分数 z=b+wx=0z=b+wx=0,概率 q=σ(0)=0.5q=\sigma(0)=0.5。真实标签为1,只取 −ln⁡q-\ln q 这一项,损失为 ln⁡2≈0.6931\ln2\approx0.6931。

接着,概率残差是 q−y=−0.5q-y=-0.5。截距对应常数特征1,所以其梯度为−0.5;权重对应特征2,所以其梯度为−1。向量梯度为 (−0.5,−1)(-0.5,-1),减去0.1倍梯度,得到新参数 (0.05,0.1)(0.05,0.1)。

不要到这里就以为检查完成。把新参数放回模型:新分数 0.05+0.1(2)=0.250.05+0.1(2)=0.25,新概率约0.5622,标签为1的损失约0.5759,比原来小。这一轮确实把该单样本推向正确方向。单样本演示没有证明模型能推广到新数据;泛化仍要用未参与训练的数据检验。

看清训练与预测的区别:训练需要标签来形成残差;预测新样本不需要标签。 不能把预测时的未知标签塞进损失,再说模型完成了预测。同样,阈值化是最后的决策,不放在可微损失中代替原概率。

把它和L02比较:线性回归用线性分数直接预测连续量,RSS衡量数值残差;这里把分数经sigmoid变成类别概率,用交叉熵衡量与标签的匹配。两者保留了特征表示、共享参数和训练/测试分工。后续SVM仍会使用分类分数,但选择边界的出发点换成几何间隔;现在先把本讲这一条链掌握,不必提前学习下一讲全部公式。

初学者可以用下面的顺序排查卡点:

  1. 不知道0/1是什么意思:回分类问题,先明确正类编码。
  2. 不懂为什么有指数:回逻辑回归模型,从odds和logit反解。
  3. 不懂为什么有对数:回交叉熵与梯度下降,先算两个真实标签概率的乘积。
  4. 不懂每次参数怎样改:先手算单样本,再累加两条样本贡献,最后写矩阵。
  5. 想知道为何是凸的:主线熟悉后读ESTR凸性证明,不要把它当第一次理解预测流程的门槛。

小检查:把学习率从0.1改为0.01,会改变 sigmoid 的公式吗?把分类阈值从0.5改为0.8,会重新学出一组参数吗?

参考答案

学习率改变训练时每步参数调整幅度,不改变模型函数的定义。阈值改变已训练模型如何将概率变成标签,本身不触发重新训练。损失、优化设置、决策阈值属于不同层面。

p.55 列出延伸阅读:Cosma Shalizi 的 Advanced Data Analysis from an Elementary Point of View Chapter 12,以及 The Elements of Statistical Learning, 2nd edition, §4.4。本篇只转述讲义的阅读入口,没有声称本轮已读这两章,也没有据此增加教师要求。

补充 · 不训练也能改变分类结果的那个旋钮(通识讲解;演示数据不属于原题)。

保持参数不变,概率也不变;只把阈值从 0.5 改成 0.8,就可能把概率为 0.7 的样本由正类改成负类。这不是“模型重新学习了”,而是使用模型的决策规则变了。若阈值被用于选最好结果,它也属于需要在验证集上选择的设置,不能反复查看测试标签再挑阈值。

反过来,梯度下降改变参数,会同时改变许多样本的分数和概率。区分这两个动作后,就能解释为何报告模型时应同时交代训练目标、参数获得方式和评价阈值。只写“用了 Logistic,准确率多少”还不足以复现判断过程。

**把 p.54 的四项原总结还原成一套公式:**分类先定义 y∈{0,1}y\in\{0,1\};模型给 q=σ(xTθ)q=\sigma(x^T\theta);单条损失为 −yln⁡q−(1−y)ln⁡(1−q)-y\ln q-(1-y)\ln(1-q);求和梯度为 ∑i(qi−yi)xi\sum_i(q_i-y_i)x_i,更新时减去其 α\alpha 倍。预测新样本则只计算前两步,再按 q≥0.5q\ge0.5 判 1,不需要未知标签。四个环节的变量、输入与输出已在本篇一条数据的例子中逐一算出。

补充:损失改善与准确率改善为什么不是同步发生

自取两个真实正类样本,模型A分别给概率0.51与0.51,阈值0.5下都判对,准确率100%;总交叉熵为 −2ln⁡0.51≈1.3467-2\ln0.51\approx1.3467。模型B给0.49与0.99,第一条判错,准确率50%;总交叉熵却为 −ln⁡0.49−ln⁡0.99≈0.7234-\ln0.49-\ln0.99\approx0.7234,更低。

不是交叉熵算错了。准确率只问概率在哪一侧,0.51与0.99只要同侧就记同一个“对”;交叉熵还在意给真实标签分配多少概率。第二条从0.51到0.99的改善,足以抵过第一条从0.51到0.49的损失增加。总损失优化允许不同样本的贡献相互补偿。

因此做梯度下降验算时,应以实际定义的目标检查该步,不把“这一步准确率没涨”直接当作梯度错误。选择最终系统仍要看任务需要的评价指标,不能反过来把更低交叉熵自动翻译成每一种分类指标都更好。两种评价各回答一个明确问题。

本讲核心考点

  • 将任务、模型、目标与求解方法分开,再把输入输出接起来(p.54,C级通识)。
  • 能完整走通一次预测→损失→梯度→更新→复算,而不是只背梯度式(p.54承接p.50,C级通识)。
  • p.55 是阅读建议;p.56 开始为ESTR3108扩展,不自动等于CSCI3230基础必需内容。

附录

建议合上笔记自述:“参数先决定分数,分数决定概率;标签决定概率错在哪;损失将错的程度量化;梯度告诉参数怎样小步调整。” 若其中一句说不清,回对应正文用一组自取数字算一次,比重复抄写整页公式更有效。

来源与证据

逐页核对当前 L03-Logistic-Regression-2026T1.pdf(本地课件) p.53–55,另核对p.56的ESTR分界。例子为教学补充。考试证据:本篇未据旧卷推断当前考试安排,核心考点为C级通识。