【原】深度学习的一些经验总结和建议 | To do v.s Not To Do
前言:本文同步发布于公众号:Charlotte数据挖掘,欢迎关注,获得最新干货~
昨天看到几篇不同的文章写关于机器学习的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,有补充的欢迎大家在下面留言~
【原】深度学习的一些经验总结和建议 | To do v.s Not To Do的更多相关文章
- ML平台_微博深度学习平台架构和实践
( 转载至: http://www.36dsj.com/archives/98977) 随着人工神经网络算法的成熟.GPU计算能力的提升,深度学习在众多领域都取得了重大突破.本文介绍了微博引入深度学 ...
- 深度学习、物联网专家Sunil Kumar Vuppala博士独家专访
介绍 有多种方法可以学习数据科学,机器学习和深度学习概念.您可以观看视频,阅读文章,参加课程,参加会议等.但是有一件事是无法替代的----经验. 我个人从与数据科学专家和行业领袖的交流中学到了很多.他 ...
- Tensorflow2 深度学习十必知
博主根据自身多年的深度学习算法研发经验,整理分享以下十条必知. 含参考资料链接,部分附上相关代码实现. 独乐乐不如众乐乐,希望对各位看客有所帮助. 待回头有时间再展开细节说一说深度学习里的那些道道. ...
- 深度学习中环境配置的一些经验总结(conda 常用命令)
前两个月参加了学校的国创项目,和一个外院的同学组队.课题是基于深度学习的新闻图片中网络暴力元素的检查. 6月末最后一门试考完,正式开始暑假,便有了大把时间搞这个国创项目(反正没有其他事干).两个组凑钱 ...
- YOLO_Online 将深度学习最火的目标检测做成在线服务实战经验分享
YOLO_Online 将深度学习最火的目标检测做成在线服务 第一次接触 YOLO 这个目标检测项目的时候,我就在想,怎么样能够封装一下让普通人也能够体验深度学习最火的目标检测项目,不需要关注技术细节 ...
- 【深度学习Deep Learning】资料大全
最近在学深度学习相关的东西,在网上搜集到了一些不错的资料,现在汇总一下: Free Online Books by Yoshua Bengio, Ian Goodfellow and Aaron C ...
- Deep Learning(深度学习)学习笔记整理
申明:本文非笔者原创,原文转载自:http://www.sigvc.org/bbs/thread-2187-1-3.html 4.2.初级(浅层)特征表示 既然像素级的特征表示方法没有作用,那怎样的表 ...
- paper 53 :深度学习(转载)
转载来源:http://blog.csdn.net/fengbingchun/article/details/50087005 这篇文章主要是为了对深度学习(DeepLearning)有个初步了解,算 ...
- 【转载】Deep Learning(深度学习)学习笔记整理
http://blog.csdn.net/zouxy09/article/details/8775360 一.概述 Artificial Intelligence,也就是人工智能,就像长生不老和星际漫 ...
随机推荐
- 使用Boost的DLL库管理动态链接库(类似于Qt中的QLibrary)
Boost 1.61新增了一个DLL库,跟Qt中的QLibrary类似,提供了跨平台的动态库链接库加载.调用等功能.http://www.boost.org/users/history/version ...
- CSS技巧分享:如何用css制作横排二级下拉菜单
原文:CSS技巧分享:如何用css制作横排二级下拉菜单 导航菜单是每个网站所必备的功能,也是每个学习制作网站的朋友所必须接触的,如何用css样式制作一个简单漂亮的二级下拉菜单呢,下来小编就一步一步教大 ...
- .NET Core整合log4net以及全局异常捕获实现2
Startup代码 public static ILoggerRepository repository { get; set; } public Startup(IConfiguration con ...
- Android View 滚动边界的测量
最近一直在用Android TV的RecyclerView,实现视频搜索列表卡片的滚动显示,由于采用了双排滚动,打破了系统默认的单排滚动,且每一屏幕显示10个完整卡片5个半漏边卡片,每个完整卡片的左下 ...
- 给变量赋值,程序会跳到 HardFault_Handler的问题
原因:变量属于指针,该指针没有初始化
- 长江存储32层3D NAND今年底准备好,预计2020年赶上世界前沿(有些ppt很精彩)
集微网消息(文/刘洋)2017年1月14日,首届IC咖啡国际智慧科技产业峰会暨ICTech Summit 2017在上海隆重举行.本次峰会以“匠心独运 卓越创‘芯’”为主题,集结了ICT产业领袖与行业 ...
- cStor云存储、cProc云处理、cVideo云视频、cTrans云传输,云创个人网盘
http://www.cstor.cn,微信公众号:cstor_cn. 云创大数据是国际上云计算产品线齐全的企业之一,针对爆炸式增长的大数据需求,研发了自主知识产权的cStor云存储.cPr ...
- 627.Swap Salary-(LeetCode之Database篇)
问题描述 给出下面的表,名为salary. id name sex salary 1 A m 2500 2 B f 1500 3 C m 5500 4 D f 500 要求执行一个UPDATE语句,将 ...
- asp.net core 系列之Startup
这篇文章简单记录 ASP.NET Core中 ,startup类的一些使用. 一.前言 在 Startup类中,一般有两个方法: ConfigureServices 方法: 用来配置应用的 servi ...
- Spring Framework 组件注册 之 @Component
Spring Framework 组件注册 之 @Component 写在前面 在spring大行其道的今天,对于spring的使用和掌握乃是不可缺少的必备技能.但是spring的整个体系尤为庞大,对 ...