想象你是一位火锅店老板,想研制一款招牌麻辣锅底。厨房的香料架上摆着辣椒、花椒、冰糖三种“调味旋钮”,每种放多少克,决定了底料好不好吃。你当然不能把几千种组合都熬一遍——锅不够用,客人也等不起。最直觉的办法有两种:要么拿一张坐标纸,把辣椒按 10 克一格、花椒按 5 克一格画成整齐的网格,逐一试喝每个交叉点;要么干脆闭眼随手抓几把,试上几十锅,再把好评附近的配方微调。前者就是网格搜索,后者就是随机搜索。AI 训练模型时的“调参”本质上也面临同样的选择:如何在有限的算力和时间内,找到一组让模型表现最佳的超参数。这篇文章就用这口火锅锅底,把两种搜索策略的脾气、长短和用武之地讲明白。

岗位关联

学完你会掌握超参数搜索空间的搭建方法、网格搜索与随机搜索的数学原理与适用边界,并能在实际建模中根据预算理智选型——这是每位 AI 工程师都会用到的硬技能。

目录
  1. 可视化演示
  2. 超参数基础
  3. 搜索空间设计
  4. 网格搜索原理
  5. 随机搜索原理
  6. 优劣对比分析
  7. 工程实践要点
  8. 选型与趋势
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

动态演示网格搜索vs随机搜索的核心机制,通过总览/传输/转换/输出四种模式展示关键概念与交互流程。

本节配有交互动效(进入视口后自动加载,约 3KB)。

网格搜索vs随机搜索:超参数优 超参数优化问题定义 网格搜索的穷举策略 核心机制可视化 网格搜索vs随机搜索整体架构与关键组件

超参数基础

周师傅的火锅店有两个招牌口味:清汤和红汤。今天他要研发新品“双椒锅底”,香料架上有两个旋钮——辣椒用量和花椒用量。汤底在锅里熬着,但这两个旋钮必须由周师傅亲手定,锅底自己不会拧。他犯了难:到底放多少才好吃?

机器学习里的超参数就像这两个旋钮。模型的权重 w 是汤底,通过数据这口锅慢慢“炖”出来;而学习率、正则化系数、SVM 的 C 和 gamma、树的深度,都是训练开始前就要定下的“配方旋钮”。它们决定了训练过程怎么走、模型长什么样,却无法从数据里直接学到。超参数选得好,模型学得又快又准;选得差,再好的数据也白搭。

数学上,训练流程可以统一地表示为:先固定超参数 θ,然后在模型参数空间里优化 w。例如线性回归中,θ 可以是正则化强度;SVM 中,θ 可以是惩罚系数 C 与核参数 gamma。模型参数 w 靠梯度下降从数据中估计,而 θ 的选择则留给了我们这些“调参师傅”:

回到厨房,周师傅心里明白:辣椒花椒的比例一旦定下,接下来就交给时间和火候。可问题是,旋钮有成千上万种组合,总不能把香料架搬空。于是,他需要一套系统的“试菜”策略——这正是接下来要谈的搜索空间与搜索方法。

w∗(θ)=arg⁡min⁡wL(w;θ)\displaystyle w^*(\theta) = \arg\min_w \mathcal{L}(w; \theta)
这个公式把“先定超参、再学参数”的层级关系讲清楚了:外层是我们在挑配方,内层是模型在学本领。
  1. 模型参数 w模型内部由训练数据学到的量,例如线性回归系数、神经网络权重,它随梯度下降不断更新。
    模型参数 w 在训练中迭代更新\text{模型参数 } w \text{ 在训练中迭代更新}
  2. 超参数 θ训练前由工程师设定的外部配置,如学习率、正则化强度,它固定不变地参与训练过程。
    超参数 θ 由人预先设定\text{超参数 } \theta \text{ 由人预先设定}
  3. 损失函数 L(w; θ)衡量模型对训练数据的拟合程度,分号表示 θ 是已知常量而非优化对象。
    L(w;θ) 是给定 θ 下的训练损失\mathcal{L}(w;\theta) \text{ 是给定 } \theta \text{ 下的训练损失}
  4. argmin 取最优参数在所有可能的 w 中选出使损失最小的那个,记作 w*。
    w∗=arg⁡min⁡wL(w;θ) 表示最优内部参数w^* = \arg\min_w \mathcal{L}(w;\theta) \text{ 表示最优内部参数}

