导读:人工智能多年来一直是行业热门,AI人才也受各大公司争相聘请。如何能快速掌握AI技能?高水准的AI人才应该具备哪些专业能力?AI大牛是怎么炼成的?格灵深瞳CTO邓亚峰总结的AI学习路线,十分值得一读。
邓亚峰,现任格灵深瞳信息技术有限公司首席技术官,毕业于清华大学,具有16年的计算机视觉和人工智能方向的研发经验。在过去的工作中,他发表过论文十余篇,申请中国专利超过100项,其中已经授权的有95项。他曾任职百度深度学习研究院,负责人脸识别方向,曾经多次带领团队在主流的人脸检测、人脸识别竞赛上取得过优异成绩。其主要的兴趣是关注人工智能特别是计算机视觉技术如何从技术、产品和商业角度在真实世界中大规模落地。
高可用架构:很高兴采访到您。您是AI领域的老兵了,能否简单介绍一下您以及您选择深耕AI领域的初心是什么?为什么看中了AI的发展方向?
邓亚峰:2002年,我本科毕业到清华读研究生,当时很多同学选择的是通信这些当年比较热门的方向,我自己选择AI本身有偶然因素,但后来回想确实是因为自己很喜欢这个方向,感觉让计算机能看懂图像视频中的内容或能识别语音中说话的内容都是非常有趣、很酷的事情,于是就选择了这个方向。
开始做这个方向,主要是出于兴趣和对技术的热爱,感觉做AI是很有挑战很有趣的事情,就进来了。在2012年前的时候,AI因为落地很少,一直都是一个在工业界很冷门的方向,当时做这块的公司很少。我自己能够坚持下来,一方面是兴趣和热爱起了很大的作用,另外一方面,我从一开始就相信AI技术的价值和对我们未来生活的巨大影响。AI可以看作是工业自动化的延申,帮助人从简单重复的工作中解放出来,增强人的能力,提高人的效率,从而让我们过上更好的生活,让我们拥有更好的世界。
高可用架构:格灵深瞳在计算机视觉等领域有非常高的知名度,您觉得计算机视觉最大的难点是什么?在落地的过程中,遇到最大的困难又是什么?
邓亚峰:计算机视觉虽然取得了巨大进步,但依然难以真正产品化,往往需要针对场景调整和适配,目前的主要挑战是如何研发出性能指标、成本、支持规模都能够大规模复制的标准化产品。而落地过程中,和其它人工智能技术一样,最大的难点是技术能达到的水平和大家的需求之间没办法百分之百匹配。比如,在过去很多年中,人脸识别需求一直都存在,但技术无法充分满足,也就无法落地。即使在今天,技术依然不是完美的,但我们不能等待技术完全成熟才去落地。所以,当前阶段的主要挑战在于,基于现有不完美的技术,如何综合市场、产品、技术各方面的因素,尽快让技术变成产品、服务落地产生价值,并利用落地产生的营收、数据,帮助人才、技术、产品和市场形成良性循环。
高可用架构:数据在AI领域扮演很重要的角色,模型训练通常需要很多的数据,业内一般采用什么方式做数据标注?人肉标记吗?格灵深瞳是怎么做的?
邓亚峰:由于深度学习模型的特点,现在的模型训练往往需要大量数据,以人脸识别为例,往往需要几亿几十亿的数据。用暴力方式标注这么多的数据,一方面成本非常高(一般标注一张图需要几毛钱),另外一方面,很多数据标注任务难度超出了人的能力。我们一般采用了半自动方式进行处理,利用现有算法模型把数据进行预处理,然后将其中机器无法做好而人可以做好的部分采用人工标注,通过数据之间的内在关联来大大减少标注工作量,并提升标准质量。
高可用架构:数学是人工智能的基础,需要学习哪些数学知识才能进入该领域?不同的人工智能方向是否需要掌握不同的算法?人脸检测、人脸识别一般包含哪些算法?
邓亚峰:数学知识对从事人工智能的同学而言非常重要,当前的人工智能主要是基于统计的,同时神经网络中有很多关于求导、矩阵相关的运算,所以,如果可以掌握高等数学、概率统计、随机过程、线性代数或矩阵论相关的知识将会很有帮助。当然,如果已经掌握了机器学习的各种知识,上述的数学知识并不是必需的。而且人工智能是一门需要动手亲历才能掌握的学科,所以,并不一定要先学好上述课程才可以开始人工智能的学习。
不同的人工智能方向,因为有不同的任务,有不同的领域知识,所以需要有不同的模型或者方法来表示,算法上自然会有所区别。比如视觉里面的检测任务就是其它领域较少用到的,而语音识别和语义理解里面会用到很多序列相关的模型,视觉领域用到的会少一些。但现在,语音识别、自然语言理解的方法和机器视觉在方法上越来越统一,不同领域的方法也会相互借鉴,所以,作为算法工程师,最好可以都掌握一些。
人脸检测在早期有相对独立的算法,比如boosting等,但在深度学习时代,人脸检测算法和物体检测的算法基本上趋同,目前使用较多的包括SSD、R-FCN等通用物体检测框架。而人脸识别的整个过程分为检测、特征点定位和特征表示几个模块,其中最重要的特征表示模块,需要利用训练数据的身份信息学习得到普适的人脸表示,除了网络结构设计,最重要的是设计损失函数,早期的特征表示在损失函数上有softmax、contrastive-loss、triplet-loss等方法,近期,softmax的很多改进算法慢慢成为主流。
高可用架构:对于想掌握或者提升AI技能的人,能否给他们总结一下快速上手的学习路线?
邓亚峰:对于没有基础的同学,我建议的学习步骤是:
Step1,阅读相关深度学习的基础知识,了解神经网络、SGD优化方法、损失函数等基本概念;
Step2,花一点时间熟悉一个训练框架,tensorflow、pytorch、mxnet任何一个;
Step3,找一个任务上手做,哪怕是MNIST的简单分类任务,遇到问题,自己查资料解决或者找人请教解决,总之,在做中学是效率最高的;完成这个任务后,再找一个更难的任务去完成。
对于想提升的同学,一方面是找一个对自己能力而言更有挑战的任务来完成,另外一方面非常重要的捷径是一定要加入一个很厉害的团队,在团队中学习提高要远远好过自己摸索。
高可用架构:高水平的人工智能人才应该具备哪些专业能力?您觉得普通的人工智能工程师要想成为专家通常需要提升哪些方面的能力?
邓亚峰:在工业界,高水平的人工智能人才,需要在算法能力、工程能力以及对行业和产品的理解能力上都非常强,既要看到大的趋势,和技术的价值,也知道如何将技术通过算法和工程打磨产品化。普通的人工智能工程师如果想提升为专家,先需要在本职工作中,提升算法和工程能力,并扩展自己的视野和技术领域,并慢慢提升在行业和产品上的理解能力。
高可用架构:深度学习对于计算机视觉的意义不言而喻,现在前者基本上也成为了后者的标配,然而一方面,深度学习对于大规模数据具有非常强的依赖性;另一方面,在很多现实应用场景中又往往难以获得大规模的数据,在您看来,该怎样在深度学习和数据的规模间找到平衡?
邓亚峰:深度学习对数据的依赖是由于其模型学习过程中的优化方式决定的,如果想根本上改变,需要优化方式有非常巨大的突破,短期看是比较难的。在实践中,有一些减少数据依赖的方式,比如利用迁移学习思路,利用其它领域的数据训练模型的基底,再用少量领域数据去学习,还比如利用半监督或非监督方法,将大量的未标注数据利用起来。除此之外,还可以考虑利用问题的约束条件,加强对模型的约束,提升泛化能力,减少对数据的依赖。当然,数据增广也是非常重要的提升数据量的方法。在目前的技术条件下,在工业界,如何低成本获取大量标注数据依然应该是最先被想到的方法。
高可用架构:作为 GIAC 的联席主席、AI 专场的出品人兼讲师,本次演讲您将主要从算法、数据、计算等角度来分析打造大规模计算系统上的经验,那在您看来,现在的大规模计算系统的打造存在哪些难点?关键点在哪?以及大规模计算系统有哪些方面的现实意义呢?
邓亚峰:机器视觉的终极目标是希望让各种视觉传感器拥有智能,理解物理世界中人、车、物的特征、身份、行为、关系,将物理世界数字化。目前为止,还没有产生真正的大规模视觉计算系统。打造大规模视觉计算系统的难点和关键在于,一方面需要不断提升算法的准确性和场景适应性,才能在海量数据中,产生可以接受的错误,另外一方面需要不断提升算法的效率并降低成本,使得对于海量数据的处理时间和成本可以承受,第三则是需要配合大数据技术挖掘跨传感器目标间的关系。一旦能够真正打造出成本可接受的大规模视觉计算系统,那么将会在智慧城市、智慧商业等很多领域中对安全、管理和商业运营都会产生巨大的影响,使得线下世界将可以用更加智能、数字化的方式运营,线下世界和线上世界将融合打通,产生更多的商业模式和价值。