程序员数学 09:导数、积分与参数优化
微积分适合描述连续变化。在程序中,文件数、线程数和批量大小通常是整数,但连续模型仍能帮助我们找到候选范围;最终还需要检查约束和真实成本。
导数是局部变化率
对函数
若
导数是局部描述,不能把局部线性近似不加检查地用于很大的变化。
用一个成本模型找批量大小
假设每个任务的平均成本模型为:
第一项表示固定开销被批量摊薄,第二项表示批量增大带来的额外成本。系数是教学设定,单位已统一,不是某个框架的经验定律。
求导得
如果内存约束要求
梯度下降是一种迭代
以损失
取
js
let x = 0;
const learningRate = 0.1;
for (let step = 0; step < 2; step++) {
x -= learningRate * 2 * (x - 3);
}
console.log(x); // 1.08令误差
多变量时,把导数换成各偏导数组成的梯度。非凸问题中找到梯度接近零的位置,也不保证得到全局最优点。
积分把速率累加为总量
若理想化处理速率为
实际程序常按时间片求和近似积分。采样间隔、漏采和单位都会影响结果;速率乘以时间才是数量,不能直接把每秒速率相加当作任务总数。
练习
- 上述批量模型若约束为整数
,最优值在哪里? - 梯度下降例子中,步长改为 1,从 0 开始的前两次更新是什么?
- 固定速率 5 个/秒持续 4 秒,累计量是多少?
查看答案与讲解
。这个区间上导数为负,选择允许的最大值;模型成本为 。 ,并未收敛。只看第一步“跨过了最优点”不能判断接下来会变好。 个。若速率仅是区间内某一瞬间的采样,不能直接假设全程恒定。
资料与延伸
MIT 18.01SC 单变量微积分 包含导数、优化与积分材料。多变量优化还需结合线性代数、偏导和数值稳定性继续学习。
继续阅读
- 习题与解析
- 习题与解析
- 习题与解析