搜索空间设计

周师傅把香料架划分成刻度:辣椒从 0 到 50 克,每 5 克一档;花椒从 0 到 20 克,每 2.5 克一档;冰糖从 0 到 15 克,每 5 克一档。三排罐子像三根坐标轴,每个“配方”就是三维空间里的一个点。这个由所有可行取值围成的“立方体”,就是搜索空间。

搜索空间设计是超参数优化的第一步:为每个超参数划定取值范围和刻度。范围太小,可能把最优配方排除在外;范围太大,同样的预算下采样会变得稀疏,就像在一个足球场里找一根针。另一个常见技巧是使用对数刻度:像 SVM 的 C 值可能横跨 1e-3 到 1e3,取等距网格会堆在小区间,取对数网格才能均匀覆盖。

在动手之前,我们还要理解搜索空间是怎么“加”出来的:如果每个超参数的候选取值集合是 Θ₁、Θ₂……Θ_d,那么完整的搜索空间是它们的笛卡尔积:

周师傅把这张“香料地图”贴在墙上,下面写着一行小字:先定范围,再排刻度。他明白,空间设计一旦失误,后面的网格还是随机全都白费——巧妇难为无米之炊。

Θ=Θ1×Θ2×⋯×Θd\displaystyle \Theta = \Theta_1 \times \Theta_2 \times \cdots \times \Theta_d
笛卡尔积就是“所有维度各取一个值”的全部组合方式,搜索空间的大小由此而来。
  1. 候选集合 Θ_k第 k 个超参数所有可取的值组成一个集合,例如 C ∈ {0.1, 1, 10, 100}。
    Θk 是第 k 个超参数的候选值集合\Theta_k \text{ 是第 } k \text{ 个超参数的候选值集合}
  2. 笛卡尔积 ×把各维度的取值按所有方式配对,得到完整的候选点集合。
    × 表示组合所有维度的取值\times \text{ 表示组合所有维度的取值}
  3. 空间维度 d超参数的个数,也是配方中“旋钮”的数量,维度越多空间越庞大。
    d 是搜索空间的维度数d \text{ 是搜索空间的维度数}

网格搜索原理

周师傅拿出一张坐标纸,横轴是辣椒、纵轴是花椒,把两轴各分 6 格,纸上出现 36 个交叉点。他决定每一格交点都熬一小锅,逐一试喝——这就是网格搜索:像地毯式扫街一样,把空间均匀切开,穷举所有交点的组合。

网格搜索(Grid Search)先在每个超参数维度上取若干离散候选值,再枚举所有组合,逐一用交叉验证评估,最后选出表现最好的那组。它的优点很直观:逻辑简单、覆盖均匀、可复现性强。同样的网格,谁跑一遍结果都一样,这在需要向团队或客户解释调参过程时特别有价值。

但网格有个致命问题:组合数随维度指数增长。假设有 d 个超参数,第 k 个参数取了 m_k 个候选值,那么需要评估的总组合数是:

周师傅盯着坐标纸发呆:若是再加一味香料,36 锅变 216 锅,厨房已经放不下这么多锅了。他第一次真切感受到“组合爆炸”的可怕——网格搜索只适合小厨房、小空间。

M=∏k=1dmk\displaystyle M = \prod_{k=1}^{d} m_k
这是网格搜索的“账单”:每多一个维度、多一档取值,总次数都成倍上涨。
  1. 维度 d参与搜索的超参数个数,也就是配方旋钮的数量。
    d 是超参数维度数d \text{ 是超参数维度数}
  2. 每维候选数 m_k第 k 个参数被划成的档位数,比如 C 取 4 档,m₁ = 4。
    mk 是第 k 个参数的候选档位数m_k \text{ 是第 } k \text{ 个参数的候选档位数}
  3. 连乘求总数总评估次数等于各维档位数相乘,因为要遍历所有维度组合的交叉点。
    ∏k=1dmk=m1×m2×⋯×md\prod_{k=1}^{d} m_k = m_1 \times m_2 \times \cdots \times m_d

