Artificial Intelligence

The Myth of A Superhuman AI

I’ve heard that in the future computerized AIs will become so much smarter than us that they will take all our jobs and resources, and humans will go extinct. Is this true? That’s the most common question I get whenever I give a talk about AI. The questioners are earnest; their worry stems in part […]

Artificial Intelligence

6 areas of AI and machine learning to watch closely

Distilling a generally-accepted definition of what qualifies as artificial intelligence (AI) has become a revived topic of debate in recent times. Some have rebranded AI as “cognitive computing” or “machine intelligence”, while others incorrectly interchange AI with “machine learning”. This is in part because AI is not one technology. It is in fact a broad […]

Artificial Intelligence

一文学会用 Tensorflow 搭建神经网络

本文是学习这个视频课程系列的笔记,课程链接是 youtube 上的, 讲的很好,浅显易懂,入门首选, 而且在github有代码, 想看视频的也可以去他的优酷里的频道找。 Tensorflow 官网 神经网络是一种数学模型,是存在于计算机的神经系统,由大量的神经元相连接并进行计算,在外界信息的基础上,改变内部的结构,常用来对输入和输出间复杂的关系进行建模。 神经网络由大量的节点和之间的联系构成,负责传递信息和加工信息,神经元也可以通过训练而被强化。 这个图就是一个神经网络系统,它由很多层构成。输入层就是负责接收信息,比如说一只猫的图片。输出层就是计算机对这个输入信息的认知,它是不是猫。隐藏层就是对输入信息的加工处理。 神经网络是如何被训练的,首先它需要很多数据。比如他要判断一张图片是不是猫。就要输入上千万张的带有标签的猫猫狗狗的图片,然后再训练上千万次。 神经网络训练的结果有对的也有错的,如果是错误的结果,将被当做非常宝贵的经验,那么是如何从经验中学习的呢?就是对比正确答案和错误答案之间的区别,然后把这个区别反向的传递回去,对每个相应的神经元进行一点点的改变。那么下一次在训练的时候就可以用已经改进一点点的神经元去得到稍微准确一点的结果。 神经网络是如何训练的呢?每个神经元都有属于它的激活函数,用这些函数给计算机一个刺激行为。 在第一次给计算机看猫的图片的时候,只有部分的神经元被激活,被激活的神经元所传递的信息是对输出结果最有价值的信息。如果输出的结果被判定为是狗,也就是说是错误的了,那么就会修改神经元,一些容易被激活的神经元会变得迟钝,另外一些神经元会变得敏感。这样一次次的训练下去,所有神经元的参数都在被改变,它们变得对真正重要的信息更为敏感。 Tensorflow 是谷歌开发的深度学习系统,用它可以很快速地入门神经网络。 它可以做分类,也可以做拟合问题,就是要把这个模式给模拟出来。 这是一个基本的神经网络的结构,有输入层,隐藏层,和输出层。 每一层点开都有它相应的内容,函数和功能。 那我们要做的就是要建立一个这样的结构,然后把数据喂进去。 把数据放进去后它就可以自己运行,TensorFlow 翻译过来就是向量在里面飞。 这个动图的解释就是,在输入层输入数据,然后数据飞到隐藏层飞到输出层,用梯度下降处理,梯度下降会对几个参数进行更新和完善,更新后的参数再次跑到隐藏层去学习,这样一直循环直到结果收敛。 tensors_flowing.gif 今天一口气把整个系列都学完了,先来一段完整的代码,然后解释重要的知识点! 1. 搭建神经网络基本流程 定义添加神经层的函数 1.训练的数据 2.定义节点准备接收数据 3.定义神经层:隐藏层和预测层 4.定义 loss 表达式 5.选择 optimizer 使 loss 达到最小 然后对所有变量进行初始化,通过 sess.run optimizer,迭代 1000 次进行学习: import tensorflow as tf import numpy as np # 添加层 […]

Artificial Intelligence

一个隐马尔科夫模型的应用实例:中文分词

什么问题用HMM解决 现实生活中有这样一类随机现象,在已知现在情况的条件下,未来时刻的情况只与现在有关,而与遥远的过去并无直接关系。 比如天气预测,如果我们知道“晴天,多云,雨天”之间的转换概率,那么如果今天是晴天,我们就可以推断出明天是各种天气的概率,接着后天的天气可以由明天的进行计算。这类问题可以用 Markov 模型来描述。 markov 进一步,如果我们并不知道今天的天气属于什么状况,我们只知道今明后三天的水藻的干燥湿润状态,因为水藻的状态和天气有关,我们想要通过水藻来推测这三天的真正的天气会是什么,这个时候就用 Hidden Markov 模型来描述。 hmm HMM 模型的本质是从观察的参数中获取隐含的参数信息,并且前后之间的特征会存在部分的依赖影响。 我们从如何进行中文分词的角度来理解HMM 根据可观察状态的序列找到一个最可能的隐藏状态序列 中文分词,就是给一个汉语句子作为输入,以“BEMS”组成的序列串作为输出,然后再进行切词,进而得到输入句子的划分。其中,B代表该字是词语中的起始字,M代表是词语中的中间字,E代表是词语中的结束字,S则代表是单字成词。 例如:给个句子 小明硕士毕业于中国科学院计算所 得到BEMS组成的序列为 BEBEBMEBEBMEBES 因为句尾只可能是E或者S,所以得到切词方式为 BE/BE/BME/BE/BME/BE/S 进而得到中文句子的切词方式为 小明/硕士/毕业于/中国/科学院/计算/所 这是个HMM问题,因为你想要得到的是每个字的位置,但是看到的只是这些汉字,需要通过汉字来推出每个字在词语中的位置,并且每个字属于什么状态还和它之前的字有关。 此时,我们需要根据可观察状态的序列找到一个最可能的隐藏状态序列。 五元组,三类问题,两个假设 五元组 通过上面的例子,我们可以知道 HMM 有以下5个要素。 观测序列-O:小明硕士毕业于中国科学院计算所 状态序列-S:BEBEBMEBEBMEBES 初始状态概率向量-π:句子的第一个字属于{B,E,M,S}这四种状态的概率 状态转移概率矩阵-A:如果前一个字位置是B,那么后一个字位置为BEMS的概率各是多少 观测概率矩阵-B:在状态B的条件下,观察值为耀的概率,取对数后是-10.460 备注:示例数值是对概率值取对数之后的结果,为了将概率相乘的计算变成对数相加,其中-3.14e+100作为负无穷,也就是对应的概率值是0 三类问题 当通过五元组中某些已知条件来求未知时,就得到HMM的三类问题: 似然度问题:参数(O,π,A,B)已知的情况下,求(π,A,B)下观测序列O出现的概率。(Forward-backward算法) 解码问题:参数(O,π,A,B)已知的情况下,求解状态值序列S。(viterbi算法) 学习问题:参数(O)已知的情况下,求解(π,A,B)。(Baum-Welch算法) 中文分词这个例子属于第二个问题,即解码问题。 我们希望找到 s_1,s_2,s_3,… 使 P (s_1,s_2,s_3,…|o_1,o_2,o_3….) 达到最大。 意思是,当我们观测到语音信号 o_1,o_2,o_3,… 时,我们要根据这组信号推测出发送的句子 s_1,s_2,s_3,….,显然,我们应该在所有可能的句子中找最有可能性的一个。 两个假设 利用贝叶斯公式得到: […]

