• 项目
首页>>文章列表 >>行业研究
行业研究

机器学习中决策树的原理与算法 2017-06-08 11:15:12

从名字来看,决策的的意思就是在众多类别中我们需要决策出我们分类的东西是属于哪一个类别,决策离散型的值的叫决策树,决策连续型值的叫回归树。用学术一点的语言就是决策树的输出是离散型随机变量,回归树的输出是连续型随机变量,这篇文章的重点是讲解输出是离散型随机变量的决策树,当你明白决策树的运行机理后,回归树也就触类旁通了。


名字中的树,顾名思义,就是模型的结构是树形结构,树形结构的主要优点就是可读性较强,分类速度较快。树是由躯干和叶子组成,决策树中的有向边和结点与之对应,其中结点也有两种类型,一种是内部结点,一种是叶结点。

上面的介绍的都是从字面上可以理解出的一些概念,性质上来讲,决策树是一个预测模型,它代表的是对象属性与对象值之间的一种映射关系。树中每个结点表示某个对象,内部结点表示一个特征或属性,叶结点表示一个类,而每个分叉路径则代表某个可能的属性值,而每个叶结点则对应从根节点到该叶节点所经历的路径所表示的对象的值。


我们可以认为决策树就是一种 if-then 规则的集合,也可以理解为它是定义在特征空间与类空间上的条件概率分布。既然是if-then规则,那么决策树具有一个重要的性质就是:互斥并且完备,也就是说每一个实例都被一条路径或一条规则所覆盖,而且只被一条路径或一条规则所覆盖。

说了这么多抽象的概念,那决策树到底可以用来处理什么样的问题,那我们通过一个实际的例子来展开决策树的讲解,并且为了让大家更好入门,我也选择了一个十分简单的情景。


假如小明上班可以选择两种交通工具,一种是网约车打车上班,一种是骑共享单车上班。采取这两种途径中的哪一种取决于三个因素,一个是天气情况,天气假设可分为恶劣天气和非恶劣天气,另一个因素是小明的心情,心情分为好心情和坏心情,最后一个因素是小明是否快要迟到。假设三个因素对应的小明上班方式的情况如下表:

机器学习中决策树的原理与算法 | 科普

上面这个表格就是我们所说的样本集,细心的读者可能会发现,上面的样本集少了一种情况,即天气恶劣、小明心情不好但是上班时间又比较充裕的这种情况,没错,我故意省去这一组就是想让这一组成为测试集,让大家通过构建一个决策树来预测在这种情况下,小明会采取哪一种方式上班。 


现在我们已经有了数据,那么我们该如何构建一颗决策树呢?

在构建一颗决策树的时候我们需要解决的问题有三个:

  • 根结点放置哪个条件属性;

  • 下面的结点放置哪个属性;

  • 什么时候停止树的生长。

为了解决上面三个问题,我们需要引入一些概念。


第一个引入的概念叫信息熵,英文名为 Entropy。在 Tom Mitchell 的书中是这样解释信息熵的:

它确定了要编码集合 S 中任意成员(即以均匀的概率随机抽出的一个成员)的分类所需要的最少二进制位数。

说实话,当时的我理解这句话是费了不少劲,其实把它转化成通俗点的语言就是说,信息熵就是“预测随机变量Y的取值”的难度,或者说度量“随机变量Y”的不确定性。

通过两个例子来解释。假如你在地球上,手里握着一个铁块,当你不对铁块施力而直接松手的情况下,请你判断它是会向下坠落,还是向上飞去,根据我们的常识我们能很容易判断出石块会下落,那么判断这个事情的结果就非常容易,那么此时的信息熵就可以认为是0。


再举一个例子,假如让你判断一枚匀质的硬币抛出后正面朝上还是反面朝上,这个问题我们就比较难回答了,因为正面朝上和反面朝上的概率均等,我们不能有一个很确定的判断硬币到底哪个面朝上,那么这个时候判断就比较难了,所以此时的信息熵就可以认为是1。

但是上面这段话怎么转化成数学的语言进行定义和描述呢,有很多学者都提出了他们认为的信息熵表达式,我们可以通过下面这个表格看一下目前的一些信息熵的定义。

机器学习中决策树的原理与算法 | 科普

虽然有这么多的定义,但我们平时很多情况下用的都是香农信息熵,所以接下来我也采用香农信息熵对下面的其他定义进行表述。


当我们有了信息熵的表达式我们就可以得出一个二分类问题的信息熵图像,如下图所示。

机器学习中决策树的原理与算法 | 科普

我们可以看到,这个图像所表达出来的信息和我们之前举的例子完全对应,当一个事情非常容易判断的时候,也就是我们以很大的概率认为它会发生或者不会发生,那么它的信息熵就偏向0,当一个事情非常难判断的时候,我们可以认为最难的时候就是这个事件的所有可能性均相等的时候,那么它的信息熵为1. 


现在我们已经有了信息熵的概念,那么我们再引入第二个概念,这个概念需要建立在信息熵之上。那就是条件信息熵。有了信息熵的概念之后,我们自然而然就可以得出条件信息熵的概念,条件信息熵就是度量“在随机变量X的前提下,预测随机变量Y”的难度。


信息熵表示判断难度,有了条件两个字就是说我们已经知道了一个条件之后,再让你判断变量结果,这时候的难度就是就是条件信息熵。就像上面的例子,我们发现只要小明发现他要迟到了,那么他就会打车上班,所以当我得知了小明今天快要迟到了,那么我判断他是否打车这件事就非常容易了,那么此时的条件信息熵就可以认为是0,这就是条件信息熵。如果仍然采用香农的定义方法,那么条件信息熵的数学表达式就是

已知P(Y|X),P(X),

机器学习中决策树的原理与算法 | 科普

有了信息熵和条件信息熵的概念,那我们就自然而然地就可以引出第三个概念,那就是信息增益,信息增益的数学定义是

机器学习中决策树的原理与算法 | 科普 

我们通过看这个数学表达式不难看出信息增益所表达的意思。被减数是信息熵,也就是在没人给我们通风报信的时候判断结果的难度;减数是条件信息熵,也就是当我们知道了一个条件后,判断结果的难度。信息增益这个变量表达的意思就是条件x对判断结果减少了多少难度,即度量X对预测Y的能力的影响。


就像有一档电视节目叫开心辞典,当答题选手无法判断答案的时候会选择三种求助方式,其实求助方式就是一种条件,当选手用过了求助方式后对回答问题的难度的减少量,就是信息增益。如果难度降低很大,那么我们就可以说信息增益很大。

介绍了上面三个概念,我们就可以回答在构造决策树的时候遇到的第一个问题了:根结点放置哪个条件属性。


我们的放置方法是:选择信息增益最大的一个属性作为根结点。

因为一个数据集的信息熵是固定的,所以这个问题就转化为选择条件信息熵最小的属性,所以我们只要求出条件信息熵最小的属性就知道根结点了。 

通过对例子的计算我们可以分别计算出单个特性的条件信息熵,计算过程如下图:

机器学习中决策树的原理与算法 | 科普

通过计算,我们看到小明是否迟到这个属性的条件信息熵最小,那么我们就将这个属性作为根结点。所以决策树的的雏形如下图。

 机器学习中决策树的原理与算法 | 科普

知道了根结点的放置方法,那么第二个问题也就迎刃而解了,下面的结点放置哪个属性。我们只需要将已经得到的结点看做一个新的根结点,利用最小化条件信息熵的方法即可。我们将小明并不会快要迟到作为一个条件,那么表格如下

机器学习中决策树的原理与算法 | 科普 

然后再次计算条件信息熵,计算过程如下图:

 机器学习中决策树的原理与算法 | 科普

我们看到天气因素的条件信息熵最小,为0,那么我们下一个节点就方式天气因素。这个时候其实我们就可以结束决策树的生长了,为什么呢?那么我们怎么判断什么时候结束决策树的生长呢?

因为我们在一直最小化条件信息熵,所以当我们发现所有特征的信息增益均很小,或者我们没有特征可以选择了就可以停止了。至此我们就构建出了我们的决策树。

那么我们最终的决策树如下图所示:

 机器学习中决策树的原理与算法 | 科普

通过决策树我们很容易判断出天气恶劣、小明心情不好但是上班时间又比较充裕的情况下,小明的出行方式是选择打车。


