CV现状
CV方向现状:人才短缺,工程师过剩
目前在商业中有所应用,而且能够创收的只有搜索推荐和计算机视觉,因此,这两个方向的人力缺口很大,尤其是计算机视觉。前两年校招时可以看到,互联网、IT、生物医药、汽车安防等等行业,几乎都会有计算机视觉的岗位。所以,很多其他方向的同学开始纷纷转向,随着大潮流投入计算机视觉这个方向,为什么这么多人投入计算机视觉方向?我认为有以下几个原因:
- 入门容易
- 模型成熟
- 人才缺口大
- 热度高,名气大
其他的暂且不说,就着重的说一下入门容易和模型成熟这两点。
目前入门CV的常用套路就是:
- 看吴恩达《机器学习》《深度学习》课程,学一点机器学习的知识。
- 读几篇CV模型的文章,了解一下经典的Alexnet、R-CNN系列、YOLO等。
- 在github上找几个tensorflow、pytorch实现上述模型的开源代码。
- 下载VOC、ImageNet、COCO、kaggle等数据集。
- 按照开源代码中的Readme准备一下数据集,跑一下结果。
学了两个月、跑了几次结果后就认为已经入行CV了,其实就忽略了两个问题:
计算机视觉属于图像处理的范畴,而很多人却把它当成机器学习来看待
试问一下,有多少CV的从业者从头至尾深入的学习了图像处理方面的知识?现在有了深度学习,不需要人为提取特征了,所以很多人不再关注图像底层的信息,而是直接越过这个根基去搭建模型,我觉得这是一个误区。不同领域的图像,例如OCT、MR、遥感、自然图像等等,有着巨大的特征差异,对这些特征差异性都不了解,怎么在搭建模型之后对精度进行提升和改进呢?怎么在原来模型的基础上做一些改变呢?
因此,我认为好好学习一下图像预处理、后处理的知识对CV有着至关重要的作用,例如图像去噪、分割、增强、增广等等,但是很多人都欠缺这一块的知识。
计算机视觉的提升不在于搭建模型,而在于不断调优、改进过程中积累的经验
看过吴恩达课程的人,有的应该记得他在课里面说过"深度学习是一个基于经验的领域",我们该怎么针对不同领域的图像设置不同的参数?其中包括卷积核大小、网络架构、初始权重等等,不可能拿到一个模型,既适合医学图像,又适合人脸识别,这其中就需要n次从70%的精度调到95%以上中积累出经验,而很多CV从业者觉得搭建出模型就告一段落,反反复复用不同的方式去搭建模型,显示tensorflow搭建完用pytorch搭,pytorch完事后用mxnet再来一遍,Python搭完用c/c++搭,但是至始至终没再精度和经验方面做出前进。
此外,CV方向目前阶段依然存在着制约这项技术创造更多商业价值的弊端,虽然每年顶会、期刊上面关于CV的文章依然很多,但是绝大多数都是拼拼凑凑,很多模块和思想并不新颖,在关键问题方面并没有太大起色。
以CV为例说一下几项弊端:
无法做因果推理
图灵奖得主、贝叶斯网络之父Judea Pearl在arXiv上传了论文Theoretical Impediments to Machine Learning With Seven Sparks from the Causal Revolution,论述当前机器学习理论局限,并给出来自因果推理的7大启发。Judea Pearl指出,当前的机器学习系统几乎完全以统计学或无模型的方式运行,这对它的性能造成严重的理论限制,不能作为强AI的基础。他认为突破口在于“因果革命”,借鉴结构性因果推理模型,能对自动化推理做出独特贡献。
https://arxiv.org/abs/1801.04016
模型可解释性差
为什么深度学习效果好?学习率、权重衰减、卷积核尺寸这些超参数设置在多大合适?目前是没有合理的数学模型解释的。就是说,你沿着某个方向去调参,效果好坏是未知的。所以,现在深度学习还是一个经验积累占主导的方向。所以,吴恩达的课程《深度学习工程师》主要以“策略”为主,遇到什么样的情况该用什么“策略”解决,偏差、方差用什么“策略”均衡等等。
数据限制
人工智能的在某些领域的成功主要得益于数据的收集和算力提升。
计算机视觉50%,甚至60%、70%的时间都用在数据方面,
- 数据准备
- 数据增广
- 数据去噪
- 数据标注
- ......
https://jamanetwork.com/journals/jama/fullarticle/2588763
尤其是数据准备过程,非常费劲,尤其是涉及到隐私的数据,记得之前做过一个医学图像识别的项目,前期一直想方设法和不同医院合作获取数据,等待了几个月才获得几十副图像,这对于传统目标识别也不够用啊!最后没办法,就在网上拼拼凑凑找了一些公开和付费的数据集,刚把环境配置好、模型跑通,这时Google在JAMA上发了一篇文章,和我们的方向一模一样,一下子给堵死了。看了那篇文章,Google在数据准备方面花费了8年时间,在不同国家同步进行采集,这对于一个小公司来说是望尘莫及的。
实用性差
目前人工智能很多技术都处于定制化阶段,远远达不到通用化程度。国内某些创业公司频频在CVPR、COCO等顶会、挑战赛露脸,看着实验对比数据精度方面的确非常不错。但是,真正应用时却不同了,效果非常局限。
首先,二维与三维的区别。拿计算机视觉来说,现实世界是三维空间,无论是人脸还是医学MR图像,而目前图像识别还仅限于二维空间,这在精度、安全性、空间信息等方面会做大量的妥协,所以,这就限制了它在一些要求严苛的应用场景的推广,比如医学诊断。
其次,动作与状态的区别。到实际应用中,仅仅识别出来这个人是谁、这个物体是什么是远远不够的。比如,做一个路面遗留物体的识别,这对于反恐这些场景有一些应用。目前目标识别算法能够识别出处于某种状态的一个物体,但是“遗留”是一个包含上下文信息的连续动作,这就需要其他的辅助算法,比如光流、视频分析等。
核心假设有问题
现有机器学习算法的核心假设是实例彼此独立,但是现实状态空间内,每个实例都与周围其他的实例存在一定的关联,含有一些复杂的连接信息,但是目前机器学习受限于它的核心假设,忽略了数据之间的依赖关系。
所以,我认为受限于因果推理、模型解释性、数据集、实用性、核心假设等方面的限制,CV看似繁荣也仅限于表面繁荣。机器学习这几年的确取得了显著的成果,但是这些成果主要应该归功于计算资源的快速发展(如GPU)和大量数据的收集。
理想很丰满
理想状态下人工智能的确很有价值,能取代很多人力劳动。但是“理想很丰满,现实却很骨感”,目前并没有想象的那么美好,比如在工业制造领域,AI的作用甚至可以忽略不计。人工智能之所以如此火热,无外乎是因为和利益挂钩了,学术上容易发文章、创业公司可以利用信息差骗取投资、大公司可以拿来做噱头捆绑销售。
因此,当进入企业之后会发现,纯CV算法工程师岗位并不多,而且早已达到饱和的状态,很多所谓的 AI工程师岗,日常工作中业务内容占的比重要远对于AI内容,有一些公司的AI工程师岗甚至让人怀疑“这和AI有什么关系?”
高端布局技术达不到,低端布局创造价值有限,作为商业公司,利润才是最终目标,谁也不会花大量资金去养一批仅仅会"调参""搭建模型"的算法工程师,就算是公司创始人有追求,那也得看投资者愿不愿意投资这种追求。
当然,开头提到了,虽然工程师过剩,但是人才是短缺的。如果真的对CV方向充满着浓厚兴趣,抛开经济和利益的因素,我是支持的。但是,如果仅是顺应趋势、赶上热潮,我认为不适合入门CV。因为,最大的泡沫期和红利期已经过去了。
结语
当然,虽然计算机视觉目前依然存在着很多弊端,制约着它在工业、医学等重要领域发挥更大的价值,但是已经在交通事件检测、车站检票、手机解锁、美颜相机等领域已经开始创造一些价值,或者做一些辅助决策。所以,它是有岗位空缺的,但是随着这两年媒体、投资机构的炒作,使得很多不明真相的人投入到这个领域,使得这个领域在出现大批量的从业人员,但是其中真正符合计算机视觉研发人员、能够利用计算机视觉知识针对特定场景提出解决方案,并开发出相应算法的人员却寥寥无几。就如同文章开头所说的那样"人才短缺,工程师过剩"。
因此,我对投身于计算机视觉领域的看法是:如果仅仅是抱着赶上AI的热潮,为了获取就业机会或者可观的薪资收入,我认为不适合。