Artificial Intelligence

从特斯拉到计算机视觉之「图像语义分割」

说起特斯拉,大家可能立马会想到今年5月份发生在特斯拉Model S自动驾驶上的一宗夺命车祸。初步的调查表明,在强烈的日照条件下,驾驶员和自动驾驶系统都未能注意到牵引式挂车的白色车身,因此未能及时启动刹车系统。而由于牵引式挂车正在横穿公路,且车身较高,这一特殊情况导致Model S从挂车底部通过时,其前挡风玻璃与挂车底部发生撞击,导致驾驶员不幸遇难。 无独有偶,8月8日美国密苏里州的一名男子、特斯拉Model X车主约书亚·尼利(Joshua Neally)在上班途中突发肺栓塞。在Model X的Autopilot自动驾驶功能的帮助下,他安全抵达了医院。这“一抑一扬”着实让人回味无穷,略有些“败也萧何,成也萧何”之意。 好奇的读者一定会有疑问:这“一成一败”背后的原理到底是什么?是自动驾驶系统中的哪个部分发生了失误而造成车祸?又是哪部分技术支撑了自动驾驶过程呢? 今天,我们就来谈谈自动驾驶系统中的一项重要核心技术——图像语义分割(Semantic image segmentation)。图像语义分割作为计算机视觉(Computer vision)中图像理解(Image understanding)的重要一环,不仅在工业界的需求日益凸显,同时语义分割也是当下学术界的研究热点之一。 什么是图像语义分割? 图像语义分割可以说是图像理解的基石性技术,在自动驾驶系统(具体为街景识别与理解)、无人机应用(着陆点判断)以及穿戴式设备应用中举足轻重。 我们都知道,图像是由许多像素(Pixel)组成,而「语义分割」顾名思义就是将像素按照图像中表达语义含义的不同进行分组(Grouping)/分割(Segmentation)。下图取自图像分割领域的标准数据集之一PASCAL VOC。其中,左图为原始图像,右图为分割任务的真实标记(Ground truth):红色区域表示语义为“person”的图像像素区域,蓝绿色代表“motorbike”语义区域,黑色表示“background”,白色(边)则表示未标记区域。显然,在图像语义分割任务中,其输入为一张的三通道彩色图像,输出则是对应的一个矩阵,矩阵的每一个元素表明了原图中对应位置像素所表示的语义类别(Semantic label)。因此,图像语义分割也称为“图像语义标注”(Image semantic labeling)、“像素语义标注”(Semantic pixel labeling)或“像素语义分组”(Semantic pixel grouping)。从上图和题图中,大家可以明显看出图像语义分割任务的难点便在于这“语义”二字。在真实图像中,表达某一语义的同一物体常由不同部件组成(如,building,motorbike,person等),同时这些部分往往有着不同的颜色、纹理甚至亮度(如building),这给图像语义的精确分割带来了困难和挑战。 前DL时代的语义分割 从最简单的像素级别“阈值法”(Thresholding methods)、基于像素聚类的分割方法(Clustering-based segmentation methods)到“图划分”的分割方法(Graph partitioning segmentation methods),在深度学习(Deep learning, DL)“一统江湖”之前,图像语义分割方面的工作可谓“百花齐放”。在此,我们仅以“Normalized cut” [1]和“Grab cut” [2]这两个基于图划分的经典分割方法为例,介绍一下前DL时代语义分割方面的研究。 Normalized cut (N-cut)方法是基于图划分(Graph partitioning)的语义分割方法中最著名的方法之一,于2000年Jianbo Shi和Jitendra Malik发表于相关领域顶级期刊TPAMI。通常,传统基于图划分的语义分割方法都是将图像抽象为图(Graph)的形式(为图节点,为图的边),然后借助图理论(Graph theory)中的理论和算法进行图像的语义分割。常用的方法为经典的最小割算法(Min-cut algorithm)。不过,在边的权重计算时,经典min-cut算法只考虑了局部信息。如下图所示,以二分图为例(将分为不相交的,两部分),若只考虑局部信息,那么分离出一个点显然是一个min-cut,因此图划分的结果便是类似或这样离群点,而从全局来看,实际想分成的组却是左右两大部分。 针对这一情形,N-cut则提出了一种考虑全局信息的方法来进行图划分(Graph partitioning),即,将两个分割部分,与全图节点的连接权重(和)考虑进去:. 如此一来,在离群点划分中,中的某一项会接近1,而这样的图划分显然不能使得是一个较小的值,故达到考虑全局信息而摒弃划分离群点的目的。这样的操作类似于机器学习中特征的规范化(Normalization)操作,故称为Normalized cut。N-cut不仅可以处理二类语义分割,而且将二分图扩展为路(-way)图划分即可完成多语义的图像语义分割,如下图例。 Grab cut是微软剑桥研究院于2004年提出的著名交互式图像语义分割方法。与N-cut一样,grab cut同样也是基于图划分,不过grab cut是其改进版本,可以看作迭代式的语义分割算法。Grab […]

Artificial Intelligence Publication & Project

Learning AI if You Suck at Math

If you’re like me, you’re fascinated with AI. Maybe you’d love to dig deeper and get an image recognition program running in TensorFlow or Theano? Perhaps you’re a kick-ass developer or systems architect and you know computers incredibly well but there’s just one little problem: You suck at math. That’s all right! I share your […]

Artificial Intelligence