所以,如何构建一个决策树的方法截止现在已经基本上全部介绍给了大家,在学术上,常用的算法有 ID3算法,C4.5算法和 CART 算法,其实这些算法和我上面介绍的方法和思想基本上完全一样,只是在选择目标函数的时候有一些差别,我说的是最小化条件信息熵,ID3 用的是信息增益,C4.5 算法用的是信息增益比,CART算法用的是基尼指数,这个指数在上面介绍信息熵的表格中就有,可以参考。

决策树的原理和算法部分就基本上介绍完毕,因为防止模型过拟合也是机器学习中的一个重要议题,所以,我再简单介绍一下决策树的剪枝。


之所以会发生过拟合,是因为我们在学习的过程中过多地考虑如何提高对训练数据的正确分类上,所以有的时候就会构建出过于复杂的决策树。而决策树一旦复杂,对测试数据的分类就没那么精确了,也就是过拟合。所以根据奥卡姆剃刀的精神,要对决策树进行简化,这个过程就叫做剪枝。

决策树剪枝是通过最小化决策树整体的损失函数完成的。决策树的损失函数定义为:

机器学习中决策树的原理与算法 | 科普

其中,树 T 的叶节点个数为 |T| ,C(T) 表示模型对训练数据的预测误差,即模型与训练数据的拟合程度,  |T| 表示模型复杂度,参数 α 是一个非负数,控制两者之间的影响。

C(T) 的计算方法是

机器学习中决策树的原理与算法 | 科普

其中,t 是树 T 的叶结点,该叶结点有 N个样本,其中k类的样本点有 Ntk 个,k=1,2,…,K。

有个上面的表达式就可以进行最小化损失函数的计算了,从叶结点开始递归地向上计算损失函数,如果一组叶结点回到其父结点之前与之后的整体树分别为 TB 与 TA,其对应的损失函数分别为 Cα(TB)与Cα(TA),如果

机器学习中决策树的原理与算法 | 科普

则进行剪枝,即将父结点变为新的叶结点。


因为决策树的生成在开源库 OpenCV 已经有实现,最后我再附上一段利用 OpenCV 来训练我上面例子的代码,目的也是让大家自己实现一个类似 Hello World 的程序。OpenCV 的配置方法在这里不再赘述,大家可以利用下面的代码自己作为练习。OpenCV 的内部实现过程感兴趣的同学也可以对源码进行学习,源码也可以在 OpenCV 的官网上下载到。 机器学习中决策树的原理与算法 | 科普

需要进行解释的一点就是,我们需要将上面的情景进行了数据化,我们将上面的情况都作为0和1来代表进行决策树的构建。所以新的表格如下所示: 机器学习中决策树的原理与算法 | 科普

利用这段程序大家可以看一下这颗决策树对天气恶劣,心情不好,但是时间还充足的情况下小明会选择哪种交通工具进行出行进行的预测。在这先偷偷地告诉你,AI 给出的答案如下图

 机器学习中决策树的原理与算法 | 科普

是不是和我们推导的结果一样呢?


友情提示:

深度学习作为人工智能领域的黑科技,快速入门一直以来是很多学员的梦想。AI 慕课学院在 6月17日-18日有一个为期 12 小时的深度学习课程,由 fastai 中文社区最活跃的四位贡献者为你打开深度学习入门的那扇门。


课程采用 “探索+实践” 的硅谷教学模式,让你从一个门外汉迅速进入深度学习工程师的角色,去完成一个接着一个的项目挑战。最流行的深度学习技能,在这里你都会一一体验,学完整个课程,CNN、RNN、VGG16、ResNet、InceptionCNN 这些最新科技你都会顺手捏来,弹指一挥间,快速构建你的深度学习应用不再是一个梦。

如何在微服务架构下构建高效的运维管理平台? 2017-06-08 11:13:10

本文内容有三点:

1、微服务架构特点及其传统巨石架构的差异,以及传统运维工具面临的挑战;

2、面向微服务的运维平台架构;

3、运维平台微服务进化。


一、 微服务架构与巨石架构的差异

“微服务”与“巨石架构”两者并非对立,而是分别针对不同场景的解决方案。

巨石架构指将所有“大脑”集中在一起,以CS架构为代表,将所有的逻辑放在唯一应用中,再加入前端UI组件、Service、MVC架构、数据库等部分。它的技术架构不复杂,调试、部署、管理方便,是适用于绝大部分系统的解决方案。

但是在互联网要求“多、快、好、省”的应用场景下,“巨石架构”面临诸多挑战。

多:互联网用户量巨大,达百万级在线量;

快:服务请求反应速度要在一秒以内甚至更快;

好:服务质量稳定性要高;

省:硬件成本增涨要低于用户量增涨速度。

技术干货|如何在微服务架构下构建高效的运维管理平台?

△ 巨石架构

   如何解决这四个问题——增强整个平台的灵活性。 

技术干货|如何在微服务架构下构建高效的运维管理平台?

△ 系统的扩展

平台扩展能力

1.平行扩展:一般的无状态服务器可以通过服务器扩容完成平行扩展;

2.分区:对于有状态的服务可以通过分区增强平台灵活性,如:南北方用户分属A、B不同集群。 

平台上的扩展“巨石架构”可以适应,但是功能上的扩展却比较难适应。

功能扩展能力

功能维度上,如何使系统变得更融洽?

1.灵活控制成本:局部调整,变更模块、逻辑,而不是整个系统去修改。

巨石架构的所有模块都捆绑在一起,进行扩展时,由于每个模块巨大,只能高成本平行整体扩容。

微服务架构下模块产品的服务器分布非常灵活,扩容成本低,现在都会选择将服务器模块切分,进行微服务化改造,提升平台支撑能力。


二、微服务架构下如何构建一个运维管理平台

上文讲述了微服务架构与巨石架构的差异,接下来了解如何构建一个运维管理平台。

运维平台管理最重要的是应用。对于应用运维来说,系统的前端所接入的官网、中间的逻辑服务,后端的存储、缓存,分属于不同的运维。

把运维平台拆分成三块具体化部件对应到工作中。

运维平台的内部应用、内部依赖是什么?——程序、配置文件、计算的资源

是什么支撑运维平台作为一个互联网应用?——内存、CPU

运维平台依赖的资源有哪些?——系统镜像

这是CMDB IT资源管理系统要承载的,在自动化扩容、环境部署时,只有了解这些数据,上层系统才知道如何构建这个应用。很多运维团队,仅仅做到“工具化”,却没有跟“资源管理配置”联动起来。

技术干货|如何在微服务架构下构建高效的运维管理平台?

资源有效管理之后,是研发、运维这类的动作管理。如:版本更新,迁移服务、搭建测试环境等标准化的动作。


在拥有资源和动作,达成自动化运维的闭环后。运维人员只需事前维护好准确的资源配置数据(CMDB),余下动作系统会自驱完成。如果把资源跟动作相混杂,每次运用都需要耗费资源定制专用的发布脚本、构建脚本。

除了资源跟动作管理,还有状态(监控)管理。每个公司都会有“监控”系统。这里需要强调的是意识的问题,因为在整个上层、应用层监控设计中考虑了“自动容灾切换”能力,所以我们不需要关注底层的监控。只要应用层没有告警,不用管底层服务器和机房是否挂掉。

我刚参加工作时,系统经常告警,需要半夜爬起来重启机器、删文件。现在运维只会接到通知,告知服务器挂掉,进行确认,不用实时处理。基于这个逻辑,在业务没有告警的情况下,我们系统就是正常的。


完善的运维管理平台能够合理的把资源、动作、状态协调管理。

这张图将上面那张简单的图做了扩展、细分。

最上面是面向运维,包含运维、研发者的服务目录和日常任务中心、状态中心的统一运维门户。

下面是调度编排系统,产品扩展根据不同行业及其业务特性,做出不同编排需求,将这些不同的需求选项进行固化。


中间是运维平台的核心,执行层的系统。忽略灰色的传统API模块,现在我们运维日常使用的就是这个包括持续交付平台、统一监控平台和ITOA运营分析平台在内的立体化监控系统,通过它实现动作、状态管理。针对基础设施、平台系统、应用级、服务级甚至更高层的需求,提供精确度、优先级不同的接口。

底层是CMDB资源管理。传统CMDB管理对象,属于硬件资产。在云化技术发展之后,会越来越弱化。应用运维就不需要关注太多。这里CMDB包含了业务信息管理、应用程序包、配置、定时调度任务、流程、工具、权限、系统配置等基础资源。


三、运维平台的微服务进化

