④ 优化思想(含 ML 优化)(20 天)
高级工程师的本质工作就是做优化:在约束条件下,找到尽可能好的方案。 这个模块把通用优化思维和 ML 优化(梯度下降、正则化)合并在一起——它们本质是同一件事。
资源
主资源:
- 《Algorithms to Live By》(用算法思维解决生活问题,建立直觉)
- 3Blue1Brown 神经网络系列 Ep1-Ep2(梯度下降作为优化方法的经典案例)
辅助资源:
- LeetCode 贪心/DP 简单题(5-10 道,巩固概念,不是题海)
- 《System Design Interview》中关于权衡的章节
第一周:优化问题的本质(Day 1-7)
Day 1-2:最优化问题怎么定义
- [ ] 任何优化问题都只有三件事:目标函数、约束条件、可行域
- [ ] 理解:工程决策 = 多目标优化(没有完美方案,只有权衡)
- [ ] 实例:设计一个 API 限流器 → 目标(吞吐量最大化)+ 约束(不超过 QPS 上限)+ 可行域(算法选择)
Day 3-4:精确 vs 近似 vs 启发式
- [ ] 精确解:能找到但代价高(NP-hard 问题)
- [ ] 近似算法:有理论保证的"差不多最优"
- [ ] 启发式:工程中最常用,没理论保证但跑得快
- [ ] 理解:工程上"够好且快" > "完美但慢"
Day 5-6:经典策略直觉
- [ ] 贪心:每步选当前最优 → 什么时候能保证全局最优?(拟阵结构)
- [ ] 动态规划:记下子问题的答案避免重复计算 → 什么问题能用 DP?(最优子结构 + 重叠子问题)
- [ ] 刷 3-5 道 LeetCode 贪心/DP 简单题巩固直觉
Day 7:案例 — 梯度下降(从优化视角理解)
- [ ] 梯度下降 = 沿着目标函数值下降最快的方向走(模块②微积分的梯度在这里落地)
- [ ] 损失函数 = 要最小化的目标函数(MSE、交叉熵等)
- [ ] 学习率 = 每一步走多远(太大震荡、太慢收敛)
- [ ] 正则化 = 给目标函数加约束(L1/L2 惩罚项 = 拉格朗日乘子的直觉体现)
动手: 选一个你工作中的实际问题,用"目标 + 约束 + 可行域"三要素重新描述它,写出至少三种可行方案并比较。
第二周:多目标权衡 + ML 优化 + 输出项目(Day 8-15)
Day 8-9:多目标权衡
- [ ] 帕累托最优:不存在"全面更好"的方案,只有"在某方面更好"
- [ ] 工程权衡实例:
- 缓存大小 vs 命中率 vs 内存成本
- 副本数 vs 一致性 vs 可用性
- 批处理大小 vs 延迟 vs 吞吐量
Day 10-12:ML 优化实践
- [ ] 用纯 Python + NumPy 实现线性回归(MSE + 梯度下降)
- [ ] 加上 Ridge 回归(L2 正则化)和 Lasso 回归(L1 正则化)
- [ ] 对比三者在过拟合数据上的表现,可视化权重分布差异
- [ ] 理解:L1 为什么能做特征选择?(几何直觉:菱形 vs 圆形约束)
Day 13-15:输出项目
📦 项目:系统容量优化模拟器
用 Python 模拟一个多目标优化场景:
- 场景:你有 N 台服务器,M 个任务,每个任务有 CPU/内存需求和优先级
- 目标:最大化高优先级任务完成数 + 最小化平均等待时间
- 约束:总 CPU/内存不超过服务器容量
- 实现至少 2 种调度策略(轮询 + 贪心背包)
- 用 matplotlib 画出帕累托前沿散点图,找到"最优权衡点"
这个项目把贪心、多目标权衡、梯度下降的思想串起来,直接对应工作中资源调度、容器编排的底层逻辑。
不需要看
- ❌ 数学规划论文(线性规划单纯形法证明等)
- ❌ 凸优化教材深推导(Boyd 那本先不看)
- ❌ 二阶优化方法(Adam 的直觉知道就行)
- ❌ 竞赛算法题(不是刷题)
核心概念检验
- [ ] 给你一个工程问题,能不能快速拆出"目标 + 约束 + 可行域"?
- [ ] 梯度下降在优化框架里是什么角色?(和贪心、DP 相比呢?)
- [ ] 正则化和拉格朗日乘子的关系是什么?
- [ ] "权衡"的本质是什么?(用帕累托最优解释)
- [ ] 为什么工程上经常选择近似解而非精确解?
- [ ] L1 vs L2 正则化的几何区别是什么?
工作映射
- API 设计 → 优化目标(性能 vs 可用性 vs 一致性)
- 缓存策略 → 背包问题(缓存空间有限,放什么收益最大)
- 容器编排 → 调度问题(任务分配到哪台机器)
- 限流/降级 → 约束满足(在系统承载能力内最大化服务)
- 数据库索引 → 权衡(查询加速 vs 写入开销 vs 存储成本)
- 模型训练 → 梯度下降(目标:最小化损失函数 + 正则化约束)
- 日常决策 → 资源分配(时间/精力/钱怎么投)