谢梁,美国微软总部首席数据科学家,本科毕业于西南财经大学经济学专业,然后在中国工商银行从事信贷评估工作,一年后辞职到纽约州立大学学习应用计量经济学。研究兴趣主要是混合模型(mixed model)和数据挖掘方法,以及 SAS 潜力的挖掘(他认为在各大 SAS 论坛帮人解决问题同时学习他人经验,是提升自己最快的途径,曾用网名 oloolo),著有《Keras 快速上手:基于 Python 的深度学习实战》。
十余年的机器学习应用经验,让他成功从一位经济学毕业生转型为云计算领域的顶级数据科学家。近日,谢梁接受 CSDN 专访,分享了从经济学入坑机器学习的原因和挑战;如何深入掌握深度学习;当今工业界应用的模型很多,是否可安心当调包侠等话题。
另外,10 月 28 日,谢梁将在 SDCC 2017「人工智能技术实战线上峰会」 上带来题为 《使用 Keras 由零开始快速构造自己的深度学习模型》 的分享,更多峰会嘉宾和议题请查看文末。
CSDN:你是经济学博士,什么原因让你着迷于机器学习、数据挖掘和人工智能,并将其应用于 IT 基础架构的优化?
谢梁:我的专业是计量经济学,专注于实证分析各种社会和经济现象,其中很多内容跟统计学习、机器学习都有重合,只是应用领域不同,后面的数理模型还是有很多相通的地方。我一开始也直接从事基于机器学习的商业智能方面的工作,包括自动化的营销、客户画像等,使我对机器学习的应用领域有了比较多的了解。
到微软以后,我先后在 Azure 云计算部门从事了服务层 SaaS 和基础架构层 IaaS 的数据分析工作。SaaS 层专注于使用 Azure 云服务的客户行为分析,而在 IaaS 则重点构筑基于机器学习的基础架构运营优化工作。这些领域都需要对大量的数据进行分析,对客户运营策略和基础架构上运行的软件行为进行优化,都是在有限资源条件下进行最优化的工作,同时需要对结果进行合理的解读与概念推广,这些都与经济学里的工作很像,因此计量经济学所学的理论,方法和技术都能自然地得到运用。
凡是有大量数据,并能根据数据找出某种规律并实施操作的业务都能运用机器学习的方法来自动化和优化。微软 Azure 云计算恰恰提供了一个非常符合这种要求的应用环境,并且其规模和竞争压力促使其无法一直维持最初的粗放型扩张,必须运用现代智能方法提高自动化运维水平。可以说在合适的时间,出现的合适的机会促使我考虑将机器学习和人工智能应用于 IT 基础架构的优化。
CSDN:经济学博士入坑机器学习,你遇到的挑战都有哪些?
谢梁:经济学背景的人进行机器学习有自己的优势和劣势。
优势是经济学出身的人对实证分析结果的解释非常重视,往往考虑的是如何在实证结果的基础之上进一步提供理论总结和可执行的策略。这在以后的发展中非常重要。
劣势是经济学出身的人在编程方面相对较弱,特别是生产系统上进行规范的编程相对科班出身的人来讲差距较大,会影响在 IT 公司里发挥。
经济学里面的一个核心概念是比较优势,作为经济学出身的人,需要懂得合理运用这个理论。
CSDN:你和团队将机器学习与人工智能方法用于大规模高可用并行存储和运维,具体包括哪些方面的工作?是否可以量化说明这些手段的效果?
谢梁:机器学习和人工智能的方法可以应用于 IaaS 存储系统的多个方面,包括负载平衡、节点故障预测、可售容量预测、系统工作调度等。更新的应用包括内部运维的知识图谱构建,代码质量打分和 Bug 预测等。这些工作有很大部分也是建立在微软现有其他部门的工作或者建立的基础平台之上。
机器学习的效果非常显著。比如,通过节点故障预测,并相应地合理安排存储拷贝,我们在几乎不损失容量的情况下,将由于节点故障造成的 Incidents 降低了 30%。
CSDN:根据你的经验,是否未来的开发团队和运维团队都应当掌握机器学习和人工智能方法?
谢梁:我觉得未来的运维必须智能化才能有效降低程序员的工作负荷,极大提高系统运作效率。在一个部门里面,至少需要一个专门的数据挖掘团队来提供相应服务,而如果开发和运维团队都能将人工智能方法从一开始就建立到系统中,那将有更大的竞争优势。这也是我在 Azure 存储部门推动的目标之一。
CSDN:深度学习在互联网公司应用广泛,社区提供的工具很多,你和团队如何根据场景选择深度学习框架?
谢梁:微软作为一个成熟的领先 IT 公司,内部有自己的系统和深度学习平台。但是微软现在也拥抱各种开源工具。在深度学习框架选择上,仍然是根据自己需要的场景,「哪个能尽快提供从概念到生产系统的实现」是选择的重要依据。
CSDN:你的著作《Keras 快速上手:基于 Python 的深度学习实战》,选择从 Keras 入手简单、快速地设计模型,较少注底层代码,那我们是否可以这么推导:现在很多算法都封装好了,并且工业界应用的模型那么多,安心当调包侠就可以了?
谢梁:肯定不是这样的。诚然,现在的机器学习理论和算法越来越先进,很多以前需要数据科学家和分析师进行的工作都可以由算法自动完成,比如以前需要做很多人工的特征工程工作,现在新的算法将这方面的要求降低,但是如何选择合适的模型,如何对结果进行合理的解释仍然需要数据科学家有较好的理论训练和知识深度。
在工业界应用机器学习,包括三个部分:
现在有了较多可调用的机器学习包,只是让中段的一些工作简化,但同时对前端和末端提出了更多的要求,因为现在很多业务问题都非常复杂,如何将其合理地分解为可以进行建模的问题,非常考验实践工作者。同时,如何将分析结果植入到现有生产系统中,高效率高质量地运行也是不低的要求。
「调包侠」会是被人工智能代替的首批白领之一,所以当调包侠可没法安心。
CSDN:能否分享写这本书的初衷,以及写作过程中你印象最深刻的事情是什么?
谢梁:写这本书之前就有很多业界朋友问我深度学习问题,最多的就是如何开始,并能了解一些应用。他们也都看了很多市面上的深度学习书籍,基本面临两个难题:一是很多书是大部头论著,作为学校毕业多年已经工作的人来说没有精力研读;二是很多深度学习著作难以入门,学习曲线陡峭,不是适合他们的背景。他们需要一本简单实用的书,能达到快速入门的目的。
CSDN:很多专家对这本书的评价都强调了「实用」,你能否总结这一点如何体现,实用的收获都有哪些?
谢梁:最实用的书就是菜谱,从配料都烹饪的每一步都一一列出。我们这本书也遵循这样的方式,不过多强调理论,而是具体强调对于一个问题去怎么做。没有深度学习基础的读者读完本书以后能自己举一反三进行类似问题的实际操作。
CSDN:有评论说这部书后半部分讲解得比较深,需要有一定深度学习基础,你对本书读者的知识储备和配套学习资料有什么建议吗?
谢梁:这本书基本都讲得比较浅显,后半部分可能最深的要算时间序列的一些理论,但是并不影响读者学习深度学习实际操作部分。如果对那些理论暂时不了解的话可以跳过,先看代码,等有时间再回去依次了解每个概念。
CSDN:通过 Keras 快速体验深度学习之后,如果还想进一步提升,比如希望透彻理解底层原理和优化,或者这本书的经验用到移动端深度学习,你有什么建议?
谢梁:进一步提升需要跟上最新的进展,可以多读读这个领域顶级会议的文章。如果没有什么基础可以从以前的经典论文开始读,辅以 Ian Goodfellow 与 Yoshua Bengio 合写的《深度学习》这本书能较好地了解原理。之后可以关注当前顶级会议的文章,看看最新发展。
CSDN:有人评价说 Keras 不好调试,编译慢,那么 Keras + TensorFlow/CNTK 是否可以满足生产环境需求?
谢梁:相对于很多模型的训练时间,编译的耗时可以忽略不计。对于轻度的生产环境,Keras 本身就可以满足需求,比如用 neocortex.js 在浏览器中根据 Keras 模型实时打分。对于负载较大的生产环境或者对实时性要求非常高的生产环境,还是需要直接使用 TensorFlow 或者 CNTK 的底层 API。
CSDN:对于调参,有哪些经验可以分享?
谢梁:调参对于传统的机器学习方法通常是通过 Cross Validation 进行 greedy search,但是对于 hyperparameter 的范围大致根据经验有一个设定。对于深度学习的模型,还是根据数据量大小和特点选择合适的结构特征比较有效。
10 月 28 日,谢梁将在 SDCC 2017「人工智能技术实战线上峰会」 上带来题为 《使用 Keras 由零开始快速构造自己的深度学习模型》 的分享。
同时,CSDN 也邀请了来自阿里巴巴、微软、商汤科技、第四范式、微博、出门问问、菱歌科技的 AI 专家,将针对机器学习平台、系统架构、对话机器人、芯片、推荐系统、Keras、分布式系统、NLP 等热点话题进行分享。先行者们正在关注哪些关键技术?如何从理论跨越到企业创新实践?你将从本次峰会找到答案。每个演讲时段均设有答疑交流环节,与会者和讲师可零距离互动。
报名地址:http://edu.csdn.net/huiyiCourse/series_detail/68