首页 > 编程知识 正文

人工智能与算法的关系,人工智能算法的未来发展方向

时间:2023-05-05 13:51:21 阅读:52900 作者:4985

单击上面的CVer,然后选择添加'星标'

重磅干货,第一时间送到

http://www.Sina.com/http://www.Sina.com /

本文

作者:刀刀宁

我最近看了这样的报道。https://zhuanlan.zhihu.com/p/342801452

3358 www.fanyeong.com/2019/08/11/why-I-quit-as-a-algorithm-enginer /

作者这几年的切身感受,写得非常好,有一定的深度。 最近腰疼得有点想,趁这个机会也写一下吧。

开门见山,先说自己的感受:

1 )文章的大部分观点我都很赞同。

2 )在纯算法岗位上,未来的数量确实会很少,对于整个行业回归理性,没有任何异议。 因为以前疯了,所以现在不是衰退而是回调。 (最近很多大人物从工业界回到学术界也是这一表现吧。 所以很多计划进入工业界的研究生都要做好充分的心理准备,在入学和教师选择上要慎重。

3 )但是,对于算法的未来发展,我偏向于乐观的看法,所以对引用部分的判断有一些不同的理解。 例如,“最后制作AI的只有几家”、“算法市场正在饱和,需求太小”等,之后慢慢展开。

因此,我这篇文章既是劝诱文,也是劝诱文,请辩证地阅读。 说我自己,我本来是参加广告比赛的,参加过final。 大部分算法的基础还可以。 博士从事云计算存储基础方面的工作,但回顾一下,更多的成果是研究问题的方法论。 毕业后快速旋转的人工智能,具体来说在机器视觉相关领域,比几年如鱼得水、建立纯基础系统要适应得多。 我最大的感触是以下三大偏差:

本文已由原作者授权,不得擅自二次转载

接下来,按以下三个大的偏差来简单地说。

为什么我不再从事算法的工作了?机器视觉,以及自然语言处理、语音识别等(以感知层为中心)人工智能算法,近年来的基本方法以深度学习为主,效果良好,架构简单,很多地方都是work 由于使用者(客户、甲方等)对实际效果的期待,无法理解当前算法中存在的短板部分,会产生较大的心理认知偏差。 因此,人工智能算法在工业界往往非常尴尬,人工智能障碍也并非虚名。

当算法研究者对自己提高1% 2%感到高兴时,工业界完全没有想到。 因为如果不足100%,即使剩下的万分之一百万分之一也有误报或漏报的话,就有不能完全落地的领域。 当然,并不是所有领域都像自动驾驶那样苛刻。 学术界日益高涨,最终将出现量化和质量上的飞跃,通过工业界的落地努力,可以在几个领域大显身手。 所以,基于深度学习的机器视觉,本质上是工程学科,不是自然学科。

另外,算法在很大程度上依赖于数据,制作数据很大程度上可以解决许多学术界尚未解决的问题,学术研究在统一评价标准的问题上有时过于集中于一些常见的数据集。 另外,从目前发展比较快的工业领域可以看出,数据收集得越好,容易标注的领域发展越快,比如安防、驾驶等远远快于医疗。

以前写了这样的回答,阐述了我对数据建设的理解和重视。 “如何看待2020年深度学习在工业界的应用趋势? "。 其核心思想是:1)数据很重要;2 )数据长尾幂律分布更为辛苦。 数据很重要,也意味着数据收集、数据收集、标记工作也很重要。 例如,这里有滴滴和momenta的数据闭环工作介绍。 didi、momenta也表明了业界对此的认可程度。

另外,有远见的公司会自己做数据标记。 和公司的大小没有关系。 数据安全也很重要。 数据掐脖子可不是小事。 而且,各公司重视数据安全,其实已经达到了不可思议的程度。 算法代码可以开源,一个训练数据也不给。 因为算法本身不能形成足够的竞争壁垒,反而数据更好。

因此,这种对数据安全的重视将极大地阻碍ai AS服务的发展,因此,生产AI的企业绝不仅仅是几家。 (当然亚投行本身的发展也非常值得期待)

供需双方的期望错位,算法数据的倒挂错位,工程重要性的认知错位。

ong>首先,人工智能算法工程师不是只有调用开源包进行调参这么一种类型的岗位!

人工智能的算法岗位是一种垂直性很强的岗位,可以说在某种程度上最突出的那一批算法工程师应该要能做到全栈工程师的感觉出来。而调包调参这个工作只是全栈中的一环,有的时候看其可替代性还有点高。而恰恰现在的就业市场中,这个狭义的岗位,确确实实是最饱和的最烂大街的,这也是为什么引文作者非常感慨的原因。

