上周,阿里巴巴重磅发布了机器学习平台 PAI 3.0 版本,据悉,这个 PAL 平台封装了 200 多种经典算法,可以轻松搭建机器学习实验。作为码农一枚,使我不得不抬起原本一直低着敲代码的头,看看这个为 AI 狂欢的世界。
01
做算法、工程还是数据?
我们不说怎么能够成为XXX,我们先来看看成为XXX之后要做什么事情,而做这些事情,需要什么样的能力,在拥有了这些能力、做上了这件事情之后,又能往什么方向发展。
所有人都想做算法,那么,说到底,在工业界做算法到底是干什么?
真正的算法工程师(也有公司叫科学家),最基本的日常工作其实是:读论文&实现之——确认最新论文中的阐述是否真实可重现,进一步确认是否可应用于本企业的产品,进而将其应用到实践中提升产品质量。
既然日常工作首先是读别人论文。那么,必不可少,作为算法工程师得具备快速、大量阅读英语论文的能力。
在计算机科学,尤其是人工智能、机器学习、深度学习这几个当今世界最热门的领域里,大家都在争分夺秒地抢占制高点,根本不能容忍耽搁时间。如果要做算法,平均而言,大致要保持每周读一篇最新论文的频率。
也许这就是为什么,到目前为止,笔者所听闻和见过的算法工程师都是名校相关专业博士的原因。经过几年强化学术研究训练,这些博士们,就算英语综合水平不过CET-4,也能读得进去一篇篇硬骨头似的英语论文!
1.3 理论联系实际,将学术论述与产品、业务结合的能力
一般来说,在大企业里做到真正的算法工程师/科学家,也就不需要自己去动手开发产品了。但做 demo/prototype 还是不能避免的。
算法工程师,可不是用别人写好的工具填几个参数去运行就可以的,需要负责实际业务问题到数学模型的抽象,并能够将他人最新成果应用到业务数据上去。
说得更通俗一点,就算是用别人写的工具或框架,做算法的,也得是i)第一拨、最前沿那批试用者,或者ii)工具最新玩法的发明者。
2. 做工程的都在做什么
2.1 日常工作
相对于算法的创新和尖端,做工程要平实得多。
这一角色比较有代表性的一种岗位就是:机器学习工程师(或戏称调参工程师)——他们使用别人开发的框架和工具,运行已有算法,训练业务数据,获得工作模型。
其间可能需要一些处理数据、选取特征或者调节参数的手段,不过一般都有据可循,并不需要自己去发明一个XXXX。
当然,既然是有领域的程序员,在专业上达到一定深度也是必要的。虽然做工程一般要使用现成技术框架,但并不是说,直接把算法当黑盒用就可以做一名合格的“调参”工程师了。
作为程序员、工程人员,想用机器学习算法解决实际问题,就得对算法有一定程度的掌握,此外对于数据处理和模型验证,也需具备相应知识。
此处说得做数据并非数据的清洗和处理——大家可以看到做工程的岗位,有一部分工作内容就是 ETL 和处理数据。
虽然机器学习中有无监督学习,但在实践领域被证明有直接作用的,基本上还都是有监督模型。
近年来,深度学习在很多应用上取得了巨大的成功,而深度学习的成功,无论是图像、语音、NLP、自动翻译还是 AlphaGo,恰恰依赖于海量的标注数据。无论是做 ML 还是 DL 的工程师(算法&工程),都共同确认一个事实:现阶段而言,数据远比算法重要。
近来一段时间,能明显感到,想入行 AI 的人越来越多,而且增幅越来越大。为什么这么多人想入行 AI 呢?说白了,大多数人是为了高薪。