← 返回题目列表

核 SVM 中 kernel cache 有什么作用?

中等 第 21 / 25 题 更新于 2026/09/20
支持向量机机器学习面试题模型训练
学习 AI 实战项目

简化版

核 SVM 训练频繁访问样本对的核值,kernel cache 用内存保存已计算的核行/块,减少重复计算。缓存增大通常换训练速度,但不改变模型数学结果;收益受样本数、核成本、访问局部性和内存压力影响。

详细版

  • 完整 Gram 矩阵需 O(n²) 内存。

  • 有限缓存通常按 LRU 等策略保存工作集。

  • 缓存过小会反复重算核值。

  • 缓存过大导致系统换页反而更慢。

  • 预测仍需与支持向量算核,训练 cache 不自动降低上线延迟。

完整版教学

一、缓存优化的是求解器的数据访问成本

SMO 等对偶求解会多次更新一小组 α,并重复请求相关核行。

缓存命中可把昂贵核计算换成内存读取。

它不改变 C、gamma 或最优解;相同数值容差下,缓存只是系统参数。

二、底层机制与公式

full_kernel_memory≈n²*bytes
100000²*8 bytes≈80GB

三、带数字的推演

n=20,000 的 double Gram 矩阵约 20,000²×8=3.2GB。

只给 200MB cache 无法全放下,但若工作集局部性好仍可显著命中。

四、方案对比

方案/对象核心特点代价或边界
小 cache省内存核重算多
大 cache训练快挤压系统内存
线性/近似核避免大核矩阵模型假设或近似改变

五、执行流程

估算 n² 与可用 RAM -> 设 cache 上限 -> 监控命中/CPU/换页
-> 多档基准 -> 保证无 swap -> 记录训练时长与峰值内存

六、边界条件与工程代价

容器 memory limit 小于 cache 配置时,进程可能 OOM;cache_size 不是唯一内存,数据、梯度和求解状态也占用。

核值浮点缓存和并行实现可能产生微小数值路径差异,但不应被当作调泛化的手段。

记忆钩子:Kernel cache 是“用 RAM 买少算几次核”。

七、常见误区与追问

  • 误区:增大 kernel cache 会提高准确率。 它主要改变训练效率。

  • 追问:为何不能总存完整矩阵? 内存按 n² 增长。

  • 误区:cache 配多大都越快。 触发换页会严重变慢。

  • 追问:何时收益最大? 核计算昂贵且访问有重复局部性时。

  • 追问:上线也用同一 cache 吗? 训练 cache 与推理支持向量计算是不同问题。

八、加强记忆

Kernel cache 是“用 RAM 买少算几次核”。

先算 n² 上限,再用基准找不触发换页的最大有效缓存。