最近赢了人机大战的AlphaGo火了,火得一塌糊涂,圈里圈外,是人都在谈AlphaGo。但是AlphaGo毕竟是为特定场景特定应用设计的特定型人工智能,和通用型人工智能还是有很大差别,离人工智能普及更差得很远。所以这么说,是因为之前做过几个特定型人工智能项目(语音识别和图像识别类型的,合起来可以是视频识别,但是没做),有些体会,对特定型人工智能设计思路比较了解,近期一直在考虑通用型人工智能的事,现在已经开始做这件事。但是只是一个开始,很多东西还在琢磨、探索中,路能不能走通也是未知数。在此和大家说说,分享一下我们的设计思路,希望能抛砖引玉。
  先从人工智能本身说起。人工智能是啥?就是让计算机拥有类似人的思维能力,怎么拥有呢?学习!现在这已经是共识,就是把一大堆数据输进计算机,借助大数据的存储计算能力,加上人对数据的分析理解,过滤掉里面的“噪音”,在大数据里形成一个相对准确的数据池。这个数据池,就成为计算机“思考”的源头。然后继续往里面加数据,这样数据池里的数据就会越来越多,计算机可以参考比较的内容也会越来越多,相应的分析判断能力就会越来越强,理论上,它就会越来越“聪明”。
  这个过程好比老师教孩子。小孩受本身阅历限制,他的知识储备少,在成长过程中会接受错误信息,对某些问题不理解,或者对某些信息判断错误,老师在这时要及时发现纠正,灌输正确的知识,让孩子形成正确的认识。正确的东西学习重复多了,自然对错误的知识形成抗体,以后也不会再犯。
  再说特定型人工智能。特定型人工智能和通用型人工智能相比,它是专门为某一个领域准备的。比如说这次人机大战的AlphaGo,它只思考下围棋的事,别的事不用管,那么做为它的老师,“真正的人”,只管向它输入各种围棋棋谱,给它建立一个分析模型,考虑对手落子之后,怎么根据这个落子下出正确的棋路。在这个过程中,它可能会下错,不过有老师在,老师会给它纠偏,慢慢它的棋艺就会越来越高。
  相比之下,通用型人工智能就要复杂多了。因为我们面对的世界太庞大,上下五千年,东西两半球,小到柴米油盐,大到两次大战,啥事没发生过,还有人的各种感情问题,比如“你是风儿我是沙”这样卿卿我我的东西,让计算机能够理解,建立这样全方位的知识体系肯定难得多。
  到这儿,就要说我们设想的这个东西了:自编程。自编程不是让人写代码,也不是让机器写代码(机器写代码N年前就有了,现在好象也没啥进展)。是让机器模仿人的意图,主动建立一套识别分析模型。在这套模型里,根据不同的录入内容,再进行细分,逐渐具体到一个个单项上。拿AlphaGo这件事来说,它只是世界上各种对弈棋类中的一种,在通用型人工智能这个大的模型框架下,是其中很小的一个子模型。
  再打个比方,军坛里有很多人在讨论隐形飞机的事。这件事如果让机器做,那么应该这样处理:
  1.建立一个飞机的识别分析模型。
  2.在飞机的识别分析模型之下建立一个隐形飞机的识别模型。
  3.向隐形飞机的识别分析模型里加注各种相关的数据。
  如果有人问“世界上哪种隐形飞机最牛B”时,根据“最牛B”这个语义,找到和“隐形飞机”关联的数据进行计算。得分高的自然就牛B。开始可能会有错,那就调整关联参数进行纠偏。这个工作开始一般是人做,训练多了让机器识别判断自己做。人工智能很关键的“深度学习”、“自主学习”实际指的就是这个。以后随着越来多人问,正确答案会受到更多人肯定,关联参数的权重就要增加,达到一定比例后,把正确的保留,错误的取消掉。
  这就是我们大体解决通用型人工智能的思路。归纳起来就是一个树形结构,先有“根”一级的识别分析模型,在“根”之下,有“子”一级识别分析模型,子还有“孙”,逐次递增,直到一个个具体单项。每一级识别分析模型都有各种属性与它建立关联。人机交互的时候,根据应用场景,与树形结构中的识别分析模型进行关联,找到最可能匹配的单项,再去寻找正确的答案。
  如果把AlphaGo迁移到通用型人工智能下面,最少是这样一个层次结构:“棋-围棋-对弈”。AlphaGo将成为通用人工智能环境下的一个子集。以后李世石如果再找AlphaGo下棋,通用型人工智能将引导他到“对奕”下面。其实不只李世石,全世界的人都可以和AlphaGo搏杀,搞个万人对阵机器大赛,如果真有一天出现这个场景,那可比当年《棋王》里的王一生大战老者壮观多了去了!
  扯远了,说正题!其实我们现在做通用型人工智能还是有很多困难。最大问题是要建立各种识别分析模型,还有在里面建立各种识别判断。而且每个识别分析模型的要求标准不一样,另外它们之间肯定有互通的地方,也有排斥的地方,这要建立很多关联,对它们精确定位,在计算的时候还在结合现实场景去理解和处理关联。统一规则肯定没法做到,比较靠谱的是针对几个相似的识别分析模型,做相对统一的规则,不过现在这个正在尝试中。
  至于数据的存储计算问题,现在已经解决,我们有一个超强的大数据系统,PB、EB量级的数据,存储计算起来都已经在不在话下。目前已经是已经PB了。
  总之我们做的通用型人工智能还是个框架,很多东西在摸索、探索中。有兴趣的兄弟可以交流,也希望哪位大神能给点提醒,来个突破!^_^!