随机搜索原理

隔壁大厨给周师傅出了个主意:别一格一格试了,你把香料组合写在小纸条上,闭上眼抽 60 张,抽到啥就试啥,试完记住最好喝的配方。周师傅半信半疑:“这不纯靠运气?”大厨笑了:“运气之外,还有概率。”

随机搜索(Random Search)从搜索空间的指定概率分布中独立采样若干组超参数,评估后保留最优。它的妙处在于:不追求覆盖所有组合,而是用小批量样本去“碰”好参数区域。研究早已揭示了一个关键现象——低有效维度:真正显著影响模型性能的超参数往往只有几个,大多数参数无关痛痒。网格搜索会把预算大量浪费在无关维度的重复取值上;随机搜索的每次采样都让所有维度同时变化,每一个采样点都是“新鲜”的。

假设好参数区域只占整个搜索空间的 r(比如 5%),随机采样 T 次后,每次采样独立,至少命中一次好参数区域的概率为:

周师傅试完 60 张纸条后,果然找到了比网格 36 锅更好的配方。他恍然大悟:原来“闭眼抓阄”不是乱来,而是把预算花在让每个维度都“动起来”上。

Phit=1−(1−r)T\displaystyle P_{hit} = 1 - (1 - r)^T
这个公式说明:好区域占比越小,越需要更多采样;但随机搜索完全不关心搜索空间有多少维度,这正是它对抗维度灾难的底气。
  1. 好区域占比 r性能排名靠前的“好配方”在搜索空间中占的体积比例。
    r 是好配方区域占搜索空间的比例r \text{ 是好配方区域占搜索空间的比例}
  2. 单次落空概率随机采一次,没有落在好区域内的概率是 1 - r。
    1−r 是单次采样落空的概率1 - r \text{ 是单次采样落空的概率}
  3. T 次全部落空各次采样互相独立,T 次都没进好区域的概率是 (1-r) 的 T 次方。
    (1−r)T 是 T 次采样全部落空的概率(1 - r)^T \text{ 是 T 次采样全部落空的概率}
  4. 至少命中一次用 1 减去“全部落空”的概率,就是至少命中一次好区域的概率。
    1−(1−r)T 是至少命中一次的概率1 - (1 - r)^T \text{ 是至少命中一次的概率}

优劣对比分析

两种路都走通了,周师傅决定开个“盲品会”。他把两种方法找到的配方各熬一锅,请十位食客打分。结果有时网格赢,有时随机赢——关键在预算和空间的脾气。

从理论上说,网格搜索的优点是可复现、覆盖均匀、对低维小离散空间无比可靠;缺点是组合数随维度爆炸。随机搜索的优点是高维与连续空间中预算利用率高、实现极简单;缺点是结果带随机性、不同随机种子成绩有波动,且需要设计合理的采样分布。而在大多数中等维度(4 个以上超参数)的调参任务中,同样的预算下随机搜索往往能找到更好的参数组合。

更本质的对比可以浓缩成一条公式:在总预算 T 次评估下,网格搜索要在 d 个维度上平分预算,每个维度只能分到:

盲品会的结果印证了这一点:同样的 60 次预算,随机找到了更辣的配方,但网格的配方稳定性最好。周师傅笑道:“原来真是尺有所短,寸有所长。”

mgrid=T1/d\displaystyle m_{grid} = T^{1/d}
维度越高,网格搜索每维能分的档位越少;随机搜索则不受这个限制,每次采样都是完整的 d 维向量。
  1. 总预算 T总共能负担的模型训练与评估次数,比如 100 次。
    T 是总评估预算T \text{ 是总评估预算}
  2. 维度 d参与搜索的超参数个数,网格需要在每个维度上切档位。
    d 是搜索空间维度d \text{ 是搜索空间维度}
  3. 每维档位数把预算“平分”到 d 个维度,每维只能切出 T 的 1/d 次方个档位。
    T1/d 是网格搜索每维可分的档位数T^{1/d} \text{ 是网格搜索每维可分的档位数}

工程实践要点

