深度学习的一些经验总结和建议| To do v.s Not To Do

女生的网名这么多〃 提交于 2020-12-23 04:22:11

每天进步一点点,关注&置顶“我爱计算机视觉


CV君:本文作者为百度PaddlePaddle组技术布道师Charlotte77,内容全是实战经验的精炼总结,强烈推荐大家收藏。


除了列出来的内容,各位读者有什么独门秘籍也欢迎文末留言分享!截止到明晚23点(7月22日),留言被点赞最多的深度学习绝招,联系CV君(文末扫码)发50元红包!


昨天看到几篇不同的文章写关于机器学习的to do & not to do,有些观点赞同,有些不赞同,是现在算法岗位这么热门,已经不像几年前一样,可能跑过一些项目、懂点原理就可以了,现在对大家的要求更高,尤其工程能力更不可缺少,只跑过一些iris鸢尾花分类、啤酒与尿布、猫狗分类等的同学需要再提高提高,因为竞争太激烈了,我在这里结合我自己的经验总结一下吧~


To Do


  • 做项目时,边搜集数据可以边用已经搜集好的少部分数据跑模型。不用等到所有数据都搜集好了再跑。

  • 不知道什么算法合适,可以直接把所有的算法都跑一遍,看效果再选择,多跑几个应用场景你就知道什么算法适合什么场景,什么数据对不同的算法会有什么影响了。

  • 不知道什么参数是最佳参数,可以用random search或者grid search自动搜索最佳参数组合,有经验以后对于每个参数的大概范围心里会有个数。

  • 一定要练习工程能力,只会调参的demo侠现在很难找到工作啦。

  • 模型复现和刷题是很好的锻炼工程能力的一种方式。

  • 刷题不要追求数量,要总结不同类型的题目的经验,并结合之前的业务中,看能不能优化之前的业务逻辑。

  • 模型复现可以给自己规定一个任务,譬如在一个月内,把某篇论文的Tensorflow实现的代码,复现成Pytorch或者PaddlePaddle等其他框架的代码,不是闲着没事做,而是模型复现可以迅速提高你对框架的熟悉度和代码能力。

  • 模型复现的过程中,最难的是写新的op和模型效果(精度和速度)的对齐。这可能很折磨人,但是收获也很大。

  • 如果要做新项目,可以先看看有没有预训练模型,可以快速做迁移学习的,如果有,那么整体的模型周期会快很多。

  • 如果跑完算法,一定要有一个成品的形态,最好不要只做算法这一块,譬如跑完模型将其打包封装成服务接口(服务端和移动端等),达到让人可用的状态最好。

  • 领导不想知道过程,只想知道结果。没有可用的东西和可视化的结果,他会觉得你啥也没做。

  • 上条只针对部分领导。

  • 没有人会比你更关心模型的参数调整导致模型的效果提升了0.1%还是1%,大多数人,尤其是leader、或者leader的leader,只关心它有什么用,真实场景的效果好不好。

  • 可以多和同事、同行等互相交流,参加线下的学习会、交流会等,可能会有意想不到的收获。

  • 学习新的算法,先把代码跑起来再说,再来看理论、数学推导、自己手写实现等。

  • 除了调参以外,还需要关注关注部署上线、模型压缩等方面的内容。




Not To Do

  • 训练数据不要太干净了,因为真实场景的数据往往和实验数据差很多,尝试加点噪音吧,做些数据增强和mixup等。

  • 论文里的效果不一定能复现。可以尝试论文的思路,但是不要太过相信论文里的效果数据。

  • 一个项目就好好深挖,不仅仅要做出来,还要不断的优化,不然每个项目都只是跑通了,效果还行,没必要写到简历里,不如写一个做的很深入,尝试了各种优化方法并有效果提升的项目。

  • 不要因为觉得自己数学不好就先去恶补数学,买一堆高等代数、数学分析、实变函数、复变函数等纯数学书,如果一定要看,推荐《线性代数》《信息论》《凸优化》《数值分析》。

  • 上条推荐的四本数学书也不用全看,凸优化太厚了,其他三本可以在自己有大块时间可以刷书的时候,规定自己在一个月或者几个月的时间迅速刷完。线性代数是基础,数值分析是优化方法(也不用全看),凸优化与信息论与目标函数相关,涉及机器学习的很多理论知识。

  • 不要觉得你训练的模型效果多好就多么厉害,除非是做科研、打比赛、工业界更关注能不能落地,能不能应用产生价值,不要自high = =

  • 如果把你的算法封装成服务了,也要做做压测,学习下工程方面的内容。

  • 最好的状态是,工程能力强,又懂算法,两者结合,效果更佳。不要只注重某一方面的提升,多关注下自己的代码风格,不要让你的同事code review的时候犯难 - -


暂时想到这些,每条都是试错后的血泪教训的总结T_T,有补充的欢迎大家在下面留言~


截止到明晚23点(7月22日),在本文下面留言被点赞最多的“绝招”,联系CV君(文末扫码)发50元红包!(为防止机器人刷赞,该文已加入异常检测,解释权归CV君所有)




CV细分方向交流群


52CV已经建立多个CV专业交流群,包括:目标跟踪、目标检测、语义分割、姿态估计、人脸识别检测、医学影像处理、超分辨率、神经架构搜索、GAN、强化学习等,扫码添加CV君拉你入群,

请务必注明相关方向,比如:目标检测

喜欢在QQ交流的童鞋,可以加52CV官方QQ群805388940

(不会时时在线,如果没能及时通过验证还请见谅)


长按关注我爱计算机视觉

本文分享自微信公众号 - 我爱计算机视觉(aicvml)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!