深度学习中决定是否收集更多的数据时可考虑如下:
1.建立第一个端到端的系统后,就可以度量算法的性能并决定如何改进算法
很多新手忍不住尝试很多不同的算法来改进
实际上,收集更多的数据往往比改进学习算法要有用的多
2.决定是否需要收集更多数据的标准:
首先:确定训练集上的性能可否接受。如果模型在训练集上的性能就很差,那么没必要收集更多的数据。
此时可以尝试增加更多的网络层
或者每层增加更多的隐单元从而增加模型的规模
也可以尝试调整学习率等超参数来改进算法
如果这些都不行,则说明问题可能源自训练数据的质量:数据包含太多噪声,或者数据未能包含预测输出所需要的正确输入。此时我们需要重新开始收集干净的数据,或者收集特征更丰富的数据
如果模型在训练集上的性能可以接受,那么我们开始度量测试集上的性能。
如果测试集上的性能也可以接受,则任务完成
如果测试集上的性能比训练集的要差得多,则收集更多的数据时最有效的解决方案之一
此时主要考虑三个要素:
收集更多数据的代价和可行性
其他方法降低测试误差的代价和可行性
增加数据数量能否显著提升测试集性能
3.如果增加数据数量代价太大,那么一个替代的方案是降低模型规模,或者改进正则化(调整超参数、或者加入正则化策略)
如果调整正则化参数之后,训练集性能和测试集性能之间的差距还是无法接受,则只能收集更多的数据
4.当决定增加数据数量时,还需要确定收集多少数据。可以绘制曲线来显式训练集规模和泛化误差之间的关系
根据曲线的延伸,可以预测还需要多少训练数据来到达一定的性能
通常加入小比例的样本不会对泛化误差产生显著的影响。因此建议在对数尺度上考虑训练集的大小,以及增加的数据数量
5.如果收集更多的数据是不可行的(成本太高无法实现,或者无法改进泛化误差),那么改进泛化误差的唯一方法是:改进学习算法本身
这是属于研究领域,并不是对实践者的建议