训练神经网络的处方


翻译自Andrej Karpathy blog

处方

在实践中,我们从简单到复杂构建模型,并且在每一步我们对将要发生的具体事情进行预测,通过实验进行验证并且通过调查发现问题。一定要防止同时引入许多未经验证的猜想,否则总是会在查找问题。一开始,要使用较小的学习率,并每一步都要评估测试集上的表现。

1 不要一开始写代码

我习惯花费很多时间去观察样本,了解数据的分布并寻找模式。我们的大脑擅长做这些。我会寻找数据的不平衡和差异,我会注意分类数据的过程,这个过程暗示了各种可能的框架。局部的特征是否足够,我们是否需要全局的文本呢?有多少变化,采取了什么样的形式?什么变化是虚假的,可以预处理?空间位置是否重要,或者我们是否想要将其平均化?细节有多重要,我们可以多大程度上对数据进行缩减采样?有多少标签是噪声?

此外,由于神经网络是原始数据的压缩(编译),因此能够查看网络(错误)预测的并了解他们的来源。如果你的网络给你的预测看起来与在数据中不一致,那么就会有所收获。

一旦从数据中发现规律,可以编写一些代码对他们进行搜索、过滤、排序。把数据可视化能帮助我们发现异常值,而异常值总能揭示数据的质量或预处理中的一些错误。

2 设置端到端的训练评估框架

 

posted @ 2019-04-27 21:23  blueattack  阅读(125)  评论(0编辑  收藏  举报