引文中,作者提到除了算法之外还有开发,我非常同意一个团队可以没有算法但是绝对不能没有开发。但其实在我看来,这两者根本就是不分家的。即便是学术界的算法研究人员,他也得自己开发算法程序进行落地的,更别提工业界的算法工程师了。所以我这里说的狭义岗位是包含算法和开发一起的(但是没有包括研究性质目标是论文等的算法岗位)。

为什么这个狭义岗位最饱和最烂大街呢?第一,工具化程度越来越高,工具的社群化开发特点越来越显著,比如超过 TensorFlow 成为后起之秀的 pyTorch ,就是具有更好的社群开发特点,几乎什么层你都能找找开源的,还有更加优秀的 mmdetection 这种库的加持,叠加效应愈发明显。大量工具带来的后果就是很多开发工作被转移到开源社区了,就不需要算法工程师开发了嘛。第二,前几年行业大热,学生趋之若鹜,读研读博有周期,而现在周期到了。第三,大部分学校在对这个岗位的培养认知还停留在几年前,觉得目标检测还是一个很玄幻的问题,其实现在早就已经到了真•一行 import 一行 run 的代码就能搞定问题的时代了,而真正需要培养的素质是使用这些工具化的东西去解决实际问题的能力,以及自己能够根据需求设计轮子、造轮子或者改轮子的能力。所以,在人工智能行业和算法趋近于回归理性这样一种大背景下,单纯的去学习调包调参这件事情,确实会让未来的就业之路愈发的迷茫和未卜。

说了半天狭义的,那么广义的岗位是什么样子的呢?

前面提到,人工智能的算法比较垂直,为啥?我是觉得因为黑盒子封装完一大部分底层算法逻辑之后,剩下来的东西真的太简单了,所以周边的时候就都需要挨个搞定了,哈哈。所以,广义的算法岗位职能,还包括但不限于:深度学习之外的算法模块研发,策略层,业务逻辑层开发;封装和封装优化研发;具体推理硬件上的落地,推理硬件上的加速,训练硬件的加速;数据辅助工具的开发,数据采集收集标注管理流程的开发;模型的测试与发布,以及相应的自动化工作,还有对应生产数据的数据挖掘工作,等等等等。

以上这些东西都想做好,每一个标点符号分割出来的内容,都可能需要一个几个工程师的小组去做。对懂算法的工程师需求量真的小吗?所有的小组都要整合成一个体系,对 team leader 的要求,也不低,并且它是个体系,没点工程架构思维,真搞不定。
而这些年,在从业人员和等待的背包或多或少的强调下,在深度学习技术飞速发展的激励下,我们往往都只看到了算法的科学性的一面,没有看到其工程性的一面,产生了一种认知偏差。

比如指定硬件的小模型加速这种,包括相关的量化加速,芯片专用加速,它本身就是学术界一个独立而庞大的研究方向,论文都一搜一大把,而工程师更多需要结合自己手头实际的硬件和产品特点去做进一步的挖掘,想做得非常好根本不容易。
再比如,为了做好单目 2D 摄像头的目标检测问题中的数据采集问题,甚至可能会用 3D 多摄像头采集数据通过点云技术建模再通过 CG 渲染方法来生成大量的天然带标注的 2D 数据,数据即可以大量生产又不用标注。这相当于一个嵌套的算法链条,所以,有些看起来和业务不相关的技术在有些公司就一定没有用吗?人力需求就一定在萎缩吗?


还有,比如有的算法岗位对候选人的要求中会写:有推荐系统/搜索引擎相关经验者加分;有active learning/图像搜索相关经验者加分;相信数据的价值,乐于解决长尾问题。这明显是一个非常重视数据的公司的岗位描述。所以,真正限制童鞋们拿 offer 是除了调包调参之外的知识结构的广度和对整个算法链条的理解深度。
更有意思的是,前面说工具化这么严重,轮子现在啥都干了,但是你有没有想过,轮子也是人造的啊,如果能去大厂造工具造轮子改轮子,社会价值其实更大啊。因为那是业界瞩目之所在,多少小厂甚至设立 github watcher 这样的专职岗位,来帮你更快的实现你写的开源代码中潜在的工业价值,多好。更进一步,大家可能会混淆算法研究员和算法工程师的区别,其实本文主要讨论的是以产品或者工程为导向的工程师岗位。当然大厂及高校研究所等以论文等为评价导向的算法研究人员,也是就业方向的一大热门,是研究新轮子应该怎么设计的,目前以及将来都将处于技术生态/鄙视链的顶端。