周师傅学乖了:试菜不能只请一个人打分。同一个配方,昨天的小张说太辣,今天的老王说不够味。他改成每次请 5 位食客轮流打分,取平均——这就是交叉验证的思路。

在超参数评估中,我们把训练数据切成 K 份,轮流用 K-1 份训练、1 份验证,K 轮后取平均精度作为该组超参数的得分。这样做能显著降低单次随机划分带来的运气成分。工程上还有一种常见做法是多阶段搜索:先用大范围粗搜(网格或随机)圈定有希望的“小区块”,再在该区块附近加密精细搜索——相当于先撒大网,再收网。

动手前还有一个关键问题:预算管理。先问自己总共能跑多少次训练。每次训练需要 10 分钟,总预算 8 小时,最多评估 48 组;若搜索空间有 5 个维度各 4 档,网格要 1024 次,直接超预算,随机搜索 48 次则是合理选择。K 折交叉验证的平均精度写作:

周师傅把这条经验写进店规:“任何新配方,先定锅数(预算),再定试法(策略),至少请 5 位食客打分(交叉验证)。”他的新火锅底料,从此稳定了许多。

Aˉ=1K∑k=1KAk\displaystyle \bar{A} = \frac{1}{K}\sum_{k=1}^{K} A_k
平均精度是这组超参数的“稳定口碑”——多请几位食客打分,比只听一个人的评价可靠得多。
  1. 折数 K把数据集分成 K 份,轮流让每一份当验证集,常见取 5 或 10。
    K 是交叉验证的折数K \text{ 是交叉验证的折数}
  2. 单折精度 A_k第 k 轮用 K-1 份训练、1 份验证得到的模型精度。
    Ak 是第 k 折的验证精度A_k \text{ 是第 } k \text{ 折的验证精度}
  3. 取平均K 轮得分求平均值,得到该组超参数更稳健的评估。
    Aˉ 是 K 折验证的平均精度\bar{A} \text{ 是 K 折验证的平均精度}

选型与趋势

小城另一家火锅店也来取经。周师傅告诉他们一个朴素的决策口诀:如果香料只有两三种、每样档位不多,老老实实网格穷举;如果香料七八种、还有连续刻度,趁早随机搜索;要是预算充裕又想冲击极致风味,还可以引入更聪明的“自动寻味师”。

所谓“自动寻味师”,就是贝叶斯优化等进阶方法。它根据已有评估结果拟合一个代理模型,预测空间中哪些区域可能有更高分,再通过采集函数决定下一次该试哪个点,做到“下一锅永远试在最有可能赢的地方”。这正是 AutoML 里常见调参引擎(如 Optuna 的 TPE 采样器)的思路,也是超参数优化从手工走向自动化的方向。

从网格到随机,再到贝叶斯优化,本质是同一个问题的递进:在预算约束下最大化找到最优超参数的期望。贝叶斯优化每一轮都基于历史观测选择下一个最有潜力的点:

未来,人工智能也许会接管厨房里所有旋钮,甚至在训练中动态调整配方。但对今天的大多数工程师来说,先学会网格与随机这两手基本功,已经能解决八成以上的调参问题。

xt+1=arg⁡max⁡x∈Θαt(x)\displaystyle x_{t+1} = \arg\max_{x \in \Theta} \alpha_t(x)
采集函数 α 会平衡“探索新区域”和“利用已知好区域”——既想尝鲜,又不想错过已验证的美味。
  1. 当前轮次 t已经评估过 t 组超参数,历史数据构成了代理模型的训练集。
    t 是已评估的轮次t \text{ 是已评估的轮次}
  2. 采集函数 α_t基于已有观测构建的决策函数,衡量“下一个点有多值得试”。
    αt(x) 是第 t 轮的采集函数\alpha_t(x) \text{ 是第 } t \text{ 轮的采集函数}
  3. argmax 选点从搜索空间里挑出使采集函数最大的超参数组合,作为下一轮评估对象。
    xt+1 是下一轮最值得试的超参数组合x_{t+1} \text{ 是下一轮最值得试的超参数组合}

AI 应用场景

信贷风控模型的超参调优

阶段:模型评估与调优

