下面是Geoff Hinton的《神经网络机器学习》课程视频的截图。
先别管这张图。为什么我要关注机器学习?在众多被冠以“机器学习”这样一个宣传噱头一样的名字的领域中,我最关注的是计算机视觉。对我而言,这一切的渊源都要追溯到2008年。
那时我和93°、小光还有很多网友都在关注一件很有趣的活动,叫做“爆吧”,也就是【大规模自动化贴吧灌水】的意思。当时的百度贴吧是全国人民旺盛精力的释放场所,有很多人喜欢李宇春,很多人喜欢东方神起,这都是现在的小朋友们不能理解的。(写给小朋友们:李宇春就是古代的张杰,东方神起就是古代的EXO)
人对于自己不能理解的事物,总是会加以歧视和偏见。当时很多网友对李宇春和东方神起的粉丝意见很大,有点像现在加州人民对川普的粉丝意见很大。中国人表达意见的主要方式是动手,当时我们动手的主要方式就是往对方的贴吧大量发帖,让对方的贴吧无法正常浏览和讨论。这个过程当然少不了软件助攻,大家开发了各种各样的“爆吧器”,也就是自动发帖软件,每秒钟能发十几帖,一下子就把对方的贴吧给灌满了。完事之后大家都很兴奋,爆吧人民站起来了!!爆吧联合国万岁!!就像远古时期一个部落把另一个部落给团灭了一样的兴奋。
那个时候爆吧界的人自豪感是很强的,就像前段时间帝吧出征的那帮人一样,都觉得自己是在维护民族大义、净化华夏血统。区别是爆吧的人会写程序,帝吧的人只有表情包。
后来百度搞了验证码,要发帖就得先输入验证码。验证码是一个图片,从图片中提取文字对人来说很简单,对计算机来说就很麻烦了,毕竟这帮爆吧的学生没几个搞过数字图像处理。
为了能继续爆吧,大家先是搞明白了百度是怎么生成和消费验证码的,在爆吧之前预先获取几百个验证码,然后一个个手工输入,最后发帖的时候把这些验证码在短时间内全用上。
(后来这成了一个产业,全网各种各样的验证码,由软件收集,然后安排一帮小妹每天坐在电脑前面,一条验证码几分钱地打,服务各种黑产。)
所以当时我和93°一直思考的问题,就是到底怎么用电脑识别验证码。如果能做到这一点,我们的爆吧器岂不轻轻松松就成了全网第一?每一条验证码,那可都是白花花的银子啊。
对于上面那种简单的验证码,其实还是有办法的。最简单的OCR方法就是模板卷积(也就是把已知字母的外观和待测字母的外观进行精确比对),对于已知和固定的字体很有效。所以当时就有各种各样的程序解决这个问题,比如说:
(图片来自网络)
从这些方法中我们可以看到,首先要根据验证码图像的特点,对图像进行一些净化处理,去除掉干扰条纹啥的,然后通过一定的统计方法把字母分割开,再通过“字模”(也就是字母模板)逐一匹配,通过像素比对计算匹配度,判断究竟是什么字母。
不过各家的验证码特点是不一样的,所以为了适应各种不同的验证码,就要开发很多种不同的识别程序:
现在我们把这些方法称为传统计算机视觉方法,或者戏称为“中医方法”:虽然《本草纲目》解释的很清楚,大家也都在用,但就是治不了大病。
后来百度的验证码加入了旋转扭曲错位混合字体,干扰的方法也花样翻新,这种幼稚的方法就不起作用了。
比如说上面这张验证码,干扰线跟数字一样粗,用传统方法消除干扰就把数字也给消除了;数字之间都黏在一起,根本没办法分割,更别说套模板了。可是我们用肉眼一看就知道答案是867826。
我当时就想:现有的这些方法,跟人眼的工作原理不一样,所以不能像人眼那样随机应变。有没有接近人眼工作原理的方法?这样不论验证码怎么变,只要人能识别,我们的程序也应该能识别。所以我们就去找计算机图像处理的书。
书里面提了很多方法,比上面那些软件用的方法要复杂一些,不过这些方法实现麻烦,适应性也非常差。
我当时最大的疑惑就是,明明人脑加肉眼可以轻松解决的问题,为什么计算机却解决不好,还要搞那么麻烦?为什么连这些教授写的书也解决不好?最重要的是,为什么这些书不能解释计算机做不到的原因?
我最开始以为是自己太笨,没有学到精髓。
直到今年接触到卷积神经网络,领略到其简洁强大,并利用它实现功能之后,我才搞明白问题出在哪:从2012年AlexNet通过卷积神经网络完虐中医方法,到2016年AI热,这样一个简洁优雅的、一个真正能从根本上解决视觉特征识别问题的、一个可以取代无数脑力劳动的、一个性能几乎没有上限的方法,花了整整4年才从冠军王座进入我(以及许多工程师)的视野。这让我不由得想起了我以前的一篇文章《酒香就怕巷子深》。
(AlexNet架构)
开始我还觉得,不过晚了4年而已,爆吧那都是8年前的事情了。但当我更加深入这个领域的时候,事实越来越强烈地震撼着我:今天大家感到神乎其神、“比人还准”、“突然就进步了几十倍”的各种AI应用,所用到的这些技术,早在20年前已有之。比如说,在08年让我们焦头烂额、翻遍书店都解决不了的验证码识别问题,杨乐坤(Yann LeCun)教授早在90年代就利用卷积神经网络完美解决(印刷+手写数字全自动识别),对应的系统早已投入美国的银行系统使用,用于处理全美10%的手写支票。我们今天感到神奇的DeepDream, DeepArt, 也都不过是杨教授成果的翻版。
(杨乐坤的LeNet5:不管怎么干扰,只要人能识别,它就能识别)
而卷积神经网络的原理,其实比当年我们在书上看到的那些中医方法,还简单。
这意味着什么?这意味着,在美国有一个人经过多年努力,发现并总结了解决问题的正确且优美的方法,把它发表了出来,而在中国的另一个想解决同样问题的年轻人,直到20年之后才接触到这个方法;这意味着20年间,国内(以及国外)无数计算机视觉研究者,无数论文,无数出版物,以及培养出的无数学生和工程师,所掌握和应用的主要方法,也都还是中医方法。搞计算机视觉应用的同学无不感叹:假如当年我们知道杨乐坤,知道卷积神经网络,不知道能省多少事,多实现多少功能。我不敢说这对社会造成了多大的损失,但我知道杨乐坤教授的论文,至少能节省我当年100个小时的无用功。
是因为所有人都是傻瓜吗?是因为教授们学习能力很差吗?都不是。真正的原因是,这种新方法对传统方法、传统理念的冲击,实在是太大了,整个连理论基础都换掉了。2012年借助GPU实现卷积神经网络革命之后,在计算机视觉领域,原来具有传统霸主地位的HOG和SIFT等传统计算机视觉方法几乎全部丢进垃圾桶;而在自然语言处理领域,语言学家们讨论了几十年的各种语言模型,此刻也几乎全部喂狗,所有传统语言学方法加起来的性能,比不上今天三页纸讲完的LSTM网络。
今天的语言学家,在搞机器学习的人看来,跟所谓的“红学家”已经没什么区别了。
其实大家或多或少也发现,这么多年来努力和奋斗的方向搞错了。但是教授们不会承认“我错了”,或者“我的研究没有意义”,因为这意味着惹恼同事、丢掉工作、离开学校。对于以学术为生的人而言,这是不可想象的。所以教授们还是会继续在课堂上把旧的理论传授给学生,指导学生用旧的理论做课题……这时学生就很可怜了;他们往往不知道自己陷入了学术版的庞氏骗局。我有一个同学之前在暨大读语言学,大家每天钻研语言中的各种结构,尝试用各种语言理论分析各种语言的各种属性……差不多都是在浪费时间。近年来神经网络和机器学习在自然语言处理方面取得的巨大突破,无不向我们表明:语言本质上是一种概率分布,根本不应该用逻辑方法分析,而通过这些方法得出诸如汉语和英语孰优孰劣之类的确定性的结论更是在故弄玄虚。
这很自然让我们想起爱因斯坦提出相对论时所受到的、来自学界的广泛而热烈的批评。诚然,科学在曲折前进的过程中,产生这些“江湖”问题是常态;但对于那些懵懵懂懂跟着导师走的学生来说,这确实显得很不公平。而对于像我这样工程思维的人来说,这些人发文章就和犯罪没什么区别了。就因为这些人的一己私利,工程师们减了多少寿啊!!
Geoff Hinton教授在他的coursera课程《神经网络机器学习》中,每当谈到近一二十年神经网络和模式识别乃至人工智能领域的进展时,总是要点一两个人名讽刺一番,足见这背后有多大的怨念。
这就是我为什么要关注机器学习:只因阴差阳错,我们认真地学习了太多中医理论,却白痴般地错过了那些真正能帮助我们解决问题的理论进展。现在的我,就像一个刚刚毕业的物理学生,研究的是“以太”,却迎来了相对论;就像一个刚刚毕业的医学生,研究的是“体液”,却迎来了显微镜。
这时我才理解,为什么吴恩达和Geoff费大力气到处演讲、做coursera课程,免费教大家各种机器学习算法——他们希望通过他们的努力,让更多同学接触到真正能解决未来人类面临的主要问题的理论,帮助大家在AI这样一个满地都是恐怖陷阱、空气中弥漫着玄学味道(毫无夸张)的领域,真正学到一点有用的知识。
花上几个月的时间关注一下机器学习吧!你会发现,高数和概率论突然就变得有用了;许多原本无法理解、无法解释的现象,包括视觉,听觉,语言,交流,认知,学习……现在都可以用模型描述(并解决)了。这种兴奋和成就感,不亚于GPS卫星的设计者们发现在加入相对论修正之后,卫星上的时钟终于准确走时了。
最后解释一下开头的那张截图。
Geoff在他的课程PPT中贴出两段话:
P.H.温斯顿(时任MIT AI实验室负责人),在他1977年出版的课本《人工智能》中提到:
“许多古希腊人支持苏格拉底的观点,认为那些难以解释的联翩思绪来自上帝。在今天,跟所谓的上帝等价的,是那些概率驱动的、行为不定的神经元。神经元行为的随机性的增加,更有可能是癫痫和醉酒的罪魁祸首,而不是聪明和智慧的优势。”
而冯诺依曼(计算机先驱,对量子力学和经济学均有贡献)在他1958年未完成的手稿《计算机与大脑》中却说:
“……这一切都将引出一种新的计算理论,它不再受限于过去那种非此即彼的、确定的形式逻辑……许多线索都令我们相信,这种新的形式逻辑系统,将会更加靠近另一个在过去与逻辑很少产生联系的学科,那就是以玻尔兹曼所提出的形式为主的热力学。”
意思是,AI领域的老大当年(1977)在教科书中所坚持的理念,反映了当时该领域研究方向的盲目和无知,也解释了为何当时AI领域人才济济却几乎没有取得任何进展。而那正是Geoff当学生的日子,最后Geoff苦苦坚持几十年才把这个领域扳回来。而其实现在真正取得进展的许多方向,正是先驱冯诺依曼早在1958就提出过的基于概率的系统和方法……所以Geoff也感叹,如果冯老爷子能活久一点,今天的世界也许会完全不一样。