神经网络浅讲:从神经元到深度学习

  神经网络是一门重要的机器学习技术。它是目前最为火热的研究方向–深度学习的基础。学习神经网络不仅可以让你掌握一门强大的机器学习方法,同时也可以更好地帮助你理解深度学习技术。   本文以一种简单的,循序的方式讲解神经网络。适合对神经网络了解不多的同学。本文对阅读没有一定的前提要求,但是懂一些机器学习基础会更好地帮助理解本文。   神经网络是一种模拟人脑的神经网络以期能够实现类人工智能的机器学习技术。人脑中的神经网络是一个非常复杂的组织。成人的大脑中估计有1000亿个神经元之多。 图1 人脑神经网络   那么机器学习中的神经网络是如何实现这种模拟的,并且达到一个惊人的良好效果的?通过本文,你可以了解到这些问题的答案,同时还能知道神经网络的历史,以及如何较好地学习它。 由于本文较长,为方便读者,以下是本文的目录: 一.前言 二.神经元 三.单层神经网络(感知器) 四.两层神经网络(多层感知器) 五.多层神经网络(深度学习) 六.回顾 七.展望 八.总结 九.后记 十.备注   一. 前言   让我们来看一个经典的神经网络。这是一个包含三个层次的神经网络。红色的是输入层,绿色的是输出层,紫色的是中间层(也叫隐藏层)。输入层有3个输入单元,隐藏层有4个单元,输出层有2个单元。后文中,我们统一使用这种颜色来表达神经网络的结构。 图2 神经网络结构图     在开始介绍前,有一些知识可以先记在心里: 设计一个神经网络时,输入层与输出层的节点数往往是固定的,中间层则可以自由指定; 神经网络结构图中的拓扑与箭头代表着预测过程时数据的流向,跟训练时的数据流有一定的区别; 结构图里的关键不是圆圈(代表“神经元”),而是连接线(代表“神经元”之间的连接)。每个连接线对应一个不同的权重(其值称为权值),这是需要训练得到的。 除了从左到右的形式表达的结构图,还有一种常见的表达形式是从下到上来表示一个神经网络。这时候,输入层在图的最下方。输出层则在图的最上方,如下图: 图3 从下到上的神经网络结构图   从左到右的表达形式以Andrew Ng和LeCun的文献使用较多,Caffe里使用的则是从下到上的表达。在本文中使用Andrew Ng代表的从左到右的表达形式。   下面从简单的神经元开始说起,一步一步介绍神经网络复杂结构的形成。 二. 神经元 1.引子  对于神经元的研究由来已久,1904年生物学家就已经知晓了神经元的组成结构。 一个神经元通常具有多个树突,主要用来接受传入信息;而轴突只有一条,轴突尾端有许多轴突末梢可以给其他多个神经元传递信息。轴突末梢跟其他神经元的树突产生连接,从而传递信号。这个连接的位置在生物学上叫做“突触”。 人脑中的神经元形状可以用下图做简单的说明: 图4 神经元   1943年,心理学家McCulloch和数学家Pitts参考了生物神经元的结构,发表了抽象的神经元模型MP。在下文中,我们会具体介绍神经元模型。     图5 Warren McCulloch(左)和 Walter Pitts(右)   2.结构 神经元模型是一个包含输入,输出与计算功能的模型。输入可以类比为神经元的树突,而输出可以类比为神经元的轴突,计算则可以类比为细胞核。 下图是一个典型的神经元模型:包含有3个输入,1个输出,以及2个计算功能。 注意中间的箭头线。这些线称为“连接”。每个上有一个“权值”。 图6 神经元模型   […]

Mathematics

WOM 编码与一次写入型存储器的重复使用

计算机历史上,很多存储器的写入操作都是一次性的。 Wikipedia 的 write once read many 词条里提到了两个最经典的例子,一个是大家熟悉的 CD-R 和 DVD-R ,另一个则是更早的打孔卡片和打孔纸带。在介绍后者时,文章里说:“虽然第一次打孔之后,没有孔的区域还能继续打孔,但这么做几乎没有任何实际用处。”因此,打孔卡片和打孔纸带通常也被看成是只能写入一次的存储设备。 事实上真的是这样吗? 1982 年, Ronald Rivest 和 Adi Shamir 发表了一篇题为《怎样重复使用一次写入型存储器》(How to Reuse a “Write-Once” Memory)的论文,提出了一个很有意思的想法。大家有觉得 Ronald Rivest 和 Adi Shamir 这两个人名都很眼熟吗?没错,这两个人之前曾经和 Leonard Adleman 一道,共同建立了 RSA 公钥加密系统。其中, Ronald Rivest 就是 RSA 中的那个 R , Adi Shamir 就是 RSA 中的那个 S 。 在这篇论文的开头, Ronald Rivest 和 […]

Mathematics

怎样把一个立方体分成 54 个小立方体?

大家或许都听说过一个与正方形剖分相关的非常经典的问题:对于哪些正整数 n ,我们可以把一个正方形分割成 n 个小正方形(允许出现大小相同的小正方形)?答案是,除了 n = 2, 3, 5 以外,对于其他所有的 n ,把一个正方形分割成 n 个小正方形都是有可能的。对于 n = 1, 4, 6, 7, 8 的情况,分割方案如下图所示: 对于更大的 n 呢?注意到,每次用横竖两条线把一个小正方形分成四个更小的小正方形后,我们都会让这个图形里的正方形数目增加 3 个。因此,我们只需要在 n = 6 的方案上增加两笔,就能得到一个 n = 9 的方案;只需要在 n = 7 的方案上增加两笔,就能得到一个 n = 10 的方案;只需要在 n = 8 的方案上增加两笔,就能得到一个 n = 11 的方案;只需要在 n = 9 […]

Mathematics

Keller 猜想与 12 维空间中的神构造

在各种令人惊讶的数学事实当中,我最喜欢的类型之一便是,某个数学命题在二维空间、三维空间甚至四维空间当中都是成立的,但偏偏到了某个维度时,命题就不成立了。 Keller 猜想就是一个这样的例子。 同样大小的正方形平铺整个平面(比如像下图那样),则一定存在某些边与边完全贴合的相邻正方形。 类似地,同样大小的正方体平铺整个空间(比如像下图那样),则一定存在某些面与面完全贴合的相邻正方体。 1930 年, Ott-Heinrich Keller 猜测,或许这一点对于更高维度的空间都是成立的。也就是说, Ott-Heinrich Keller 猜测,对于任意正整数 n ≥ 2 都有,同样大小的 n 维立方体平铺整个 n 维空间,则一定有两个面与面完全贴合的相邻 n 维立方体。这就是著名的 Keller 猜想。 1940 年, Oskar Perron 证明了,当 n = 2, 3, 4, 5, 6 时, Keller 猜想确实是正确的。一切似乎都在正轨上。然而,到了 1992 年的时候,事情出现了转折: Jeffrey Lagarias 和 Peter Shor 构造了一个 n = 12 时的反例,从而推翻了 Keller 猜想。让我们来看一看 Lagarias […]

Mathematics

用三段 140 字符以内的代码生成一张 1024×1024 的图片

