入职一年后,一位算法工程师给初学者的一封信
作者:媒体转发 时间:2019-07-23 16:50
编译:啤酒泡泡、fuma、张弛、宁静
“作自己的怀疑论者,不断试错,有时,沟通比技术本身能带来更大的价值。”——佚名
亲爱的读者:
你们好!我是Daniel Bourke,一位来自澳大利亚的机器学习工程师。我在这个岗位上从业有一年之久了,好吧,可能很多读者对这个岗位不太熟悉,可以随我看下一天的工作流程:
早上9点,我会走进公司,问同事早安,把我的食物放进冰箱,倒一杯汽水,然后走向我的办公桌。我坐下来,看着我昨天的工作笔记,然后打开Slack,接着我会阅读消息,打开团队分享的每一篇论文或是博客,每天都会有一些要看的消息,因为这个领域的更新发展很快。
消息读完后,我会浏览论文和博客,并且会着重阅读那些让我困惑的内容。通常,那里面会有一些内容能帮到我现在的工作。我会用一个小时进行阅读,有时会更多,这取决于我看的内容,阅读是最基础也是最关键的能力,如果我现在做的事有更好的方法,那么我会学习并运用这个方法,这可以节约我的时间和精力。
早上10点,如果工作任务的截止日期快要到了,我会缩减阅读的时间来赶任务,这是我一天中花时间最多的地方。我会回看我昨天的工作内容,并且查看我写下的后续工作步骤,我的笔记本记录了我一天的工作流程。
在后续操作数据的过程中,如果我已经把数据处理成正确的形式了,那么我就需要用模型跑数据,一开始我会把训练时间调得很短,如果有了进展,我会把时间加长,如果我遇到问题,数据不匹配的问题出现了,那么接下来,我会解决这个问题,然后在尝试新模型前,先获得一个基准。我绝大多数的时间是用来确定数据是不是处理成了模型所要求的形式。
下午4点就快到了,马上可以放松一下了。我说放松,指的是清理我写出的代码,让它变得清晰易读。我会加上一些注释,重新调整代码的结构,万一别人要读我的代码呢?我会这么问自己,通常,阅读我代码的人都是我自己,因为我经常会很快忘记那些写代码时产生的想法。
以上是一天工作最理想的样子,但不是每天都这样,有时候,一个美妙的想法在下午4点37分的时候迸发出来,那么我会继续我的工作,现在你已经对我每天的工作有了大致的了解,接下来我们聊聊机器学习的那些事儿。
人工智能的浪潮不断推进,相信很多读者和我一样加入了机器学习的队伍,我的工作内容很全面:从数据收集、数据处理、建模、实施服务,业务范围涉及你能想到的每一个产业。在这个岗位上呆久了,发现很多事情做起来都是有规律可循的,以一个前人的经验,总结了一名优秀的机器学习工程师需要注意的12个方面,希望读者在阅读后,能对机器学习的从业和学习有所帮助!
把时间花在刀刃上:数据很重要!
如果你熟悉数据科学的一些基本原则,就会发现解决实际应用问题,处理coding问题,本质上是和数据打交道。可令人惊讶的是,我时常忘记这一点,很多时候,我着眼于建立更好的模型,而不是去提高数据的质量。
建立一个更大的模型、使用更多的计算资源可以在短时间内给你一个很好的结果。然而,出来混总是要还的,接下来你会遇到很麻烦的事。
当你参与第一个项目时,请花很多很多的时间去熟悉数据。之所以说很多很多,是因为你通常需要把你预计花的时间乘以3。长远上看,这会帮你在接下来的工作中节约不少时间。
当你拿到一个新的数据,你的目标应该是成为最了解这个数据的专家,你要检查数据的分布,找到不同类型的特征,异常值在哪里,为什么它们是异常值?如果你不能把你的数据描述清楚,那你又怎么能建立模型呢?

不要低估沟通的重要性
我遇到绝大多数的问题都不是技术问题而是沟通问题,的确,技术难题一直都有,但是那是工程师应该去解决的问题。永远不要低估沟通的重要性,无论是公司内部的还是公司外部的。最糟糕的事莫过于解决了一个本不该被解决的技术问题。
为什么会发生这种事呢?
对外来看,这种事发生的原因大多是因为客户的期望和我们所能提供的服务出现了不匹配,虽然客户的期望能够用机器学习实现。对内来看,因为我们每个人在公司都负责很多方面事务,所以我们很难为了同一个目标而做到步调一致。
1. 三省吾身



