从这篇文章开始,我开始写一些关于人工智能的介绍性文章。
在介绍这一系列之前,我在这篇文章里主要表达一个观点:请警惕我(以及其他人)的文章,希望大家用怀疑的眼光来看待我(或其它公众号)写的这些科普性文章。
不怀疑?小心交“智商税”!
先用我的一个血泪教训开头。
我来香港读博士之前,和一个已经毕业的师兄聊了聊。他一毕业就在一个高校做教授,在学术圈里小有名气。
他给我传授经验,我导师的合作者里有两个老师经常过去访问(暂且叫他们老师A和老师B好了),导师A的帮助比较大,导师B没什么作用,让我多和A交流。
那时还是科研小白的我,看着他成功的先例,就听信了他的话。
果然,正式进入实验室的第一天,导师就让我先去跟A聊聊,也从侧面反映出A好像比B更值得交流一些。
A给了我一篇文章让我实现,我觉得有点奇怪,干嘛要把别人已经发表过的想法实现出来当做自己的呢?而且这篇文章一看就是非常烂的文章。做了两周实验之后,我就觉得这片文章中的方法根本就不对,我跟导师提出换一个项目的想法!
但是,固执的导师很相信A,觉得是我的能力有问题,实现不出好的效果,不断地要求我调整方案。。。
最后,我终于。。。浪费了半年的时间一无所获。
然后导师自己想了一个idea给我,我试了试,就基本有一定的效果了,但苦于效果还不是所有已发表的方法中最好的。
就这么过了一个月,有一天上午B找到我,给我提了一个建议。我中午实现完,下午就取得了最好的效果。后来这篇文章发在了计算机视觉的顶级会议上。值得一提的是,这个方法的效果本来已经很好了,A又好心地告诉我一个提升目前方法的方案。我本来并不相信他,奈何导师坚持让我尝试。就这样做实验又耽误了我两周时间,最后发现A提的方案毫无效果,还会使方法变得更慢。
从此以后我基本不再找A讨论。说基本是因为我觉得他过来访问的时候,我不去找他聊聊不太尊重他。当然,我也不会和他聊太久,倒不是我觉得他水平不行,而是我实在是怕浪费时间。反而是B,后来在我的另一个项目里帮我解决了一个难点,使得我又势如破竹地做了一个自己比较满意的工作。
反思
我开始反思,难道师兄说的不对吗?事实上也并非如此。
在过去的几年合作当中,A老师总是提供一些解决问题的方案,而B更多的是提供数学理论上的指导。而那位师兄做的东西不太需要太深的数学理论,所以才会觉得A对学生的帮助会更大一些。但是A的想法不一定完全靠谱,所以如果在方案的大方向是正确的前提下,A的作用基本为0,而B在提供具体解决方法上的作用开始显现。
不过后来导师也安慰我,说这半年时间没有浪费,巴拉巴拉什么的。(鬼才信!)其实我也无所谓,就当交智商税了吧。
我觉得没有必要纠结于有没有浪费时间,我只想往前走,把所有负面的情绪全部剔除掉。通过这段时间,我也懂得了一个道理:科研的主要任务就是产生失败,面对失败,分析失败原因,从而最终找到成功的方向。
怀疑还不够,必须分析
在科研的过程中,分析失败的原因是非常关键的一环,也是真正得到新体悟的阶段。分析也就是纠结。
我也想提醒大家,在接下来的系列文章里,大家一定不要认为我是“专家”。郭德纲在相声表演开始的时候经常说一句话,“我是相声界的小学生。”我借来用用,“我是人工智能的幼儿园学生,目前处于一边探索一边写总结的阶段。”
读博三年之后,我发现一个悲哀的事情:没有什么知识是绝对正确的,至少在最前沿的科研领域里是这样的。
比如,你能明白下面这句话的意思吗?
“至少从准确率上说,这个方法是目前为止在计算机视觉中的传统分类方法中最好的。”
是不是很变态?!你肯定心中万马奔腾,心想搞什么啊!科学家都是这样说话的吗?!还能不能一起愉快滴玩耍了?!
但我想说的是,上面这句话中的信息可能是错误的,因为这句话没有说在哪一个任务上的准确率,有可能换一个任务之后,这个方法的准确率一下子就排倒数第一。尽管所有科研人员写论文的时候都尽量严谨,但是论文还是可能会因为自己的认识上的局限性而被审稿人反驳。
一个认真严谨的科研人员在写论文的时候经常纠结每句话的正确性,以免所表达的意思给读者产生了误导。
学习知识,探索知识必须深入分析!因为,“魔鬼在于细节”!
只有纠结细节才能不断深入地理解问题,这和王阳明的“格物”是一个意思。王阳明童鞋对着竹子“格”好几天确实有点浪费时间,但在科研人看来,花几天时间就能思考清楚一个问题实在是太有效率了。
就拿人工智能这个话题举一个例子,很多人认为人工智能就是让机器拥有和人一样的智能,其实这个理解还不完整,也不够深刻。人工智能不仅要求机器像人一样思考,而且要理性地思考,不仅像人一样行动,而且要理性的行动。但是这也只是目前为止对人工智能的理解,其实这个理解也是在一直发展中的,现在的理解并不是完全正确的,只能说错误的程度越来越小罢了。
不断思考人工智能的涵义就是纠结细节,这并不是毫无意义。这是一个最基本的哲学性问题,我们只有把这个问题想清楚了,未来犯的错误才会最小,为错误付出的代价也就最低。而在我们的理解越来越深之前,所有基于现在的理解所做出的尝试都只能够基于现有的理解。一旦我们发现之前的理解有根本性的漏洞,那么现在已经尝试的方法都将需要被推倒重来。
所以,对于学问一定要不断深入!一旦我们偷懒,想糊弄过去,那么在未来不得不再次面对这个问题的时候,我们将会浪费更多的时间去纠结。何必呢?
人工智能中的监督学习和无监督学习
对于人工智能,我们将从最基本的机器学习开始讲起。机器学习主要包括监督学习,半监督学习,无监督学习,和强化学习。
我用下面两个例子让大家理解无监督学习和监督学习的概念。
想象大家的孩子刚出生的时候,孩子的脑子里是空白一片的。父母们欢喜地迎接新成员的降临,并且把TA带回了家。
在回家的路上,孩子看到了一群猫在路边懒散地晒太阳,孩子并不知道那些四只脚的小可爱们叫做猫。孩子的脑子里完全没有猫的概念的,但是孩子脑子里有抽象出猫的特征的能力,孩子会认为长成这样的动物是同一类。这时候,如果有一只新的猫走到孩子的跟前,孩子会自动地把这只新成员与那一群有四只脚的动物归为一类。这时候孩子的脑子里其实已经完成了一次无监督学习的训练。
再试想一下,如果大家一边抱着孩子,一边指着那些猫咪们教孩子,“小宝宝,这些是猫,猫就是有四只脚的毛茸茸的小动物,耳朵尖尖的,。。。”这个教育的过程长短取决于家长的语言能力的强弱和对猫的了解程度。这个过程可能需要几次。在后来的某一天,你和孩子走在路上,你们又看到了一只猫。这时候,孩子就会指着猫咪,颤巍巍地说,“猫。。。”也就是说,孩子认出了这个小可爱是一只猫。在这整个过程中,其实孩子的脑子里已经完成了一次有监督学习的训练。
有监督学习和无监督学习的区别就在于,家长是否把猫这个概念输入到孩子的脑中。猫这个概念在机器学习领域里叫做标签。
在下次的文章里我会把有监督学习,无监督学习,和半监督学习展开来讲,用一些常用例子来让大家深入理解这三个在机器学习中最重要的概念(之一)。
总结
我在文章中主要跟大家强调了怀疑和分析在学习和科研中的重要性,并简要介绍了一下机器学习中的有监督学习和无监督学习的概念。
大家有什么意见可以给我留言。