很多童鞋这里会有疑问,说了半天,这不就是产业“周边”吗?或者叫“周边”岗位吧。嗯,就是这么个意思,而我的核心观点就是,周边非常重要。他们是整个系统的支撑,是处理长尾的利器,是系统向外拓展的触手,是体系中不可或缺、不容忽视的一部分。甚至因为有些岗位的能力要求更高,其不可替代性会远高于所谓核心岗位。

说完广义的,再说回狭义的,所以这个狭义岗位最后会被替代掉吗?我认为也不会。因为实际情况下,场景真的太多了,需求真的太细了。算法的建模,不同方法之间的对比,相同方法的不同参数的对比,快速迭代,小步快跑,这些东西,automl 是做不到的,因为这都需要经验的。比如像这种层出不穷的边边角角的小问题:如何让目标检测算法暂停误报?,时不时来一下子,优先级瞬间提高到最高,还是需要经验的救火落后的月光来强有力的支撑一把的。你所在的公司只要不是业务独霸行业一招鲜吃遍天并且没有竞品,那就面临着算法迭代和升级,新需求的挑战和应对,开源算法新升级的适配,等等问题,都会 push 着你往前推进。

而狭义岗位又有具体几项解决实际问题的能力是必不可少的,1)算法流程的设计建模的能力,这个是非常有意义同时有非常有挑战的一件事情,如果你不是等着别人建好流程之后自己去训练个模型,而是自己设计模型和上下游其他模块之间的关系,自己确定算法调用策略和输出策略,自己处理特殊情况,那恭喜你,你已经具有算法架构能力了;2)调参中的 debug 的能力,因为深度学习方法是个半黑盒子样子的流程,当出现问题的时候光靠调普通程序样的简单的调试往往解决不了问题,深度学习的程序,很多时候看起来都是正常的跑,但是结果就是掉 n 个点,所以很多时候良好的基础知识和设计消融实验做 ABtest 去定位问题所在,都是非常重要的。

所以这里就回到一个工程师自身精进的问题了。这里引用乃岩的文章说吧:Deep Learning 的专家如此急缺,它难在何处?- Naiyan Wang的回答:实际缺乏的不是Deep Learning的人才,而是可以实际解决问题的人才,而实际可以解决问题的人才不管在什么时代都是稀缺资源。
因此我一直认为,在研究生学习阶段,研究问题和解决实际问题的方法,可能比你实际研究的问题本身更加重要。

所以,当人工智能领域趋于理性和正常之后,需求量依旧旺盛,对人的要求依旧很高。末了,这里也还有一篇关于算法工程师定位的文章值得去看一下:互联网从业者2020年终总结。

对于未来的小展望:

人工智能技术的变现能力目前还没有到火力全开的地步,因为毕竟还有最后那 n% 的困难 corner cases 无法被学术界和工业界克服。并且,所有人工智能算法都紧密的依赖于业务本身,只有业务能够创造价值,依附于其上的算法才能产生价值。

但是有问题不代表需要被否定,这个方向未来一定会在人机交互、生产效率、辅助决策、医疗保险、文化教育等等诸多方面发挥巨大的作用。甚至每一个唠叨的豌豆,不管你愿意不愿意,都会被裹挟着进入它的怀抱之中。

所以在接下来的一段时间,围绕着人工智能算法发展出来的应用,其深度和广度都会持续的被挖掘,并创造更好的社会价值。在这个过程中,其实不光是算法工程师,全行业的从业人员都会参与其中的,商业模式、产品设计、品质控制等等,来一起共同推动整个行业的发展。

因此,对于算法的工作,我还是持有积极的乐观态度的。小伙伴们,加油。

CV资源下载

后台回复:CVPR2020,即可下载代码开源的论文合集

后台回复:ECCV2020,即可下载代码开源的论文合集

后台回复:YOLO,即可下载YOLOv4论文和代码

后台回复:Trasnformer综述,即可下载两个最新的视觉Transformer综述PDF,肝起来!

重磅!CVer-细分垂直交流群成立

扫码添加CVer助手,可申请加入CVer-细分垂直方向 微信交流群,可申请加入CVer大群,细分方向已涵盖:目标检测、图像分割、目标跟踪、人脸检测&识别、OCR、姿态估计、超分辨率、SLAM、医疗影像、Re-ID、GAN、NAS、深度估计、自动驾驶、强化学习、车道线检测、模型剪枝&压缩、去噪、去雾、去雨、风格迁移、遥感图像、行为识别、视频理解、图像融合、图像检索、论文投稿&交流、TransformerPyTorch和TensorFlow等群。

一定要备注:研究方向+地点+学校/公司+昵称(如目标检测+上海+上交+卡卡),根据格式备注,才能通过且邀请进群

▲长按加微信群

▲长按关注CVer公众号

整理不易,请给CVer点赞和在看

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。