伴随着公司业务的发展,如何将正在应用的系统进行架构上的优化或者规划?

1.技术选型

首先,微服务跟基础架构的区别在于,微服务的组件拆分后是通过网络传输的。因此通讯标准要做出合理的选型。

微服务的架构,通常是异构架构。比如我们的平台运用了Python、JAVA、PHP等语言,必须选择同时兼容多种语言的协议。就像我们之前选用protobuf时,发现Python自带的库兼容Linux系统不成熟。在不同场景下,微服务的技术选型需要有较强的兼容性。

其次是语言的选择。微服务强调接口的稳定性,在保证服务稳定的情况下,可以自由选择熟悉的语言。


2.微服务的规划

单一职责原则:每个服务应该负责该功能的一个单独的部分。

明确发布接口:每个服务都会发布定义明确的接口,而且保持不变,消费者只关心接口而对于被消费的服务没有任何运行依赖;

独立部署、升级、扩展和替换:每个服务都可以单独部署及重新部署而不影响整个系统,这使得服务很容易升级与扩展。


3. 平台构建

通过下面的两个模块来讲解平台的架构。

1) CMDB系统怎样做简单的分拆,使之更容易维护?

CMDB是一个有大量配置系统存在的可以进行查询、修改的数据库管理系统,它的内部包含模型管理,配置管理、自动发现。

技术干货|如何在微服务架构下构建高效的运维管理平台?

A)模型管理

CMDB中,我们会管理大量随着产品技术站演进动态变化的资源和相异的动作,所以要独立出模型管理的模块,保证CMDB动态可调整。

B)配置管理

由于CMDB的信息敏感度高,很多公司要求,将敏感业务信息,特别是应用和IP这类关联关系的信息保存在里面。


C)自动发现

如果CMDB没有完善的自动发现机制,它失败的概率会非常高。就像传统CMDB有一个在严谨的审批机制运行下的配置变更流程。但是即使在配置跟现网一致的情况下,还是需要每半年进行一次资产盘整,对信息进行纠正。对于有海量业务的系统来说,没有“自动发现”能力的CMDB是不合格的

通过“自动发现”,去自动化采集服务器带宽、网卡速度、内存、磁盘空间、进程等信息,由CMDB进行管理。模块管理相对传统,“自动发现”是CMDB的核心,在同时管理数十万台服务器时,只能通过“自动发现”的探侦才能进行自动化维护。


2) 持续部署系统

 技术干货|如何在微服务架构下构建高效的运维管理平台?

持续部署系统负责自动化发布。上图将持续部署系统的平台构建分为多个子模块。

A) 构建管理

构建即以静态图片、业务程序、配置文件等为主的部署对象。根据DevOps中的原则,需要将一切版本化。所以需要一个构建库负责管理所有发布到生产环境的资源。

通过统一的构建库,对所有发布到线网上的数据进行标准化管理,以此可以快速在其他机房重建原系统等。同时它还拥有信息共享功能,过去运维发包之后跟踪困难,现在研发人员只需向构建库输入版本信息,运维从构建库中导出就好了。


B) 任务管理

任务库负责存储日常发布任务,满足自动化发布需求。曾经由于很多研发人员贪图方便,选择在现网直接更改系统,记录信息错乱变更很不利于任务管理的日常下发。

常常是错误的,所以我们并不使用“任务下发完成之后,系统设置自动更新”这种设计。在无法信任上层管理系统的情况下,现网信息、数据必须实时扫描上报。

为了保证信息的发布成功,必须以Agent上报的信息为准。因为配置信息存在大量变更入口,在无法保证唯一入口的情况下,不能想当然的设计系统。

命令通道与数据通道是除了构建库、任务库、实例库之外的上层系统的基本构成。首先命令通道与数据通道需要分开管理。腾讯曾经需要将1G的文件发送到两千台服务器,频率达到一周一次,一次一周,不断重试、失败。后来将命令与数据切开,每次只传输几十K的命令脚本,服务器再也没有阻塞。

开源方案部分问题依旧无法解决,像现在的异构网络,在混合云的场景下,必须保证网络互通,才能做到直连。大家可以选择自己去编写Agent练手,通过反向通道连接中心管理服务器去解决此问题。


微服务架构下平台架构的底层基础服务   

1.名字服务

名字服务指通过配置文件中匹配的名字查IP端口的服务,可以选择合适的开源方案。如果自研的话,可以对服务进行灵活分区等。如深圳的服务器A访问在深圳、上海两地均部署服务的B,我们只需要在,名字服务中与CMDB打通,使用深圳的服务器访问深圳的IP,达到同城访问的效果。这个操作在开源方案中就无法完美实现。

2. 状态监控

要求能达到接口即调用数据采集的应用层监控。

通过访问量、成功率、平均时延这三个核心指标,低成本把握绝大部分需求。以访问量为例,当访问失败率上升告警时,直接触发名字服务联动,将故障节点自动摘除。

3.负载均衡

当系统规模扩大,节点剧增时,增加中间代理的方法会增加系统内部压力。

如果落地到Agent,通过名字服务查询IP列表,合并状态信息,均衡节点请求,可以更好的达到负载均衡。

负载均衡的极端就是容灾,正常情况下根据性能状况保证每个节点处理合适的请求量即可。

这三点是运维平台或业务生产的系统中的核心能力。包括腾讯在内的运维平台都是基于这三个服务闭环去运行的。只有在做到这三点,才能解决系统异常,维持系统的正常运转。


微服务运维平台的迭代重心

其实我们在平台构建的时候,在整个的平台进化的过程中,其实是要有优先级,要有取舍的。总得来说,优先要解决我们的瓶颈问题。 然后是平行扩展的能力,还有考虑服务复用的能力,甚至是一些开源的解决方案的利用。但是开源这个东西,我从来不觉得是说大家把一堆的开源工具用在一起,能够形成一个很好的一个运维平台。

大家应该是把这些开源的能力,这些一个个的微服务,核心的这个架构还是必须要有自己的控制力在这里。比如:监控。很多开源的系统,它是更偏重于执行层的工具,但是核心的CMDB,核心的流程控制还是需要我们去建设的。

国产x86 CPU达到国际水准80%?你信你就输了! 2017-06-08 11:11:08

日前,《让缺“芯”少“魂”成为过去式》一文引起了舆论的广泛关注。

特别是文章中采访了核高基专项总师,以及披露的关于国产x86通用处理器的内容引起了网友广泛关注——国产x86通用处理器的成功自主研发和量产,令国产桌面处理器在性能方面完成了一次跨越式的提升,从“十二五”初期的不足国际整体水准的7%提升到了目前的50%,综合性能体验达到80%。目前,兆芯处理器芯片已在联想、长城、同方、曙光等主流整机厂商的产品中得到应用。


对此,一些媒体纷纷以该篇采访曝光的信息为基础,撰写了诸如《反击Intel,国产CPU整体性能提升,网友炸锅了》、《国产CPU单核性能有多强?》等一系列文章。然而,这篇文章中曝光的一些数据是非常可疑,而且自相矛盾的,是经不起推敲和探究的。


官媒描述非常含糊

《让缺“芯”少“魂”成为过去式》一文由中国科技网于2017年6月2日发表,根据中国科技网显示,该文源自《科技日报》。

   

根据百度资料显示:

《科技日报》是富有鲜明科技特色的综合性日报,是面向国内外公开发行的中央主流新闻媒体。报头由邓小平同志亲笔题写...

因此,《科技日报》毫无疑问可以称之为官媒。但官媒在报道中一些用词却非常含糊。

《让缺“芯”少“魂”成为过去式》一文中对国产x86通用处理器有两处介绍:

第一处为:国产x86通用处理器的成功自主研发和量产,令国产桌面处理器在性能方面完成了一次跨越式的提升,从“十二五”初期的不足国际整体水准的7%提升到了目前的50%,综合性能体验达到80%。


第二处为:飞腾、龙芯、申威和与VIA成立合资公司设计的CPU等国产CPU的单核性能从“十二五”初期不到Intel i3 CPU的10%分别提升到36.4%、33.3%、25.8%和51.5%。

但这里的这种描述是非常模糊的,根本没有说清楚这个单核性能是怎么来的,到底是基于什么测试?基于什么评价标准?而且文章中根本没有提到底是龙芯、飞腾、申威等的具体哪一款芯片作参照——毕竟龙芯3A3000、龙芯3A2000、龙芯3A1000,飞腾1500、飞腾1500A、飞腾2000,申威421、申威411、申威410之间都有不小的性能差异。