从AlphaGo谈通用型人工智能设计的更多相关文章

  1. 【原创】NES第一波:如何用通用型6502宏汇编器,制用NES/FC游戏。

    在163的博客关了呀.在这边重新开张了. 以后若网友有什么要长篇解答的问题,也在这儿作答. 作为第一波原创文章,我打算做一次小白示范.那就是一步一步的展示某个汇编编译器的用法. 一.科普 很多人认为程 ...

  2. 浅谈Hybrid技术的设计与实现第三弹——落地篇

    前言 接上文:(阅读本文前,建议阅读前两篇文章先) 浅谈Hybrid技术的设计与实现 浅谈Hybrid技术的设计与实现第二弹 根据之前的介绍,大家对前端与Native的交互应该有一些简单的认识了,很多 ...

  3. 浅谈Hybrid技术的设计与实现第二弹

    前言 浅谈Hybrid技术的设计与实现 浅谈Hybrid技术的设计与实现第二弹 浅谈Hybrid技术的设计与实现第三弹——落地篇 接上文:浅谈Hybrid技术的设计与实现(阅读本文前,建议阅读这个先) ...

  4. 浅谈Hybrid技术的设计与实现

    前言 浅谈Hybrid技术的设计与实现 浅谈Hybrid技术的设计与实现第二弹 浅谈Hybrid技术的设计与实现第三弹——落地篇 随着移动浪潮的兴起,各种APP层出不穷,极速的业务扩展提升了团队对开发 ...

  5. (转)浅谈Hybrid技术的设计与实现

    转载地址:https://www.cnblogs.com/yexiaochai/p/4921635.html 前言 浅谈Hybrid技术的设计与实现 浅谈Hybrid技术的设计与实现第二弹 浅谈Hyb ...

  6. 城市经纬度 json 理解SignalR Main(string[] args)之args传递的几种方式 串口编程之端口 多线程详细介绍 递归一个List<T>,可自己根据需要改造为通用型。 Sql 优化解决方案

    城市经纬度 json https://www.cnblogs.com/innershare/p/10723968.html 理解SignalR ASP .NET SignalR 是一个ASP .NET ...

  7. 泛型理解及应用(二):使用泛型编写通用型Dao层

    相信目前所有的IT公司网站在设计WEB项目的时候都含有持久层,同样地使用过Hibernate的程序员都应该看过或者了解过Hibernate根据数据库反向生成持久层代码的模板.对于Hibernate生成 ...

  8. 【转】AlphaGo Zero 和强人工智能

    AlphaGo Zero 和强人工智能 前段时间比较热门的是 AlphaGo(阿法狗)的升级版:AlphaGo Zero(阿法狗零).跟阿法狗不同,阿法狗零不依赖于任何人类对弈记录,完全从围棋的规则出 ...

  9. 浅谈Hybrid技术的设计与实现【转】

    https://www.cnblogs.com/yexiaochai/p/4921635.html 前言 浅谈Hybrid技术的设计与实现 浅谈Hybrid技术的设计与实现第二弹 浅谈Hybrid技术 ...

随机推荐

  1. HTML5判断设备在线离线及监听网络状态变化例子

    经测试android ipad默认的浏览器支持,用appcan封装的网页也支持 本文原创,转载请说明出处 <!doctype html> <html> <head> ...

  2. LintCode "Coins in a Line III" !!

    https://codesolutiony.wordpress.com/2015/05/24/lintcode-coins-in-a-line-iii/ A very juicy one! Deser ...

  3. 【Struts2学习笔记-8】Struts2实现json数据的返回

    需要的jar包 struts2-json-plugin-2.3.12.jar xwork-core-2.3.16.3.jar struts.xml 来自为知笔记(Wiz) 附件列表 IMG_20150 ...

  4. bzoj1043 下落的圆盘

    Description 有n个圆盘从天而降,后面落下的可以盖住前面的.求最后形成的封闭区域的周长.看下面这副图, 所有的红色线条的总长度即为所求.  Input 第一行为1个整数n,N<=100 ...

  5. 像学历史课本一样学习Perl

    第一次接触Perl,还是2008年10月份的时候,当时因为项目重构,需要进行大量的文本操作,于是便拾起了以“文本操作为己任”的Perl语言.当然,带我入门的还是那本赫赫有名的The Llama  Bo ...

  6. IOS 日志输出控制

    用以下内容可以控制在debug版本中打印日志,而在release版本中不打印 #ifdef DEBUG# define DBLog(format,...) NSLog((@"[%s][%s] ...

  7. 黄聪:WordPress 函数:add_filter()(添加过滤器)

    add_filter() 可以挂载一个函数到指定的过滤器上. 用法 add_filter( $tag, $function_to_add, $priority, $accepted_args ); 参 ...

  8. ubuntu双网卡bonding配置(转)

    1.安装软件 apt-get install ifenslave 2.修改配置文件 /etc/network/interfaces auto lo iface lo inet loopback ifa ...

  9. Akka(二) - Future

    1. future的所有方法都是非阻塞立即返回的 (1)future都要有TimeOut和ExecutionContextExecutor这2个隐士参数 (2)打印future object Hell ...

  10. [Android Studio 1A] – 插件

    关于android studio插件的使用,一直没有好的机会来研究,最近项目开发中需要统计项目的代码行数,所以就需要一个代码统计的插件.我选择的是 Statistic,下载地址是:https://pl ...