实验方法先明确问题,再比较结果
比较两个方法之前,先写下希望回答的问题。它可以是“在相同数据条件下,哪个方法的预测误差更小”,也可以是“增加某个模块后,稳定性是否改善”。问题越具体,需要控制的条件就越清楚。
一次有解释力的比较,应尽量保持数据划分、输入信息和评价方式一致。训练过程中用于选择参数的数据,与最终用于评价的数据承担不同任务。如果反复查看最终评价结果并据此修改方法,这部分数据就不再是独立的检验。
观察到差异后,还需要看它是否集中于少数样本、是否随随机种子变化,以及改善是否伴随额外计算成本。平均值有助于概括表现,但分组结果和误差分布常常能解释更多。
把“观察到了什么”和“为什么会这样”分别写清楚:前者来自结果,后者需要进一步的证据。
数学直觉把线性变换看作坐标的变化
一个向量可以用一组基向量的线性组合表示。知道变换如何作用于每个基向量,就能知道它如何作用于任意向量。这是矩阵可以用有限个数描述整个线性变换的原因。
矩阵的每一列,是对应基向量经过变换后的坐标。矩阵乘以向量时,向量中的坐标决定了这些列以什么权重相加。将这个过程画在二维平面上,可以直接看到拉伸、旋转、投影或它们的组合。
线性变换保留向量加法与数乘关系,但不一定保留长度和角度。理解保留了什么、改变了什么,通常比单纯记住运算公式更有帮助。
计算实践让一次计算可以重新发生
可复现的工作从保留原始输入开始。预处理规则、参数、软件版本和随机种子需要有明确记录;重要输出应能追溯到生成它的具体步骤。
最小的有效记录并不复杂:说明使用了哪一份数据、运行了什么命令、设置了哪些参数,以及如何判断输出是否正确。对结果做一项关键检查,往往比堆积大量不相关的测试更有价值。
随机种子只能控制部分随机过程。不同硬件、并行计算方式或依赖版本仍可能带来差异,因此复现时既要检查具体数值,也要确认主要结论是否保持一致。