解决的问题:风控团队训练 SVM 或逻辑回归做违约预测时,惩罚系数 C、核参数 gamma 只有两三个,候选值离散且范围明确。传统做法是手动猜测,既慢又难向合规部门交代。网格搜索可以在小空间内穷举所有组合,输出完整的调参记录,可复现、可审计。

具体案例:某银行风控团队将 C 取 {0.1, 1, 10, 100}、gamma 取 {0.01, 0.1, 1},做了 12 次 5 折交叉验证,半天内找到 AUC 提升 2% 的模型。模型文档中清晰列出了所有尝试过的参数组合,顺利通过内部审查。

深度学习模型的随机搜索

阶段:训练策略设计

解决的问题:推荐系统或 NLP 模型的超参数包括学习率、batch size、dropout、层数等,维度多且常是连续值,一次训练动辄数小时。网格搜索在这样的大空间里组合数爆炸,预算完全不够用。随机搜索可以在预算内覆盖更多样的参数组合,更高效地逼近好区域。

具体案例:某推荐系统团队的 CTR 预估模型,用随机搜索在 log 均匀分布下采样 40 组学习率(1e-4 到 1e-2),相比网格搜索在相同 GPU 预算下找到的配置,离线 AUC 提升 1.8%,线上点击率提升 0.5%。

AutoML 流水线中的快速探索

阶段:自动化机器学习

解决的问题:AutoML 流水线包含数据预处理、特征选择、模型选择等大量超参数,搜索空间高达十几维。若一上来就用精细网格,预算会被瞬间耗尽。合理的做法是先用随机搜索快速圈定有希望的区域,再对 Top-K 区域做精细搜索或交给贝叶斯优化精调。

具体案例:Kaggle 竞赛队伍常用 Optuna 的随机采样进行第一轮粗筛(几百次试跑),找到学习率与模型深度的有利区间后,再切换到 TPE 采样器集中精调,最终以有限算力拿到接近 SOTA 的成绩。

Python 演示

python37 行
import numpy as np def target(x, y):    """模拟模型在超参数(x,y)下的验证精度,取值范围[0,1]"""    r1 = np.exp(-((x - 0.62) ** 2 + (y - 0.45) ** 2) * 9.0)    r2 = 0.65 * np.exp(-((x - 0.22) ** 2 + (y - 0.78) ** 2) * 22.0)    return min(r1 + r2, 1.0) N = 21xs = np.linspace(0, 1, N)ys = np.linspace(0, 1, N)grid_best = Nonegrid_best_val = -1.0for xi in xs:    for yi in ys:        v = target(xi, yi)        if v > grid_best_val:            grid_best_val = v            grid_best = (xi, yi) rng = np.random.RandomState(42)T = 70rx = rng.uniform(0, 1, T)ry = rng.uniform(0, 1, T)rand_best = Nonerand_best_val = -1.0for xi, yi in zip(rx, ry):    v = target(xi, yi)    if v > rand_best_val:        rand_best_val = v        rand_best = (xi, yi) print("网格搜索: 评估 %d 次, 最优参数=(%.2f, %.2f), 得分=%.4f"      % (N * N, grid_best[0], grid_best[1], grid_best_val))print("随机搜索: 评估 %d 次, 最优参数=(%.2f, %.2f), 得分=%.4f"      % (T, rand_best[0], rand_best[1], rand_best_val))print("结论: 预算有限时, 随机搜索以小博大, 性价比更高")
目的:用二维模拟函数对比网格搜索与随机搜索在同一份“调参预算”下的寻优表现,直观展示随机搜索在预算紧张时的优势。
  1. def target(x, y):定义一个“虚拟模型”:给定一组超参数 x、y,返回验证精度。实际工作中这个函数就是“训练模型 + 在验证集上打分”。
  2. r1 = np.exp(...)构造一个主峰,模拟“好参数区域只用一小块面积、大部分组合表现平庸”的真实情况。
  3. xs = np.linspace(0, 1, N)网格搜索先把每个参数轴等距切成 N 份,这就是坐标纸上的格子。
  4. grid_best_val = v记录当前遇到的最优值和对应参数,像师傅记住最满意的那锅汤配方。
  5. rng = np.random.RandomState(42)固定随机种子,让随机搜索的结果可复现——随机不等于不可重现。
  6. rx = rng.uniform(0, 1, T)在参数空间内随机撒 70 个点,每个超参数独立采样。
  7. zip(rx, ry)把两组采样配成 (x, y) 坐标对,避免笛卡尔积带来的组合爆炸。
  8. if v > rand_best_val:与网格搜索完全相同的“遍历取最优”逻辑,保证两种方法在同一标准下比较。
  9. print("网格搜索...")输出两种方法的评估次数与最终得分,量化差距。

