16 Oct

如何划分一个跟测试集更接近的验证集?

不管是打比赛、做实验还是搞工程,我们经常会遇到训练集与测试集分布不一致的情况。一般来说我们会从训练集中划分出来一个验证集,通过这个验证集来调整一些超参数(参考《训练集、验证集和测试集的意义》),比如控制模型的训练轮数以防止过拟合。然而,如果验证集本身跟测试集差别比较大,那么验证集上很好的模型也不代表在测试集上很好,因此如何让划分出来验证集跟测试集的分布差异更小一些,是一个值得研究的题目。

两种情况

首先,明确一下,本文所考虑的,是能给拿到测试集数据本身、但不知道测试集标签的场景。如果是那种提交模型封闭评测的场景,我们完全看不到测试集的,那就没什么办法了。为什么会出现测试集跟训练集分布不一致的现象呢?主要有两种情况。

点击阅读全文...

23 Jun

不少读者都应该知道,损失函数与评测指标的不一致性是机器学习的典型现象之一,比如分类问题中损失函数用交叉熵,评测指标则是准确率或者F1,又比如文本生成中损失函数是teacher-forcing形式的交叉熵,评测指标则是BLEU、ROUGE等。理想情况下,当然是评测什么指标,我们就去优化这个指标,然而评测指标通常都是不可导的,而我们多数都是使用基于梯度的优化器,这就要求最小化的目标必须是可导的,这是不一致性的来源。

前些天在arxiv刷到了一篇名为《MLE-guided parameter search for task loss minimization in neural sequence modeling》的论文,顾名思义,它是研究如何直接优化文本生成的评测指标的。经过阅读,笔者发现这篇论文很有价值,事实上它提供了一种优化评测指标的新思路,适用范围并不局限于文本生成中。不仅如此,它甚至还包含了一种理解可导优化与不可导优化的统一视角

采样视角

首先,我们可以通过采样的视角来重新看待优化问题:设模型当前参数为$\theta$,优化目标为$l(\theta)$,我们希望决定下一步的更新量$\Delta\theta$,为此,我们先构建分布
\begin{equation}p(\Delta\theta|\theta)=\frac{e^{-[l(\theta + \Delta\theta) - l(\theta)]/\alpha}}{Z(\theta)},\quad Z(\theta) = \int e^{-[l(\theta + \Delta\theta) - l(\theta)]/\alpha} d(\Delta\theta)\end{equation}

点击阅读全文...

16 Apr

采样定理:有限个点构建出整个函数

假设我们在听一首歌,那么听完这首歌之后,我们实际上在做这样的一个过程:耳朵接受了一段时间内的声波刺激,从而引起了大脑活动的变化。而这首歌,也就是这段时间内的声波,可以用时间$t$的函数$f(t)$描述,这个函数的区间是有限的,比如$t\in[0,T]$。接着假设另外一个场景——我们要用电脑录下我们唱的歌。这又是怎样一个过程呢?要注意电脑的信号是离散化的,而声波是连续的,因此,电脑要把歌曲记录下来,只能对信号进行采样记录。原则上来说,采集的点越多,就能够越逼真地还原我们的歌声。可是有一个问题,采集多少点才足够呢?在信息论中,一个著名的“采样定理”(又称香农采样定理,奈奎斯特采样定理)告诉我们:只需要采集有限个样本点,就能够完整地还原我们的输入信号来!

采集有限个点就能够还原一个连续的函数?这是怎么做到的?下面我们来解释这个定理。

任意给定一个函数,一般来说我们都可以将它做傅里叶变换:
$$F(\omega)=\int_{-\infty}^{+\infty} f(t)e^{i\omega t}dt\tag{1}$$
虽然我们的积分限写了正负无穷,但是由于$f(t)$是有限区间内的函数,所以上述积分区间实际上是有限的。

点击阅读全文...