QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2621|回复: 0
打印 上一主题 下一主题

[已经回复] 神经网络训练时超参数调整和模型选择

[复制链接]
字体大小: 正常 放大

1175

主题

4

听众

2877

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2023-10-16 15:12 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
       评估一个模型很简单:用测试集就行了。现在假设你在两个模型(一个线性模型和一个多项式模型)之间犹豫不决,如何做出判断呢?做法是训练两个模型,然后对比它们对测试数据的泛化能力。
& z$ i' x, a+ X) K" Y  u      现在假设线性模型的泛化能力更强,但是你想要应用一些正则化来避免过拟合。问题又来了,要如何选择正则化超参数的值呢?做法之一是使用100个不同的超参数值来训练100个不同的模型。然后假设你山此找到了最佳的超参数值,它生成的模型泛化误差最5 S, Y: Z( Q" x  G1 n# b$ ^
,比如仅仅5%。然后在生产环境中运行这个模型,可是很不幸,它并没有如预期那样工作,反而产生15%的误差。到底发生了什么?/ _3 g0 C& [5 l6 w
     问题出在你对测试集的泛化误差进行了多次度量,并且调整模型和超参数来得到拟合那个测试集的最佳模型。这意味着该模型对于新的数据不太可能有良好的表现。; |$ F4 S6 Y6 u1 o5 @* M4 `
! t1 C* f! S0 {% h
     解决此问题的常见方法称为保持验证:你只需保持训练集的一部分,以评估几种候选模型并选择最佳模型。新的保留集称为验证集,有时也称为开发集(devset)。更具体地说,你可以在简化的训练集上(即完整训练集减去验证集)训练具有各种超参数的多个模型,并且选择在验证集上表现最佳的模型。在此保持验证之后,你在完整的训练集(包括验证集)上训练最佳模型,这就是你的最终模型。最后,你在测试集上评估这个模型以获得泛化误差的估计值。
2 N# ]2 \: c, J% u3 X     这个解决方案通常效果很好。但是,如果验证集太小,则模型评估将不精确:你可能最终错误地选择一个次优模型。相反,如果验证集太大,则剩余训练集将比完整的训练集小得多。为什么这样不好?好吧,既然最终模型将在完整的训练集上训练,比较在更小的训练集上训练出来的候选模型不是一个好办法。就像选择最快的短跑运动员参加马拉松比赛。解决此问题的一种方法是执行使用许多小验证集重复进行的交叉验证。每个模型都在对其余数据进行训练后,在每个验证集上评估一次。通过对模型的所有评估求平均值,可以更准确地衡量模型的性能。但是有一个缺点:训练时间是验证集个数的倍数。: W( o. Y/ t5 m; ]

6 n$ ]3 ~! Z9 {7 T% h/ b; z4 D+ V8 j) A' k/ i2 {7 [1 p
zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
您需要登录后才可以回帖 登录 | 注册地址

qq
收缩
  • 电话咨询

  • 04714969085
fastpost

关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

手机版|Archiver| |繁體中文 手机客户端  

蒙公网安备 15010502000194号

Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

GMT+8, 2025-8-27 09:33 , Processed in 0.309224 second(s), 50 queries .

回顶部