算法的定义是什么呢?是一个由若干指令构成的指令集,通过很多清晰的指令把问题加以解决,其中最大的特点是输入数据产生结果。简单来说,算法就是一个解决问题的指令集。如果算法已经挺成熟了,我们把干净的数据输进去,就会产生一些我们期待的或者超出我们意料的结果,无论是判断、分类、匹配、推荐还是干预的结果可能就出来了。大家知道诊断患者有没有得病,过去需要大夫,医生说你得了这个病,却不知道他是怎么算出来的,现在用算法便能够诊断。比如今天有关于冠心病辅助诊断的算法项目登台,也有辅助诊断其他疾病的项目。
算法是怎么产生的?我画了一张图。这张图分出了算法产生的步骤和它的成长史,让我们理解算法大概是什么样的。我再解剖一下,最初的时候,算法是从什么地方出来的?正常情况下,不是大家想象的大数据放进去就有算法了,其实很多算法产生的时候不是通过大数据——算法的产生的确基于特定的信息和数据,但是不一定是大数据。比方说,如果有三名老民警是专门抓小偷的能手,他们能辨别小偷的行为姿态,把它梳理出规则,那么这个规则一旦转化成为算法,就可以通过探头中的行为姿态辨别谁是小偷。没有大数据,就是民警的经验。任何岗位上都有很多的革命经验,到退休的时候革命经验不见了,上面的人就不够革命了。这说明算法具备很强的特性,它一定是从信息里面筛选出来的,有一些是从大量数据里面筛选出来的。
是不是所有数据都可以筛选,都可以输进算法指令?不见得。大量的数据是不可访问的,或者访问的时候难以贯通使用,对我们来说,第一步需要进行数据清洗。中国是文本政府,文山会海都以文本为基础,传递的东西要申请,这就是文本的;打12345热线办事有工单,它就是一个文本,所以文本是政府数据的核心。但是文本和文本的差别很大数据挖掘 相似度,相异度有什么用,比如全国12345热线的文本不能统一,我们分析了很多城市的热线工单,工单里会损失原来意思的40~47%,没有问清楚老百姓的诉求是什么,写下工单的时候不明白说的是什么事。说明我们在数据清洗的时候,需要把优化文本、规范工单等等作为第一步的工作。
第一步工作做完以后开始构建算法。比如在消费领域我们做的算法,已知女性一组30%的数据,可以推算出70%的需要,如果已知70%的数据,就可以推算出另外30%的需要,理论上来说知道的数据越多,推算出来的需要越准确。我过去做市场研究出身,调研的时候问受访者希望房屋精装修成什么样子,他只能回答出来一部分,就像问一位没有对象的男人喜欢什么样的姑娘,他会告诉你好看一点,但是什么叫好看呢?过去我们做的调查看起来是直接的方法,但实际上不一定有效。如果知道一个人70~90%的数据,就能够推算出他喜欢什么样的姑娘,喜欢什么样的精装修,这就要构建出一套算法。
附图:BPAA算法项目路演现场
算法是怎么构建的?算法构建需要三类人,一类人就是专业业务人员——本来干活的。比如说破案的老民警,老民警破案是能手,但是让他提炼规则却不是强项,小偷是什么样的特性,平时带徒弟的时候讲讲,但是不能写成一本书,没有办法做成一个指引。口述的特点是经验逻辑通常会消失,很少被提炼出来。具备提炼能力的人,比如说教授具备提炼能力,但是他不懂生活,懂生活的人有生活,但是不懂提炼。为什么袁隆平很伟大?因为他能种稻,同时能够总结出来稻怎么种可以种得很好。农民会种稻,但是不知道总结,会总结的人没有种过稻,袁隆平的特点是会种还会提炼,提炼之后还会优化,形成一个循环。
另一类人是专业技术人员——做算法开发的。但是他不知道开发什么,因为他不懂破案,不懂怎么做生意,不懂怎么装修。因此这里面缺第三类人,懂业务也懂技术的,既能够提炼出规则,也能够开发出算法逻辑,从程序语言的角度实现它,从技术的角度把它转变成为一个微软件或者算法,我称之为架构人才。这三种能力的人才都具备的时候,才能做出算法原型,这是我们说的第二个层面。
原型出来以后是不是一下子就能使用呢?不是,因为它需要不断训练来提升到可应用的精度。在算法架构的时候,需要业务数据结合经验作为构建的基础,等到有了原型以后,我们要把实际生活里面的数据放进去,看看它跑的效果怎么样,跑几轮优化之后,算法的精度就会不断提升。比如通过算法在地铁里抓小偷,一共测出138名小偷,有两个人不是,但是没有关系,不会冤枉他,因为一旦判定他是小偷,会部署好在行动的时候才抓他现行,那么有两个人始终没有抓,我们确认了这两人不是,再来分析为什么算法认为这两人是呢?可能需要对特征进行适当调整,甚至获取更丰富的训练样本,调整模型的超参,再来寻找优化指令的方法。经过多次训练优化的过程,算法的精度通常会逐步提升。
以前数学建模是把模型带进去计算,每次算的时候还需要人来干活,行为是人工的。算法软件化以后有一个好处,就是可以自动计算,一旦有数据进去,结果就出来了,过程实现了自动化。算法软件化非常重要,过去遇到问题不管是用什么先进的系统,处理的时候是用传统方法处理的。但是算法出来以后,每次遇到这个问题,把数据输进去就知道怎么办了,处理的效率会大大提高。跟大型系统不同,我们一般把面对场景问题的算法称为微应用,形成的软件叫微软件。进一步来说,算法很重要的特点就是可以针对垂直的业务问题,选择不同的算法组合。比如能够用来辨别冠心病的算法不能辨别糖尿病辅助论坛,因为这个算法是精准地解决这个问题的。同样,在城市管理中,不同的部门会遇到不同的问题,比如前段时间有个地方燃气爆炸,我们需要辨别燃气的安全,然后做预测、预警;上海为了减少城市自来水流失,把管道全部传感器化,根据水深、流速等等判断大概在哪一段有故障,能够及时加以维护和抢修,燃气预警算法跟水管监测算法就不同。
城市管理会遇到很多问题,需要建设一整套监测、判断、分类、匹配、干预等算法。这些算法建设起来以后,什么地方、什么情况需要用到什么样的算法,都上到电子货架上进行不同的组合,这个称为算法货架或算法池、算法库。我们有大数据中心的概念,大数据相当于石油,但是石油有能用的吗?我们能用的是汽油,汽油是从石油里提炼出来的,提炼的方法和配方叫做算法。石油是原料,算法是解决问题的指令。
一个算法只能解决一个问题吗?不是,其实很多的算法模块既可以在这用,也可以在那用。像乐高积木一样,BPAA很多参赛项目路演时提到了积木式的应用,比如一个用来发现虚假欺诈问题的算法,也可以用来在地方税务里辨别虚开发票。算法中间有一些模块是可以拿出来的,可以在另外的方面产生另外的成效。比如一串算法一共有12个算法模块,其中6个算法模块做下一个东西的时候直接可以移过去用,这种算法组合效应使得算法开发的效率越来越高。如果城区需要3600个热线算法,第一批开发50个算法需要用6个月,第二批开发200个用6个月,开发到1100个的时候也只用6个月,到开发2800个的时候也是6个月。在开发算法的时候,效率是越来越高的,原因就在于组合效应在中间发挥的成效。
大脑到底是什么样的?我认为今天大部分的大厂——无论是IT大厂、互联网大厂还是数字化大厂生成的大脑都更像脑壳,主要是系统和平台。人和猴子的区别是脑容量不一样,本质是脑细胞和神经元总量不一样,每一个神经元和脑细胞面对不同的问题解决不同的问题,所以反映的能力也不一样。大部分城市所建设的是一个系统,布置很多传感器、很多硬件,相当于超级章鱼,章鱼的感知能力很强,但还是会被人类吃掉,因为它没有脑袋,所以章鱼干不过人类。猪看起来跟人类脑袋一样大,脑容量也不小,但是脑细胞和神经元总量比我们低很多,所以它不是灵长类动物。无论是行业大脑还是金融大脑、城市大脑,神经元总量决定了它是不是真正的灵长类解决问题的大脑,这就是为什么我们今天强调算法的价值所在。
当然有一些算法是综合类算法,有一些是垂直类算法。大脑有两个半球,分成很多区块即脑区,每个脑区有表层的皮质数据挖掘 相似度,相异度有什么用,神经元分布在皮质上,下面的部分叫脑干。皮质相当于前台的垂直算法,脑干相当于后台的技术算法。
附图:BPAA算法项目路演现场
当算法发育起来以后,我们的前进方向会发生很大的改变。大脑发展以后最大的好处是什么?闵行的大脑建成以后,和普陀的大脑会有区别吗?基本上相似度会超过相异度。算法赋能的特点是一个地方开发出来的大脑,在另外一个地方具有很强的复用性。当然另外的地方也有自己的一些特性,适度调试以后就可以用。区域级大脑建成以后,各个街道办事处还需要建自己的大脑吗?不需要。因为只要有一个平台,把大脑核心的部分功能延伸过去使用就可以了,真正的大脑并不需要每个地方都花那么多钱搞一个项目。一旦有了算法的理念,有了真正基于算法为核心的脑核理念,那么只要花掉15%左右建设系统的钱,整个城市、整个行业和整个企业的运作方式就会发生很大的改变。
但是可惜,在我们的新预算中,在大脑建设、人工智能建设里很少会有专门的算法预算,这是很大的遗憾。无论是企业搞数字化还是在城市数字化建设的时候,都对算力投钱,现在很多大厂的大脑都是由云部门做,最大的特点是把云卖出去,大脑越复杂,运转需要的算力越大,云的价钱就越高。但如果是一个空壳子在那转得很来劲,这不是对国家预算的浪费吗?智能化浪费得比笨蛋更高,从这个意义上来说,算法才是真正证明了智能化核心的所在,是检验一个大脑是不是耍流氓的关键。算法的总量代表了智商的高低。我们其实没有相应的算法政策,真的真心真意支持算法产业的发展,应该有算法产业政策,这样才是真正明白了算法,真正认真推动算法产业化。
当然,无论是闵行还是普陀,这些城区支持算法,愿意让算法出来走一回台,是非常棒的楷模。让大家至少在某一个地方,能够看到算法公司长什么样,算法团队长什么样。最后,算法人才很重要,咱们算法团队的工资待遇是不是好一点?待遇高的至少从公司的角度认识到了算法的重要性,有一些互联网公司算法的确用的不错。有意思的是算法团队主要是任务组合,经常这个活干完去干另外一个活,说明第一团队不稳定,第二地位不稳定。我希望,有没有一些人才市场确实需要,先进的地方先提出来一些政策,像当初小岗村搞联产承包一样,大家干出来,终于让领导说这个应该重视,可以不可以产生这样的效应呢?低端产业尚且如此,人工智能产业更需要得到重视,算法是一个非常重要的机会点。
我今天讲的东西听起来是算法行业里最不技术化的,很显然,我是文科生,我经常说我有点属于带有架构能力的偏业务规则提炼的人才。不管怎么样,我们通过共同的努力协作,使得在上海、在长三角,算法产业化首先得以落地,得以展现它的能量,从而让更多的地方知道,共同推进这样一个生产要素的发展,才是推动智能化、智能产业发展的关键。