Kyle McCormick 在 StackExchange 上发起了一个叫做 Tweetable Mathematical Art 的比赛,参赛者需要用三条推这么长的代码来生成一张图片。具体地说,参赛者需要用 C++ 语言编写 RD 、 GR 、 BL 三个函数,每个函数都不能超过 140 个字符。每个函数都会接到 i 和 j 两个整型参数(0 ≤ i, j ≤ 1023),然后需要返回一个 0 到 255 之间的整数,表示位于 (i, j) 的像素点的颜色值。举个例子,如果 RD(0, 0) 和 GR(0, 0) 返回的都是 0 ,但 BL(0, 0) 返回的是 255 ,那么图像的最左上角那个像素就是蓝色。参赛者编写的代码会被插进下面这段程序当中(我做了一些细微的改动),最终会生成一个大小为 1024×1024 的图片。 // NOTE: compile with g++ […]

Mathematics

高度对称的多面体和它们的对偶多面体

正四面体、正方体、正八面体、正十二面体、正二十面体,这是古希腊人就发现的五种正多面体,它们拥有最高标准的对称性。这五种正多面体又叫做 Platonic 体,它们在古希腊的哲学观念中占据着至关重要的地位。 Leonhard Euler 发现,多面体的顶点数 V 、棱数 E 和面数 F 一定满足公式 V – E + F = 2 ,这叫做 Euler 多面体公式。利用这个公式,我们可以证明正多面体只有五种。假设一个正多面体的每个面都是正 p 边形,那么所有 F 个面一共就有 p · F 条边;每两条边拼在一起形成了一条棱,因而总的棱数就是 E = p · F / 2 。反过来, F 就应该等于 2 · E / p 。不妨再假设每个顶点处都汇集了 q 条棱,那么总的棱数似乎应有 q · V 个;但这样计算的话,每条棱都被重复算了两次,因而总的棱数实际上应该是 E = q […]

Mathematics

捡石子游戏、 Wythoff 数表和一切的 Fibonacci 数列