常见误区

误区网格搜索把整个空间都“扫了一遍”,覆盖更全面,找到的结果肯定比随机搜索好。

正解当总预算固定时,网格搜索每个维度分到的样本数只有 T 的 1/d 次方,在高维空间里覆盖率其实低得可怜;随机搜索能让每个维度都取到不同值,反而更容易撞上“好区域”。Bergstra 等人的经典实验显示,同样的评估次数下,随机搜索找到的最优值普遍优于网格搜索。

为何常见:“穷举 = 更全面”的直觉在低维空间是对的,但人们容易忽略高维空间中网格本质上是“稀疏抽样”,而不是“全面覆盖”。

误区随机搜索没有章法、全靠运气,用这种方法调参显得很不专业。

正解随机搜索基于概率分布采样,有严格的数学基础,命中好区域的概率公式 1-(1-r)^T 就是它的理论支撑。它不依赖梯度信息,也不把预算浪费在低质量组合上,许多 AutoML 系统的第一阶段都在用随机搜索快速探路。

为何常见:把“随机”等同于“乱来”,而忽略了在均匀分布下,随机采样本身就是一种最自然的空间覆盖策略。

误区把超参数范围设得宽一些,总能覆盖到最优区域,总比范围太小漏掉好。

正解搜索范围扩大后,同样的预算下采样密度会变稀。网格搜索的组合数按乘积爆炸,随机搜索的命中率也因好区域占比 r 变小而下降。更科学的做法是结合先验知识把范围缩到合理区间,或先用一轮随机粗搜再收窄范围。

为何常见:人们希望“一网打尽”,却忽视了预算与采样密度之间的博弈——空间越大,找一根针越难。

误区跑一次验证集分数高就选这组超参数,省时省力。

正解单次划分的验证分数方差很大,不同随机种子和数据切分下结果可能完全翻转。用 5 折或 10 折交叉验证取平均,才能稳定比较超参数的优劣。验证集用多了同样会被“过拟合”,交叉验证是缓解这一问题的标准手段。

为何常见:模型训练快时容易偷懒,且没有意识到验证分数本身也是一个带噪声的随机变量。

面试题

Q1. 关于网格搜索的描述,正确的是?

单选题 · easy

  • A.在预定义的候选组合中穷举评估← 正确答案
  • B.每次随机在空间内找一组参数
  • C.通过梯度下降更新超参数取值
  • D.优先在历史最优附近采样再评估

答案:A。网格搜索是在搜索空间的候选组合中逐一穷举评估,对应“坐标纸打格子试菜”。B 是随机搜索,C 不是超参优化的常规手段(超参数一般不走梯度),D 更接近贝叶斯优化的思路。

Q2. 随机搜索的核心操作是?

单选题 · easy

  • A.对每个参数取固定步长枚举
  • B.按预设分布随机采样若干组合← 正确答案
  • C.把所有参数组合全部试一遍
  • D.用代理模型预测最优参数所在

答案:B。随机搜索从搜索空间的指定分布中独立采样 T 组超参数并评估取最优。A 和 C 是网格搜索的穷举思路,D 是贝叶斯优化。随机搜索的关键是“采样”,不是“枚举”。

Q3. 同一预算下,随机搜索通常优于网格搜索的根本原因是?

单选题 · mid

  • A.随机数生成速度比循环遍历更快
  • B.高维空间中网格点呈指数膨胀← 正确答案
  • C.随机搜索能利用梯度下降信息
  • D.网格搜索无法并行化训练任务

