39. 数据加权

假设你有 20 万张来自互联网的图片和 5000 张来自移动应用用户的图片。这些数据集的大小之间的比率为 40:1。理论上,只要你建立一个巨大的神经网络,并对所有 205000 张图像进行足够长时间的训练,那么尝试让算法同时在网络图像和移动图像上都表现出色的做法并没有什么坏处。

但在实践中,与仅对 5000 幅图像进行训练相比,使用比移动应用程序图像多 40 倍的互联网图像来训练算法,可能意味着你需要花费 40 倍甚至更多的计算资源来对两者进行建模。

如果你没有庞大的计算资源,你可以给互联网图像一个低得多的权重作为妥协。

例如,假设你的优化目标是平方误差(Squared Error)(这对于分类任务来说不是一个好的选择,但它会简化我们的解释)。因此,我们的学习算法试图优化:

\underset{\theta }{min} \ \ \sum{(x,y)\in MobileImg}\left ( h{\theta } (x)-y\right )^2+\sum{(x,y)\in InternetImg}\left ( h{\theta } (x)-y\right )^2

上边公式第一项计算的是对 5000 张移动应用程序图像的平方误差求和,第二项计算的是对 20 万张移动互联网图像的平方误差求和,你可以对第二项设置超参数 $\beta$ 来优化公式:

\underset{\theta }{min} \ \ \sum{(x,y)\in MobileImg}\left ( h{\theta } (x)-y\right )^2+\beta \sum{(x,y)\in InternetImg}\left ( h{\theta } (x)-y\right )^2

如果设定 $\beta = 1/40$ ,算法相当于给予了 5000 个移动图像和 20 万个互联网图像相同的重视程度。当然,你也可以通过结合验证集等方式,把参数 $β$ 设置为其他值。

通过降低附加的互联网图片的权重,你就不必构建一个庞大的神经网络来保障算法在这两种类型的任务上都有效运作。只有当您觉得附加的数据(互联网图片)与开发/测试集的分布差异较大,或者是附加的数据比来自与开发/测试集(移动应用程序图像)相同分布的数据大得多的时候,才需要这种类型的重新加权。