让我们来玩一个游戏。把某个国际象棋棋子放在棋盘上,两人遵循棋子的走法,轮流移动棋子,但只能将棋子往左方、下方或者左下方移动。谁先将棋子移动到棋盘的最左下角,谁就获胜。如果把棋子放在如图所示的位置,那么你愿意先走还是后走?显然,答案与我们放的是什么棋子有关。 这个游戏对于兵来说是没有意义的。在如图所示的地方放马或者放象,不管怎样都无法把它移动到棋盘的最左下角,所以我们也就不分析了。因此,我们只需要研究王、后、车三种情况。 在国际象棋中,车每次可以横着或竖着走任意多格。在上述游戏中,受到规则的限制,车每次只能向左或者向下走任意多格。如果问题中的棋子是车,答案就非常简单了:你应该选择先走。你应该直接把车移到棋盘对角线上的位置(如左图所示),然后不管对方怎么走,你都把它移回到棋盘的对角线上。这样,你就能保证必胜了。 在国际象棋中,王每次可以横着、竖着或者斜着走一格。在上述游戏中,受到规则的限制,王每次只能向左、向下或者向左下方走一格。如果问题中的棋子是王,分析出问题的答案也不算太难:你应该选择先走。你应该直接把王移到棋盘的“奇格”里(如右图所示),然后不管对方怎么走,你都可以把它再次移到某个“奇格”里。这样,你就能保证必胜了。 在国际象棋中,皇后每次可以横着、竖着或者斜着走任意多格。在上述游戏中,受到规则的限制,皇后每次只能向左、向下或者向左下方走任意多格。如果问题中的棋子是皇后,那么你应该选择先走还是后走呢?这次,问题就没那么简单了。 这个“挪动皇后”的游戏是由 Rufus Isaacs 在 1960 年左右提出来的。给定皇后在棋盘上的初始位置,如何判断出谁有必胜策略呢? Isaacs 给出了一个分析方法。 首先,第一行上的所有位置,第一列上的所有位置,以及对角线上的所有位置,都能一步直接走到棋盘的最左下角。我们可以从最左下角的位置出发,画出三条射线,把这些位置全都划掉。如果皇后位于被划掉的位置上,那么先走的人就会获胜。此时,棋盘上出现了两个死角。如果皇后在这两个地方,先走的人不得不把皇后挪到刚才被划掉的位置上,因而后走的人就必胜了。因而,从这两个地方出发,画出三条射线,被划掉的位置又是先走的人就会获胜的位置,先走的人只需要把皇后挪到这两个地方即可。此时,棋盘上又会出现两个新的死角,它们又是后走的人必胜的位置……不断这样递推下去,我们就能分析出,皇后在哪些地方时先走的人必胜,皇后在哪些地方时后走的人必胜。之前我们曾问,当皇后位于标有 × 的格子时你应该选择先走还是后走,现在我们就知道答案了:你应该后走才对。 那么,在“挪动皇后”的游戏中,哪些位置是后走的人必胜的位置呢? 画出更大的棋盘,将刚才的操作再多重复几次后,我们看见了一个非常明显的规律:这些位置大致形成了两条直线。再仔细观察,你会发现,每行每列里恰好有一个这样的位置。有没有什么公式不用递推就能找出这些位置呢?它们为什么会形成这么两条直线呢?为什么每行每列里有且仅有一个这样的位置呢?看来,这里面还有很深的水。   令 Isaacs 万万没有想到的是,这个游戏虽然是他发明的,但由此引申的问题却已经被前人解决了。 1907 年,荷兰数学家 Willem Abraham Wythoff 提出了一个双人对弈游戏,后来人们把它叫作 Wythoff 游戏。游戏规则是这样的。地上有两堆石子,其中一堆有 m 个石子,另外一堆有 n 个石子。两名玩家轮流取走石子,规定每次要么从其中一堆石子中取走任意多个石子,要么从两堆石子中取走相同数量的石子。等到谁没有石子可取了,谁就输了。也就是说,取到最后一个石子的玩家获胜。 Martin Gardner 认为, Wythoff 本人甚至也不是这个游戏最早的发明者——其实中国很早就有了这个游戏,人们把它叫作“捡石子”。 容易看出, Wythoff 游戏和“挪动皇后”是完全等价的。把棋盘从下到上各行依次标为 0, 1, 2, 3, …,把棋盘从左到右各列依次标为 0, 1, 2, 3, …,那么皇后移动时坐标变化的规则,正好与 Wythoff 游戏中两堆石子数量变化的规则是相同的。而两个游戏的目标也是相同的:谁先将游戏状态变为 (0, […]

Big Data

需求预测我喜欢用ARIMA模型

本文结构: 时间序列分析? 什么是ARIMA? ARIMA数学模型? input,output 是什么? 怎么用?-代码实例 常见问题? 时间序列分析? 时间序列,就是按时间顺序排列的,随时间变化的数据序列。 生活中各领域各行业太多时间序列的数据了,销售额,顾客数,访问量,股价,油价,GDP,气温。。。 随机过程的特征有均值、方差、协方差等。 如果随机过程的特征随着时间变化,则此过程是非平稳的;相反,如果随机过程的特征不随时间而变化,就称此过程是平稳的。 下图所示,左边非稳定,右边稳定。 非平稳时间序列分析时,若导致非平稳的原因是确定的,可以用的方法主要有趋势拟合模型、季节调整模型、移动平均、指数平滑等方法。 若导致非平稳的原因是随机的,方法主要有ARIMA(autoregressive integrated moving average)及自回归条件异方差模型等。 什么是ARIMA? ARIMA (Auto Regressive Integrated Moving Average) 可以用来对时间序列进行预测,常被用于需求预测和规划中。 可以用来对付 ‘随机过程的特征随着时间变化而非固定’ 且 ‘导致时间序列非平稳的原因是随机而非确定’ 的问题。不过,如果是从一个非平稳的时间序列开始, 首先需要做差分,直到得到一个平稳的序列。 模型的思想就是从历史的数据中学习到随时间变化的模式,学到了就用这个规律去预测未来。 ARIMA(p,d,q)模型,其中 d 是差分的阶数,用来得到平稳序列。 AR是自回归, p为相应的自回归项。 MA为移动平均,q为相应的移动平均项数。 ARIMA数学模型? ARIMA(p,d,q)模型是ARMA(p,q)模型的扩展。 ARIMA(p,d,q)模型可以表示为: 其中L 是滞后算子(Lag operator),d in Z, d>0。 AR: 当前值只是过去值的加权求和。 MA: 过去的白噪音的移动平均。 ARMA: AR和MA的综合。 […]

Big Data

百度内部培训资料PPT:数据分析的道与术

这是一个来自百度内部培训关于数据分析的、阅读类的PPT,文字说明非常充分,适合刚入门数据分析的朋友进行学习。 主要内容: 1、什么是数据分析(道) 1.1 数据分析是什么? 1.2 什么是做好数据分析的关键? 1.3 分析要思考业务,尤其是接地气 1.4 分析要言之有物,行之有效 2、数据分析方法(术) 3、常见的统计陷阱 4、PPT蕴含的人生哲理

Big Data

深度 | Hadoop数据操作系统YARN全解析

“ Hadoop 2.0引入YARN,大大提高了集群的资源利用率并降低了集群管理成本。其在异构集群中是怎样应用的?Hulu又有哪些成功实践可以分享? 为了能够对集群中的资源进行统一管理和调度,Hadoop 2.0引入了数据操作系统YARN。YARN的引入,大大提高了集群的资源利用率,并降低了集群管理成本。首先,YARN允许多个应用程序运行在一个集群中,并将资源按需分配给它们,这大大提高了资源利用率,其次,YARN允许各类短作业和长服务混合部署在一个集群中,并提供了容错、资源隔离及负载均衡等方面的支持,这大大简化了作业和服务的部署和管理成本。 YARN总体上采用master/slave架构,如图1所示,其中,master被称为ResourceManager,slave被称为NodeManager,ResourceManager负责对各个NodeManager上的资源进行统一管理和调度。当用户提交一个应用程序时,需要提供一个用以跟踪和管理这个程序的ApplicationMaster,它负责向ResourceManager申请资源,并要求NodeManger启动可以占用一定资源的Container。由于不同的ApplicationMaster被分布到不同的节点上,并通过一定的隔离机制进行了资源隔离,因此它们之间不会相互影响。 图1 Apache YARN的基本架构 YARN中的资源管理和调度功能由资源调度器负责,它是Hadoop YARN中最核心的组件之一,是ResourceManager中的一个插拔式服务组件 。YARN通过层级化队列的方式组织和划分资源,并提供了多种多租户资源调度器,这种调度器允许管理员按照应用需求对用户或者应用程序分组,并为不同的分组分配不同的资源量,同时通过添加各种约束防止单个用户或者应用程序独占资源,进而能够满足各种QoS需求,典型代表是Yahoo!的Capacity Scheduler和Facebook的Fair Scheduler。 YARN作为一个通用数据操作系统,既可以运行像MapReduce、Spark这样的短作业,也可以部署像Web Server、MySQL Server这种长服务,真正实现一个集群多用途,这样的集群,我们通常称为轻量级弹性计算平台,说它轻量级,是因为YARN采用了cgroups轻量级隔离方案,说它弹性,是因为YARN能根据各种计算框架或者应用的负载或者需求调整它们各自占用的资源,实现集群资源共享,资源弹性收缩。 图2 以YARN为核心的生态系统 Hadoop YARN在异构集群中的应用 从2.6.0版本开始,YARN引入了一种新的调度策略:基于标签的调度机制。该机制的主要引入动机是更好地让YARN运行在异构集群中,进而更好地管理和调度混合类型的应用程序。 1.什么是基于标签的调度 故名思议,基于标签的调度是一种调度策略,就像基于优先级的调度一样,是调度器中众多调度策略中的一种,可以跟其他调度策略混合使用。该策略的基本思想是:用户可为每个NodeManager打上标签,比如highmem,highdisk等,以作为NodeManager的基本属性;同时,用户可以为调度器中的队列设置若干标签,以限制该队列只能占用包含对应标签的节点资源,这样,提交到某个队列中的作业,只能运行在特定一些节点上。通过打标签,用户可将Hadoop分成若干个子集群,进而使得用户可将应用程序运行到符合某种特征的节点上,比如可将内存密集型的应用程序(比如Spark)运行到大内存节点上。 2.Hulu应用案例 基于标签的调度策略在Hulu内部有广泛的应用。之所以启用该机制,主要出于以下三点考虑: 集群是异构的。在Hadoop集群演化过程中,后来新增机器的配置通常比旧机器好,这使得集群最终变为一个异构的集群。Hadoop设计之初众多设计机制假定集群是同构的,即使发展到现在,Hadoop对异构集群的支持仍然很不完善,比如MapReduce推测执行机制尚未考虑异构集群情形。 应用是多样化的。Hulu在YARN集群之上同时部署了MapReduce、Spark、Spark Streaming、Docker Service等多种类型的应用程序 。当在异构集群混合运行多类应用程序时,经常发生由于机器配置不一导致并行化任务完成时间相差较大的情况,这非常不利于分布式程序的高效执行。此外,由于YARN无法进行完全的资源隔离,多个应用程序混合运行在一个节点上容易相互干扰,对于低延迟类型的应用通常是难以容忍的。 个性化机器需求。由于对特殊环境的依赖,有些应用程序只能运行在大集群中的特定节点上。典型的代表是spark和docker,spark MLLib可能用到一些native库,为了防止污染系统,这些库通常只会安装在若干节点上;docker container的运行依赖于docker engine,为了简化运维成本,我们 只会让docker运行在若干指定的节点上。 为了解决以上问题,Hulu在Capacity Scheduler基础上启用了基于标签的调度策略。如图3所示,我们根据机器配置和应用程序需求,为集群中的节点打上了多种标签,包括: q spark-node:用于运行spark作业的机器,这些机器通常配置较高,尤其是内存较大; q mr-node:运行MapReduce作业的机器,这些机器配置是多样的; q docker-node:运行docker应用程序的机器,这些机器上装有docker engine; q streaming-node:运行spark streaming流式应用的机器。 图3 YARN部署示例 需要注意的是,YARN允许一个节点同时存在多个标签,进而实现一台机器混合运行多类应用程序(在hulu内部,我们允许一些节点是共享的,同时可以运行多种应用程序)。表面上看来,通过引入标签将集群分成了多个物理集群,但实际上,这些物理集群跟传统意义上完全隔离的集群是不同的,这些集群既相互独立又相互关联,用户可非常容易地通过修改标签动态调整某个节点的用途。 Hadoop YARN应用案例及经验总结 1Hadoop YARN应用案例Hadoop […]

Big Data

彻底颠覆你认知的10条大数据思维

大数据思维原理是什么?简单概括为10项原理,当样本数量足够大时,你会发现其实每个人都是一模一样的。 数据核心原理 从“流程”核心转变为“数据”核心 大数据时代,计算模式也发生了转变,从“流程”核心转变为“数据”核心。Hadoop体系的分布式计算框架已经是“数据”为核心的范式。非结构化数据及分析需求,将改变IT系统的升级方式:从简单增量到架构变化。大数据下的新思维——计算模式的转变。   例如:IBM将使用以数据为中心的设计,目的是降低在超级计算机之间进行大量数据交换的必要性。大数据下,云计算找到了破茧重生的机会,在存储和计算上都体现了数据为核心的理念。大数据和云计算的关系:云计算为大数据提供了有力的工具和途径,大数据为云计算提供了很有价值的用武之地。而大数据比云计算更为落地,可有效利用已大量建设的云计算资源,最后加以利用。 科学进步越来越多地由数据来推动,海量数据给数据分析既带来了机遇,也构成了新的挑战。大数据往往是利用众多技术和方法,综合源自多个渠道、不同时间的信息而获得的。为了应对大数据带来的挑战,我们需要新的统计思路和计算方法。   说明:用数据核心思维方式思考问题,解决问题。以数据为核心,反映了当下IT产业的变革,数据成为人工智能的基础,也成为智能化的基础,数据比流程更重要,数据库、记录数据库,都可开发出深层次信息。云计算机可以从数据库、记录数据库中搜索出你是谁,你需要什么,从而推荐给你需要的信息。 数据价值原理 由功能是价值转变为数据是价值 大数据真正有意思的是数据变得在线了,这个恰恰是互联网的特点。非互联网时期的产品,功能一定是它的价值,今天互联网的产品,数据一定是它的价值。   例如:大数据的真正价值在于创造,在于填补无数个还未实现过的空白。有人把数据比喻为蕴藏能量的煤矿,煤炭按照性质有焦煤、无烟煤、肥煤、贫煤等分类,而露天煤矿、深山煤矿的挖掘成本又不一样。与此类似,大数据并不在“大”,而在于“有用”,价值含量、挖掘成本比数量更为重要。不管大数据的核心价值是不是预测,但是基于大数据形成决策的模式已经为不少的企业带来了盈利和声誉。 数据能告诉我们,每一个客户的消费倾向,他们想要什么,喜欢什么,每个人的需求有哪些区别,哪些又可以被集合到一起来进行分类。大数据是数据数量上的增加,以至于我们能够实现从量变到质变的过程。举例来说,这里有一张照片,照片里的人在骑马,这张照片每一分钟,每一秒都要拍一张,但随着处理速度越来越快,从1分钟一张到1秒钟1张,突然到1秒钟10张后,就产生了电影。当数量的增长实现质变时,就从照片变成了一部电影。 美国有一家创新企业Decide.com它可以帮助人们做购买决策,告诉消费者什么时候买什么产品,什么时候买最便宜,预测产品的价格趋势,这家公司背后的驱动力就是大数据。他们在全球各大网站上搜集数以十亿计的数据,然后帮助数以十万计的用户省钱,为他们的采购找到最好的时间,降低交易成本,为终端的消费者带去更多价值。 在这类模式下,尽管一些零售商的利润会进一步受挤压,但从商业本质上来讲,可以把钱更多地放回到消费者的口袋里,让购物变得更理性,这是依靠大数据催生出的一项全新产业。这家为数以十万计的客户省钱的公司,在几个星期前,被eBay以高价收购。 再举一个例子,SWIFT是全球最大的支付平台,在该平台上的每一笔交易都可以进行大数据的分析,他们可以预测一个经济体的健康性和增长性。比如,该公司现在为全球性客户提供经济指数,这又是一个大数据服务。,定制化服务的关键是数据。《大数据时代》的作者维克托·迈尔·舍恩伯格认为,大量的数据能够让传统行业更好地了解客户需求,提供个性化的服务。   说明:用数据价值思维方式思考问题,解决问题。信息总量的变化导致了信息形态的变化,量变引发了质变,最先经历信息爆炸的学科,如天文学和基因学,创造出了“大数据”这个概念。如今,这个概念几乎应用到了所有人类致力于发展的领域中。从功能为价值转变为数据为价值,说明数据和大数据的价值在扩大,数据为“王”的时代出现了。数据被解释是信息,信息常识化是知识,所以说数据解释、数据分析能产生价值。 全样本原理 从抽样转变为需要全部数据样本 需要全部数据样本而不是抽样,你不知道的事情比你知道的事情更重要,但如果现在数据足够多,它会让人能够看得见、摸得着规律。数据这么大、这么多,所以人们觉得有足够的能力把握未来,对不确定状态的一种判断,从而做出自己的决定。这些东西我们听起来都是非常原始的,但是实际上背后的思维方式,和我们今天所讲的大数据是非常像的。   举例:在大数据时代,无论是商家还是信息的搜集者,会比我们自己更知道你可能会想干什么。现在的数据还没有被真正挖掘,如果真正挖掘的话,通过信用卡消费的记录,可以成功预测未来5年内的情况。统计学里头最基本的一个概念就是,全部样本才能找出规律。为什么能够找出行为规律?一个更深层的概念是人和人是一样的,如果是一个人特例出来,可能很有个性,但当人口样本数量足够大时,就会发现其实每个人都是一模一样的。   说明:用全数据样本思维方式思考问题,解决问题。从抽样中得到的结论总是有水分的,而全部样本中得到的结论水分就很少,大数据越大,真实性也就越大,因为大数据包含了全部的信息。 关注效率原理 由关注精确度转变为关注效率 关注效率而不是精确度,大数据标志着人类在寻求量化和认识世界的道路上前进了一大步,过去不可计量、存储、分析和共享的很多东西都被数据化了,拥有大量的数据和更多不那么精确的数据为我们理解世界打开了一扇新的大门。大数据能提高生产效率和销售效率,原因是大数据能够让我们知道市场的需要,人的消费需要。大数据让企业的决策更科学,由关注精确度转变为关注效率的提高,大数据分析能提高企业的效率。   例如:在互联网大数据时代,企业产品迭代的速度在加快。三星、小米手机制造商半年就推出一代新智能手机。利用互联网、大数据提高企业效率的趋势下,快速就是效率、预测就是效率、预见就是效率、变革就是效率、创新就是效率、应用就是效率。   竞争是企业的动力,而效率是企业的生命,效率低与效率高是衡量企来成败的关键。一般来讲,投入与产出比是效率,追求高效率也就是追求高价值。手工、机器、自动机器、智能机器之间效率是不同的,智能机器效率更高,已能代替人的思维劳动。智能机器核心是大数据制动,而大数据制动的速度更快。在快速变化的市场,快速预测、快速决策、快速创新、快速定制、快速生产、快速上市成为企业行动的准则,也就是说,速度就是价值,效率就是价值,而这一切离不开大数据思维。   说明:用关注效率思维方式思考问题,解决问题。大数据思维有点像混沌思维,确定与不确定交织在一起,过去那种一元思维结果,已被二元思维结果取代。过去寻求精确度,现在寻求高效率;过去寻求因果性,现在寻求相关性;过去寻找确定性,现在寻找概率性,对不精确的数据结果已能容忍。只要大数据分析指出可能性,就会有相应的结果,从而为企业快速决策、快速动作、创占先机提高了效率。 关注相关性原理 由因果关系转变为关注相关性 关注相关性而不是因果关系,社会需要放弃它对因果关系的渴求,而仅需关注相关关系,也就是说只需要知道是什么,而不需要知道为什么。这就推翻了自古以来的惯例,而我们做决定和理解现实的最基本方式也将受到挑战。   例如:大数据思维一个最突出的特点,就是从传统的因果思维转向相关思维,传统的因果思维是说我一定要找到一个原因,推出一个结果来。而大数据没有必要找到原因,不需要科学的手段来证明这个事件和那个事件之间有一个必然,先后关联发生的一个因果规律。它只需要知道,出现这种迹象的时候,我就按照一般的情况,这个数据统计的高概率显示它会有相应的结果,那么我只要发现这种迹象的时候,我就可以去做一个决策,我该怎么做。这是和以前的思维方式很不一样,老实说,它是一种有点反科学的思维,科学要求实证,要求找到准确的因果关系。 在这个不确定的时代里面,等我们去找到准确的因果关系,再去办事的时候,这个事情早已经不值得办了。所以“大数据”时代的思维有点像回归了工业社会的这种机械思维——机械思维就是说我按那个按钮,一定会出现相应的结果,是这样状态。而农业社会往前推,不需要找到中间非常紧密的、明确的因果关系,而只需要找到相关关系,只需要找到迹象就可以了。社会因此放弃了寻找因果关系的传统偏好,开始挖掘相关关系的好处。 例如:美国人开发一款“个性化分析报告自动可视化程序”软件从网上挖掘数据信息,这款数据挖掘软件将自动从各种数据中提取重要信息,然后进行分析,并把此信息与以前的数据关联起来,分析出有用的信息。 非法在屋内打隔断的建筑物着火的可能性比其他建筑物高很多。纽约市每年接到2。5万宗有关房屋住得过于拥挤的投诉,但市里只有200名处理投诉的巡视员,市长办公室一个分析专家小组觉得大数据可以帮助解决这一需求与资源的落差。该小组建立了一个市内全部90万座建筑物的数据库,并在其中加入市里19个部门所收集到的数据:欠税扣押记录、水电使用异常、缴费拖欠、服务切断、救护车使用、当地犯罪率、鼠患投诉,诸如此类。 接下来,他们将这一数据库与过去5年中按严重程度排列的建筑物着火记录进行比较,希望找出相关性。果然,建筑物类型和建造年份是与火灾相关的因素。不过,一个没怎么预料到的结果是,获得外砖墙施工许可的建筑物与较低的严重火灾发生率之间存在相关性。利用所有这些数据,该小组建立了一个可以帮助他们确定哪些住房拥挤投诉需要紧急处理的系统。他们所记录的建筑物的各种特征数据都不是导致火灾的原因,但这些数据与火灾隐患的增加或降低存在相关性。这种知识被证明是极具价值的:过去房屋巡视员出现场时签发房屋腾空令的比例只有13%,在采用新办法之后,这个比例上升到了70%——效率大大提高了。 全世界的商界人士都在高呼大数据时代来临的优势:一家超市如何从一个17岁女孩的购物清单中,发现了她已怀孕的事实;或者将啤酒与尿不湿放在一起销售,神奇地提高了双方的销售额。大数据透露出来的信息有时确实会起颠覆。比如,腾讯一项针对社交网络的统计显示,爱看家庭剧的男人是女性的两倍还多;最关心金价的是中国大妈,但紧随其后的却是90后。而在过去一年,支付宝中无线支付比例排名前十的竟然全部在青海、西藏和内蒙古地区。   说明:用关注相关性思维方式来思考问题,解决问题。寻找原因是一种现代社会的一神论,大数据推翻了这个论断。过去寻找原因的信念正在被“更好”的相关性所取代。当世界由探求因果关系变成挖掘相关关系,我们怎样才能既不损坏建立在因果推理基础之上的社会繁荣和人类进步的基石,又取得实际的进步呢?这是值得思考的问题。   解释:转向相关性,不是不要因果关系,因果关系还是基础,科学的基石还是要的。只是在高速信息化的时代,为了得到即时信息,实时预测,在快速的大数据分析技术下,寻找到相关性信息,就可预测用户的行为,为企业快速决策提供提前量。比如预警技术,只有提前几十秒察觉,防御系统才能起作用。比如,雷达显示有个提前量,如果没有这个预知的提前量,雷达的作用也就没有了,相关性也是这个原理。比如,相对论与量子论的争论也能说明问题,一个说上帝不掷骰子,一个说上帝掷骰子,争论几十年,最后承认两个都存在,而且量子论取得更大的发展——一个适用于宇宙尺度,一个适用于原子尺度。 预测原理 从不能预测转变为可以预测 大数据的核心就是预测,大数据能够预测体现在很多方面。大数据不是要教机器像人一样思考,相反,它是把数学算法运用到海量的数据上来预测事情发生的可能性。正因为在大数据规律面前,每个人的行为都跟别人一样,没有本质变化,所以商家会比消费者更了消费者的行为。   例如:大数据助微软准确预测世界怀。微软大数据团队在2014年巴西世界足球赛前设计了世界怀模型,该预测模型正确预测了赛事最后几轮每场比赛的结果,包括预测德国队将最终获胜。预测成功归功于微软在世界怀进行过程中获取的大量数据,到淘汰赛阶段,数据如滚雪球般增多,常握了有关球员和球队的足够信息,以适当校准模型并调整对接下来比赛的预测。 […]

HowTo

16 Mental Models for Founders and Leaders

Think of mental models as the operating systems (OS) that run in the background of your brain. They’re always running — and you’ve put them together, either consciously or subconsciously, from your experiences and information. Mental models give you a perspective or a frame of mind with which to view the world. They also increase your likelihood […]

News

人工智能的哲学难题:是机械计算还是自主思考?

国外媒体近期刊文,对人工智能的本质进行了探讨。人工智能是在像人类一样思考,抑或仅仅只是简单的计算? 以下为文章全文: 我思故我在。这已成为了当代哲学关于自我、意识和个人主义的基础。 在笛卡尔看来,思想是可以自证的:他不需要对其进行定义。思想是什么?智能是什么?机器能否具备思想和智能?人工智能技术带来的不仅是答案,也有许多问题。我们可以来做以下的思想实验。 “中文房间”实验 想象一位只说英语的人身处一个房间中,房间的一侧有个小窗口。他随身携带一本关于中英文翻译规则的书。写着中文的纸片通过小窗口送入房间,而房间中的人可以利用自己的书来翻译这些文字,并从另一个小窗口递出。因此,一侧的纸片上写着中文,而另一侧的纸片上有着完美翻译的英文,但实际上这个人根本就不会说中文。 这一思想实验最初由约翰·希尔(John Searle)提出,常常被用于简单地证明,定义智能有多么困难。如果房间里的人足够多,那么你就可以完成几乎所有一切任务:画出或描述图片,或是翻译或修正任何语言。但这是否是一种智能?房间以外的人可能会认为,这就是智能,但房间里的人不会这样看。 如果房间里不是人,而全部是晶体管,那么这就非常像是一台计算机。因此,一个很自然的问题就是,计算机是否就是一个更复杂的“中文房间”?这个问题的一种答案是:如果房间里不是晶体管,而是神经元,那么情况又要怎么看?这带来了更多问题。 在这里,我们并非想要解决这个困扰哲学家已久的问题。我们或许需要更务实。 人工智能的强和弱 目前,人工智能被用于描述多种系统。尽管许多系统实际上并不能称作人工智能,但由于人工智能本身也缺乏明确的定义,因此很难做出反驳。简单而言,人工智能是一种软件,试图复制人类的思维过程或随之而来的结果。这带来了很大的解释余地。 你可以让人工智能为你选择下一首歌曲,人工智能可以控制机器人的腿,人工智能可以识别照片中的对象并进行描述,人工智能可以将德语翻译成英语、俄语和韩语。这些任务都是人类所擅长的,而自动化可以带来很大的便利。 然而最终,即使最复杂的任务也只是个任务。在接受了数百万个句子的训练之后,神经网络可以在8种语言之间进行无缝的翻译。然而,这只是一台非常复杂的机器,根据开发者设定的规则去进行计算。如果某件事可以被归纳为类似“中文房间”的机制,无论这件事多么庞大、多么复杂,那么我们是否还可以将其称作智能,而不仅仅是计算? 在这里,我们开始将人工智能分为“弱”人工智能和“强”人工智能。这并不是人工智能的不同类型,而是一种思考人工智能本质的方式。与许多哲学上的差异类似,没有任何一者更加正确。但这样的区分确实很重要。 一方面,有人认为,无论人工智能多么复杂,都不可能胜过人工智能的开发者:人工智能无法突破其机械的本质。甚至在这些限制以内,人工智能可以完成不可思议的工作,但最终这也只是非常强大的软件。这就是“弱”人工智能的观点。持这种观点的人士认为,由于这些基础性限制的存在,更应该关注的是如何开发系统,使其擅长单个的任务。 相对的另一方面是“强”人工智能。这种观点认为,人工智能的性能有可能足够强大,从而与人脑相仿。这类人士认为,人脑自身不过是另一个“中文房间”。如果我们大脑中的生物结构能产生所谓的智能和意识,那么为何基于硅材料的电路无法实现同样的目标?根据“强”人工智能的理论,未来某天我们将可以开发出与人脑相当,甚至超过人脑的智能。 而这里又出现了一个问题:对于智能,我们并没有可行的定义。 人工智能中的自我 过去3000年中,很难说,在定义智能的过程中,我们是否取得了任何有意义的进展。至少我们曾得出过许多明显错误的观念,例如智能可以被简单的测量,或者说智力与生物性特征,例如头型和脑容量相关。 关于是什么构成了智能,我们似乎都有各自的想法,因此很难证明一种人工智能是否有资格称作智能。在各种概念中,有一种足够简单、足够基本的想法值得进一步关注:智能就是解决新问题的能力。 这意味着“适应能力”、“通用性”,而不仅仅是“推理”、“判断”和“感知”能力。解决问题,做出推理很重要,但更重要的是将解决某种问题的能力转化为解决其他问题的能力。这样的转化将是智能的关键,即使没有人清楚应当如何正式描述这样的概念。 未来某天,我们的人工智能是否会出现这样的适应性,从而可以解决从未被定义过的新问题?研究人员正在努力开发下一代人工智能,使其学习并处理前所未见的细节,从而可以像人类一样行事。人工智能是在思考还是在计算,这或许是哲学家和计算机科学家的问题,但我们开始关注这一问题本身已经是一项了不起的成就。

Startup

My Startup Failed, I Lost Everything. Here’s What I Learned:

This is how my startup failed, how i lost all my savings (around $50,000) I invested into it, my car and pretty much everything of value I owned, my co-founder/friend, and my health — all in about 10 months and what I learned from it. Some context: I was a non-techie founder This happened about 2–3 years […]