端午节快乐
起因
前段时间,通过偶然的一次参数调整,发现算法的准确率竟然提高了2个多点,好了,开始回归灵魂调参师的工作...
超参数
超参数,就是让算法工程师夜以继日调参、炼丹的罪魁祸首!你可能会问,模型确定了,用一些最优化算法,比如熟知的梯度下降或者牛顿法,让损失函数取得最小值不就行了么,为什么非要大张旗鼓拿个大炉子,又不是炼?的火眼金睛。
倒不是因为炼丹的过程乐趣无穷,因为超参数需要在模型进行训练之前就确定
验证集
既然炼丹过程不可避免,材料该准备的就准备准备吧。之前我们一直将获得的数据分为两个数据集:训练集和测试集。训练集用来训练模型,得到w、b等一系列模型内部的参数。测试集用来评估模型对于未来数据的泛化能力,也就是模型的优劣。
由于现在新出来了一个超参数,因此我们需要划分出一个新的数据集来对付它,它的名字叫验证集。这时你可能会问为什么不用测试集来进行超参数的调整
用专业一点的话来说,其实超参数的调整也是一种学习的过程,根据模型在测试集上面的表现来调整超参数会导致模型在测试集上的过拟合,接着我们再用测试集来评估模型好坏是存在缺陷的。
上面的话看不太懂也没事,马上要浙江高考了,打个比方:训练集好比每天你要做的练习,验证集如同高考前的一模、二模,很多地方还有三模,辛苦你们了
不过最近几年浙江高考减负大力推行,应该没有以前那么辛苦了吧,实名羡慕现在的高中生啊!
要是一模没考好,物理分数很低,你肯定会抓紧恶补物理,班主任一定会语重心长的和你说:一模、二模是让你调整练习方向的指南针。但是经历过中高考的同学应该明白,并不是你恶补物理,你高考的分数就会更好,也可能会更差。
因为测试集即高考上的表现不仅与你内在的水平有关,还和你当天在考试时候的心情(考前发现中了500W),温度(温度异常炎热,汗流不止,无法握笔)等各种状态有直接关系。
其次,高考出卷子的老师可不管你是夜以继日苦读还是每天花天酒地娱乐,老师们一定会保证题目的新颖性,而不会用平时练习做过的题,这样老师们才能确定你不是背了答案,而是真的学会了。
如何划分验证集
现在我们已经知道了在有超参数的情况下,要将数据划分为训练集、验证集和测试集,但是比例应该怎么定呢?
这部分其实在吴恩达老师的机器学习视频中有提到,在数据量为万级别以下时,训练集、验证集以及测试集比例为6:2:2。若数据量很大,训练集、验证集以及测试集比例调整为98:1:1。假如数据量很少,为了尽可能让模型利用多的数据,一般会采用k折交叉验证法。
最后,端午佳节,祝大家粽子节快乐!
你点的每个好看,我都认真当成了喜欢