博士生的科研感悟和生活沉淀机器学习与数据挖掘深度学习·神经网络·计算机视觉

机器学习的一点经验

2017-12-05  本文已影响27人  Shuailong
数据篇
  1. 对于不熟悉的任务或者数据,一定要小心仔细地检查数据的各种性质、各种分布,对数据的各项指标了如指掌。
  2. 仔细检查数据的过程中,得到一些重要的直觉,记录下来。
  3. 数据的预处理非常重要。预处理的时候结合最佳实践和模型需求进行。
模型篇
  1. 建立模型时,不要急于用代码实现。先和师兄或者导师讨论,充分以后再实现。
  2. 从最简单的模型开始。一步一步加大模型的复杂性,而不使性能下降。
  3. 对于复杂的模型,先选取一小部分数据进行检验。小数据拟合的很好以后,再进行大数据的测试。
实现篇
  1. 代码实现的时候,自上而下/快速迭代同时使用。初期尽量少地使用模块化以保证灵活性。
  2. 代码实现的时候,如果Github有类似实现,一定先阅读现有的方法。避免重新造轮子/实现过于复杂/实现错误。
  3. 代码实现的时候进行单元测试。提交代码之前先通过尽量完整的测试。
训练篇
  1. 先试用最简单的优化器,比如带有动量的梯度下降法,不奏效以后再使用更高阶的优化器。
  2. 利用好损失曲线和结果曲线,来观察模型的学习过程。如果曲线过于震荡,考虑加大batch的大小。如果在训练集上太难拟合,考虑减少模型参数;增加特征。如果训练集拟合的很好,开发和测试集效果不好,考虑使用十折交叉法检验训练和测试集的分布是否一致。
  3. 根据曲线来调整学习率。学习率是最重要的超参数之一。
学习篇
  1. 保证不时阅读顶会论文/最新论文,掌握最新的研究动向。
  2. 阅读论文和代码实现同步进行,加深对文章的理解,提高实现能力。
其他
  1. 尽量多地与导师沟通。掌握主动权。频率至少两周一次。
  2. 对于导师布置的任务,尽可能快速完成。如果屡次不能得到好的结果,一定及时和导师汇报。否则会导致导师不敢把其他的任务交给自己。
  3. 要一直学习不能松懈。
上一篇下一篇

猜你喜欢

热点阅读