\[ \begin{align}\begin{aligned}\newcommand{\ba}{\boldsymbol{a}}
\newcommand{\bb}{\boldsymbol{b}}
\newcommand{\be}{\boldsymbol{e}}
\newcommand{\bw}{\boldsymbol{w}}
\newcommand{\bx}{\boldsymbol{x}}
\newcommand{\by}{\boldsymbol{y}}
\newcommand{\bz}{\boldsymbol{z}}
\newcommand{\bd}{\boldsymbol{d}}
\newcommand{\bv}{\boldsymbol{v}}
\newcommand{\bs}{\boldsymbol{s}}\\\newcommand{\btheta}{\boldsymbol{\theta}}
\newcommand{\bbeta}{\boldsymbol{\beta}}
\newcommand{\bgamma}{\boldsymbol{\gamma}}
\newcommand{\bsigma}{\boldsymbol{\sigma}}
\newcommand{\md}{\mbox{d}}
\newcommand{\bmu}{\boldsymbol{\mu}}
\newcommand{\bone}{\boldsymbol{1}}
\newcommand{\trans}{^{\rm\scriptsize T}}
\newcommand{\var}{\mathrm{var}}\\\newcommand{\bA}{\boldsymbol{A}}
\newcommand{\bB}{\boldsymbol{B}}
\newcommand{\bC}{\boldsymbol{C}}
\newcommand{\bD}{\boldsymbol{D}}
\newcommand{\bG}{\boldsymbol{G}}
\newcommand{\bI}{\boldsymbol{I}}
\newcommand{\bM}{\boldsymbol{M}}
\newcommand{\bP}{\boldsymbol{P}}
\newcommand{\bS}{\boldsymbol{S}}
\newcommand{\bU}{\boldsymbol{U}}
\newcommand{\bW}{\boldsymbol{W}}
\newcommand{\bX}{\boldsymbol{X}}
\newcommand{\bY}{\boldsymbol{Y}}
\newcommand{\bZ}{\boldsymbol{Z}}
\newcommand{\cotp}{\textcolor[RGB]{48,209,88}{TP}}
\newcommand{\cotn}{\textcolor[RGB]{100,210,255}{TN}}
\newcommand{\cofp}{\textcolor[RGB]{94,92,230}{FP}}
\newcommand{\cofn}{\textcolor[RGB]{191,90,242}{FN}}\\\newcommand{\numcotp}{\textcolor[RGB]{48,209,88}{50}}
\newcommand{\numcotn}{\textcolor[RGB]{100,210,255}{30}}
\newcommand{\numcofp}{\textcolor[RGB]{94,92,230}{10}}
\newcommand{\numcofn}{\textcolor[RGB]{191,90,242}{10}}
\DeclareMathOperator*{\argmin}{arg\,min}\end{aligned}\end{align} \]
Python 与基础模型回顾
学习目标与记号
深度学习实验依赖可靠的数据表示、数值计算和基础统计模型。本章以 Python 与 NumPy 为工具,回顾数组、广播和向量化,并通过线性回归、逻辑回归、损失函数与梯度优化建立“数据—模型—损失—优化—评估”的基本流程;学习目标是能够辨认张量维度、解释概率预测,并完成可复现且无数据泄漏的基础实验。
准确解释 Python 科学计算、数据表示与线性模型;
根据公式和张量维度分析概率分类,并识别常见实现错误;
用 Python 实现或验证实验可复现性,通过受控实验解释结果。
本章沿用统一记号:普通小写字母表示标量,粗体小写字母表示向量,粗体大写字母表示矩阵或高阶张量;样本编号写作下标;转置写作 \(\trans\)。除非另有说明,单个向量均为列向量。若第 \(i\) 个样本的特征列向量为 \(\bx_i\in\mathbb{R}^{d}\),则由 \(n\) 个样本组成的特征矩阵统一写为 \(\bX=[\bx_1\trans;\ldots;\bx_n\trans]\in\mathbb{R}^{n\times d}\)。方括号中的分号表示换到矩阵的下一行,因此 \(\bx_i\trans\) 是 \(\bX\) 的第 \(i\) 行;后文凡是由多个列向量按行组成矩阵,都采用这种写法。本章各节的程序均应同时检查数值结果和数组维度。
核心推导与实现核验
核心关系
\[\text{数据}\rightarrow\text{模型}\rightarrow\text{损失}\rightarrow\text{优化}\rightarrow\text{评估}.\]
推导路径。 这条流程先把原始样本变成维度明确的数组,再定义从输入到预测的函数,以损失量化预测误差,用优化算法估计参数,最后只在独立数据上报告泛化性能。
评估原则
测试集只能用于最终评价,不能参与模型、超参数或训练方案的选择。模型选择和调参应使用验证集;确定并冻结全部方案后,再使用测试集报告模型的最终性能。
数据规模
根据 按行组成矩阵的记号,若数据集有 \(n\) 个样本、每个样本有 \(d\) 个特征,则特征矩阵 \(\bX=[\bx_1\trans;\ldots;\bx_n\trans]\) 的大小为 \(n\times d\),标签向量 \(\by\) 包含 \(n\) 个标签。
常见误区
把代码能运行当作模型正确、在训练集上调全部设置、以及混用样本轴和特征轴,都会产生难以察觉的错误。
动手检查
把公式 \(\text{数据}\rightarrow\text{模型}\rightarrow\text{损失}\rightarrow\text{优化}\rightarrow\text{评估}\) 分解为可独立检查的中间量,使用简单数据手工计算结果,并检查输出是否满足模型必须具备的性质;如果已有可靠的程序库实现,还应将两者的结果进行比较。
数值稳定性与规模
先检查公式中哪些运算可能造成数值过大、数值过小、除以零或矩阵求解不稳定,再采用相应的稳定计算方法,例如改写指数与对数运算、在分母中加入很小的正数、限制数值范围或分批处理数据。最后使用很大、很小或接近零的输入进行测试,确认程序不会产生无穷大或无效数值。
本章小结
先确定数据与张量约定,再讨论模型。
损失函数用于指导模型训练,评价指标用于衡量模型在实际任务中的表现。
可复现、无泄漏的实验流程是后续章节的共同基础。