前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >X君和T君关于通用学习机的对话

X君和T君关于通用学习机的对话

作者头像
用户1908973
发布2018-07-24 14:42:17
2310
发布2018-07-24 14:42:17
举报
文章被收录于专栏:CreateAMindCreateAMind

转子 人机与认知实验室

X君和T君是老朋友。X君是数学家,对通用学习机比较有心得。T君是物理学家,资深程序员,软件专家。一天,他们在纽约城里面碰到,就在一家咖啡馆坐下聊天。在一些有趣的话题后,自然就转到了谈通用学习机。

T:我看到了微信上面的通用学习机的介绍。我知道你比较早就参加了这个项目,你给我讲讲吧,从技术上。

X:很好啊。不过千头万绪,怎么讲起呢?你是极为资深的软件专家,不过你也不熟悉通用学习机。你看这样可好,由你来提问,我来回答,看看怎么用比较简明的话把事情说清楚。

T:好。就这样。怎么开头呢?通用学习机肯定和深度学习有很多不同。要不然,你从两者的区别说起吧?

X:两者当然很不一样。但是,又都是机器学习,而且两者的一些方面又很接近。干脆这样,我来先说说两者的共同之处。首先,两者都是一种机器学习。什么是机器学习呢?你知道,计算机本身做不成任何事情,必须要有软件,软件赋予了计算机能力。对吧?

T:那当然,这是常识。

X:那我就问你这个专家一个问题,软件是怎么来的?

T:······,唔唔,你这是什么意思嘛,软件当然是编程得到的啊。喔,你是说商用软件,买的?

X:你是专家,当然是对的,软件的确是编程来的。但是,现在开始发生变化,软件可以通过学习而得到,而不必通过编程而得到。比如说,以前Bell Lab用人工编写的语言处理软件,和现在通过深度学习而获得的语言处理软件,都是软件,但是后者不是人工编程来的,而是学习来的,而且后者比前者要强大太多。这就是变化。

T:你说的这个我知道一些,AlphaGo也是这样的,对吗?

X:对的。这就是我要说的,计算机的能力是我们赋予的,以前是用编程来赋予,但是,现在要用学习来赋予了。深度学习和通用学习机在这点上是相同的,都是通过学习来赋予计算机能力。

T:这个理解,没有问题。但是你这就把很多所谓人工智能的神话平凡化了,嘿嘿,谨防有人骂你,哈哈哈。唔,两者的不同呢?顾名思义,是通用学习机要好一些,是通用的?

X:的确如此。我就简而言之吧:通用学习机可以学任何东西,而深度学习只能学程序员预设好的东西。虽然这个话不是很精准,但是,基本上是对的。

T:这样讲,就很清楚。我听懂了,其他的人大概都可以听懂。但是,这是最表层说明,我们还是应该深入到技术细节。我想比较明确了解,究竟学习在做什么。啊哈,我来说一个题目,你来告诉我机器怎么学习,好不好?

X:可以。

T:好。我想想,······,这样吧,我要你的计算机做这样的事情:我给一张bitmap的图,100x100的bitmap,图上面有一条曲线,你的计算机要给出这个曲线的方程,近似的方程。

X:好,我们看,······

T:不不,这个大概复杂了一些,我们来个简单一些的:我的bitmap的图上,有两个圆,你的计算机要告诉我圆的半径。可以吗?怎么做?不不,我们干脆再简单一些,我的bitmap的图上,有两个黑斑,你的计算机要告诉我哪个斑大,哪个斑小。这样可以吗?怎么做?

X:太好了,你的这个问题很好。我们就讨论它。我们刚才讲了,要计算机能做这个事情,就需要用软件来赋予计算机这个能力,而赋予能力,有两条路,一条是编程,一条是学习。我们先来看编程怎么办。

T:好吧。

X:要编程写软件,你是专家,套路是清楚的。我先要做一个数学模型,即通过什么方法来决定黑斑的大小。这个数学模型,可以是几何的,或者统计的,或者其他意想不到的,总之要有一个模型。然后,我把这个模型编程,再用一些例子来调试。最后,这就是这个软件。

T:的确是这个套路。差不多的软件都是这个套路。不过多数的程序员,仅仅在某个片段上做,只能看到小片段,看不到全貌。而且一些问题太复杂,这个套路要走很长时间。例如Bell Lab的语音软件,做了几十年。其实,就是这两个黑斑的例子,看似简单,也不容易,什么数学模型可以包括所有的黑斑?各种奇奇怪怪的组合,不容易啊。

X:是的。这个套路,并不容易,因此,软件成本很高嘛。这是编程的套路,那么学习的套路是什么呢?要学习,并不能凭空学习。我们必须要有一个程序,而且还要有一些先验知识。

T:停,先验知识?听起来好像很哲学嘛。

X:是的,就是先验知识。到了机器学习这个阶段,哲学很重要的。

T:什么是圆,什么是大小,这样的知识?

X:还不是,其实用先验结构这个词恐怕更好一些。注意了,我说,先有一个程序,这个程序可以处理输入的bitmap,而且,可以根据输入的数据,来修改自己的这个处理程序,怎么样修改就是先验知识(或者先验结构)。

T:等等,让我仔细想想。······ 好,我比较清楚了,就是说,学习就是有一个程序,这个程序可以根据输入的数据修改自己,而指导如何修改的,就是先验知识。

X:很对,很对。希望我的其他听众也能有你这样的清晰认识就好了。有了这个学习的基础,下面就是学习了。就是说,输入数据,对我们这个情况,就是输入很多bitmap进去。然后,慢慢的,我们的这个程序,就开始能够区分两个黑斑,如果再一些外界的指导,如告诉它,对还是不对,慢慢的,这个程序,就可以开始告诉哪个大,哪个小。可能还有些错。但是,会学习得比较快。当学习到一定程度后,我们可以停止学习,那么这个时候,那个程序就是我们要的软件了。

T:喔。······· 这样的确是和编程完全不同的套路。这个套路,如果搞得好,可以极大简化软件开发,也可以极大提高软件的能力。

X:是的。没有这个套路,人工是编不出来横扫人类棋手的围棋程序的。唔,一直到这里,我们都是说的通用学习机和深度学习相同的东西,还没有说不同的东西。

T:是的,不同在哪里?听你这样讲,我都有些跃跃欲试了。

X:在咖啡馆,详细说是不可能的。我就简单说两点。其一,通用学习机有一个清晰的表征空间,即怎么在内部表达输入的bitmap,而深度学习并没有一个清晰的表征空间。其二,通用学习机的先验知识可以有很多层次,从最笨的到比较聪明的,都可以有,而深度学习的先验知识几乎为零,仅能根据误差梯度来调节,而且究竟调节什么也不清楚。有了这样的区别,通用学习机就可以更高效地学习。

T:很好。我比较清楚了。看来我要去用Tensorflow来做做这个问题,hands on。看来有意思。

X:那是。等我们的通用学习机做出了雏形,也请你来使用。可以明确讲,我们的通用学习机,比Tensorflow需要的资源少很多很多倍,你用你的Apple就可以了,不需要用服务器。

T:不用这么急,我们还没有讲到学习的细节。你继续讲。

X:好,······

这时T君的电话响起,T君接电话。接完后,看一下时间,苦笑说:“小孩的学校有电话来,必须要赶回去,10分种后Penn Station的火车,我现在必须走了”。

X:没有问题。我们下次再谈技术细节。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-11-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 CreateAMind 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档