此外,Intel i3 CPU的描述和国际整体水准的说法也非常具有语言的艺术——第一代i3和第六代i3性能上有不小的差距,即便同一代I3,由于主频的差异,也有性能差距,这种以i3 CPU作为参展的做法,具有极大的不确定性。


而国际整体水准的说法,可以做文章的地方就更大了——虽然严格追究起来,与VIA合资成立的公司的X86通用处理器根本达不到Intel的50%或80%,但如果拿ARM作为国际整体水准,考虑到市场上海量的ARM芯片,这种语言的艺术也未尝不可。

正所谓中文是最为博大精深的语言,文章中这种描述的含糊性使得万一遭遇考究党严格追究,发布数据的一方也有充分的回旋余地。这种说法和语言的艺术虽然可以忽悠不少人,但这真正对国产CPU有一定了解的人看到,难免疑窦丛生。


国产X芯X86通用处理器性能注水

文章中称,与VIA成立合资公司的国产CPU的单核性能从“十二五”初期不到Intel i3 CPU的10%提升到51.5%。而且从“十二五”初期的不足国际整体水准的7%提升到了目前的50%,综合性能体验达到80%。

但这个说法是经不起推敲,首先是文章中的内容自相矛盾——在CPU性能在国际整体水平50%的情况下,综合性能体验达到80%——由于综合性能体验是有硬件性能+软件性能的综合结果,而X芯在硬件性能只有国际整体水平的50%的情况下,综合性能体验要想达到国际整体水平的80%,就必须在软件方面大幅优于Intel。


然而,这种说法完全是侮辱人民群众的智商——国产CPU和Intel的差距是全方位的,不仅仅是硬件的差距,软件的差距也很大,试问兆芯的软件生态能比Intel还牛吗?

文章中称,国产X86 CPU的单核性能达到i3 CPU的51.5%的说法也存在大量注水的情况。

2016年,与VIA成立的合资公司宣布ZX-C量产。作为参展找来了Intel G1840和Intel i5 4460,根据实际测试,测试的编译器采用GCC 4.8.4,编译的选项采用-Ofast以及profiling,ZX-C(2G主频)的SPEC06测试成绩如下:

 国产x86 CPU达到国际水准80%?你信你就输了!

 国产x86 CPU达到国际水准80%?你信你就输了!

从中可以看出,就定点性能而言,G1840是 C4600的2.4倍,i5 4460是C4600的3.3倍。就浮点性能而言,G1840是C4600的2.8倍,i5 4460是 C4600的4.1倍。

因此,文章中称,“国产”X86 CPU性能达到Intel i3 CPU的51.5%,显然是不太客观的。


申威躺着中枪

文章中称:飞腾、龙芯、申威和与VIA成立合资公司的国产CPU的单核性能从“十二五”初期不到Intel i3 CPU的10%分别提升到36.4%、33.3%、25.8%和51.5%。

言下之意,就是单核性能VIA合资成立的公司为第一,达到Intel i3 CPU的51.5%,申威最弱,只有Intel i3 CPU的25.8%。就正如之前介绍的达到Intel i3 CPU的51.5%,综合性能体验达到80%经不起实践检验,是不客观的。所谓的申威只有Intel i3 CPU的25.8%也是不客观的,存在故意贬低申威的嫌疑。


申威最新的桌面CPU为申威421,采用28nm制造工艺,主频1.8-2G,根据SPEC2006测试显示,申威421的定点成绩与龙芯3A3000大致相当,浮点性能上相对于龙芯3A3000略胜一筹。而且根据实际测试,龙芯、飞腾、申威的桌面CPU——也就是龙芯3A3000、飞腾1500A和申威421总体处于同一档次。

因此,文章中称飞腾、龙芯、申威性能为Intel i3 CPU的36.4%、33.3%、25.8%显然是不客观的。


官媒报道失实的原因

官媒报道中失实的最大可能是记者在与核高基专项技术总师XXX博士的交流中出现问题,毕竟涉及到很多专业知识和术语,记者恐怕未必能完全领会XXX博士的介绍。

此外,还有一种可能性,XXX作为核高基01专项总师,而与VIA合资成立的公司恰恰在十二五期间承接了核高基01专项,获得了天量核高基经费的支持,在2017年又从核高基拿了一大笔钱。

然而,在获得核高基海量经费支持的情况下,在过去5年时间里,该合资公司一直没能拿出像样的作品。

在技术上拿由美国半人马半导体设计的以赛亚内核穿马甲,而且裸CPU性能还不如龙芯、飞腾和申威,在局部一些指标上还处于明显劣势——单线程STREAM的测试,C4600的STREAM带宽基本为4-5GB/s,而龙芯3A3000为8+GB/s。多线程STREAM的测试,C4600的STREAM带宽基本为3+GB/s,而龙芯3A3000为12-13GB/s。


在市场推广上,由于性能不足Intel的30%,使得该合资公司的CPU完全不具备市场竞争力。

而对于党政和安全市场,由于该合资公司的CPU其实就是中国台湾VIA技术的马甲,这使得重点安全领域严令禁止使用,这就使其无缘这方面的市场。

而对于党政市场,除了上海政府鼎立支持之外,其他地方政府都鲜有采购,这就使合资公司面临商业市场打不开,党政市场只能局限于上海的局面。

必须说明的是,拿了核高基的钱,是有一定条件的,比如性能指标,又比如产业化指标。

正是因为有性能指标要求,所以才会有兆芯在十二五科技成果展上宣传ZX-C达到国际主流水平的80%,以及合资公司副总裁傅城博士宣称性能大概相当于英特尔i3-i5处理器之间,最高性能可达到i5处理器的水平的论断。


加上核高基对合资公司的巨额投入——由于在中国,官方行为除非闹到“汉芯事件”那种不可收拾的地步,政府是不会说事情做错了,或者说事情没做好,只能硬着头皮做下去。比如说在去年闹出欠薪事件的宏芯,政府接盘后继续扛着。而且由于之前的选择和巨额资金投入,彼此之间已经高度捆绑,可以说是一荣俱荣,一损俱损。

作为核高基01专项总师,无论是出于利益因素,还是处于情感上的偏爱,对核高基已经投入巨资的合资公司,予以拔高也是人之常情,是可以理解的。毕竟最近各大专项都在总结发声,核高基01专项当然也不例外,而与VIA合资开发CPU一直是核高基01专项重点支持的,当然要为其站台。


DeepMind AI 关系推理超越人类:深度神经网络模块即插即用 2017-06-07 17:10:56

研究一:视觉互动网络 VIN,从原始视觉观察中学习真实物理机制的通用模型

首先看《视觉互动网络》(Visual Interaction Networks)。

DeepMind 官方博客中称,理解关系推理的一大关键因素是,预测未来一个真实场景中发生了什么。

只看一眼,人类不仅能够推断出物体接下来几秒钟、几分钟乃至更长时间所处的位置,还能够预测接下来发生了什么。


例如,对着墙踢一个球,大脑能够预测到球碰到墙以及接下来球和墙两者的走向:球会根据入射角度、速度反弹,而墙应该还会在那里不动。

这些预测虽然简单,但都是由一套复杂的认知系统所引导的。


由此,DeepMind 的相关研究人员开发了“视觉互动网络”(Visual Interaction Network,VIN),能够简单模拟大脑的推断系统。

VIN 能够根据几帧连续的视频,推断(infer)上面多个物体接下来所处的位置。

这与生成模型不同,生成模型生成的结果是从视觉上“想象”出来的,而 VIN 则是根据物体彼此之间的基本关系演化推断出的。

左边是真实结果(ground-truth),右边是 VIN 的预测。在连续大约 150 帧的视频中,VIN 给出了极为接近的模拟,这之后的预测结果从肉眼看来也算是合理的。

VIN 由两大机制组成:一个视觉模块和一个现实推理模块(physical reasoning module)。结合在一起,VIN 的两大模块能够处理一段视觉场景,并且预测其中每个不同物体在现实物理规律下会发生的情况。


DeepMind 研究人员在各种不同的环境中测试了 VIN,包括弹跳台球、有弹簧连接的质体,以及行星引力系统。结果表明,VIN 可以准确预测物体在未来几百步(hundreds of steps)会发生的情况。


  • 论文:视觉互动网络

DeepMind AI 关系推理超越人类:深度神经网络模块即插即用

