0
雷锋网 AI 研习社按:据 LinkedIn 发布的「全球 AI 领域人才报告」显示,2011 年深度学习技术爆发,人工智能领域有了飞跃式的发展,但核心人才资源的短缺限制了国内人工智能相关行业的发展速度,尤其是在软件、算法、机器学习等基础层领域,有着更加明显的人才需求缺口。与此同时,为了招揽更多优秀的人才,科技公司给 AI 工程师开出的福利待遇也远远高于其他 IT 领域开发者的薪资。
在市场的强烈需求以及高额薪资的双重诱惑下,不少开发者计划转型 AI 开发,投身于 AI 的浪潮中。不过,普通开发者如何基于现有的开发经历顺利过渡到 AI 行业?人工智能开发者如何构建自己的技能体系?未来工业界需要怎样的人工智能开发人才?这些都是非 AI 领域程序员不得不面对的问题。带着这些疑问,雷锋网 AI 研习社采访了知乎大 V 阿萨姆,他将结合自身的学习与工作经验为开发者解读转型 AI 所要面对的困难和挑战。
嘉宾简介:阿萨姆(现知乎 ID 为「微调」),普华永道高级数据科学家,负责统计学习模型开发。有丰富的工业及学术经验,擅长将理论知识应用于实践中。曾以第一作者发表过多篇不同领域的学术文章,如人机互动、智能系统等。研究兴趣包括异常检测、集成学习、跨领域机器学习。以笔名“阿萨姆”在知乎上创作了多篇机器学习相关的文章,曾数次被知乎及知乎日报收录。乐于技术分享,近期正在进行机器学习实践书籍创作。阿萨姆曾在雷锋网 AI 慕课学院举办主题为「机器学习实践经验分享」的公开课,回顾链接:http://www.mooc.ai/open/course/375。
以下是 AI 研习社对阿萨姆的采访:
1. 一个合格的机器学习开发者应该需要怎样的技能?或者说怎样的知识体系?
我觉得分为很多方面,和公司的规模有很大关系。如果单从开发角度来看,最基本的要求是需要大致了解各个模型的优缺点,清楚在什么情况下选择怎样的模型。
公司有规模大小之分,但对于机器学习工程师这一岗位,很多公司也提出了基本的技能要求。这些基本要求不过分强调深度,但追求广度,属于一个“合格”工程师应该掌握的基本技能。简单概括包括如下几点:
1. 业务能力
理解问题的痛点,明白如何用机器学习方法看待商业问题;
懂得数据需求,能收集重要的数据和必备的信息;
具备从模型中攫取价值的能力,明白模型的最终目的是产生商业价值。
2. 数据能力
数据整合能力:能够将不同渠道的数据整合(数据库、excel、JSON等),合并、去重等;
数据处理能力:缺失值处理(发现与补全)、数据格式转换、数据压缩、过采样欠采样等;
数据可视化:能够使用基本的数据可视化工具来分析数据,不管是 R 的 ggplot2 还是 Python 的 Matlibplot,或者 tableau 和 Qlik 等。
3. 模型与算法理解
理解基本的机器学习算法,明白不同场景下的经典解决方案,不迷信算法。(比如小数据集的简单问题用线性模型就够了)
具备基本的统计概率知识,知道如何避免数据中的陷阱;
理解经典模型的基本调参,可以解释分析模型的输出结果。
4. 编程能力
熟练操作如 Python、R 等语言,知道特定算法的工具包,如 Sklearn;
熟练不同语言下的数据结构,知道如何高效地处理数据,如 pandas。
懂得分布式运算会有所帮助,明白如何在线上部署机器学习模型,也是一个加分项。
详细信息请参照我的知乎回答:
https://www.zhihu.com/question/63881785/answer/243635446 。
2. 国内外不少巨头都在打造AI开发者平台,有的甚至开放了自家的算法供大家参考,对于目前几个大的AI开发者平台,工程师们应该怎样选择呢?
现在还处于百家争鸣的阶段,一般都是跟着公司/团队的需求走。更常见的选择是跟着巨头走,比如深度学习的话 TensorFlow(虽然被不少用 pytorch 和 caffe 的人诟病)背靠谷歌好乘凉。跟着巨头走的主要好处在于代码会持续更新,不会慢慢变得无人维护。其次就是和编程语言有关系,如果用 python 的话,通用机器学习库基本主要是 sklearn,如果用 java 有 weka。但最重要的是,不要把自己绑定到某一语言或者平台上,要花时间在编程语言和平台背后的模型上去。工程师们最好具备的是“T字型技能”,即深入掌握某个语言/平台,但对其他平台有粗略的了解。
3. 数据对于 AI 来讲非常重要,对于想转行做 AI 的工程师来讲,如何快速掌握大数据相关知识,培养良好的数据思维?
这个问题我就不强答了,因为我对大数据的了解比较有限。有一个值得关注的就是,现阶段很多的 ML 模型还用不到大数据,往往数据只有几个 GB 而已,甚至几 MB。因此,不要拘泥于大数据知识,如果有条件的话,优先掌握机器学习模型还是比较重要。
同时,工程师也是有分工的,如果有可能掌握更多技能当然最好不过,但时间有限的情况下做到精通机器学习也可以让你成为不可多得的人才。至于数据思维,机器学习本身学习的就是数据关联或者特性,把自己当做一个模型,试着培养对数据间关系的敏感度。
4. 您曾经在文章中说过,从广义角度来说,学术界比较超前,但不会将工业界远远甩在身后,而是一套生态系统中的不同环节。对于已经投身于业界并打算转型 AI 的工程师来讲,如何抓住学界最新的研究方向,并将最新的理论应用于自己所在的领域?
虽然这句话听起来像一句鸡汤,但我觉得兴趣导向是最重要的。我的工作中遇到了很多欺诈检测的项目,于是我开始了解相关的知识,从看书拓展到研究相关的论文。在学习和研究了这个方向的知识一年左右,我有了一些对于异常检测的模型改进思路。最近我们投的论文就是提出了一种新的异常检测方法,而年初刚被 IEEE Intelligent Systems 接受的另一篇论文也是将工作内容转化为学术成果的产物。因此,如果能从工作中找到乐趣,以及想解决的问题,那么读论文、做研究、写论文是很顺理成章的事情。
另外,一开始有新思路的时候我并没有计划把这个算法写成论文,而仅仅是放到了 GitHub 上计划开源,但很快发现的确比较实用,因此才拓展成了论文。所以,最重要的是多想、多动手,剩下的事情就是水到渠成。当然,前期积累是很重要的,不然难免闭门造车。
另一个要警惕的是不要追逐热点,每天新发表的论文太多了,还是要以自己的工作领域为主。书籍作为框架,而论文作为突破方向。
5. 特征的选择会直接影响模型实现的结果,但是很多刚转入 AI 领域的开发者在学习和训练中很难选出合适的特征数据集,请问在机器学习中如何选择特征数据集?特征是否越多越好?
特征不是越多越好,无效特征会对最终模型施加负面影响。有效的选择特征并不容易,一般来说有两个方法:
人工选择+大量的手工特征工程;
利用深度学习等方法抽取有效的数据表示。
展开了说是非常繁复的,可以参考我的文章(https://www.zhihu.com/question/264417928/answer/283087276 )。一般来说,数据量够的话深度学习自动抽取的特征表示能力更好,小数据集上人工特征工程效果更好。不幸的是,特征工程没太多窍门,唯手熟尔。
6. 如今机器学习已经延伸至各行各业,变得越来越重要,在这种情况下AI 工程师会面临什么样的机会和挑战?
最大的挑战来自于工作流程化、模块平台化的趋势。换句话说,入门级机器学习工程师的重要性已经越来越低了,很多自动化平台实现了半自动调参,比新手工程师的效果还好。有趣的讨论可以参看:https://www.zhihu.com/question/265761632/answer/298995665。
至于机会的话,主要来自于各行各业的AI化。不仅仅是互联网公司需要AI,传统行业也需要。最适合在传统行业推行AI的,反而是出身于这些行业的人,是以为机会。
7. 在 AI 热之前,开发者也用线性回归等去拟合、预测数据或者是聚类、关联规则挖掘数据,只不过那时没有冠以「机器学习」的名号。您觉得现在机器学习浪潮会不会有些虚热?目前人工智能技术的落地和应用还有哪些困难?
一个 AI 方向的笑话是,“内行都觉得现在的AI模型弱爆了,而外行都觉得现在的AI太强了而担心毁灭人类”。现在AI的火热主要取决于数据、算法、算力三方面的共同发展。虚热肯定是有的,泡沫是不可避免的。但现在即使用逻辑回归,和以前的方法也有了变化,因为要处理的数据量有了变化。同时算力上升使得更多模型变得可能。可以认为现在的机器学习是以前的应用统计的升级实用版,并融入了更多的计算机科学。
8. 您在知乎上的每个回答和每篇文章都有很多人评赞,您平时是怎样经营你的知乎号?如何在工作和知乎之间平衡的呢?
我似乎没有特别经营知乎,也没有什么特别的诉求。我采用“阿萨姆”笔名的原因就是奔着好玩的目的去的。同时我一般的回答和文章都尽量希望:
严肃回答,尽量详实有料,杜绝抖机灵;
不懂不答,不强答。不回答情感、八卦、政治这类问题;
不随便点赞,不污染关注者的时间线。
我给大家的建议也是不管有没有人看,先写了再说。在合适的时候,会有人发掘到你的文章。其次就是得失心不必太重,社交平台当个业余乐趣即可。至于平衡工作和知乎的话,我的工作比较清闲,偏研究性质,所以只要有空的时候把最近的思考顺道写出来就好了。
9. 您有没有计划开拓微信、微博平台,或者像数据科学圈网红「爱可可爱生活」老师那样做个直播,将AI知识变现呢?
爱可可爱生活老师是我辈楷模,每天关注那么多工作。我暂时还没有类似的打算,原因如下:
自身能力有限,担心误人子弟,还属于知识积累期。
现在的工作收入尚可,知识变现对我来说反而太奢侈了。当然,时不时的做一些免费分享是很好的。
有很多的研究问题还没有解决,一直有新的思路冒出来。在灵感枯竭时或许更适合系统的输出,比如制作一门课程。
一直有朋友想要合作做一个公众微信号,但我因为时间问题没敢接。至于微博,我的确接到了新浪工作人员的联系,我的认证账号是“阿萨姆谈AI”,会时不时的发一些短而精的东西,欢迎关注。就像刚才说的,社交平台对我而言只是乐趣和生活调剂,不想因为“业绩压力”而负重。同时,我的确和电子工业出版社有合作在准备一本机器学习相关的书籍,但因为一直在赶论文,进展有限,出版时间还需要打个问号。
在我心里一直都是学术第一,别的事情都可以往后排。而且如果一件事情如果无法做好,我一般选择再积累一段时间,以后再做打算。
10. 对于想转行做 AI 开发的工程师们,你还有哪些建议给他们?
开个玩笑的话,我想说:“富贵险中求。”但严肃的说,我觉得转行一直有两个需要特别注意的问题:
不要期望一步到位,尽量寻求中间地带,也就是你现在行业与AI的交叉点。这样不仅可以转行,还可以降低风险,并提高自身价值。
对行业有更深刻的认识,其实中高端的机器学习/深度学习没有那么大的需求,而入门级的其实薪水也不大诱人。因此要根据自身条件慢一点转,有可能再拿个相关学位也是很好的选择。做软件工程也很好,开发手机app对社会也有贡献,做网络安全的前景也很广阔。CS的子领域不只有AI,还有很多稳妥、待遇好、有意义的方向。
最后想说,这个行业、时代压力都很大。虽然工作很重要,但个人身体健康、心理健康更加重要。我有不少同行包括我自己,都或多或少有一些健康问题,比如颈椎或者慢性胃病。因此身体真的是本钱,有些事情得过且过即可。祝大家有个好身体吧。
雷峰网原创文章,未经授权禁止转载。详情见转载须知。