答案:B。网格搜索的组合数随维度指数增长,预算有限时每一维只能分到很少档位,覆盖率极低。随机搜索让每次采样的所有维度都变化,更容易覆盖到真正关键的超参数取值。这与随机数速度、梯度信息或并行性无关。

Q4. 一个搜索空间含 6 个超参数,每个参数取 5 档,网格搜索需要评估多少次?

单选题 · mid

  • A.15625 次(5 的 6 次方组合)← 正确答案
  • B.30 次(5 与 6 直接相乘)
  • C.7776 次(6 的 5 次方组合)
  • D.64 次(2 的 6 次方组合)

答案:A。网格搜索总评估次数为各维候选数的乘积,即 M = 5^6 = 15625。B 混淆了加法和乘法,C 颠倒了底数与指数,D 是 2 的 6 次方,都与题意不符。

Q5. 以下哪些场景更适合用网格搜索而非随机搜索?

多选题 · mid

  • A.搜索空间只有两个离散小集合← 正确答案
  • B.超参数个数少且候选值也少← 正确答案
  • C.深层神经网络的超参搜索任务
  • D.需要严格复现实验结果的场景← 正确答案

答案:ABD。网格搜索适合低维、候选值少的小空间,且固定网格天然可复现。C 是大规模高维连续搜索场景,预算有限时随机搜索更合适。可复现性需求下网格的确定性是明显优势。

Q6. 随机搜索在采样 T 次后,至少命中一次好参数区域的概率是?

单选题 · mid

  • A.1 - (1-r)^T← 正确答案
  • B.r^T
  • C.T × r
  • D.(1-r)^T

答案:A。每次采样落空的概率是 1-r,T 次全部落空的概率是 (1-r)^T,因此至少命中一次的概率是 1 - (1-r)^T。B 是“每次都命中”的概率,C 只是期望命中次数,D 恰好是全部落空的概率而非命中概率。

Q7. 关于搜索空间的设计,正确的做法有?

多选题 · hard

  • A.先用经验缩小到一个合理区间← 正确答案
  • B.对尺度跨越大的参数用对数刻度← 正确答案
  • C.搜索范围越大越容易找到最优
  • D.结合先验知识设计每个维度范围← 正确答案

答案:ABD。A、D 都是利用先验知识合理收窄范围,B 是对数刻度的典型场景(如学习率 1e-4 到 1e-1)。C 是常见陷阱:范围越大,预算不变时采样越稀疏,命中好区域的概率反而下降。

Q8. 超参数优化中“低有效维度”现象是指?

单选题 · hard

  • A.模型参数维度低于超参数维度数
  • B.只有少数超参数显著影响模型性能← 正确答案
  • C.搜索空间的每个维度都必须是离散
  • D.高维空间的数据必然稀疏分布

答案:B。“低有效维度”指真正决定模型性能的超参数只有少数几个,其余超参数效果不敏感。这解释了为什么随机搜索在高维空间更高效:它在每个维度都采样不同值,更容易覆盖到那几个关键维度。A、C、D 都与该概念无关。

Q9. 在预算十分有限时,合理的超参搜索策略包括?

多选题 · extreme

  • A.用随机搜索快速圈定有利区域← 正确答案
  • B.在低维空间使用稀疏网格粗搜← 正确答案
  • C.在未知区域直接铺满精细网格
  • D.多阶段逐级收窄搜索的范围← 正确答案

答案:ABD。预算有限时,随机搜索成本低、覆盖广,适合第一阶段探路;低维空间用稀疏网格粗搜也是省预算的选择;多阶段收窄是工程上常用的组合拳。C 在预算有限时不可行,且未探明区域直接精细搜索纯属浪费。

Q10. 交叉验证在超参数搜索中的作用是?

单选题 · easy

  • A.防止验证分数对单次划分过拟合← 正确答案
  • B.让训练过程本身收敛得更快
  • C.保证测试集上分数一定会很高
  • D.减少模型每次训练需要的样本量

答案:A。交叉验证通过多次划分取平均,降低单次数据切分带来的方差,防止“验证集被调参过程过拟合”。它不加速训练、不保证测试集高分、也不减少样本量,后三个选项都是常见误解。