作者在摘要中写道,只需一眼,人类便能对一系列不同的物理系统的未来状态做出各种各样的预测。另一方面,来自工程、机器人和图形学的现代方法通常局限于狭窄的领域,需要直接测量底层状态(underlying state)。


我们提出了视觉互动网络(Visual Interaction Network,VIN),一个用于从原始视觉观察中学习物理系统动态机制的通用模型

DeepMind AI 关系推理超越人类:深度神经网络模块即插即用

VIN 由基于卷积神经网络的感知前端(a,见上)和基于交互网络的动态预测器(b,见下)组成。通过联合训练,感知前端学会了将动态视觉场景解析为一组特殊的物体表征。动态预测器则通过计算物体之间的相互作用和力学关系,学习将这些状态向前推进,从而产生任意长度的预测物理轨迹。


DeepMind AI 关系推理超越人类:深度神经网络模块即插即用

作者发现,在只有 6 帧输入视频的情况下,VIN 可以生成各种物理系统中几百个时间步长的预测轨迹,而且这些轨迹都是准确的。

VIN 也可以应用于物体不可见的场景当中,从而根据可见物体预测不可见物体的未来状态,由此隐含地推断未知物体的质量。研究结果表明,感知模块和基于物体动态机制的预测模块引入的物体表征能够进行精确的动态预测。这项工作为复杂物理环境中,根据原始感官观察的输入,进行基于模型的决策和规划开辟了新的机会。


DeepMind AI 关系推理超越人类:深度神经网络模块即插即用

VIN 的架构示意图


研究二:模块化、具有关系推理能力的深度神经网络架构 RN

再来看《用于关系推理的简单神经网络模块》。

DeepMind AI 关系推理超越人类:深度神经网络模块即插即用

作者的摘要中写道,关系推理(Relational Resoning)是通用智能行为的核心组成部分,但此前研究证明难神经网络很难学习做关系推理。在本文中,我们描述了如何使用关系网络(Relation Network,RN)作为简单的即插即用模块,从根本上解决依赖于关系推理的问题。

我们在 3 个任务中测试了 RN 增强的网络:

  1. 使用 CLEVR 这一具有挑战的数据集回答视觉问题,实现了当前最好的结果,而且超越人类水平;

  2. 使用 bAbI 任务进行基于文本的问答;

  3. 关于动态物理系统的复杂推理。


然后,我们专门整理了一个类似 CLEVR 的数据集 Sort-of-CLEVR,并在这一数据集上展示了卷积神经网络不具备解决关系问题的通用(general)能力,但在使用 RN 增强以后,就能获得关系推理的能力。

我们的工作表明了,配备 RN 模块的深度学习架构能以怎样的方式隐含地(implicitly)发现并且学习去推理实体及其关系。

3 种不同标准测试,CLEVR 数据集关系推理能力超越人类


任务一:Sort-of-CLEVR 数据集

为了探索我们的假设,RN 架构比更标准的神经网络架构更擅于进行一般的(general)关系推理,我们构建了一个类似于 CLEVR 的数据集,称之为“Sort-of-CLEVR”。

Oort-of-CLEVR 数据集的主要特点是区分了相关和不相关的问题。该数据集由 2D 彩色图像及与图像有关的问题和答案组成。每个图像共有 6 个物体,其中每个物体都是随机选择的形状(正方形或圆形)。作者使用 6 种颜色(红、蓝、绿、橙、黄、灰)标识每个物体。

为了避免进行复杂的自然语言处理,问题是手工编码决定的。此外,在图像方面,数据集也做了简化处理,降低了图像处理中涉及的复杂问题。


每个图像都有 10 个关系问题和 10 个非关系问题。例如,关系问题有“与灰色物体最远的物体的形状是什么?”“有多少个物体与绿色物体具有相同的形状? ”非关系问题的例子是:“灰色物体的形状是什么?”和“有蓝色物体在场景的顶部或底部吗?”

DeepMind AI 关系推理超越人类:深度神经网络模块即插即用

CLEVER 数据集图像理解问题举例


任务二:bAbl 问答数据集

bAbI 是一个纯文本的 QA 数据集。其中,有 20 个任务,每个任务对应于一种特定类型的推理,如推论(deduction)、归纳(induction)或计数(counting)。每个问题都与一组支撑事实有关。例如,事实“Sandra 拿起了足球”和“Sandra 去办公室了”支撑问题“足球在哪里”(答案:“办公室”)。


如果完成一个任务的准确率超过了 95%,模型就算成功了。

许多记忆增强的神经网络(Memory-augmentated neural network),在 bAbI 上都取得了很好的成绩。当每个任务使用 10K 数量级样本进行联合训练时,Memory Network 的成绩是 14/20,DeepMind DNC 是 18/20,稀疏 DNC 是 19/20,还有 EntNet 是 16/20。

DeepMind AI 关系推理超越人类:深度神经网络模块即插即用

视觉 QA 问题的结构示意图

测试结果表明,RN 的数据是 18/20。


任务三:动态物理系统复杂推理

我们使用 MuJoCo 物理引擎开发了一个模拟连接弹簧的质体的系统的数据集。每个场景都包含 10 个在桌面上移动的彩色球。一些球独立移动,自由地与其他球和障碍墙碰撞。其他一些随机选择的球,则有隐形的弹簧或固定的力连接。


在这些球之间引入随机选择的连接,创造了一个不断变化的物理系统。作者定义了两个独立的任务,仅通过观察多个连续帧里球的颜色以及相应坐标位置:1)推断出球之间的连接力存在还是不存在,以及 2)桌面上有多少个“系统”(包括球以及节点)。


这两个任务都涉及关于球的相对位置和速度的推理。不同的是第一个任务的推论是明确的,而第二个任务要求推理是隐含的,也更加困难。

有效分配,发挥不同结构神经网络的特长

论文展示了如何将用于计算实体间关系的专用模块 RN 应用于更广泛的深度学习架构,从而大幅提高后者完成与关系推理有关的任务的能力。


论文提出的模块化结构 RN 在 CLEVR 数据集上取得了 95.5% 的正确率,超过了人类水平。bAbI 结果也显示了 RN 拥有通用(general)推理能力,解决了 18/20 项任务,没有灾难性的故障。

作者在论文中写道,工作中最有趣的一个方面是在相对简单的、基于 CNN 和 基于 LSTM 的 VQA 架构中,插入 RN 模块,将 CLEVR 的结果从 68.5% 提高到95.5%,取得了当前最优也是超越人类的水平。


作者推测,RN 提供了更灵活的推理机制,而有了 RN 做关系推理后,CNN 更多专注于处理局部空间结构数据,从而实现了整体的性能大幅提升。

作者写道,在计算过程中,区分“处理”和“推理”很重要。例如 ResNet 这样强大的深度学习架构,作为视觉处理器而言十分高效,但可能并不是推理任意关系最合适的选择。

他们这项工作的一个关键贡献是,RN 通过学习能够归纳(induce)上游处理任务,从而提供一组对物体有用的表征。


需要注意的是,输入数据和目标函数并没有指定内部物体表征的任何特定形式或语义。这表明 RN 具有丰富的结构化推理能力,哪怕是非结构化的输入和输出也能胜任。

作者认为,他们新提出的这一关系网络(RN)模块是一种简单而强大的方法,适用于让深度神经网络学习在复杂的现实世界中执行多种不同的、结构化的推理任务。


深度神经网络在理解世界本质方面拥有强大能力

DeepMind 最新上传到 arXiv 网站的两篇论文,结果都展示了神经网络在解构世界方面强大的能力。

神经网络能够将世界解构为一个个由物体组成的系统,以及这些系统内部和之间的关系,并且在此基础上进行泛化,生成对场景以及其中的物体彼此之间新的推论,乍看起来很不相同,然而在本质上却有共通之处。


DeepMind 博客最后写道,他们认为论文中提出的新方法都是可扩展的,能够应用于更多的任务,构建更多的复杂模型,从而更好地理解人类强大而灵活的智能的关键一环——推理。

房企布局,必须读懂城市群 2017-06-07 17:07:50

自2003年起,中国指数研究院已连续第15年开展城市房地产开发投资吸引力研究,基于中国城市发展特征的新变化,房地产的投资策略也随之发生改变,更多的房地产开发商、金融机构将深耕布局的视角聚焦到城市群范畴上。因此,2017年,我们将从城市群的角度分析城市发展脉络,以引导资源合理调配,发现价值洼地。


