搜索的赢家被高估
超参数搜索会尝试许多设置,在验证数据上给每个打分并保留最好的。问题在于,许多带噪得分中的最大值会向上偏,即使没有任何设置真有能力。若 N 个设置各有标准差为 σ 的纯噪声得分,则期望的最优值约为 σ×zN,其中 z10=1.54、z100=2.51。当 IC 噪声为 σ=0.02 时,100 个无用设置的赢家看起来像 0.050,一个并不存在的可观信号。因此把赢家的验证得分当作其表现是乐观的,尝试的设置越多越严重。
E[i≤Nmaxsi]≈σzN,z10=1.54,z100=2.51;K⋅C,Ko(KiC+1)(1) 有三种诚实的补救办法。第一,留出一个搜索从未见过的测试集,只报告它的得分。第二,使用嵌套交叉验证:外层循环留出一个测试折,在每个外层训练集内部由内层循环做搜索,外层得分衡量包括搜索在内的整个流程。第三,缩小搜索:更少的设置、更粗的网格、只搜索真正重要的设置。若有 Ko 个外折、Ki 个内折、C 个候选,嵌套验证需要 Ko(KiC+1) 次拟合,要提前做好预算。而且在搜索之前,先问这个设置到底会不会有影响。
计数与真实的网格5 折下
20 个候选要
100 次拟合,再加最后一次重新拟合。外层
5 折、内层
3 折、
20 个候选的嵌套验证需要
5×(3×20+1)=305 次拟合。
100 个无用设置中的最优值预期为
2.51×0.02=0.050,
10 个中的最优为
1.54×0.02=0.031。若你的赢家得
0.060,真正需要解释的只剩
0.060−0.050=0.010。在真实的月度股票面板上,ridge 没有可调的东西:从
α=0.01 到
104,信息系数都是
0.033。深度
1 到
10 的五种树,IC 在
−0.010 与
0.013 之间,最好的
0.013 也只距零约一个标准误(
0.21/257=0.013)。
- 噪声的最大值看起来不像噪声:许多无用设置中的最优者看起来像能力。
- 嵌套验证用 Ko(KiC+1) 次拟合给包括搜索在内的整个流程打分。
- 与噪声比较:小于一个标准误的提升不算发现。
实验:评分内容
- 100 个无用设置中的最优值15 分
- 10 个中的最优值10 分
- 网格搜索的拟合次数10 分
- 嵌套验证的拟合次数15 分
- 还需要解释的部分10 分
- 哪种搜索是诚实的10 分
- 嵌套验证10 分
- 为什么赢家的得分被抬高20 分