2017房地产开发投资吸引力

TOP50

研究结果显示,2017年,上海、北京、深圳投资吸引力仍保持全国前三位,经济基本面较好的二线及受核心城市辐射的三四线城市排名靠前。从城市层级来看,1线城市排名领先,上海、北京、深圳投资吸引力仍保持全国前三位,广州排名第5;1.5线城市中天津首次排名进入前4,杭州、南京、成都、武汉、重庆等核心城市经济基础强、人口流入多、市场需求旺盛,排名均位列前10;2线城市中,郑州、厦门、合肥领衔排名,分列12、13、16位,哈尔滨、大连等东北城市则继续延续上年的态势,排名靠后;2.5线城市中,东莞、佛山保持全国前20名,中山排名提升明显,至23名;三四线城市中,珠海、汕头、镇江、保定等城市具备承接核心城市产业、人口及置业需求外溢的区位优势,排名靠前。


从区域分布来看,东部沿海及长三角、珠三角、京津冀城市群城市投资吸引力保持领先优势。长三角的经济水平领先,城市的现有产业基础、创新实力、对优秀人才的吸引力均较强,整体投资吸引力仍保持领先地位,其中上海、杭州、南京名列前十;珠三角依托毗邻港澳的沿海区位优势,开放水平不断提升,深圳、广州保持全国领先水平,周边的东莞、佛山等在核心城市带动下,开发投资潜力居前;京津冀的北京、天津分别位列第2、4位,廊坊、保定在京津冀一体化和雄安新区的规划利好推动下,城市房地产开发投资吸引力也显著上升。


三大国家战略

拉开中国城市群发展大幕

五大超级城市群格局形成

“十三五”规划中指出,我国未来将加快城市群建设发展,打造京津冀、长三角、珠三角世界级城市群,并将在全国范围内共打造19个城市群。可以预见,在国家规划层面,城市群的发展也将进入加速期。


近两年政府工作报告中均明确指出要“着眼开拓发展空间,促进区域协调发展和新型城镇化”。“重点推进“一带一路”建设、京津冀协同发展、长江经济带发展三大战略”。“以区域发展总体战略为基础,以“三大战略”为引领,形成沿海沿江沿线经济带为主的纵向横向经济轴带,培育一批辐射带动力强的城市群和增长极。”


我们顺着三大战略规划的指引与城市发展的轨迹来看,未来中国核心城市群的空间格局也逐渐清晰起来。三大战略的叠加区域也将是未来发展最具潜力的区域。京津冀本身就是三大战略之一,发展潜力最为突出,长三角、长江中游以及成渝城市群分布在长江经济带沿线,是东中西部产业转移的最主要横向通道,而长三角以及珠三角地区都是21世纪海上丝绸之路的核心区,承担着海上对外开放以及创新升级的使命。


以上这五大城市群无疑将成为未来中国最具发展潜力的地区,抓住这五大城市群的发展机会才能把握住中国城市发展的未来。

图:“三大战略”叠加区域指向中国5大超级城市群

表:五大城市群经济与人口规模[1]


占国土面积11%的五大城市群经济总量占全国55%,是中国经济最活跃,潜力最突出的地区。2016年,长三角、京津冀与珠三角三大传统城市群GDP规模分别为14.7、7.5和6.8万亿,人均GDP分别为9.7、6.8和11.6万元,无论是经济总量还是人均效益,三大传统城市群都处于领先水平,也仍将是未来中国经济发展的领头羊,其中京津冀城市群规划规格高、政策执行力度大都表明京津冀将呈现追赶之势,与长、珠三角城市群的差距将缩小。长江中游和成渝城市群GDP规模分别为7.1和4.8万亿,长江中游城市群常住人口达1.2亿,成渝城市群也接近1亿人,虽然人均效益仍与发达城市群相差较远,但其依然是国内产业转移的主要承接地,也是带动整个中西部崛起的核心,未来增长空间较大。


图:五大城市群经济规模梯度


珠三角城市发展最为均衡,长三角、长江中游城市群内部差距较小,京津冀城市间梯度差异较大,成渝仍处于中心城市独大阶段。从城市群GDP经验数据来看,第一大城市GDP/第K大城市GDP=K是普遍的发展规律,珠三角城市基本符合这一规律,城市群内部城市梯度均衡;长三角与长江中游作为跨区域城市群,内部形成多个都市圈,多中心的结构使资源相对分散,其中,长三角城市群内多个中心城市实力均突出,城市群内竞争激烈;而京津冀这一规律在第5大城市沧州开始被打破,达到7,城市间的巨大差距也意味着后发城市具备较大增长空间;成渝城市群在第3大城市绵阳这一比例已接近10,表明成渝仍以重庆和成都两大核心城市为主,城市群框架尚未形成。


图:2010-2015年五大城市群常住人口增量及增幅

(单位:万人)

从人口增量来看,京津冀城市群受益于北京、天津两大城市人口的快速增长,五年常住人口增加近700万,人口凝聚力居首;珠三角城市虽然面临制造业向内陆转移的压力,但2015年人口规模相对2010年仍增长4.6%,人口吸引力突出。


图:2010-2015年各城市群内人口增长主要城市占比


京津冀、珠三角、成渝都是双核驱动的城市群,城市群内两大核心城市人口增量占比均超过整个城市群的六成。

京津冀已经逐渐脱离了北京一城独大的局面。从统计数据看,2010-2015年天津人口增量已经超过北京,成为城市群内人口增长最多的城市,一方面源于北京开始进入外溢效应主导的阶段,叠加政府对人口增长严格管控下,北京人口增长放缓,而天津尚处城市扩张期,核心地位不断强化,人口仍在不断流入。深圳和广州仍是珠三角人口流入最多的两个城市。成渝城市群的人口增量也几乎被重庆和成都瓜分,两市人口增量几乎占到整个城市群的八成,表明无论是沿海地区的人口回流,还是对周边人口的吸引,重庆和成都无疑成为西南区域首选,这也是城市群发展不可避免的强核阶段。


长三角和长江中游城市群属于跨区域城市群,多核心发展是其重要的特征。

长三角是我国发展最成熟的城市群,除上海外,杭州、南京等也发展成为区域核心,各个城市人口增量占比相对均衡,值得一提的是,合肥的人口增量占比位列城市群内第二,对人口的吸引力开始明显提升。长江中游城市群跨越湖北、湖南、江西三省,省会城市武汉、长沙、南昌中心城市的地位十分突出,人口增长在城市群内排位前三,但显然武汉的人口吸引力要远高于长沙、南昌。未来一段时间内长江中游预计还将持续强核模式发展,中心城市的地位将进一步加强。


城市群发展

渐次推进

国内目前仅长三角及珠三角城市群形成大面积高亮度区域,城市群形态形成。

虽然我们认为长三角、珠三角、京津冀、长江中游以及成渝这五大城市群是未来中国最具发展潜力的地区,但不可否认的是,城市群的发展是渐次推进的,显然这五大城市群也处于不同的发展阶段之中,判断城市群所属的发展阶段有助于我们发现城市规律、把握城市机会。核心城市产生辐射和外溢是城市群形成过程中的重要特征,只有核心城市经济体量达到一定程度,才能出现外溢效应,目前国内仅北上广深4个一线城市GDP达到2万亿规模,开始辐射周边。


由早期的点点星光到现在的绵绵之带,印证了中国城市发展路径和城市群的形成过程。由NOAA发布的1998-2013年夜间灯光变化显示,2000年以前中国城市亮灯率低,大片地区未点亮,可观测到的亮点仅包含北京、上海等少数城市。2003年前后,可以观测到中国亮灯区域明显扩大,长三角地区、珠三角地区亮灯城市密集,星光闪耀。之后,沿海城市、内陆省会城市、中小城市依次点亮,亮灯率明显高于前几年,亮灯区域的扩展与中国城市发展路径相吻合。至此,中国以胡焕庸线为分界,形成了明显的亮灯区和非亮灯区,灯光格局也印证了中国城市群正在悄然形成。

从NOAA最新的夜灯图中,我们可以看到目前仅长三角、珠三角城市群形成大面积亮度较高区域,表明长、珠三角城市群相对成熟,形成了城市群应有的城市层次与结构;京津冀城市群中北京、天津亮度显著高于河北,更多地区仅核心城市亮度较高,如长江中游城市群的武汉;成渝城市群的成都、重庆;中原城市群的郑州;海西城市群的福州、厦门;关中城市群的西安等。这也表明,这些区域尚处在发展初期,核心城市虹吸效应远大于外溢效应,尚未形成区域间的联动发展。


附:市场容量与增值潜能

两大维度评选潜力城市

在总结过去多年研究经验的基础上,结合目前房地产市场呈现的新特点,从城市投资的角度对方法体系进行了重新梳理和完善,以期更好的判断城市房地产市场投资吸引力。我们将评价体系所涉及的多类型数据进行系统化整合,构建形成2大维度、10大方面,近40项具体指标的“城市房地产开发投资吸引力评价模型”,对全国297个地级以上城市进行投资吸引力评价,并从城市群视角对中国最具潜力的五大主要城市群进行深入研究。

无论是从灯光图还是经济数据看,中国城市群之间的发展阶段、特征、驱动因素都有着明显差异。

AlphaGo 与柯洁华山论剑,人工智能一手遮天指日可待? 2017-06-07 14:44:54

AlphaGo 与柯洁华山论剑,人工智能一手遮天指日可待?

如今,人工智能的劲风势不可挡,甚至在政府报告上都划为重点。回顾2016年人工智能界的顶级盛事,人机围棋大战绝对榜上有名。面对人类棋手的失利,机器人 AlphaGo 乘胜追击、再下战书,挑战围棋顶级选手柯洁的消息一夜间走进世界的聚光灯下。然而懒人族表示:机器人都玩转围棋了!做家务可比下围棋简单多了,你们怎么还没造出一款能解放人类的全能家务机器人呢?


其实,人工智能的发展还要打败很多大小怪兽。即便是战胜了人类围棋高手的AlphaGo目前也仅具备弱人工智能水平!虽然科幻电影里被机器人接管的世界距离我们还有些遥远,但科研人员们正在努力“打怪升级”,争取让能为人类提供服务的机器人早日来到我们身边。


假如你说:“机器人,把桌上的苹果拿去洗洗,给大家吃吧!”为了听懂并服从这个命令,机器人到底要具备哪些本领呢? 

首先,机器人要理解这句话的含义。这就涉及到语音识别和自然语言处理两个研究领域。语言识别,就是把机器人听到的声波转成文字。自然语言处理,就是把一句按人类习惯说的话,解析成计算机能理解的信息。这一过程并不容易——Amazon近期发布的智能音箱Echo,重点攻关了远距离以及有噪音情况下的语音识别这一难题,但也只能进行有限的对话,更不用说像人类一样理解对话中复杂的情境和上下文了。


假设机器人已经正确识别出这句话。接下来的难题是:什么叫“桌子”?“苹果”是什么?什么叫“洗洗”?谁是“大家”?什么叫“吃”?这些都属于人类知识库里的常识问题。 人和人的沟通大量依赖常识,而这些都是机器不具备的。这种常识的学习对机器人而言是挑战,因为这些知识既无法预测,也无法泛化,更无法预先植入。机器人必须具备某种持续的自主学习能力,才能推理出用户的命令究竟是什么意思。 


自然语言处理过程中的上下文问题,个人常识的搜集、表达和存储,以及如何利用这些常识实现人机自然交流——这些都是英特尔中国研究院的小伙伴们目前正在努力研究的课题。其中最大的挑战在于发现信息之间的相关性,并在适当时机,激活最可能相关的信息,为人机交流补足上下文。相信不久后就有更会聊天的机器人来陪伴你啦!


假设机器人能正确识别出桌子和苹果,下一步就是找到苹果。这就涉及到计算机视觉难题——就是让计算机长出一双人类的眼睛,能分辨出人可以看到的景象,提取出人能提取的信息。假设机器人能够完美捕捉三维信息,接下来就是如何理解“看到”的图像。 

AlphaGo 与柯洁华山论剑,人工智能一手遮天指日可待?

人类轻松识别出来图中是“几个苹果放在桌子上”

AlphaGo 与柯洁华山论剑,人工智能一手遮天指日可待?

对计算机来说,“几个苹果在桌子上”的画面只是很多0或1的数字流

现在需要回答:这些0或1到底代表什么?计算机用像素来代表一张图片, 每个像素都有一组数据代表该像素的颜色和光照信息,可以用下面的数学表达式来代表计算机图像识别的工作原理: 

I=P(O,W)

其中I表示图像,O表示包含多个不同类别的物体集合,W表示影响因素


一张图像首先包含多个不同类别的物体集合。同一类的物体本身就存在差异,物体自身也是五颜六色。即使是同一个物体在图像中的像素值也会受到很多因素的影响,包括光照强度和方向、相对摄像机的位置和姿态、物体之间的遮挡关系、物体自身的运动、摄像机参数等。在数学分析中,从图像(I)中感知物体集合(O)就必须同时恢复这些相关参数(W)。这是一个高维度数学问题,而答案的不唯一极大地增加了计算难度。与之相比,“棋圣”AlphaGo需要求解的未知参数仅仅是下一步棋子的坐标,参数维度大大降低。这是机器人下围棋比做家务更为简单的原因之一。


现在我们的机器人已经成功拿到了苹果,接下来它该怎样走到人的正面并送出苹果呢?“送苹果”涉及很多技术,比“找苹果”更加复杂。机器人要有房间地图,要能定位自己的坐标,还要判别静态和动态障碍物,之后才能规划运动路径,搜索所有的区域。在搜索过程中利用“眼睛”找到大家——各种姿态、各种朝向、各种运动状态的人。然后运动到每个人面前,向大家打招呼,把苹果递过去。让机器人顺利完成“找人”一直是英特尔的研究重点。目前,我们的机器人已经可以在实验环境中找到人,并识别出人的正面、背面和侧面。研究员们正在努力让机器人变得更聪明,更稳定,在帮人类“偷懒”的道路上走得更远。


苹果终于被送出去了,机器人总算松了一口气。别忙,它还有一件重要的任务——学习记忆。通过这次经历学到了什么?当然要牢记学习成果,犯过的错可不能重蹈覆辙。那么,机器人应该如何记忆呢?

AlphaGo 与柯洁华山论剑,人工智能一手遮天指日可待?

记忆分类

记忆是人类的高级行为,记忆的内容某种程度上相当于形色各异的知识。将观察所得转换为知识还有很长的路要走,因此在机器人身上模拟人类记忆难度极大。受限于现阶段传感器的技术水平、人类行为和动机的理解局限,以及对人类大脑工作原理的未知,让机器人具备有效的记忆功能充满了挑战。我们目前正在重点探索如何为机器人构建可学习、可推理、可搜索的记忆


机器人领域的研究任重道远,但又潜力无限,科研人员们正在上下求索。也许在未来的某一天,你我身边也会出现像电影里大白那样的智能型知心好伙伴。

噪声预测的无监督学习——通往信息最大化的未来 2017-06-07 14:42:55

Bojanowski and Joulin在论文中介绍了一种叫做“噪声目标法”(NAT)的方法。它通过将数据映射到随机采样的噪声向量,进行表征学习。这个方法看似简单,实际上功能非常强大,甚至还有超乎常理。

在这篇文章中,我把这个算法重新解读为“一个信息最大化的工具”。如果你愿意从我的这个角度来考虑这个算法,你就不难理解“噪声目标法”了。



本文内容摘要

1、本文从informax(信息最大化)算法入手,解释如何最大程度地保留输入数据信息,进而学习最优的密集表征。

2、把表征限制在一个单位范围内,对于informax算法框架十分有利,本文阐明了其中的原因。

3、一个分布均匀的确定性表征是否存在,以及informax算法标准是否达到了最大化,问题的答案非常明显。因此,如果我们相信这样的解决方法是确实存在的,那么我们完全可以直接寻找接近均匀分布的确定性映射。

4、“噪声目标法”(NAT)就是寻找一个在单位范围的边缘是均匀分布的确定性映射。具体来说就是,从统一样本中,尽量缩小实际操作的“地球移动距离”(EMD)。

5、Bojanowski和Joulin在他们的论文中提到了随机使用“匈牙利算法”来更新分配矩阵,在本文的最后,我也对此作了简单的阐述。 



通过信息最大化进行表征的学习

假设我们现在将要学习来自于一些 pX分布的数据 xn的一个密集表征。通常情况下,表征可以用一个随机变量zn表示,这个变量作经过了一些参数分布条件噪声预测的无监督学习——通往信息最大化的未来的采样。

xn∼pX

zn∼pZ|X=xn,θ

在变化的自编码器中,这个参数分布条件噪声预测的无监督学习——通往信息最大化的未来会被称为“编码器”或者是“识别模型”,又或者是“摊销变化后端”。不过重要的是,我们现在是跟“编码器”进行一对一工作,无需明确地指示出一个生成的分布噪声预测的无监督学习——通往信息最大化的未来。

“信息最大化”原则的意思是一个好的表征的信息熵是密集分布的,同时还要保留输入X中尽可能多的信息。这一目标可以正式表达为:

噪声预测的无监督学习——通往信息最大化的未来

噪声预测的无监督学习——通往信息最大化的未来表示“互信息”,噪声预测的无监督学习——通往信息最大化的未来表示“申农熵”。

我还引入了下面的符号分布:



噪声预测的无监督学习——通往信息最大化的未来

在实际中,这些“最优化问题”有可能是以各种不恰当的方式呈现的,所以这些问题本身也是存在问题的。

1、一般情况下,边缘的熵是很难估测的。我们需要采取一种比较智能的方式来限制噪声预测的无监督学习——通往信息最大化的未来,不需要对熵进行实际的计算。

2、如果一个表征具有确定性和可逆性,那么“互信息”在连续的空间内就是无限循环的,而这些最优化问题就会变得毫无意义。所以,为了使这些最优化问题变得有意义,我们需要确保那些病态的可逆行为永远都不会出现。

为了解决以上问题,我们可以作以下的改变:

1、首先,运用勒贝格有限测度,把Z的定义域限制在的噪声预测的无监督学习——通往信息最大化的未来子集范围内,这样一来,微分熵噪声预测的无监督学习——通往信息最大化的未来在这个定义域内就会始终受到均匀分布的熵的约束。为了与论文内容一致,我们可以把表征定义域限制在欧几里得单位噪声预测的无监督学习——通往信息最大化的未来的范围内。

2、第二,尝试把噪声预测的无监督学习——通往信息最大化的未来和多噪声表征噪声预测的无监督学习——通往信息最大化的未来(噪声预测的无监督学习——通往信息最大化的未来表示噪声)之间的信息最大化。我将假定噪声预测的无监督学习——通往信息最大化的未来遵循了一种球状的分布规则,而这个添加的噪声在实际操作中,从任何给定的范围噪声预测的无监督学习——通往信息最大化的未来内,设定了一个噪声预测的无监督学习——通往信息最大化的未来预测的上限(或者是设定了表征可逆性的上限);从而也框定了“互信息”,把它限制在一个有限值内。那么我们的最优化问题就变成了:

噪声预测的无监督学习——通往信息最大化的未来

这个损失函数生成了一种直观的感受:你可能正以一种非常随机的方式,把你的输入Xn在单位范围内映射为Zn,但是这样做,原始数据点Xn就会很容易从Zn的噪声版——噪声预测的无监督学习——通往信息最大化的未来恢复。换句话来说,我们是在寻找一个在某种程度上能够抵挡加性噪声的表征。



确定和统一的表征

我们能很轻易地指出是否存在至少一个表征pZ|X;θ,这个表征具备以下两种特质:

第一,Zn是Xn的确定性函数;第二,噪声预测的无监督学习——通往信息最大化的未来是在单位范围内的均匀分布。

如果具备了以上特征,那么这个噪声预测的无监督学习——通往信息最大化的未来就是信息最大化目标中的全局最优点。

但值得关注的是,这个确定性的表征也许并不是独一无二的,可能会存在很多很多好的表征,尤其是当噪声预测的无监督学习——通往信息最大化的未来时。



再看这样的案例:假设X是一个标准的多元高斯,表征Z是X的一个正常的正交投影。例如,针对一些正交转换A来说:

噪声预测的无监督学习——通往信息最大化的未来

Z在单位范围内将会具备均匀分布,而这也是一个确定性的映射。因此,Z是一个信息最大化的表征,它对任何同样正交映射A都十分有利。

所以,如果我们假设只存在至少一个确定的、统一Px的表征,那么寻找确定的、能够把数据映射为大致均匀分布的表征就意义非凡了。



这才是“噪声目标法”(NAT)的目的所在

为达到一个在表征空间里均匀的分布,NAT采用的方法是使“地球移动距离”(EMD)最小化。首先,我们根据已有的数据点,随机画了尽可能多的均匀分布,我们把这些均匀分布看作Cn。然后,我们试着把每个Cn与一个数据点配对,直到Cn和对应的表征噪声预测的无监督学习——通往信息最大化的未来之间的“均方距离”达到最小值。一旦配对成功,已配对的表征和噪声向量之间的“均方距离”就能被视为测量分布均匀性的度量单位。确实,这是对“瓦瑟斯坦距离”(Pz分布和均匀分布之间的距离)的一种经验性估测。

信息最大化的表征就一定是好的表征吗?



什么是一个好的表征?无监督的表征学习究竟是什么意思?对于InfoMax表征,你同样可以提出这样的问题:这是找到一个好表征的最佳指导原则吗?

还不够。对于新手,你可以以任意的方式转换你的表征,只要你的转换是可逆的,那么“互信息”就应该是相同的。所以你可以在可逆的条件下对你的表征做任何转换,无需考虑InfoMax的目标。因此,InfoMax标准不能单独找到你转换过的表征。

更有可能出现的是,我们在操作经验中所看到的那些成功案例都是ConvNets与InfoMax原则联合使用的结果。我们仅在ConvNet比较容易展示的表征中,对信息进行最大化操作。



本文总结

NAT的表征学习原则可以理解为寻找InfoMax表征,即最大化地保留了输入数据的信息的有限熵的表征。在“卷积神经网络范例”中也存在类似的信息最大化的解读,它根据数据点的噪声版本来估测这个数据点的指数。在开始的时候,你肯定会认为这些算法很奇怪,甚至是超乎常理的,但是如果我们把这些算法重新理解为信息最大化工具,我们就会对他们有所改观。反正至少我对他们是有了更深的认识和理解的。



特别内容:一些关于EMD随机版本的小

以这种文字的方式实施EMD度量的难处在于,你需要找到一个最优的分配方案,分配好两个实操经验上的分布和尺度噪声预测的无监督学习——通往信息最大化的未来。那么为了回避这个难题,作者提出了一个“最优分配矩阵”的任意更新升级,即所有的配对一次只进行一小批更新升级。

我并不指望这个“最优分配矩阵”能有多有用,但是值得一提的是,这一矩阵使这个算法很容易陷入局部的最小值。假设表征噪声预测的无监督学习——通往信息最大化的未来的参数是固定的,我们变化、更新的只是其中的分配。我们来看下面图形中的解读:


在这个2D的球状单位(圆圈)上的X1,X2,X3分别是三个数据点,这些数据点之间距离相等。是三个可能的噪声分配,三者之间也是距离相等。C1,C2,C3很明显,其中的最优分配就是把X1与C1配对,X2与C2配对,X3与C3配对。

假设,我们当前的映射是次优的,如图中蓝色箭头指示的;而且我们现在只能在尺寸2的minibatch上更新分配。在尺寸2的minibatch上,我们的分配只有两种可能性:第一,保持原来的分配不变;第二,把所有的点都互换,就像图中红色箭头指示的。在上图这个例子中,保持原来的分配(蓝色箭头)比互换所有的点(红色箭头)更可行。因此,minibatch的更新将会使minibatch算法陷入这个局部的最小值。

但是这并不意味着这个方法没有用。当噪声预测的无监督学习——通往信息最大化的未来也同时被更新了的情况下,这个方法确实能让算法摆脱这个局部最小值。其次,batch的尺寸越大,就约难找到这样的局部最小值,那么算法也就越不会陷入最小值。

我们可以转换一种思维方式,把这个任意的“匈牙利算法”的局部最小值看作是一个图表。每一个节点代表一个分配矩阵状态(一个分配排列),每一条边对应一个基于minibatch的有效更新。一个局部最小值就是一个节点,这个最小值节点与其周边的N!节点相比成本较低。

如果我们把原本大小为B的minibatch扩大到一个总样本的尺寸N,那么我们就会在图中得到一个N!节点,而每个节点都会超出额度,达到噪声预测的无监督学习——通往信息最大化的未来。那么任意两个节点连接的概率就是噪声预测的无监督学习——通往信息最大化的未来。Batch的B尺寸越大,我们这个图表就会变得越紧密,局部最小值也就不存在了。